commit 83f38dc63ffab2370efa979ee7593315baf5f49b Author: rosetta Date: Fri Jan 30 05:01:05 2026 +0200 'init' diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ceea880 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules +dist +out +package-lock.json +LICENSE +*.code-workspace \ No newline at end of file diff --git a/app/.DS_Store b/app/.DS_Store new file mode 100644 index 0000000..50d825a Binary files /dev/null and b/app/.DS_Store differ diff --git a/app/App.tsx b/app/App.tsx new file mode 100644 index 0000000..846e02c --- /dev/null +++ b/app/App.tsx @@ -0,0 +1,83 @@ +import { Route, Routes } from 'react-router-dom'; +import { Introduction } from "./views/Introduction/Introduction"; +import { CreateSeed } from './views/CreateSeed/CreateSeed'; +import { Lockscreen } from './views/Lockscreen/Lockscreen'; +import { ConfirmSeed } from './views/ConfirmSeed/ConfirmSeed'; +import { SetPassword } from './views/SetPassword/SetPassword'; +import { Main } from './views/Main/Main'; +import { ExistsSeed } from './views/ExistsSeed/ExistsSeed'; +import { Box, Divider } from '@mantine/core'; +import './style.css' +import { useRosettaColors } from './hooks/useRosettaColors'; +import { Buffer } from 'buffer'; +import { InformationProvider } from './providers/InformationProvider/InformationProvider'; +import { BlacklistProvider } from './providers/BlacklistProvider/BlacklistProvider'; +import { useAccountProvider } from './providers/AccountProvider/useAccountProvider'; +import { ImageViwerProvider } from './providers/ImageViewerProvider/ImageViewerProvider'; +import { AvatarProvider } from './providers/AvatarProvider/AvatarProvider'; +import { Topbar } from './components/Topbar/Topbar'; +import { ContextMenuProvider } from './providers/ContextMenuProvider/ContextMenuProvider'; +import { SettingsProvider } from './providers/SettingsProvider/SettingsProvider'; +import { DialogListProvider } from './providers/DialogListProvider/DialogListProvider'; +import { DialogStateProvider } from './providers/DialogStateProvider.tsx/DialogStateProvider'; +import { DeviceConfirm } from './views/DeviceConfirm/DeviceConfirm'; +window.Buffer = Buffer; + +export default function App() { + const { allAccounts, accountProviderLoaded } = useAccountProvider(); + const colors = useRosettaColors(); + + + const getViewByLoginState = () => { + if (!accountProviderLoaded) { + return <> + } + if (allAccounts.length <= 0) { + /** + * Если аккаунтов нет + */ + return + } + if (allAccounts.length > 0) { + /** + * Если есть аккаунт, но только один + */ + return + } + return + } + + return ( + + + + + + + + + + + + + + } /> + } /> + } /> + } /> + } /> + } /> + + + + + + + + + + + ); +} \ No newline at end of file diff --git a/app/components/.DS_Store b/app/components/.DS_Store new file mode 100644 index 0000000..5d919b0 Binary files /dev/null and b/app/components/.DS_Store differ diff --git a/app/components/ActionAvatar/ActionAvatar.tsx b/app/components/ActionAvatar/ActionAvatar.tsx new file mode 100644 index 0000000..f328e7f --- /dev/null +++ b/app/components/ActionAvatar/ActionAvatar.tsx @@ -0,0 +1,78 @@ +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { useAvatarChange } from "@/app/providers/AvatarProvider/useChangeAvatar"; +import { useImageViewer } from "@/app/providers/ImageViewerProvider/useImageViewer"; +import { imagePrepareForNetworkTransfer } from "@/app/utils/utils"; +import { Avatar, Box, Flex, Overlay } from "@mantine/core"; +import { useFileDialog } from "@mantine/hooks"; +import { IconCamera } from "@tabler/icons-react"; +import { useState } from "react"; + +interface ActionAvatarProps { + title: string; + publicKey: string; + forceChangeable?: boolean; +} + +export function ActionAvatar(props : ActionAvatarProps) { + const [overlay, setOverlay] = useState(false); + const publicKey = usePublicKey(); + const changeAvatar = useAvatarChange(); + const avatars = useAvatars(props.publicKey, true); + const {open} = useImageViewer(); + + const fileDialog = useFileDialog({ + multiple: false, + accept: 'image/*', + onChange: async (files) => { + if(!files){ + return; + } + if(files.length == 0){ + return; + } + const file = files[0]; + const base64Image = await imagePrepareForNetworkTransfer(file); + changeAvatar(base64Image, props.publicKey); + } + }); + + const onClickAvatar = () => { + if(props.publicKey != publicKey && !props.forceChangeable){ + open(avatars.map(a => ({src: a.avatar, timestamp: a.timestamp})), 0); + return; + } + fileDialog.open(); + } + + return ( + + setOverlay(true)} + onMouseLeave={() => setOverlay(false)} + style={{ + cursor: 'pointer' + }} + onClick={onClickAvatar} + pos={'relative'}> + 0 ? + avatars[0].avatar + : undefined} + > + + {(overlay && (props.publicKey == publicKey || props.forceChangeable)) && + + + + } + + + ); +} \ No newline at end of file diff --git a/app/components/AnimatedButton/AnimatedButton.tsx b/app/components/AnimatedButton/AnimatedButton.tsx new file mode 100644 index 0000000..4896c58 --- /dev/null +++ b/app/components/AnimatedButton/AnimatedButton.tsx @@ -0,0 +1,54 @@ +import { Button, ButtonProps } from '@mantine/core'; +import { forwardRef, useMemo, useEffect } from 'react'; + +type AnimatedButtonProps = ButtonProps & { + animated?: [string, string]; + animationDurationMs?: number; + onClick?: () => void; +}; + +export const AnimatedButton = forwardRef( + ({ animated, animationDurationMs = 2000, style, onClick, disabled, ...rest }, ref) => { + const animationName = useMemo(() => { + if (!animated) return undefined; + const safe = (s: string) => s.replace(/[^a-zA-Z0-9]/g, ''); + return `abg_${safe(animated[0])}_${safe(animated[1])}`; + }, [animated]); + + useEffect(() => { + if (!animated || !animationName) return; + const id = `__${animationName}`; + let styleEl = document.getElementById(id) as HTMLStyleElement | null; + if (!styleEl) { + styleEl = document.createElement('style'); + styleEl.id = id; + document.head.appendChild(styleEl); + } + styleEl.textContent = `@keyframes ${animationName}{0%{background-position:-200% 0;}100%{background-position:200% 0;}}`; + }, [animated, animationName]); + + return ( + + + + {props.title} + + + {props.rightSection} + + + ); +} \ No newline at end of file diff --git a/app/components/BackToDialogs/BackToDialogs.tsx b/app/components/BackToDialogs/BackToDialogs.tsx new file mode 100644 index 0000000..8179482 --- /dev/null +++ b/app/components/BackToDialogs/BackToDialogs.tsx @@ -0,0 +1,51 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useViewPanelsState, ViewPanelsState } from "@/app/hooks/useViewPanelsState"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { useDialogsList } from "@/app/providers/DialogListProvider/useDialogsList"; +import { Badge, Flex } from "@mantine/core"; +import { IconChevronLeft } from "@tabler/icons-react"; +import { useEffect, useState } from "react"; + +export function BackToDialogs() { + const colors = useRosettaColors(); + const [unreadedMessagessCount, setUnreadedMessagesCount] = useState(0); + const {dialogs} = useDialogsList(); + const [_, setViewState] = useViewPanelsState(); + const {getQuery} = useDatabase(); + const publicKey = usePublicKey(); + + useEffect(() => { + (async () => { + const result = await getQuery(` + SELECT COUNT(*) AS unloaded_count FROM messages WHERE from_me = 0 AND read = 0 AND account = ? + `, [publicKey]); + setUnreadedMessagesCount(result.unloaded_count || 0); + })(); + }, [dialogs, publicKey]); + + const onClickDialogs = () => { + setViewState(ViewPanelsState.DIALOGS_PANEL_ONLY); + } + + return ( + <> + + + + {unreadedMessagessCount > 0 && + + {unreadedMessagessCount > 9 ? '9+' : unreadedMessagessCount} + + } + + + ); +} \ No newline at end of file diff --git a/app/components/Breadcrumbs/Breadcrumbs.module.css b/app/components/Breadcrumbs/Breadcrumbs.module.css new file mode 100644 index 0000000..ad5d56a --- /dev/null +++ b/app/components/Breadcrumbs/Breadcrumbs.module.css @@ -0,0 +1,14 @@ +.history_button { + @mixin hover { + @mixin light { + background-color: var(--mantine-color-gray-0); + } + @mixin dark { + background-color: var(--mantine-color-dark-6); + } + } +} + +.history_button_disabled { + background-color: unset!important; +} \ No newline at end of file diff --git a/app/components/Breadcrumbs/Breadcrumbs.tsx b/app/components/Breadcrumbs/Breadcrumbs.tsx new file mode 100644 index 0000000..08e4125 --- /dev/null +++ b/app/components/Breadcrumbs/Breadcrumbs.tsx @@ -0,0 +1,46 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Box, Button, darken, Flex, lighten, Text, useComputedColorScheme } from "@mantine/core"; +import { IconChevronLeft, IconChevronRight } from "@tabler/icons-react"; +import { useNavigate } from "react-router-dom"; +import classes from './Breadcrumbs.module.css' + +export interface BreadcrumbsProps { + text: string; + onClick?: () => void; + rightSection?: React.ReactNode; +} + +export function Breadcrumbs(props : BreadcrumbsProps) { + const {chevrons} = useRosettaColors(); + const colorScheme = useComputedColorScheme(); + const navigate = useNavigate(); + + return ( + <> + + + + + + + + + + + {props.text} + + + + {props.onClick && ()} + {props.rightSection} + + + + + ) +} \ No newline at end of file diff --git a/app/components/ChatHeader/ChatHeader.tsx b/app/components/ChatHeader/ChatHeader.tsx new file mode 100644 index 0000000..df15bb6 --- /dev/null +++ b/app/components/ChatHeader/ChatHeader.tsx @@ -0,0 +1,184 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { useBlacklist } from "@/app/providers/BlacklistProvider/useBlacklist"; +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; +import { ProtocolState } from "@/app/providers/ProtocolProvider/ProtocolProvider"; +import { useProtocolState } from "@/app/providers/ProtocolProvider/useProtocolState"; +import { Avatar, Box, Divider, Flex, Loader, Text, Tooltip, useComputedColorScheme, useMantineTheme } from "@mantine/core"; +import { modals } from "@mantine/modals"; +import { IconBookmark, IconLockAccess, IconLockCancel, IconTrashX } from "@tabler/icons-react"; +import { useEffect, useRef, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { VerifiedBadge } from "../VerifiedBadge/VerifiedBadge"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; +import { PacketTyping } from "@/app/providers/ProtocolProvider/protocol/packets/packet.typeing"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; +import { ReplyHeader } from "../ReplyHeader/ReplyHeader"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { BackToDialogs } from "../BackToDialogs/BackToDialogs"; +import { useSystemAccounts } from "@/app/providers/SystemAccountsProvider/useSystemAccounts"; + + +export function ChatHeader() { + const colors = useRosettaColors(); + const computedTheme = useComputedColorScheme(); + const navigate = useNavigate(); + const publicKey = usePublicKey(); + const {deleteMessages, dialog} = useDialog(); + const theme = useMantineTheme(); + const [blocked, blockUser, unblockUser] = useBlacklist(dialog); + const [opponent, ___, forceUpdateUserInformation] = useUserInformation(dialog); + const protocolState = useProtocolState(); + const [userTypeing, setUserTypeing] = useState(false); + const timeoutRef = useRef(undefined); + const avatars = useAvatars(dialog); + const {replyMessages} = useReplyMessages(); + const {lg} = useRosettaBreakpoints(); + const systemAccounts = useSystemAccounts(); + const isSystemAccount = systemAccounts.find((acc) => acc.publicKey == dialog) != undefined; + + + useEffect(() => { + forceUpdateUserInformation(); + setUserTypeing(false); + clearTimeout(timeoutRef.current); + }, [dialog]); + + usePacket(0x0B, (packet : PacketTyping) => { + if(packet.getFromPublicKey() == dialog && packet.getToPublicKey() == publicKey){ + setUserTypeing(true); + clearTimeout(timeoutRef.current); + timeoutRef.current = setTimeout(() => { + setUserTypeing(false); + }, 3000); + } + }, [dialog]); + + const clearMessages = async () => { + deleteMessages(); + modals.closeAll(); + } + + const onClickClearMessages = () => { + modals.openConfirmModal({ + title: 'Clear all messages?', + centered: true, + children: ( + + Are you sure you want to clear all messages? This action cannot be undone. + + ), + withCloseButton: false, + labels: { confirm: 'Continue', cancel: "Cancel" }, + confirmProps: { color: 'red' }, + onConfirm: clearMessages + }); + } + + const onClickBlockUser = () => { + if(opponent.publicKey != "DELETED" + && opponent.publicKey != publicKey){ + blockUser(); + } + } + + const onClickUnblockUser = () => { + if(opponent.publicKey != "DELETED" + && opponent.publicKey != publicKey){ + unblockUser(); + } + } + + const onClickProfile = () => { + if(opponent.publicKey != "DELETED" && opponent.publicKey != publicKey){ + navigate("/main/profile/" + opponent.publicKey); + } + } + + + return (<> + + {(replyMessages.messages.length <= 0 || replyMessages.inDialogInput) && + + {!lg && } + { + publicKey == opponent.publicKey ? + + : 0 ? avatars[0].avatar : undefined} name={opponent.title}> + } + + + + {( + publicKey == opponent.publicKey ? "Saved messages" : opponent.title + )} + + {(opponent.verified > 0 && publicKey != opponent.publicKey) && } + + {(publicKey != opponent.publicKey && protocolState == ProtocolState.CONNECTED && !userTypeing) && <> + {( + opponent.online == OnlineState.ONLINE ? + online : + {isSystemAccount ? 'official account' : 'offline'} + )} + } + {userTypeing && publicKey != opponent.publicKey && protocolState == ProtocolState.CONNECTED && <> + + typing + + + } + {protocolState != ProtocolState.CONNECTED && + + + connecting... + + } + + + + + + + {publicKey != opponent.publicKey && !blocked && !isSystemAccount && ( + + + + + )} + {blocked && !isSystemAccount && ( + + + + + )} + + } + {replyMessages.messages.length > 0 && !replyMessages.inDialogInput && } + + + ) +} \ No newline at end of file diff --git a/app/components/CopyButtonIcon/CopyButtonIcon.tsx b/app/components/CopyButtonIcon/CopyButtonIcon.tsx new file mode 100644 index 0000000..181e74b --- /dev/null +++ b/app/components/CopyButtonIcon/CopyButtonIcon.tsx @@ -0,0 +1,33 @@ +import { ActionIcon, Button, CopyButton, MantineSize } from "@mantine/core"; +import { IconCheck, IconCopy } from "@tabler/icons-react"; + +interface CopyButtonProps { + value: string; + caption: string; + timeout?: number; + size?: MantineSize; + fullWidth?: boolean; + onClick?: () => void; + style?: React.CSSProperties; +} + +export function CopyButtonIcon(props : CopyButtonProps) { + return ( +
+ + {({ copied, copy }) => ( + + )} + +
+ ) +} \ No newline at end of file diff --git a/app/components/CopyInput/CopyInput.tsx b/app/components/CopyInput/CopyInput.tsx new file mode 100644 index 0000000..1fa0b43 --- /dev/null +++ b/app/components/CopyInput/CopyInput.tsx @@ -0,0 +1,61 @@ +import { MantineSize, Input } from "@mantine/core"; +import { useState, useEffect } from "react"; +import { IconCopy, IconCheck } from "@tabler/icons-react"; + +export interface CopyInputProps { + value: string; + caption: string; + timeout?: number; + size?: MantineSize; + fullWidth?: boolean; + onClick?: () => void; + style?: React.CSSProperties; +} + +export function CopyInput(props : CopyInputProps) { + const { value, caption, timeout = 1200, size = 'sm', fullWidth = true, onClick, style } = props; + const [copied, setCopied] = useState(false); + + useEffect(() => { + if (!copied) return; + const t = setTimeout(() => setCopied(false), timeout); + return () => clearTimeout(t); + }, [copied, timeout]); + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(value); + setCopied(true); + onClick?.(); + } catch { + // noop + } + }; + + return ( +
+ : } + rightSectionPointerEvents={"none"} + placeholder={caption} + style={{ + pointerEvents: 'none', + transition: 'background-color 160ms ease, box-shadow 160ms ease', + //boxShadow: copied ? '0 0 0 1px rgba(47, 179, 68, 0.4) inset' : undefined, + ...style, + }} + styles={{ + input: { + backgroundColor: copied ? 'rgba(0, 255, 0, 0.15)' : undefined, + border: copied ? '1px solid #2fb344' : undefined, + color: copied ? '#2fb344' : undefined, + } + }} + /> +
+ ); +} \ No newline at end of file diff --git a/app/components/Dialog/Dialog.module.css b/app/components/Dialog/Dialog.module.css new file mode 100644 index 0000000..6da63c7 --- /dev/null +++ b/app/components/Dialog/Dialog.module.css @@ -0,0 +1,7 @@ +.dialogs_wrapper { + display: flex; + flex-direction: column; + border-right: 1px solid var(--mantine-color-dark-light); + overflow-y: scroll; + user-select: none; +} \ No newline at end of file diff --git a/app/components/Dialog/Dialog.tsx b/app/components/Dialog/Dialog.tsx new file mode 100644 index 0000000..d83ed15 --- /dev/null +++ b/app/components/Dialog/Dialog.tsx @@ -0,0 +1,166 @@ +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Avatar, Badge, Box, Divider, Flex, Loader, Skeleton, Text, useComputedColorScheme, useMantineTheme } from "@mantine/core"; +import { IconAlertCircle, IconBellOff, IconBookmark, IconCheck, IconChecks, IconClock, IconPin } from "@tabler/icons-react"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { VerifiedBadge } from "../VerifiedBadge/VerifiedBadge"; +import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; +import { DeliveredMessageState } from "@/app/providers/DialogProvider/DialogProvider"; +import { dotMessageIfNeeded, isMessageDeliveredByTime } from "@/app/utils/utils"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; +import { useRef, useState } from "react"; +import { PacketTyping } from "@/app/providers/ProtocolProvider/protocol/packets/packet.typeing"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { TextParser } from "../TextParser/TextParser"; +import { useMemory } from "@/app/providers/MemoryProvider/useMemory"; +import { DialogRow } from "@/app/providers/DialogListProvider/DialogListProvider"; +import { useDialogInfo } from "@/app/providers/DialogListProvider/useDialogInfo"; +import { useDialogContextMenu } from "@/app/hooks/useDialogContextMenu"; +import { useDialogPin } from "@/app/providers/DialogStateProvider.tsx/useDialogPin"; +import { useDialogMute } from "@/app/providers/DialogStateProvider.tsx/useDialogMute"; + +export interface DialogProps extends DialogRow { + onClickDialog: (dialog: string) => void; +} + +export function Dialog(props : DialogProps) { + const colors = useRosettaColors(); + const theme = useMantineTheme(); + const computedTheme = useComputedColorScheme(); + const publicKey = usePublicKey(); + + /** + * Принимает public_key оппонента, для групп + * есть отдельный компонент GroupDialog + */ + const opponent = props.dialog_id; + const {isMuted} = useDialogMute(opponent); + const {isPinned} = useDialogPin(opponent); + + const [userInfo] = useUserInformation(opponent); + + const {lastMessage, unreaded, loading} = useDialogInfo(props); + + const lastMessageFromMe = lastMessage.from_me == 1; + const fromMe = opponent == publicKey; + const [userTypeing, setUserTypeing] = useState(false); + const timeoutRef = useRef(undefined); + const avatars = useAvatars(opponent); + const [сurrentDialogPublicKeyView] = useMemory("current-dialog-public-key-view", "", true); + const {openContextMenu} = useDialogContextMenu(); + + const isInCurrentDialog = props.dialog_id == сurrentDialogPublicKeyView; + const currentDialogColor = computedTheme == 'dark' ? '#2a6292' :'#438fd1'; + + usePacket(0x0B, (packet : PacketTyping) => { + if(packet.getFromPublicKey() == opponent && packet.getToPublicKey() == publicKey && !fromMe){ + console.info("User typeing packet received in Dialog"); + setUserTypeing(true); + clearTimeout(timeoutRef.current); + timeoutRef.current = setTimeout(() => { + setUserTypeing(false); + }, 3000); + } + }, [opponent]); + + return ( + props.onClickDialog(props.dialog_id)} + onContextMenu={() => { + openContextMenu(props.dialog_id) + }} + > + + { + fromMe ? + + + : + + 0 ? avatars[0].avatar : undefined} variant={isInCurrentDialog ? 'filled' : 'light'} name={userInfo.title} size={50} color={'initials'} /> + {userInfo.online == OnlineState.ONLINE && ( + + )} + + } + + + + + {fromMe ? "Saved messages" : dotMessageIfNeeded(userInfo.title, 15)} + + + {isMuted && } + {isPinned && } + + {!userTypeing && <> + + {loading && } + {!loading && } + + } + {userTypeing && <> + + typing + + + } + + + {!loading && ( + + {new Date(lastMessage.timestamp).toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit' })} + + )} + {loading && ( + + )} + {lastMessage.delivered == DeliveredMessageState.DELIVERED && <> + {lastMessageFromMe && unreaded > 0 && + } + {lastMessageFromMe && unreaded <= 0 && + } + } + {(lastMessage.delivered == DeliveredMessageState.WAITING && (isMessageDeliveredByTime(lastMessage.timestamp, lastMessage.attachments.length))) && <> + + } + {!loading && (lastMessage.delivered == DeliveredMessageState.ERROR || (!isMessageDeliveredByTime(lastMessage.timestamp, lastMessage.attachments.length) && lastMessage.delivered != DeliveredMessageState.DELIVERED)) && ( + + )} + {unreaded > 0 && !lastMessageFromMe && {unreaded > 99 ? '99+' : unreaded}} + + + + + + ) +} \ No newline at end of file diff --git a/app/components/DialogAffix/DialogAffix.tsx b/app/components/DialogAffix/DialogAffix.tsx new file mode 100644 index 0000000..be064ba --- /dev/null +++ b/app/components/DialogAffix/DialogAffix.tsx @@ -0,0 +1,72 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { Box, Flex, Paper, Transition } from "@mantine/core"; +import { IconArrowDown, IconArrowUp } from "@tabler/icons-react"; +import { useEffect, useRef, useState } from "react"; + +export interface DialogAffixProps { + mounted: boolean; + onClick: () => void; +} + +export function DialogAffix(props : DialogAffixProps) { + const {messages} = useDialog(); + const [updates, setUpdates] = useState(false); + const colors = useRosettaColors(); + const lastMessageTimeRef = useRef(0); + //const {isMentioned} = useMentions(); + //const {hasGroup} = useGroups(); + const mentionedAffix = false; + + useEffect(() => { + if(!props.mounted){ + setUpdates(false); + } + if(messages.length === 0){ + return; + } + lastMessageTimeRef.current = messages[messages.length - 1].timestamp; + }, [props.mounted]); + + useEffect(() => { + if(!props.mounted || + (messages.length > 0 && lastMessageTimeRef.current >= messages[messages.length - 1].timestamp) + ){ + return; + } + setUpdates(true); + }, [messages]); + + return ( + + {(transitionStyles) => ( + + + {(transitionStyles) => ( + + + )} + + + {!mentionedAffix && } + {mentionedAffix && } + + + )} + + ); +} \ No newline at end of file diff --git a/app/components/DialogAttachment/AttachAvatar.tsx b/app/components/DialogAttachment/AttachAvatar.tsx new file mode 100644 index 0000000..86aafcf --- /dev/null +++ b/app/components/DialogAttachment/AttachAvatar.tsx @@ -0,0 +1,60 @@ +import { Box, Flex, Paper, Text } from "@mantine/core"; +import { IconLock, IconX } from "@tabler/icons-react"; +import { DialogAttachmentProps } from "./DialogAttachment"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { useGroups } from "@/app/providers/DialogProvider/useGroups"; + + +export function AttachAvatar (props : DialogAttachmentProps) { + const colors = useRosettaColors(); + const {dialog} = useDialog(); + const {hasGroup} = useGroups(); + + return ( + + + + + + + {hasGroup(dialog) ? 'Group' : 'Your'} avatar + + + + This avatar will be visible {hasGroup(dialog) ? 'to the group' : 'to your opponent'}. + All avatars are end-to-end encrypted. + + + + {props.onRemove && + { + props.onRemove && props.onRemove(props.attach); + }}> + + + } + + ); +} \ No newline at end of file diff --git a/app/components/DialogAttachment/AttachFile.tsx b/app/components/DialogAttachment/AttachFile.tsx new file mode 100644 index 0000000..c5c2356 --- /dev/null +++ b/app/components/DialogAttachment/AttachFile.tsx @@ -0,0 +1,85 @@ +import { Box, Flex, Text } from "@mantine/core"; +import { DialogAttachmentProps } from "./DialogAttachment"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { IconFile, IconFileTypeJpg, IconFileTypeJs, IconFileTypePng, IconFileTypeZip, IconX } from "@tabler/icons-react"; +import { dotCenterIfNeeded, humanFilesize } from "@/app/utils/utils"; + +export function AttachFile(props : DialogAttachmentProps) { + const colors = useRosettaColors(); + const filesize = parseInt(props.attach.preview.split("::")[0]); + const filename = props.attach.preview.split("::")[1]; + const filetype = filename.split(".")[filename.split(".").length - 1]; + + const getIconByFiletype = (type : string) : React.ReactNode => { + type = type.trim().toLocaleLowerCase(); + const iconAttributes = { + size: 23, + color: colors.chevrons.active + } + switch(type){ + case 'js': + return + case 'jpeg': + return + case 'jpg': + return + case 'png': + return + case 'zip': + return + case '7z': + return + default: + return + } + } + + const icon = getIconByFiletype(filetype); + + return ( + + {icon} + + + {dotCenterIfNeeded(filename, 10)} + + + {humanFilesize(filesize)} + + + + {props.onRemove && + { + props.onRemove && props.onRemove(props.attach); + }}> + + + } + + ); +} \ No newline at end of file diff --git a/app/components/DialogAttachment/AttachImage.tsx b/app/components/DialogAttachment/AttachImage.tsx new file mode 100644 index 0000000..792cbae --- /dev/null +++ b/app/components/DialogAttachment/AttachImage.tsx @@ -0,0 +1,44 @@ +import { Box } from "@mantine/core"; +import { IconX } from "@tabler/icons-react"; +import { DialogAttachmentProps } from "./DialogAttachment"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; + + +export function AttachImage (props : DialogAttachmentProps) { + const colors = useRosettaColors(); + return ( + + + + {props.onRemove && + { + props.onRemove && props.onRemove(props.attach); + }}> + + + } + + ); +} \ No newline at end of file diff --git a/app/components/DialogAttachment/AttachMessages.tsx b/app/components/DialogAttachment/AttachMessages.tsx new file mode 100644 index 0000000..64d059a --- /dev/null +++ b/app/components/DialogAttachment/AttachMessages.tsx @@ -0,0 +1,44 @@ +import { Flex, Text } from "@mantine/core"; +import { DialogAttachmentProps } from "./DialogAttachment"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { IconX } from "@tabler/icons-react"; +import { useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; +import { dotMessageIfNeeded } from "@/app/utils/utils"; +import { TextParser } from "../TextParser/TextParser"; + +export function AttachMessages(props : DialogAttachmentProps) { + const colors = useRosettaColors(); + const {deselectAllMessages} = useReplyMessages(); + + const onClickCancel = () => { + deselectAllMessages(); + props.onRemove && props.onRemove(props.attach); + } + + const jsonMessages = JSON.parse(props.attach.blob); + + return ( + + + Reply messages + + {jsonMessages.length > 1 && <> + Reply to {jsonMessages.length} messages + } + {jsonMessages.length == 1 && <> + {jsonMessages[0].message.trim().length > 0 ? : 'Attachment'} + } + + + + + + + ) +} \ No newline at end of file diff --git a/app/components/DialogAttachment/DialogAttachment.tsx b/app/components/DialogAttachment/DialogAttachment.tsx new file mode 100644 index 0000000..9a58a2f --- /dev/null +++ b/app/components/DialogAttachment/DialogAttachment.tsx @@ -0,0 +1,29 @@ +import { Attachment, AttachmentType } from "@/app/providers/ProtocolProvider/protocol/packets/packet.message"; +import { AttachImage } from "./AttachImage"; +import { AttachMessages } from "./AttachMessages"; +import { AttachFile } from "./AttachFile"; +import { AttachAvatar } from "./AttachAvatar"; + +export interface DialogAttachmentProps { + attach: Attachment; + onRemove?: (attach: Attachment) => void; +} + +export function DialogAttachment(props : DialogAttachmentProps) { + return ( + <> + {props.attach.type == AttachmentType.IMAGE && + + } + {props.attach.type == AttachmentType.MESSAGES && + + } + {props.attach.type == AttachmentType.FILE && + + } + {props.attach.type == AttachmentType.AVATAR && + + } + + ) +} \ No newline at end of file diff --git a/app/components/DialogInput/DialogInput.tsx b/app/components/DialogInput/DialogInput.tsx new file mode 100644 index 0000000..4f3977c --- /dev/null +++ b/app/components/DialogInput/DialogInput.tsx @@ -0,0 +1,420 @@ +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Box, Divider, Flex, Menu, Popover, Text, Transition, useComputedColorScheme } from "@mantine/core"; +import { IconBarrierBlock, IconCamera, IconDoorExit, IconFile, IconMoodSmile, IconPaperclip, IconSend } from "@tabler/icons-react"; +import { useEffect, useRef, useState } from "react"; +import { useBlacklist } from "@/app/providers/BlacklistProvider/useBlacklist"; +import { base64ImageToBlurhash, filePrapareForNetworkTransfer, generateRandomKey, imagePrepareForNetworkTransfer } from "@/app/utils/utils"; +import { Attachment, AttachmentType } from "@/app/providers/ProtocolProvider/protocol/packets/packet.message"; +import { DialogAttachment } from "../DialogAttachment/DialogAttachment"; +import { PacketTyping } from "@/app/providers/ProtocolProvider/protocol/packets/packet.typeing"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { usePrivateKeyHash } from "@/app/providers/AccountProvider/usePrivateKeyHash"; +import { useSender } from "@/app/providers/ProtocolProvider/useSender"; +import { useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; +import { useFileDialog, useHotkeys } from "@mantine/hooks"; +import { ATTACHMENTS_NOT_ALLOWED_TO_REPLY, MAX_ATTACHMENTS_IN_MESSAGE, MAX_UPLOAD_FILESIZE_MB } from "@/app/constants"; +import { useSystemAccounts } from "@/app/providers/SystemAccountsProvider/useSystemAccounts"; +import { Dropzone } from '@mantine/dropzone'; +import { RichTextInput } from "../RichTextInput/RichTextInput"; +import EmojiPicker, { EmojiClickData, Theme } from 'emoji-picker-react'; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { useGroups } from "@/app/providers/DialogProvider/useGroups"; +import { useGroupMembers } from "@/app/providers/InformationProvider/useGroupMembers"; +import { AnimatedButton } from "../AnimatedButton/AnimatedButton"; +import { useUserCacheFunc } from "@/app/providers/InformationProvider/useUserCacheFunc"; +import { MentionList, Mention } from "../MentionList/MentionList"; +import { useDrafts } from "@/app/providers/DialogProvider/useDrafts"; + + +export function DialogInput() { + const colors = useRosettaColors(); + const {sendMessage, dialog} = useDialog(); + const {members, loading} = useGroupMembers(dialog); + const {hasGroup, leaveGroup} = useGroups(); + const [message, setMessage] = useState(""); + const [blocked] = useBlacklist(dialog); + const [attachments, setAttachments] = useState([]); + const publicKey = usePublicKey(); + const isAdmin = hasGroup(dialog) && members[0] == publicKey; + const isBannedGroup = hasGroup(dialog) && members.length == 0 && !loading; + const privateKey = usePrivateKeyHash(); + const sendPacket = useSender(); + const typingTimeoutRef = useRef(null); + const {replyMessages, deselectAllMessages} = useReplyMessages(); + const computedTheme = useComputedColorScheme(); + const systemAccounts = useSystemAccounts(); + const [mentionList, setMentionList] = useState([]); + const mentionHandling = useRef(""); + const {getDraft, saveDraft} = useDrafts(dialog); + + + const avatars = useAvatars( + hasGroup(dialog) ? dialog : publicKey + , false); + + const editableDivRef = useRef(null); + const getUserFromCache = useUserCacheFunc(); + const regexp = new RegExp(/@([\w\d_]{3,})$/); + + useHotkeys([ + ['Esc', () => { + setAttachments([]); + }] + ], [], true); + + const fileDialog = useFileDialog({ + multiple: false, + //naccept: '*', + onChange: async (files) => { + if(!files){ + return; + } + if(files.length == 0){ + return; + } + if(attachments.length >= MAX_ATTACHMENTS_IN_MESSAGE){ + return; + } + if(attachments.find(a => ATTACHMENTS_NOT_ALLOWED_TO_REPLY.includes(a.type))){ + return; + } + const file = files[0]; + if(((file.size / 1024) / 1024) > MAX_UPLOAD_FILESIZE_MB){ + return; + } + const fileContent = await filePrapareForNetworkTransfer(file); + setAttachments([...attachments, { + blob: fileContent, + id: generateRandomKey(8), + type: AttachmentType.FILE, + preview: files[0].size + "::" + files[0].name + }]); + } + }); + + useEffect(() => { + const draftMessage = getDraft(); + console.info("GET DRAFT", draftMessage); + if(draftMessage == "" || !editableDivRef){ + return; + } + setMessage(draftMessage); + editableDivRef.current.insertHTMLInCurrentCarretPosition(draftMessage); + }, [dialog, editableDivRef]); + + useEffect(() => { + if(replyMessages.inDialogInput && replyMessages.inDialogInput == dialog){ + setAttachments([{ + type: AttachmentType.MESSAGES, + id: generateRandomKey(8), + blob: JSON.stringify([...replyMessages.messages]), + preview: "" + }]); + editableDivRef.current.focus(); + } + }, [dialog, replyMessages]); + + useEffect(() => { + saveDraft(message); + if(regexp.test(message) && hasGroup(dialog)){ + const username = regexp.exec(message); + if(!username){ + return; + } + if(username[1].length > 2){ + handleMention(username[1]); + } + }else{ + setMentionList([]); + } + }, [message]); + + + if(systemAccounts.find((acc) => acc.publicKey == dialog)){ + return <>; + } + + const handleMention = async (username: string) => { + const regexpToFindAllMentionedUsernames = new RegExp(`@([\\w\\d_]{2,})`, 'g'); + const mentionedUsernamesInMessage = message.match(regexpToFindAllMentionedUsernames); + + + const mentionsList : Mention[] = []; + + if(!isAdmin && username.startsWith('adm') && (mentionedUsernamesInMessage && !mentionedUsernamesInMessage.includes('@admin'))){ + mentionsList.push({ + username: 'admin', + title: 'Administrator', + publicKey: '' + }); + } + + for(let i = 0; i < members.length; i++){ + const userInfo = await getUserFromCache(members[i]); + if(!userInfo){ + continue; + } + if(!userInfo.username.startsWith(username)){ + continue; + } + if(mentionedUsernamesInMessage && mentionedUsernamesInMessage.includes(`@${userInfo.username}`)){ + continue; + } + mentionsList.push({ + username: userInfo.username, + title: userInfo.title, + publicKey: userInfo.publicKey + }); + } + setMentionList(mentionsList); + mentionHandling.current = username; + } + + const send = () => { + if(blocked || (message.trim() == "" && attachments.length <= 0)) { + return; + } + sendMessage(message, attachments); + editableDivRef.current.clear(); + setAttachments([]); + deselectAllMessages(); + } + + const handleKeyDown = (event: React.KeyboardEvent) => { + if (event.key === 'Enter' && !event.shiftKey) { + event.preventDefault(); + if(mentionList.length <= 0){ + send(); + } + } + if (!event.shiftKey && event.key.length === 1 && !blocked) { + if (!typingTimeoutRef.current) { + sendTypeingPacket(); + typingTimeoutRef.current = setTimeout(() => { + typingTimeoutRef.current = null; + }, 3000); + } + } + }; + + const onRemoveAttachment = (attachment: Attachment) => { + setAttachments(attachments.filter(a => a.id != attachment.id)); + editableDivRef.current.focus(); + } + + const onClickPaperclip = () => { + fileDialog.open(); + } + + const onClickCamera = async () => { + if(avatars.length == 0){ + return; + } + setAttachments([{ + blob: avatars[0].avatar, + id: generateRandomKey(8), + type: AttachmentType.AVATAR, + preview: await base64ImageToBlurhash(avatars[0].avatar) + }]); + editableDivRef.current.focus(); + } + + const sendTypeingPacket = () => { + let packet = new PacketTyping(); + packet.setToPublicKey(dialog); + packet.setFromPublicKey(publicKey); + packet.setPrivateKey(privateKey); + sendPacket(packet); + } + + const onPaste = async (event: React.ClipboardEvent) => { + if(attachments.length >= MAX_ATTACHMENTS_IN_MESSAGE){ + return; + } + if(attachments.find(a => ATTACHMENTS_NOT_ALLOWED_TO_REPLY.includes(a.type))){ + return; + } + const items = event.clipboardData.items; + for (let i = 0; i < items.length; i++) { + const item = items[i]; + if (item.type.startsWith("image/")) { + const file = item.getAsFile(); + if (file) { + const base64Image = await imagePrepareForNetworkTransfer(file); + setAttachments([...attachments, { + blob: base64Image, + id: generateRandomKey(8), + type: AttachmentType.IMAGE, + preview: await base64ImageToBlurhash(base64Image) + }]); + } + editableDivRef.current.focus(); + break; + } + } + } + + const onDragAndDrop = async (files : File[]) => { + if(!files){ + return; + } + if(files.length == 0){ + return; + } + if(attachments.length >= MAX_ATTACHMENTS_IN_MESSAGE){ + return; + } + if(files.length > 1){ + return; + } + const file = files[0]; + if(((file.size / 1024) / 1024) > MAX_UPLOAD_FILESIZE_MB){ + return; + } + let fileContent = await filePrapareForNetworkTransfer(file); + setAttachments([...attachments, { + blob: fileContent, + id: generateRandomKey(8), + type: AttachmentType.FILE, + preview: files[0].size + "::" + files[0].name + }]); + } + + const onEmojiClick = (emojiData : EmojiClickData) => { + editableDivRef.current.insertHTML( + `:emoji_${emojiData.unified}:` + ); + } + + const onSelectMention = (mention : Mention) => { + editableDivRef.current.insertHTMLInCurrentCarretPosition(mention.username.substring(mentionHandling.current.length)); + mentionHandling.current = ""; + } + + return ( + <> + 0}> + {(styles) => ( + + )} + + {attachments.length > 0 && + + {attachments.map((m) => ( + + ))} + } + + + Drop files here to attach without compression + + + {!isBannedGroup && ( + + + {!blocked && + + + + + + + + Attach + + } onClick={onClickPaperclip}>File + {((avatars.length > 0 && !hasGroup(dialog)) + || (avatars.length > 0 && hasGroup(dialog) && isAdmin)) + && + } onClick={onClickCamera}>Avatar {hasGroup(dialog) && 'group'}} + + + + + + + + + + + + + + + + + + } + {blocked && + + + + You need unblock user for send messages. + + + } + + )} + {isBannedGroup && ( + + { + leaveGroup(dialog) + }} animated={[ + '#ff5656', + '#e03131' + ]} color="red" animationDurationMs={1000} w={'80%'} size={'sm'} radius={'xl'} leftSection={ + + } mb={'md'}>Leave + + )} + + ) +} \ No newline at end of file diff --git a/app/components/DialogsList/DialogsList.tsx b/app/components/DialogsList/DialogsList.tsx new file mode 100644 index 0000000..275a1bc --- /dev/null +++ b/app/components/DialogsList/DialogsList.tsx @@ -0,0 +1,56 @@ +import { Dialog } from "../Dialog/Dialog"; +import Lottie from "lottie-react"; +import animationData from './lottie.json'; +import { Box, Flex, Skeleton, Text } from "@mantine/core"; +import { useDialogsList } from "@/app/providers/DialogListProvider/useDialogsList"; +import { GroupDialog } from "../GroupDialog/GroupDialog"; +import React from "react"; + +interface DialogsListProps { + mode: 'all' | 'requests'; + onSelectDialog: (publicKey: string) => void; +} + +export function DialogsList(props : DialogsListProps) { + const {dialogs, loadingDialogs} = useDialogsList(); + + return ( + <> + {loadingDialogs === 0 && dialogs.filter(v => (v.is_request == (props.mode == 'requests'))).length <= 0 && ( + + + + Write to someone + + + )} + {loadingDialogs > 0 && ( + <> + {Array.from({ length: loadingDialogs }).map((_, index) => ( + + + + ))} + + )} + {loadingDialogs === 0 && dialogs.filter(v => (v.is_request == (props.mode == 'requests'))).map((dialog) => ( + + {dialog.dialog_id.startsWith('#group:') ? ( + + ) : ( + + )} + + ))} + + ); +} \ No newline at end of file diff --git a/app/components/DialogsList/lottie.json b/app/components/DialogsList/lottie.json new file mode 100644 index 0000000..e81d8dc --- /dev/null +++ b/app/components/DialogsList/lottie.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":176,"w":512,"h":512,"nm":"Memo","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"H Outlines :M","sr":1,"ks":{"p":{"a":0,"k":[135.441,92.423,0]},"a":{"a":0,"k":[135.441,92.423,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.421],[6.839,-8.697],[4.619,0],[0,0],[0,0.096],[-0.197,1.111],[0.716,0.172],[0.251,-0.23],[3.527,-5.919],[0,0],[3.975,0.996],[0,-0.575],[0,0],[-0.107,0],[-5.156,-0.69],[0,0],[0,0],[0.125,-0.364],[0,-0.46],[0,0],[-0.931,1.609],[-1.54,2.912],[-3.115,0.996],[0,0],[0.036,-0.191],[0.734,-1.609],[0,-0.901],[-0.573,-0.345],[0,0],[-0.663,1.226],[-3.115,4.08],[-6.016,7.663],[0,0.69],[0,0],[0.215,0],[0,0]],"o":[[-1.898,2.567],[-4.261,1.533],[0,0],[0.358,-0.594],[4.314,-6.858],[0,-0.594],[-0.466,0],[-1.701,3.123],[0,0],[-1.253,-0.23],[-0.859,0.422],[0,0],[0.107,0.23],[0,0.766],[0,0],[0,0],[-2.453,4.234],[-1.504,2.376],[0,0],[1.002,0],[2.256,-3.065],[5.622,0],[0,0],[-1.468,2.108],[-5.139,7.203],[-1.003,1.168],[0,0.881],[0,0],[0.555,0],[0.752,-2.51],[3.008,-4.828],[5.586,-6.743],[0,0],[0,-0.843],[0,0],[-0.788,0.192]],"v":[[-140.996,-32.902],[-154.101,-16.006],[-167.422,-13.707],[-168.281,-13.707],[-167.744,-14.741],[-160.976,-26.695],[-162.05,-27.845],[-163.125,-27.5],[-170.966,-13.937],[-171.611,-13.937],[-179.453,-15.776],[-180.742,-14.281],[-180.742,-14.052],[-180.42,-13.707],[-172.685,-11.523],[-172.578,-11.523],[-172.578,-11.178],[-176.445,-4.282],[-178.701,-0.029],[-178.593,0.201],[-175.693,-2.213],[-170,-11.178],[-156.894,-12.672],[-156.787,-12.442],[-159.043,-8.994],[-167.851,4.224],[-169.355,7.328],[-168.496,9.167],[-168.173,9.167],[-166.347,7.328],[-160.547,-2.557],[-147.011,-21.293],[-138.632,-32.442],[-138.632,-32.557],[-138.955,-33.822],[-139.814,-33.822]],"c":true}},"nm":"H","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"H","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[117.063,92.423]},"a":{"a":0,"k":[-159.687,-12.327]},"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":"H Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-147.509,-8.132],[-153.364,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-146.556,-10.761],[-148.503,-10.948],[-153.525,-9.54],[-157.688,-3.908],[-157.688,-3.448],[-154.519,-0.575],[-153.552,-0.632],[-153.391,-0.632],[-148.933,-1.523],[-142.863,-4.282],[-139.157,-7.184],[-140.258,-8.592],[-144.179,-6.034],[-152.907,-3.161],[-155.109,-4.023],[-154.25,-4.023],[-150.651,-4.425],[-147.012,-5.963],[-144.77,-8.333],[-144.877,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[128.328,98.989]},"a":{"a":0,"k":[-148.422,-5.761]},"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":"e Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[-127.722,-9.655],[-126.782,-10.603],[-126.675,-11.236],[-129.065,-13.304],[-129.119,-13.304],[-137.202,-8.822],[-136.128,-10.919],[-137.202,-11.81],[-137.498,-11.781],[-142.506,-6.667],[-146.064,-1.351],[-146.064,-1.236],[-144.775,0.374],[-144.238,0.374],[-142.627,-1.121],[-129.146,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[140.38,98.285]},"a":{"a":0,"k":[-136.37,-6.465]},"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":"r Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-147.509,-8.132],[-153.364,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-146.556,-10.761],[-148.503,-10.948],[-153.525,-9.54],[-157.688,-3.908],[-157.688,-3.448],[-154.519,-0.575],[-153.552,-0.632],[-153.391,-0.632],[-148.933,-1.523],[-142.863,-4.282],[-139.157,-7.184],[-140.258,-8.592],[-144.179,-6.034],[-152.907,-3.161],[-155.109,-4.023],[-154.25,-4.023],[-150.651,-4.425],[-147.012,-5.963],[-144.77,-8.333],[-144.877,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[149.328,99.739]},"a":{"a":0,"k":[-148.422,-5.761]},"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":"e Outlines 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.938],[0,0],[-0.287,-0.402],[0,-0.134],[0,-0.364],[0,0],[-0.107,0],[0,0],[0,1.169],[0,0],[0.859,0],[0,0]],"o":[[0,0],[0,0.441],[1.002,0.172],[-1.146,1.092],[0,0],[0.107,0.23],[0,0],[2.22,-1.36],[0,0],[-0.287,-1.226],[0,0],[-1.576,0.134]],"v":[[-121.903,-29.942],[-121.903,-29.597],[-121.474,-28.333],[-119.97,-27.873],[-121.688,-25.689],[-121.688,-25.574],[-121.366,-25.23],[-120.399,-25.23],[-117.069,-29.023],[-117.069,-29.712],[-118.788,-31.551],[-119.54,-31.551]],"c":true}},"nm":"’","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"’","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[154.764,87.859]},"a":{"a":0,"k":[-119.486,-28.391]},"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":"’ Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[-124.739,-7.385],[-124.632,-5.086],[-124.739,-3.391],[-124.713,-3.132],[-125.518,-2.27],[-126.942,-2.644],[-127.962,-1.207],[-127.828,-0.517],[-126.405,0.805],[-125.491,0.805],[-121.973,-1.034],[-114.427,-3.678],[-108.626,-7.155],[-108.626,-7.615],[-109.915,-8.649],[-110.345,-8.649],[-122.269,-3.42],[-122.161,-7.155],[-119.207,-8.908],[-118.133,-8.477],[-117.113,-9.454],[-117.032,-9.856],[-120.067,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[165.206,98.626]},"a":{"a":0,"k":[-118.294,-5.374]},"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":"s Outlines","bm":0,"hd":false}],"ip":0,"op":7,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"H Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[117.063,92.423,0]},"a":{"a":0,"k":[-159.687,-12.327,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.421],[6.839,-8.697],[4.619,0],[0,0],[0,0.096],[-0.197,1.111],[0.716,0.172],[0.251,-0.23],[3.527,-5.919],[0,0],[3.975,0.996],[0,-0.575],[0,0],[-0.107,0],[-5.156,-0.69],[0,0],[0,0],[0.125,-0.364],[0,-0.46],[0,0],[-0.931,1.609],[-1.54,2.912],[-3.115,0.996],[0,0],[0.036,-0.191],[0.734,-1.609],[0,-0.901],[-0.573,-0.345],[0,0],[-0.663,1.226],[-3.115,4.08],[-6.016,7.663],[0,0.69],[0,0],[0.215,0],[0,0]],"o":[[-1.898,2.567],[-4.261,1.533],[0,0],[0.358,-0.594],[4.314,-6.858],[0,-0.594],[-0.466,0],[-1.701,3.123],[0,0],[-1.253,-0.23],[-0.859,0.422],[0,0],[0.107,0.23],[0,0.766],[0,0],[0,0],[-2.453,4.234],[-1.504,2.376],[0,0],[1.002,0],[2.256,-3.065],[5.622,0],[0,0],[-1.468,2.108],[-5.139,7.203],[-1.003,1.168],[0,0.881],[0,0],[0.555,0],[0.752,-2.51],[3.008,-4.828],[5.586,-6.743],[0,0],[0,-0.843],[0,0],[-0.788,0.192]],"v":[[-140.996,-32.902],[-154.101,-16.006],[-167.422,-13.707],[-168.281,-13.707],[-167.744,-14.741],[-160.976,-26.695],[-162.05,-27.845],[-163.125,-27.5],[-170.966,-13.937],[-171.611,-13.937],[-179.453,-15.776],[-180.742,-14.281],[-180.742,-14.052],[-180.42,-13.707],[-172.685,-11.523],[-172.578,-11.523],[-172.578,-11.178],[-176.445,-4.282],[-178.701,-0.029],[-178.593,0.201],[-175.693,-2.213],[-170,-11.178],[-156.894,-12.672],[-156.787,-12.442],[-159.043,-8.994],[-167.851,4.224],[-169.355,7.328],[-168.496,9.167],[-168.173,9.167],[-166.347,7.328],[-160.547,-2.557],[-147.011,-21.293],[-138.632,-32.442],[-138.632,-32.557],[-138.955,-33.822],[-139.814,-33.822]],"c":true}},"nm":"H","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"H","bm":0,"hd":false}],"ip":32,"op":180,"st":32,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"e Outlines 4","sr":1,"ks":{"p":{"a":0,"k":[128.328,98.989,0]},"a":{"a":0,"k":[-148.422,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-147.509,-8.132],[-153.364,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-146.556,-10.761],[-148.503,-10.948],[-153.525,-9.54],[-157.688,-3.908],[-157.688,-3.448],[-154.519,-0.575],[-153.552,-0.632],[-153.391,-0.632],[-148.933,-1.523],[-142.863,-4.282],[-139.157,-7.184],[-140.258,-8.592],[-144.179,-6.034],[-152.907,-3.161],[-155.109,-4.023],[-154.25,-4.023],[-150.651,-4.425],[-147.012,-5.963],[-144.77,-8.333],[-144.877,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"e","bm":0,"hd":false}],"ip":33,"op":180,"st":33,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"r Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[140.38,98.285,0]},"a":{"a":0,"k":[-136.37,-6.465,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[-127.722,-9.655],[-126.782,-10.603],[-126.675,-11.236],[-129.065,-13.304],[-129.119,-13.304],[-137.202,-8.822],[-136.128,-10.919],[-137.202,-11.81],[-137.498,-11.781],[-142.506,-6.667],[-146.064,-1.351],[-146.064,-1.236],[-144.775,0.374],[-144.238,0.374],[-142.627,-1.121],[-129.146,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"r","bm":0,"hd":false}],"ip":34,"op":180,"st":34,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"e Outlines 3","sr":1,"ks":{"p":{"a":0,"k":[149.328,99.739,0]},"a":{"a":0,"k":[-148.422,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-147.509,-8.132],[-153.364,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-146.556,-10.761],[-148.503,-10.948],[-153.525,-9.54],[-157.688,-3.908],[-157.688,-3.448],[-154.519,-0.575],[-153.552,-0.632],[-153.391,-0.632],[-148.933,-1.523],[-142.863,-4.282],[-139.157,-7.184],[-140.258,-8.592],[-144.179,-6.034],[-152.907,-3.161],[-155.109,-4.023],[-154.25,-4.023],[-150.651,-4.425],[-147.012,-5.963],[-144.77,-8.333],[-144.877,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"e","bm":0,"hd":false}],"ip":35,"op":180,"st":35,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"’ Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[154.764,87.859,0]},"a":{"a":0,"k":[-119.486,-28.391,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.938],[0,0],[-0.287,-0.402],[0,-0.134],[0,-0.364],[0,0],[-0.107,0],[0,0],[0,1.169],[0,0],[0.859,0],[0,0]],"o":[[0,0],[0,0.441],[1.002,0.172],[-1.146,1.092],[0,0],[0.107,0.23],[0,0],[2.22,-1.36],[0,0],[-0.287,-1.226],[0,0],[-1.576,0.134]],"v":[[-121.903,-29.942],[-121.903,-29.597],[-121.474,-28.333],[-119.97,-27.873],[-121.688,-25.689],[-121.688,-25.574],[-121.366,-25.23],[-120.399,-25.23],[-117.069,-29.023],[-117.069,-29.712],[-118.788,-31.551],[-119.54,-31.551]],"c":true}},"nm":"’","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"’","bm":0,"hd":false}],"ip":36,"op":180,"st":36,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"s Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[165.206,98.626,0]},"a":{"a":0,"k":[-118.294,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[-124.739,-7.385],[-124.632,-5.086],[-124.739,-3.391],[-124.713,-3.132],[-125.518,-2.27],[-126.942,-2.644],[-127.962,-1.207],[-127.828,-0.517],[-126.405,0.805],[-125.491,0.805],[-121.973,-1.034],[-114.427,-3.678],[-108.626,-7.155],[-108.626,-7.615],[-109.915,-8.649],[-110.345,-8.649],[-122.269,-3.42],[-122.161,-7.155],[-119.207,-8.908],[-118.133,-8.477],[-117.113,-9.454],[-117.032,-9.856],[-120.067,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"s","bm":0,"hd":false}],"ip":37,"op":180,"st":37,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"t Outlines 3","sr":1,"ks":{"p":{"a":0,"k":[189.595,90.594,0]},"a":{"a":0,"k":[-88.655,-14.406,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-4.964,5.089],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-83.185,-23.295],[-84.796,-23.41],[-86.407,-22.031],[-84.474,-20.651],[-99.495,-1.609],[-99.495,-1.494],[-98.421,0],[-97.991,0],[-86.497,-5.718],[-84.241,-7.557],[-84.779,-8.822],[-85.101,-8.822],[-86.39,-8.362],[-95.628,-3.678],[-95.843,-3.678],[-95.843,-3.793],[-81.573,-20.537],[-79.318,-20.508],[-77.814,-21.657],[-77.814,-22.462],[-78.995,-23.094],[-79.64,-23.065],[-80.392,-23.065],[-80.392,-23.18],[-77.921,-27.433],[-77.921,-27.548],[-78.995,-28.812],[-79.532,-28.812]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"t","bm":0,"hd":false}],"ip":32,"op":180,"st":32,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"o Outlines 3","sr":1,"ks":{"p":{"a":0,"k":[203.052,97.793,0]},"a":{"a":0,"k":[-79.948,-4.957,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[-83.922,-6.121],[-81.72,-6.523],[-80.539,-6.178],[-88.73,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[-77.37,-8.017],[-79.76,-9.655],[-86.501,-8.161],[-92.301,-3.764],[-92.301,-3.305],[-89.455,-0.259],[-88.864,-0.259],[-77.37,-4.799],[-73.986,-4.167],[-71.193,-4.483],[-67.594,-6.868],[-67.594,-7.442],[-68.346,-8.477],[-73.583,-7.184],[-77.397,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.372549019608,0.376470588235,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":"o","bm":0,"hd":false}],"ip":33,"op":180,"st":33,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"t Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[228.184,91.5,0]},"a":{"a":0,"k":[-49.816,-10,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-51.32,-14.483],[-52.931,-14.598],[-54.543,-13.218],[-52.609,-11.839],[-57.443,-1.609],[-57.443,-1.494],[-56.369,0],[-55.939,0],[-44.445,-5.718],[-42.189,-7.557],[-42.726,-8.822],[-43.048,-8.822],[-44.337,-8.362],[-53.576,-3.678],[-53.791,-3.678],[-53.791,-3.793],[-49.709,-11.724],[-47.453,-11.695],[-45.949,-12.845],[-45.949,-13.649],[-47.13,-14.281],[-47.775,-14.253],[-48.527,-14.253],[-48.527,-14.368],[-46.056,-18.621],[-46.056,-18.735],[-47.13,-20],[-47.668,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":34,"op":180,"st":34,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"h Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[241.396,91.529,0]},"a":{"a":0,"k":[-36.604,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[-38.94,-19.598],[-49.736,0.115],[-49.736,0.575],[-48.662,1.724],[-48.232,1.724],[-46.513,0.345],[-40.095,-5.575],[-37.624,-4.31],[-33.972,-1.782],[-31.501,-2.126],[-23.471,-7.442],[-23.471,-7.902],[-24.653,-8.707],[-25.835,-8.477],[-33.005,-4.54],[-35.476,-5.575],[-39.665,-8.908],[-42.78,-7.529],[-42.888,-7.529],[-40.954,-11.552],[-35.717,-19.942],[-35.717,-20.287],[-36.577,-21.666],[-36.684,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":35,"op":180,"st":35,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"e Outlines 6","sr":1,"ks":{"p":{"a":0,"k":[258.627,95.739,0]},"a":{"a":0,"k":[-19.373,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-18.46,-8.132],[-24.314,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-17.506,-10.761],[-19.453,-10.948],[-24.475,-9.54],[-28.638,-3.908],[-28.638,-3.448],[-25.469,-0.575],[-24.502,-0.632],[-24.341,-0.632],[-19.883,-1.523],[-13.814,-4.282],[-10.107,-7.184],[-11.209,-8.592],[-15.129,-6.034],[-23.857,-3.161],[-26.06,-4.023],[-25.2,-4.023],[-21.602,-4.425],[-17.963,-5.963],[-15.72,-8.333],[-15.828,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":36,"op":180,"st":36,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"c Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[281.101,97.092,0]},"a":{"a":0,"k":[8.101,-5.158,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[2.095,-0.92],[1.11,0],[0.072,0.172],[0,0],[-3.043,1.475],[-0.197,0],[-0.054,-0.211],[-0.197,0],[0,0],[-0.305,0.345],[0,0],[0,0],[0.734,0],[0,0],[1.611,-3.486],[0,0],[-1.289,-0.249],[0,0],[-6.786,3.065],[-0.072,0.517],[0.626,0]],"o":[[-2.202,1.054],[-4.028,1.897],[-0.322,0],[0,0],[0,-0.938],[0.286,-0.115],[0.232,0],[0.197,0.154],[0,0],[0.269,-0.038],[0,0],[0,0],[-0.125,-1.073],[0,0],[-4.314,0.939],[0,0],[0,0.901],[0,0],[2.166,-0.076],[1.898,-0.766],[-0.197,-0.938],[0,0]],"v":[[16.291,-8.736],[9.846,-5.776],[2.139,-2.931],[1.548,-3.19],[1.548,-3.276],[6.113,-6.896],[6.838,-7.069],[7.268,-6.753],[7.859,-6.523],[7.993,-6.523],[8.852,-7.098],[8.96,-7.902],[8.96,-8.017],[7.671,-9.626],[7.241,-9.626],[-1.648,-2.988],[-1.648,-2.414],[0.286,-0.69],[1.467,-0.69],[14.895,-5.402],[17.849,-7.328],[16.614,-8.736]],"c":true}},"nm":"c","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"c","bm":0,"hd":false}],"ip":37,"op":180,"st":37,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"r Outlines 3","sr":1,"ks":{"p":{"a":0,"k":[292.776,95.785,0]},"a":{"a":0,"k":[19.776,-6.465,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[28.424,-9.655],[29.364,-10.603],[29.471,-11.236],[27.081,-13.304],[27.027,-13.304],[18.944,-8.822],[20.018,-10.919],[18.944,-11.81],[18.648,-11.781],[13.64,-6.667],[10.081,-1.351],[10.081,-1.236],[11.371,0.374],[11.908,0.374],[13.519,-1.121],[27,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":38,"op":180,"st":38,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"a Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[306.188,96.991,0]},"a":{"a":0,"k":[33.188,-5.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.276,0.786],[0,0],[0,0],[0.698,-0.038],[0,0]],"o":[[0,0],[0,0],[-4.243,2.414],[0,0],[1.594,-1.743]],"v":[[31.309,-7.356],[31.523,-7.356],[31.523,-7.241],[24.111,-3.563],[24.004,-3.563]],"c":true}},"nm":"a","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.417,-1.379],[0.824,-1.705],[0,0],[-0.859,0],[0,0],[-3.688,1.686],[0,0],[-0.376,0],[0,0],[-3.241,1.207],[0,0.728],[0.859,0.287],[2.524,-0.747],[0,0],[0,0.211],[0,0],[0.394,0],[1.217,-0.862],[0.931,0],[0.215,-0.038]],"o":[[-2.256,1.207],[0,0],[0.573,0.996],[0,0],[0.895,0],[0,0],[0,1.303],[0,0],[1.307,0],[5.317,-1.858],[0,-1.015],[-3.133,1.59],[0,0],[2.417,-1.935],[0,0],[-0.322,-1.073],[-0.215,0],[-0.09,-1.015],[-0.161,0],[-2.31,0]],"v":[[25.078,-7.586],[20.459,-3.218],[20.459,-2.299],[22.607,-0.805],[23.467,-0.805],[30.342,-3.333],[30.342,-2.816],[30.906,-0.862],[31.121,-0.862],[37.942,-2.672],[45.918,-6.552],[44.629,-8.506],[36.143,-5],[33.86,-4.54],[37.485,-7.759],[37.485,-7.873],[36.411,-9.483],[34.263,-8.19],[32.732,-9.713],[32.168,-9.655]],"c":true}},"nm":"a","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"a","bm":0,"hd":false}],"ip":39,"op":180,"st":39,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"z Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[325.515,97.078,0]},"a":{"a":0,"k":[52.515,-5.172,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[1.826,-0.498],[1.415,-1.475],[0,-0.23],[-0.859,0],[0,0],[-0.895,0.019],[0,0],[0,0],[0.842,-1.628],[0,0],[-0.608,0],[0,0],[-1.227,0.795],[-2.73,0.939],[-2.739,0.901],[0,0.92],[0,0],[0.626,0],[0.269,-0.057],[4.136,-1.8],[-0.967,0.671],[0,0.249],[0.788,0.46]],"o":[[-1.182,0],[-2.704,0.881],[-0.143,0.345],[0,0.594],[0,0],[3.831,-2.03],[0,0],[0,0],[-3.402,2.376],[0,0],[0.251,0.996],[0,0],[0.698,-0.23],[1.226,-0.795],[2.73,-0.938],[1.934,-0.46],[0,0],[-0.179,-0.517],[-0.215,0],[-4.959,1.533],[3.777,-2.835],[0.107,-0.287],[0,-0.708],[-0.43,-0.134]],"v":[[52.448,-11.523],[47.936,-10.776],[41.759,-7.241],[41.545,-6.379],[42.834,-5.488],[42.887,-5.488],[49.977,-8.563],[51.454,-8.937],[48.312,-6.667],[41.947,-0.661],[41.947,-0.316],[43.236,1.178],[43.559,1.178],[46.446,-0.359],[52.381,-2.96],[60.585,-5.718],[63.485,-7.787],[63.485,-7.816],[62.277,-8.592],[61.552,-8.506],[47.909,-3.506],[55.026,-8.764],[55.187,-9.569],[54.005,-11.322]],"c":true}},"nm":"z","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"z","bm":0,"hd":false}],"ip":40,"op":180,"st":40,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"y Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[337.434,104.405,0]},"a":{"a":0,"k":[64.434,2.155,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.524,2.567],[0,0],[0.716,-0.039]],"o":[[0,0],[-1.701,2.682],[0.555,-1.226]],"v":[[59.049,4.626],[58.055,6.236],[54.43,10.316]],"c":true}},"nm":"y","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.383],[0.698,0],[0.232,-0.038],[1.002,-0.536],[0.305,0],[0,0.154],[-0.34,0.46],[-0.752,0.824],[0,0],[0.645,0],[0,0],[0.716,-0.69],[0.394,-0.421],[0,-0.785],[0,0],[0,-0.134],[-1.056,0],[-1.307,0.44],[0.287,-0.479],[0.77,-3.851],[-0.806,0],[-0.859,0.498],[-2.22,4.866],[-0.179,0.211],[0.68,0],[0,0],[3.312,-2.328],[1.647,-1.322],[-0.493,0.546],[-1.809,2.452]],"o":[[0,-0.575],[-0.197,0],[-3.062,4.157],[-0.77,0.364],[-0.197,0],[0,-0.191],[1.217,-1.973],[0,0],[-0.072,-0.92],[0,0],[-0.358,0],[-0.645,1.073],[-1.719,2.433],[0,0],[-0.036,0.172],[0,0.862],[0.752,0],[-0.34,0.613],[-4.834,3.582],[0.036,1.13],[0.537,0],[2.561,-1.82],[10.402,-6.896],[-0.018,-0.92],[0,0],[-0.949,0.057],[-3.312,2.328],[1.235,-1.724],[0.492,-0.546],[0.322,-0.651]],"v":[[69.12,-9.023],[68.072,-9.885],[67.428,-9.827],[61.332,-2.787],[59.72,-2.241],[59.425,-2.471],[59.935,-3.448],[62.889,-7.644],[62.889,-8.218],[61.815,-9.598],[61.708,-9.598],[60.096,-8.563],[58.539,-6.322],[55.961,-1.494],[55.961,-1.379],[55.907,-0.92],[57.491,0.374],[60.58,-0.287],[59.64,1.351],[51.234,12.5],[52.496,14.195],[54.591,13.448],[61.761,3.42],[77.633,-7.241],[76.586,-8.621],[76.424,-8.621],[70.033,-5.043],[62.594,0.431],[65.185,-2.974],[68.636,-7.471]],"c":true}},"nm":"y","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"y","bm":0,"hd":false}],"ip":41,"op":180,"st":41,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"o Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[371.008,93.293,0]},"a":{"a":0,"k":[95.008,-4.957,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[91.034,-6.121],[93.236,-6.523],[94.418,-6.178],[86.227,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[97.587,-8.017],[95.196,-9.655],[88.456,-8.161],[82.655,-3.764],[82.655,-3.305],[85.502,-0.259],[86.092,-0.259],[97.587,-4.799],[100.97,-4.167],[103.763,-4.483],[107.362,-6.868],[107.362,-7.442],[106.61,-8.477],[101.373,-7.184],[97.56,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":42,"op":180,"st":42,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"n Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[388.641,93.494,0]},"a":{"a":0,"k":[112.641,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[108.76,-10.69],[107.418,-10.345],[99.952,-0.431],[99.952,-0.086],[100.704,1.178],[101.134,1.178],[101.778,0.948],[110.56,-5.287],[110.882,-4.942],[110.828,-4.598],[110.533,-2.73],[112.923,-0.488],[121.033,-4.167],[125.33,-7.471],[125.33,-7.816],[124.041,-8.506],[116.213,-4.813],[114.078,-4.109],[113.326,-4.914],[113.621,-6.293],[113.648,-6.782],[112.44,-8.506],[111.849,-8.621],[107.203,-6.063],[109.888,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":43,"op":180,"st":43,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"e Outlines 5","sr":1,"ks":{"p":{"a":0,"k":[405.149,92.489,0]},"a":{"a":0,"k":[129.149,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[130.062,-8.132],[124.207,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[131.015,-10.761],[129.068,-10.948],[124.046,-9.54],[119.884,-3.908],[119.884,-3.448],[123.053,-0.575],[124.019,-0.632],[124.181,-0.632],[128.639,-1.523],[134.708,-4.282],[138.414,-7.184],[137.313,-8.592],[133.392,-6.034],[124.664,-3.161],[122.462,-4.023],[123.321,-4.023],[126.92,-4.425],[130.559,-5.963],[132.801,-8.333],[132.694,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":44,"op":180,"st":44,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"s Outlines 3","sr":1,"ks":{"p":{"a":0,"k":[417.613,92.876,0]},"a":{"a":0,"k":[141.613,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[135.168,-7.385],[135.276,-5.086],[135.168,-3.391],[135.195,-3.132],[134.389,-2.27],[132.966,-2.644],[131.945,-1.207],[132.08,-0.517],[133.503,0.805],[134.416,0.805],[137.934,-1.034],[145.481,-3.678],[151.281,-7.155],[151.281,-7.615],[149.992,-8.649],[149.563,-8.649],[137.639,-3.42],[137.746,-7.155],[140.7,-8.908],[141.775,-8.477],[142.795,-9.454],[142.876,-9.856],[139.841,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":45,"op":180,"st":45,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":". Outlines 2","sr":1,"ks":{"p":{"a":0,"k":[416.701,100.968,0]},"a":{"a":0,"k":[164.951,-1.782,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[163.34,-2.184],[163.34,-1.609],[164.736,0],[165.166,0],[166.562,-1.264],[166.562,-1.379],[165.703,-3.563],[164.951,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":".","bm":0,"hd":false}],"ip":46,"op":180,"st":46,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"t Outlines :M","sr":1,"ks":{"p":{"a":0,"k":[223.324,90.594,0]},"a":{"a":0,"k":[223.324,90.594,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-4.964,5.089],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-83.185,-23.295],[-84.796,-23.41],[-86.407,-22.031],[-84.474,-20.651],[-99.495,-1.609],[-99.495,-1.494],[-98.421,0],[-97.991,0],[-86.497,-5.718],[-84.241,-7.557],[-84.779,-8.822],[-85.101,-8.822],[-86.39,-8.362],[-95.628,-3.678],[-95.843,-3.678],[-95.843,-3.793],[-81.573,-20.537],[-79.318,-20.508],[-77.814,-21.657],[-77.814,-22.462],[-78.995,-23.094],[-79.64,-23.065],[-80.392,-23.065],[-80.392,-23.18],[-77.921,-27.433],[-77.921,-27.548],[-78.995,-28.812],[-79.532,-28.812]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[189.595,90.594]},"a":{"a":0,"k":[-88.655,-14.406]},"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":"t Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[-83.922,-6.121],[-81.72,-6.523],[-80.539,-6.178],[-88.73,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[-77.37,-8.017],[-79.76,-9.655],[-86.501,-8.161],[-92.301,-3.764],[-92.301,-3.305],[-89.455,-0.259],[-88.864,-0.259],[-77.37,-4.799],[-73.986,-4.167],[-71.193,-4.483],[-67.594,-6.868],[-67.594,-7.442],[-68.346,-8.477],[-73.583,-7.184],[-77.397,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.372549027205,0.376470595598,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[203.052,97.793]},"a":{"a":0,"k":[-79.948,-4.957]},"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":"o Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-51.32,-14.483],[-52.931,-14.598],[-54.543,-13.218],[-52.609,-11.839],[-57.443,-1.609],[-57.443,-1.494],[-56.369,0],[-55.939,0],[-44.445,-5.718],[-42.189,-7.557],[-42.726,-8.822],[-43.048,-8.822],[-44.337,-8.362],[-53.576,-3.678],[-53.791,-3.678],[-53.791,-3.793],[-49.709,-11.724],[-47.453,-11.695],[-45.949,-12.845],[-45.949,-13.649],[-47.13,-14.281],[-47.775,-14.253],[-48.527,-14.253],[-48.527,-14.368],[-46.056,-18.621],[-46.056,-18.735],[-47.13,-20],[-47.668,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[228.184,91.5]},"a":{"a":0,"k":[-49.816,-10]},"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":"t Outlines 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[-38.94,-19.598],[-49.736,0.115],[-49.736,0.575],[-48.662,1.724],[-48.232,1.724],[-46.513,0.345],[-40.095,-5.575],[-37.624,-4.31],[-33.972,-1.782],[-31.501,-2.126],[-23.471,-7.442],[-23.471,-7.902],[-24.653,-8.707],[-25.835,-8.477],[-33.005,-4.54],[-35.476,-5.575],[-39.665,-8.908],[-42.78,-7.529],[-42.888,-7.529],[-40.954,-11.552],[-35.717,-19.942],[-35.717,-20.287],[-36.577,-21.666],[-36.684,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[241.396,91.529]},"a":{"a":0,"k":[-36.604,-9.971]},"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":"h Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-18.46,-8.132],[-24.314,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-17.506,-10.761],[-19.453,-10.948],[-24.475,-9.54],[-28.638,-3.908],[-28.638,-3.448],[-25.469,-0.575],[-24.502,-0.632],[-24.341,-0.632],[-19.883,-1.523],[-13.814,-4.282],[-10.107,-7.184],[-11.209,-8.592],[-15.129,-6.034],[-23.857,-3.161],[-26.06,-4.023],[-25.2,-4.023],[-21.602,-4.425],[-17.963,-5.963],[-15.72,-8.333],[-15.828,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[258.627,95.739]},"a":{"a":0,"k":[-19.373,-5.761]},"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":"e Outlines 4","bm":0,"hd":false}],"ip":0,"op":8,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"c Outlines :M","sr":1,"ks":{"p":{"a":0,"k":[349.317,101.572,0]},"a":{"a":0,"k":[349.317,101.572,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[2.095,-0.92],[1.11,0],[0.072,0.172],[0,0],[-3.043,1.475],[-0.197,0],[-0.054,-0.211],[-0.197,0],[0,0],[-0.305,0.345],[0,0],[0,0],[0.734,0],[0,0],[1.611,-3.486],[0,0],[-1.289,-0.249],[0,0],[-6.786,3.065],[-0.072,0.517],[0.626,0]],"o":[[-2.202,1.054],[-4.028,1.897],[-0.322,0],[0,0],[0,-0.938],[0.286,-0.115],[0.232,0],[0.197,0.154],[0,0],[0.269,-0.038],[0,0],[0,0],[-0.125,-1.073],[0,0],[-4.314,0.939],[0,0],[0,0.901],[0,0],[2.166,-0.076],[1.898,-0.766],[-0.197,-0.938],[0,0]],"v":[[16.291,-8.736],[9.846,-5.776],[2.139,-2.931],[1.548,-3.19],[1.548,-3.276],[6.113,-6.896],[6.838,-7.069],[7.268,-6.753],[7.859,-6.523],[7.993,-6.523],[8.852,-7.098],[8.96,-7.902],[8.96,-8.017],[7.671,-9.626],[7.241,-9.626],[-1.648,-2.988],[-1.648,-2.414],[0.286,-0.69],[1.467,-0.69],[14.895,-5.402],[17.849,-7.328],[16.614,-8.736]],"c":true}},"nm":"c","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"c","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[281.101,97.092]},"a":{"a":0,"k":[8.101,-5.158]},"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":"c Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[28.424,-9.655],[29.364,-10.603],[29.471,-11.236],[27.081,-13.304],[27.027,-13.304],[18.944,-8.822],[20.018,-10.919],[18.944,-11.81],[18.648,-11.781],[13.64,-6.667],[10.081,-1.351],[10.081,-1.236],[11.371,0.374],[11.908,0.374],[13.519,-1.121],[27,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[292.776,95.785]},"a":{"a":0,"k":[19.776,-6.465]},"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":"r Outlines 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.276,0.786],[0,0],[0,0],[0.698,-0.038],[0,0]],"o":[[0,0],[0,0],[-4.243,2.414],[0,0],[1.594,-1.743]],"v":[[31.309,-7.356],[31.523,-7.356],[31.523,-7.241],[24.111,-3.563],[24.004,-3.563]],"c":true}},"nm":"a","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.417,-1.379],[0.824,-1.705],[0,0],[-0.859,0],[0,0],[-3.688,1.686],[0,0],[-0.376,0],[0,0],[-3.241,1.207],[0,0.728],[0.859,0.287],[2.524,-0.747],[0,0],[0,0.211],[0,0],[0.394,0],[1.217,-0.862],[0.931,0],[0.215,-0.038]],"o":[[-2.256,1.207],[0,0],[0.573,0.996],[0,0],[0.895,0],[0,0],[0,1.303],[0,0],[1.307,0],[5.317,-1.858],[0,-1.015],[-3.133,1.59],[0,0],[2.417,-1.935],[0,0],[-0.322,-1.073],[-0.215,0],[-0.09,-1.015],[-0.161,0],[-2.31,0]],"v":[[25.078,-7.586],[20.459,-3.218],[20.459,-2.299],[22.607,-0.805],[23.467,-0.805],[30.342,-3.333],[30.342,-2.816],[30.906,-0.862],[31.121,-0.862],[37.942,-2.672],[45.918,-6.552],[44.629,-8.506],[36.143,-5],[33.86,-4.54],[37.485,-7.759],[37.485,-7.873],[36.411,-9.483],[34.263,-8.19],[32.732,-9.713],[32.168,-9.655]],"c":true}},"nm":"a","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"a","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[306.188,96.991]},"a":{"a":0,"k":[33.188,-5.259]},"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":"a Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[1.826,-0.498],[1.415,-1.475],[0,-0.23],[-0.859,0],[0,0],[-0.895,0.019],[0,0],[0,0],[0.842,-1.628],[0,0],[-0.608,0],[0,0],[-1.227,0.795],[-2.73,0.939],[-2.739,0.901],[0,0.92],[0,0],[0.626,0],[0.269,-0.057],[4.136,-1.8],[-0.967,0.671],[0,0.249],[0.788,0.46]],"o":[[-1.182,0],[-2.704,0.881],[-0.143,0.345],[0,0.594],[0,0],[3.831,-2.03],[0,0],[0,0],[-3.402,2.376],[0,0],[0.251,0.996],[0,0],[0.698,-0.23],[1.226,-0.795],[2.73,-0.938],[1.934,-0.46],[0,0],[-0.179,-0.517],[-0.215,0],[-4.959,1.533],[3.777,-2.835],[0.107,-0.287],[0,-0.708],[-0.43,-0.134]],"v":[[52.448,-11.523],[47.936,-10.776],[41.759,-7.241],[41.545,-6.379],[42.834,-5.488],[42.887,-5.488],[49.977,-8.563],[51.454,-8.937],[48.312,-6.667],[41.947,-0.661],[41.947,-0.316],[43.236,1.178],[43.559,1.178],[46.446,-0.359],[52.381,-2.96],[60.585,-5.718],[63.485,-7.787],[63.485,-7.816],[62.277,-8.592],[61.552,-8.506],[47.909,-3.506],[55.026,-8.764],[55.187,-9.569],[54.005,-11.322]],"c":true}},"nm":"z","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"z","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[325.515,97.078]},"a":{"a":0,"k":[52.515,-5.172]},"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":"z Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.524,2.567],[0,0],[0.716,-0.039]],"o":[[0,0],[-1.701,2.682],[0.555,-1.226]],"v":[[59.049,4.626],[58.055,6.236],[54.43,10.316]],"c":true}},"nm":"y","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.383],[0.698,0],[0.232,-0.038],[1.002,-0.536],[0.305,0],[0,0.154],[-0.34,0.46],[-0.752,0.824],[0,0],[0.645,0],[0,0],[0.716,-0.69],[0.394,-0.421],[0,-0.785],[0,0],[0,-0.134],[-1.056,0],[-1.307,0.44],[0.287,-0.479],[0.77,-3.851],[-0.806,0],[-0.859,0.498],[-2.22,4.866],[-0.179,0.211],[0.68,0],[0,0],[3.312,-2.328],[1.647,-1.322],[-0.493,0.546],[-1.809,2.452]],"o":[[0,-0.575],[-0.197,0],[-3.062,4.157],[-0.77,0.364],[-0.197,0],[0,-0.191],[1.217,-1.973],[0,0],[-0.072,-0.92],[0,0],[-0.358,0],[-0.645,1.073],[-1.719,2.433],[0,0],[-0.036,0.172],[0,0.862],[0.752,0],[-0.34,0.613],[-4.834,3.582],[0.036,1.13],[0.537,0],[2.561,-1.82],[10.402,-6.896],[-0.018,-0.92],[0,0],[-0.949,0.057],[-3.312,2.328],[1.235,-1.724],[0.492,-0.546],[0.322,-0.651]],"v":[[69.12,-9.023],[68.072,-9.885],[67.428,-9.827],[61.332,-2.787],[59.72,-2.241],[59.425,-2.471],[59.935,-3.448],[62.889,-7.644],[62.889,-8.218],[61.815,-9.598],[61.708,-9.598],[60.096,-8.563],[58.539,-6.322],[55.961,-1.494],[55.961,-1.379],[55.907,-0.92],[57.491,0.374],[60.58,-0.287],[59.64,1.351],[51.234,12.5],[52.496,14.195],[54.591,13.448],[61.761,3.42],[77.633,-7.241],[76.586,-8.621],[76.424,-8.621],[70.033,-5.043],[62.594,0.431],[65.185,-2.974],[68.636,-7.471]],"c":true}},"nm":"y","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"y","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[337.434,104.405]},"a":{"a":0,"k":[64.434,2.155]},"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":"y Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[91.034,-6.121],[93.236,-6.523],[94.418,-6.178],[86.227,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[97.587,-8.017],[95.196,-9.655],[88.456,-8.161],[82.655,-3.764],[82.655,-3.305],[85.502,-0.259],[86.092,-0.259],[97.587,-4.799],[100.97,-4.167],[103.763,-4.483],[107.362,-6.868],[107.362,-7.442],[106.61,-8.477],[101.373,-7.184],[97.56,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[371.008,93.293]},"a":{"a":0,"k":[95.008,-4.957]},"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":"o Outlines 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[108.76,-10.69],[107.418,-10.345],[99.952,-0.431],[99.952,-0.086],[100.704,1.178],[101.134,1.178],[101.778,0.948],[110.56,-5.287],[110.882,-4.942],[110.828,-4.598],[110.533,-2.73],[112.923,-0.488],[121.033,-4.167],[125.33,-7.471],[125.33,-7.816],[124.041,-8.506],[116.213,-4.813],[114.078,-4.109],[113.326,-4.914],[113.621,-6.293],[113.648,-6.782],[112.44,-8.506],[111.849,-8.621],[107.203,-6.063],[109.888,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[388.641,93.494]},"a":{"a":0,"k":[112.641,-4.756]},"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":"n Outlines","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[130.062,-8.132],[124.207,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[131.015,-10.761],[129.068,-10.948],[124.046,-9.54],[119.884,-3.908],[119.884,-3.448],[123.053,-0.575],[124.019,-0.632],[124.181,-0.632],[128.639,-1.523],[134.708,-4.282],[138.414,-7.184],[137.313,-8.592],[133.392,-6.034],[124.664,-3.161],[122.462,-4.023],[123.321,-4.023],[126.92,-4.425],[130.559,-5.963],[132.801,-8.333],[132.694,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[405.149,92.489]},"a":{"a":0,"k":[129.149,-5.761]},"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":"e Outlines 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[135.168,-7.385],[135.276,-5.086],[135.168,-3.391],[135.195,-3.132],[134.389,-2.27],[132.966,-2.644],[131.945,-1.207],[132.08,-0.517],[133.503,0.805],[134.416,0.805],[137.934,-1.034],[145.481,-3.678],[151.281,-7.155],[151.281,-7.615],[149.992,-8.649],[149.563,-8.649],[137.639,-3.42],[137.746,-7.155],[140.7,-8.908],[141.775,-8.477],[142.795,-9.454],[142.876,-9.856],[139.841,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[417.613,92.876]},"a":{"a":0,"k":[141.613,-5.374]},"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":"s Outlines 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[163.34,-2.184],[163.34,-1.609],[164.736,0],[165.166,0],[166.562,-1.264],[166.562,-1.379],[165.703,-3.563],[164.951,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":".","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[416.701,100.968]},"a":{"a":0,"k":[164.951,-1.782]},"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":". Outlines","bm":0,"hd":false}],"ip":0,"op":12,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"T 4","sr":1,"ks":{"p":{"a":0,"k":[124.217,146.17,0]},"a":{"a":0,"k":[-132.533,-9.08,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[-138.334,-25.46],[-138.549,-25.574],[-138.441,-26.379],[-140.053,-27.758],[-140.16,-27.758],[-143.597,-24.655],[-160.678,-22.126],[-163.256,-20.747],[-163.256,-20.172],[-162.181,-18.908],[-161.967,-18.908],[-145.853,-21.552],[-152.513,-10.287],[-156.273,-2.471],[-161.107,10.402],[-161.107,10.517],[-161,10.517],[-159.281,7.873],[-158.529,6.724],[-157.025,3.621],[-152.943,-4.08],[-150.365,-8.678],[-144.887,-17.758],[-141.664,-22.356],[-109.115,-26.149],[-101.81,-27.414],[-103.207,-28.678],[-103.529,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"T","bm":0,"hd":false}],"ip":32,"op":180,"st":32,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"h 9","sr":1,"ks":{"p":{"a":0,"k":[119.772,145.279,0]},"a":{"a":0,"k":[-136.978,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[-139.315,-19.598],[-150.111,0.115],[-150.111,0.575],[-149.037,1.724],[-148.607,1.724],[-146.888,0.345],[-140.47,-5.575],[-137.999,-4.31],[-134.347,-1.782],[-131.876,-2.126],[-123.846,-7.442],[-123.846,-7.902],[-125.028,-8.707],[-126.209,-8.477],[-133.38,-4.54],[-135.85,-5.575],[-140.04,-8.908],[-143.155,-7.529],[-143.263,-7.529],[-141.329,-11.552],[-136.092,-19.942],[-136.092,-20.287],[-136.952,-21.666],[-137.059,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":33,"op":180,"st":33,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"e 118","sr":1,"ks":{"p":{"a":0,"k":[137.003,149.489,0]},"a":{"a":0,"k":[-119.747,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-118.834,-8.132],[-124.689,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-117.881,-10.761],[-119.828,-10.948],[-124.85,-9.54],[-129.013,-3.908],[-129.013,-3.448],[-125.844,-0.575],[-124.877,-0.632],[-124.716,-0.632],[-120.258,-1.523],[-114.188,-4.282],[-110.482,-7.184],[-111.583,-8.592],[-115.504,-6.034],[-124.232,-3.161],[-126.434,-4.023],[-125.575,-4.023],[-121.976,-4.425],[-118.338,-5.963],[-116.095,-8.333],[-116.202,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":34,"op":180,"st":34,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"m 2","sr":1,"ks":{"p":{"a":0,"k":[168.383,149.072,0]},"a":{"a":0,"k":[-88.367,-6.178,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.465,0],[0.358,-0.402],[0,-1.322],[0,0],[-0.788,-0.632],[0,0],[-3.223,3.621],[0,-0.728],[-0.376,-0.383],[-0.287,0.077],[-1.361,0.651],[0,0],[-0.681,0],[-3.876,1.734],[0,0.69],[0,0],[0.573,0.345],[0,0],[1.862,-0.728],[0,0],[0.358,0],[0,0],[2.918,-2.222],[0,0],[0,0.402],[0,0],[0.573,0.766],[2.166,-1.915],[-0.036,0.632]],"o":[[-0.376,0],[-4.565,6.245],[0,0],[0,0.441],[0,0],[0.43,0],[-0.448,1.073],[0,0.671],[0.286,0],[2.363,-2.222],[0,0],[0.465,1.149],[1.021,0],[3.876,-1.734],[0,0],[0,-0.421],[0,0],[-4.548,1.954],[0,0],[-0.358,-1.149],[0,0],[-0.806,0],[0,0],[1.432,-1.743],[0,0],[0,-0.306],[-0.555,0],[1.36,-1.954],[-0.483,-0.651]],"v":[[-93.993,-13.017],[-95.094,-12.414],[-101.942,-1.063],[-101.942,-0.948],[-100.761,0.661],[-100.331,0.661],[-94.852,-4.77],[-95.524,-2.069],[-94.96,-0.488],[-94.1,-0.603],[-88.515,-4.914],[-89.669,-2.845],[-87.951,-1.121],[-80.606,-3.721],[-74.791,-7.356],[-74.791,-7.586],[-75.651,-8.736],[-76.618,-8.736],[-86.232,-4.713],[-84.889,-7.701],[-85.963,-9.425],[-86.178,-9.425],[-91.764,-6.092],[-91.871,-6.092],[-89.723,-9.31],[-89.723,-9.425],[-90.582,-11.034],[-94.664,-8.161],[-92.57,-12.04]],"c":true}},"nm":"m","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"m","bm":0,"hd":false}],"ip":35,"op":180,"st":35,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"i 6","sr":1,"ks":{"p":{"a":0,"k":[183.642,148.698,0]},"a":{"a":0,"k":[-73.108,-6.552,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[-75.726,-10.057],[-76.827,-9.856],[-81.5,-0.776],[-81.5,-0.201],[-80.211,1.178],[-79.889,1.178],[-76.035,-0.56],[-66.756,-5.115],[-64.715,-7.069],[-66.434,-8.793],[-77.767,-2.902],[-76.035,-5.876],[-74.598,-9.08],[-74.84,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[-76.048,-11.494],[-75.189,-10.862],[-73.067,-11.35],[-71.187,-13.161],[-72.1,-14.281],[-75.968,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"i","bm":0,"hd":false}],"ip":36,"op":180,"st":36,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"s 111","sr":1,"ks":{"p":{"a":0,"k":[194.663,149.876,0]},"a":{"a":0,"k":[-62.087,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[-68.532,-7.385],[-68.425,-5.086],[-68.532,-3.391],[-68.505,-3.132],[-69.311,-2.27],[-70.734,-2.644],[-71.755,-1.207],[-71.621,-0.517],[-70.197,0.805],[-69.284,0.805],[-65.766,-1.034],[-58.22,-3.678],[-52.419,-7.155],[-52.419,-7.615],[-53.708,-8.649],[-54.138,-8.649],[-66.061,-3.42],[-65.954,-7.155],[-63,-8.908],[-61.926,-8.477],[-60.905,-9.454],[-60.825,-9.856],[-63.859,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":37,"op":180,"st":37,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"f 6","sr":1,"ks":{"p":{"a":0,"k":[206.141,153.239,0]},"a":{"a":0,"k":[-50.609,-2.011,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.36],[-2.865,3.18]],"o":[[0.089,-0.287],[-0.645,2.108]],"v":[[-51.684,-9.195],[-47.253,-14.396]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.213],[2.023,-2.816],[0,0.057],[-3.473,7.433]],"o":[[0,0],[-0.018,1.456],[-0.743,2.213],[-0.018,-0.057],[0,-1.226],[0,0]],"v":[[-54.96,-3.103],[-54.96,-2.988],[-56.101,2.514],[-60.251,10.057],[-60.277,9.885],[-55.067,-3.103]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-1.609],[1.45,-2.931],[0,0],[0.197,-0.92],[0,0],[-0.788,-0.268],[0.125,-3.2],[-0.806,0],[0,0],[-2.721,4.406],[-0.144,4.061],[-0.788,0],[-4.333,1.303],[-0.018,0.671],[0.465,0],[0.071,-0.019],[4.44,0],[0.412,0.019],[-1.235,1.916],[0,1.456],[0.036,0.23],[0,0],[0.591,0],[0,0]],"o":[[-2.561,2.663],[0,0],[-0.591,0],[0,0],[0,0.786],[-3.599,7.145],[0.125,1.456],[0,0],[1.325,0],[1.593,-3.218],[0.662,0.115],[2.739,0],[0.931,-0.479],[-0.197,-1.015],[-0.054,0],[-3.133,1.36],[-0.412,0],[2.596,-0.651],[1.235,-1.915],[0,-0.23],[0,0],[-0.197,-0.843],[0,0],[-0.824,0]],"v":[[-49.696,-15.402],[-55.712,-7.011],[-57.323,-7.011],[-58.505,-5.632],[-58.505,-5.488],[-57.323,-3.908],[-62.909,11.609],[-61.513,13.793],[-61.191,13.793],[-55.121,7.184],[-52.516,-3.736],[-50.341,-3.563],[-39.733,-5.517],[-38.31,-7.241],[-39.303,-8.764],[-39.491,-8.736],[-50.851,-6.695],[-52.087,-6.724],[-46.339,-10.575],[-44.486,-15.632],[-44.54,-16.322],[-44.54,-16.552],[-45.722,-17.816],[-45.937,-17.816]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"f","bm":0,"hd":false}],"ip":38,"op":180,"st":38,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"i 5","sr":1,"ks":{"p":{"a":0,"k":[219.993,148.698,0]},"a":{"a":0,"k":[-36.757,-6.552,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[-39.375,-10.057],[-40.476,-9.856],[-45.149,-0.776],[-45.149,-0.201],[-43.86,1.178],[-43.538,1.178],[-39.684,-0.56],[-30.406,-5.115],[-28.365,-7.069],[-30.083,-8.793],[-41.416,-2.902],[-39.684,-5.876],[-38.247,-9.08],[-38.489,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[-39.698,-11.494],[-38.838,-10.862],[-36.717,-11.35],[-34.837,-13.161],[-35.75,-14.281],[-39.617,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"i","bm":0,"hd":false}],"ip":39,"op":180,"st":39,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"t 7","sr":1,"ks":{"p":{"a":0,"k":[230.324,145.25,0]},"a":{"a":0,"k":[-26.426,-10,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-27.93,-14.483],[-29.541,-14.598],[-31.153,-13.218],[-29.219,-11.839],[-34.053,-1.609],[-34.053,-1.494],[-32.979,0],[-32.549,0],[-21.055,-5.718],[-18.799,-7.557],[-19.336,-8.822],[-19.658,-8.822],[-20.947,-8.362],[-30.186,-3.678],[-30.401,-3.678],[-30.401,-3.793],[-26.319,-11.724],[-24.063,-11.695],[-22.559,-12.845],[-22.559,-13.649],[-23.74,-14.281],[-24.385,-14.253],[-25.137,-14.253],[-25.137,-14.368],[-22.666,-18.621],[-22.666,-18.735],[-23.74,-20],[-24.278,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":40,"op":180,"st":40,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"s 110","sr":1,"ks":{"p":{"a":0,"k":[240.279,149.876,0]},"a":{"a":0,"k":[-16.471,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[-22.916,-7.385],[-22.809,-5.086],[-22.916,-3.391],[-22.889,-3.132],[-23.695,-2.27],[-25.118,-2.644],[-26.139,-1.207],[-26.005,-0.517],[-24.581,0.805],[-23.668,0.805],[-20.15,-1.034],[-12.604,-3.678],[-6.803,-7.155],[-6.803,-7.615],[-8.092,-8.649],[-8.522,-8.649],[-20.446,-3.42],[-20.338,-7.155],[-17.384,-8.908],[-16.31,-8.477],[-15.289,-9.454],[-15.209,-9.856],[-18.243,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":41,"op":180,"st":41,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"T :M","sr":1,"ks":{"p":{"a":0,"k":[124.217,146.17,0]},"a":{"a":0,"k":[124.217,146.17,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[-138.334,-25.46],[-138.549,-25.574],[-138.441,-26.379],[-140.053,-27.758],[-140.16,-27.758],[-143.597,-24.655],[-160.678,-22.126],[-163.256,-20.747],[-163.256,-20.172],[-162.181,-18.908],[-161.967,-18.908],[-145.853,-21.552],[-152.513,-10.287],[-156.273,-2.471],[-161.107,10.402],[-161.107,10.517],[-161,10.517],[-159.281,7.873],[-158.529,6.724],[-157.025,3.621],[-152.943,-4.08],[-150.365,-8.678],[-144.887,-17.758],[-141.664,-22.356],[-109.115,-26.149],[-101.81,-27.414],[-103.207,-28.678],[-103.529,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"T","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[124.217,146.17]},"a":{"a":0,"k":[-132.533,-9.08]},"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":"T","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[-139.315,-19.598],[-150.111,0.115],[-150.111,0.575],[-149.037,1.724],[-148.607,1.724],[-146.888,0.345],[-140.47,-5.575],[-137.999,-4.31],[-134.347,-1.782],[-131.876,-2.126],[-123.846,-7.442],[-123.846,-7.902],[-125.028,-8.707],[-126.209,-8.477],[-133.38,-4.54],[-135.85,-5.575],[-140.04,-8.908],[-143.155,-7.529],[-143.263,-7.529],[-141.329,-11.552],[-136.092,-19.942],[-136.092,-20.287],[-136.952,-21.666],[-137.059,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[119.772,145.279]},"a":{"a":0,"k":[-136.978,-9.971]},"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":"h","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-118.834,-8.132],[-124.689,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-117.881,-10.761],[-119.828,-10.948],[-124.85,-9.54],[-129.013,-3.908],[-129.013,-3.448],[-125.844,-0.575],[-124.877,-0.632],[-124.716,-0.632],[-120.258,-1.523],[-114.188,-4.282],[-110.482,-7.184],[-111.583,-8.592],[-115.504,-6.034],[-124.232,-3.161],[-126.434,-4.023],[-125.575,-4.023],[-121.976,-4.425],[-118.338,-5.963],[-116.095,-8.333],[-116.202,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[137.003,149.489]},"a":{"a":0,"k":[-119.747,-5.761]},"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":"e","bm":0,"hd":false}],"ip":0,"op":7,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":". 2","sr":1,"ks":{"p":{"a":0,"k":[245.04,153.468,0]},"a":{"a":0,"k":[245.04,153.468,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[-13.321,-2.184],[-13.321,-1.609],[-11.924,0],[-11.495,0],[-10.098,-1.264],[-10.098,-1.379],[-10.958,-3.563],[-11.71,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":".","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[245.04,153.468]},"a":{"a":0,"k":[-11.71,-1.782]},"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":". 2","bm":0,"hd":false}],"ip":41,"op":180,"st":41,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"m :M","sr":1,"ks":{"p":{"a":0,"k":[202.377,152.147,0]},"a":{"a":0,"k":[202.377,152.147,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.465,0],[0.358,-0.402],[0,-1.322],[0,0],[-0.788,-0.632],[0,0],[-3.223,3.621],[0,-0.728],[-0.376,-0.383],[-0.287,0.077],[-1.361,0.651],[0,0],[-0.681,0],[-3.876,1.734],[0,0.69],[0,0],[0.573,0.345],[0,0],[1.862,-0.728],[0,0],[0.358,0],[0,0],[2.918,-2.222],[0,0],[0,0.402],[0,0],[0.573,0.766],[2.166,-1.915],[-0.036,0.632]],"o":[[-0.376,0],[-4.565,6.245],[0,0],[0,0.441],[0,0],[0.43,0],[-0.448,1.073],[0,0.671],[0.286,0],[2.363,-2.222],[0,0],[0.465,1.149],[1.021,0],[3.876,-1.734],[0,0],[0,-0.421],[0,0],[-4.548,1.954],[0,0],[-0.358,-1.149],[0,0],[-0.806,0],[0,0],[1.432,-1.743],[0,0],[0,-0.306],[-0.555,0],[1.36,-1.954],[-0.483,-0.651]],"v":[[-93.993,-13.017],[-95.094,-12.414],[-101.942,-1.063],[-101.942,-0.948],[-100.761,0.661],[-100.331,0.661],[-94.852,-4.77],[-95.524,-2.069],[-94.96,-0.488],[-94.1,-0.603],[-88.515,-4.914],[-89.669,-2.845],[-87.951,-1.121],[-80.606,-3.721],[-74.791,-7.356],[-74.791,-7.586],[-75.651,-8.736],[-76.618,-8.736],[-86.232,-4.713],[-84.889,-7.701],[-85.963,-9.425],[-86.178,-9.425],[-91.764,-6.092],[-91.871,-6.092],[-89.723,-9.31],[-89.723,-9.425],[-90.582,-11.034],[-94.664,-8.161],[-92.57,-12.04]],"c":true}},"nm":"m","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"m","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[168.383,149.072]},"a":{"a":0,"k":[-88.367,-6.178]},"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":"m","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[-75.726,-10.057],[-76.827,-9.856],[-81.5,-0.776],[-81.5,-0.201],[-80.211,1.178],[-79.889,1.178],[-76.035,-0.56],[-66.756,-5.115],[-64.715,-7.069],[-66.434,-8.793],[-77.767,-2.902],[-76.035,-5.876],[-74.598,-9.08],[-74.84,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[-76.048,-11.494],[-75.189,-10.862],[-73.067,-11.35],[-71.187,-13.161],[-72.1,-14.281],[-75.968,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"i","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[183.642,148.698]},"a":{"a":0,"k":[-73.108,-6.552]},"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":"i","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[-68.532,-7.385],[-68.425,-5.086],[-68.532,-3.391],[-68.505,-3.132],[-69.311,-2.27],[-70.734,-2.644],[-71.755,-1.207],[-71.621,-0.517],[-70.197,0.805],[-69.284,0.805],[-65.766,-1.034],[-58.22,-3.678],[-52.419,-7.155],[-52.419,-7.615],[-53.708,-8.649],[-54.138,-8.649],[-66.061,-3.42],[-65.954,-7.155],[-63,-8.908],[-61.926,-8.477],[-60.905,-9.454],[-60.825,-9.856],[-63.859,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[194.663,149.876]},"a":{"a":0,"k":[-62.087,-5.374]},"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":"s","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.36],[-2.865,3.18]],"o":[[0.089,-0.287],[-0.645,2.108]],"v":[[-51.684,-9.195],[-47.253,-14.396]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.213],[2.023,-2.816],[0,0.057],[-3.473,7.433]],"o":[[0,0],[-0.018,1.456],[-0.743,2.213],[-0.018,-0.057],[0,-1.226],[0,0]],"v":[[-54.96,-3.103],[-54.96,-2.988],[-56.101,2.514],[-60.251,10.057],[-60.277,9.885],[-55.067,-3.103]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-1.609],[1.45,-2.931],[0,0],[0.197,-0.92],[0,0],[-0.788,-0.268],[0.125,-3.2],[-0.806,0],[0,0],[-2.721,4.406],[-0.144,4.061],[-0.788,0],[-4.333,1.303],[-0.018,0.671],[0.465,0],[0.071,-0.019],[4.44,0],[0.412,0.019],[-1.235,1.916],[0,1.456],[0.036,0.23],[0,0],[0.591,0],[0,0]],"o":[[-2.561,2.663],[0,0],[-0.591,0],[0,0],[0,0.786],[-3.599,7.145],[0.125,1.456],[0,0],[1.325,0],[1.593,-3.218],[0.662,0.115],[2.739,0],[0.931,-0.479],[-0.197,-1.015],[-0.054,0],[-3.133,1.36],[-0.412,0],[2.596,-0.651],[1.235,-1.915],[0,-0.23],[0,0],[-0.197,-0.843],[0,0],[-0.824,0]],"v":[[-49.696,-15.402],[-55.712,-7.011],[-57.323,-7.011],[-58.505,-5.632],[-58.505,-5.488],[-57.323,-3.908],[-62.909,11.609],[-61.513,13.793],[-61.191,13.793],[-55.121,7.184],[-52.516,-3.736],[-50.341,-3.563],[-39.733,-5.517],[-38.31,-7.241],[-39.303,-8.764],[-39.491,-8.736],[-50.851,-6.695],[-52.087,-6.724],[-46.339,-10.575],[-44.486,-15.632],[-44.54,-16.322],[-44.54,-16.552],[-45.722,-17.816],[-45.937,-17.816]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"f","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[206.141,153.239]},"a":{"a":0,"k":[-50.609,-2.011]},"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":"f","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[-39.375,-10.057],[-40.476,-9.856],[-45.149,-0.776],[-45.149,-0.201],[-43.86,1.178],[-43.538,1.178],[-39.684,-0.56],[-30.406,-5.115],[-28.365,-7.069],[-30.083,-8.793],[-41.416,-2.902],[-39.684,-5.876],[-38.247,-9.08],[-38.489,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[-39.698,-11.494],[-38.838,-10.862],[-36.717,-11.35],[-34.837,-13.161],[-35.75,-14.281],[-39.617,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"i","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[219.993,148.698]},"a":{"a":0,"k":[-36.757,-6.552]},"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":"i 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-27.93,-14.483],[-29.541,-14.598],[-31.153,-13.218],[-29.219,-11.839],[-34.053,-1.609],[-34.053,-1.494],[-32.979,0],[-32.549,0],[-21.055,-5.718],[-18.799,-7.557],[-19.336,-8.822],[-19.658,-8.822],[-20.947,-8.362],[-30.186,-3.678],[-30.401,-3.678],[-30.401,-3.793],[-26.319,-11.724],[-24.063,-11.695],[-22.559,-12.845],[-22.559,-13.649],[-23.74,-14.281],[-24.385,-14.253],[-25.137,-14.253],[-25.137,-14.368],[-22.666,-18.621],[-22.666,-18.735],[-23.74,-20],[-24.278,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[230.324,145.25]},"a":{"a":0,"k":[-26.426,-10]},"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":"t","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[-22.916,-7.385],[-22.809,-5.086],[-22.916,-3.391],[-22.889,-3.132],[-23.695,-2.27],[-25.118,-2.644],[-26.139,-1.207],[-26.005,-0.517],[-24.581,0.805],[-23.668,0.805],[-20.15,-1.034],[-12.604,-3.678],[-6.803,-7.155],[-6.803,-7.615],[-8.092,-8.649],[-8.522,-8.649],[-20.446,-3.42],[-20.338,-7.155],[-17.384,-8.908],[-16.31,-8.477],[-15.289,-9.454],[-15.209,-9.856],[-18.243,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[240.279,149.876]},"a":{"a":0,"k":[-16.471,-5.374]},"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":"s 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[-13.321,-2.184],[-13.321,-1.609],[-11.924,0],[-11.495,0],[-10.098,-1.264],[-10.098,-1.379],[-10.958,-3.563],[-11.71,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":".","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[245.04,153.468]},"a":{"a":0,"k":[-11.71,-1.782]},"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":".","bm":0,"hd":false}],"ip":0,"op":8,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"T 2","sr":1,"ks":{"p":{"a":0,"k":[291.554,146.17,0]},"a":{"a":0,"k":[34.804,-9.08,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[29.003,-25.46],[28.788,-25.574],[28.896,-26.379],[27.285,-27.758],[27.177,-27.758],[23.74,-24.655],[6.66,-22.126],[4.081,-20.747],[4.081,-20.172],[5.156,-18.908],[5.37,-18.908],[21.484,-21.552],[14.824,-10.287],[11.064,-2.471],[6.23,10.402],[6.23,10.517],[6.337,10.517],[8.056,7.873],[8.808,6.724],[10.312,3.621],[14.394,-4.08],[16.972,-8.678],[22.451,-17.758],[25.673,-22.356],[58.222,-26.149],[65.527,-27.414],[64.13,-28.678],[63.808,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"T","bm":0,"hd":false}],"ip":39,"op":180,"st":6,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"h 2","sr":1,"ks":{"p":{"a":0,"k":[287.109,145.279,0]},"a":{"a":0,"k":[30.359,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[28.022,-19.598],[17.226,0.115],[17.226,0.575],[18.301,1.724],[18.73,1.724],[20.449,0.345],[26.867,-5.575],[29.338,-4.31],[32.99,-1.782],[35.461,-2.126],[43.491,-7.442],[43.491,-7.902],[42.309,-8.707],[41.128,-8.477],[33.957,-4.54],[31.487,-5.575],[27.297,-8.908],[24.182,-7.529],[24.074,-7.529],[26.008,-11.552],[31.245,-19.942],[31.245,-20.287],[30.386,-21.666],[30.278,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":40,"op":180,"st":7,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"e 5","sr":1,"ks":{"p":{"a":0,"k":[304.34,149.489,0]},"a":{"a":0,"k":[47.59,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[48.503,-8.132],[42.648,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[49.456,-10.761],[47.509,-10.948],[42.487,-9.54],[38.325,-3.908],[38.325,-3.448],[41.493,-0.575],[42.46,-0.632],[42.621,-0.632],[47.079,-1.523],[53.149,-4.282],[56.855,-7.184],[55.754,-8.592],[51.833,-6.034],[43.105,-3.161],[40.903,-4.023],[41.762,-4.023],[45.361,-4.425],[49,-5.963],[51.242,-8.333],[51.135,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":41,"op":180,"st":8,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"r 3","sr":1,"ks":{"p":{"a":0,"k":[331.41,148.785,0]},"a":{"a":0,"k":[74.66,-6.465,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[83.307,-9.655],[84.247,-10.603],[84.355,-11.236],[81.965,-13.304],[81.911,-13.304],[73.827,-8.822],[74.902,-10.919],[73.827,-11.81],[73.532,-11.781],[68.523,-6.667],[64.965,-1.351],[64.965,-1.236],[66.254,0.374],[66.791,0.374],[68.403,-1.121],[81.884,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":42,"op":180,"st":9,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"e 4","sr":1,"ks":{"p":{"a":0,"k":[343.768,149.489,0]},"a":{"a":0,"k":[87.018,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[87.931,-8.132],[82.076,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[88.884,-10.761],[86.937,-10.948],[81.915,-9.54],[77.753,-3.908],[77.753,-3.448],[80.922,-0.575],[81.888,-0.632],[82.049,-0.632],[86.507,-1.523],[92.577,-4.282],[96.283,-7.184],[95.182,-8.592],[91.261,-6.034],[82.533,-3.161],[80.331,-4.023],[81.19,-4.023],[84.789,-4.425],[88.428,-5.963],[90.67,-8.333],[90.563,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":43,"op":180,"st":10,"bm":0},{"ddd":0,"ind":43,"ty":4,"nm":"b 2","sr":1,"ks":{"p":{"a":0,"k":[357.002,144.589,0]},"a":{"a":0,"k":[100.252,-10.661,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.307,1.456],[-0.305,0],[0,0],[-0.09,-0.479],[2.184,-0.383]],"o":[[0.232,-0.421],[0,0],[0.34,0.039],[-0.448,1.897],[0.305,-0.92]],"v":[[95.673,-6.063],[96.478,-6.695],[96.559,-6.695],[97.204,-5.919],[93.256,-2.5]],"c":true}},"nm":"b","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.292,-4.167],[0.501,-0.785],[0.501,-0.938],[0.179,-1.628],[0,0],[-0.859,-0.077],[0,0],[-1.199,0.632],[-0.233,2.433],[-1.415,0],[-1.146,0.364],[-0.305,1.456],[0.716,0.057],[1.665,0],[2.166,0.613],[-1.182,2.385],[-0.493,0.7],[0,0.268],[0.859,0.192]],"o":[[-2.292,4.167],[-0.501,0.786],[-1.056,1.36],[0,0],[0,0.766],[0,0],[0.609,0],[2.954,-1.475],[1.79,0.249],[1.701,0],[0.698,0],[0,-0.249],[-2.185,0.46],[-1.665,0],[0.77,-1.628],[1.182,-2.385],[0.492,-0.699],[0,-0.498],[-0.806,0.287]],"v":[[97.848,-15.474],[93.659,-8.046],[92.155,-5.46],[90.302,-0.977],[90.517,-0.431],[91.806,0.833],[92.128,0.833],[94.84,-0.115],[99.621,-5.977],[104.428,-5.603],[108.698,-6.149],[110.202,-8.333],[109.127,-8.793],[103.353,-8.103],[97.606,-9.023],[100.534,-15.043],[103.045,-19.669],[103.783,-21.12],[102.494,-22.155]],"c":true}},"nm":"b","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"b","bm":0,"hd":false}],"ip":44,"op":180,"st":11,"bm":0},{"ddd":0,"ind":44,"ty":4,"nm":"e 3","sr":1,"ks":{"p":{"a":0,"k":[370.678,149.489,0]},"a":{"a":0,"k":[113.928,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[114.841,-8.132],[108.987,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[115.795,-10.761],[113.848,-10.948],[108.826,-9.54],[104.663,-3.908],[104.663,-3.448],[107.832,-0.575],[108.799,-0.632],[108.96,-0.632],[113.418,-1.523],[119.487,-4.282],[123.193,-7.184],[122.092,-8.592],[118.171,-6.034],[109.443,-3.161],[107.241,-4.023],[108.101,-4.023],[111.699,-4.425],[115.338,-5.963],[117.581,-8.333],[117.473,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":45,"op":180,"st":12,"bm":0},{"ddd":0,"ind":45,"ty":4,"nm":"l 3","sr":1,"ks":{"p":{"a":0,"k":[382.48,145.078,0]},"a":{"a":0,"k":[125.73,-10.172,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.134],[1.343,-2.969],[0,0],[-0.591,0],[0,0],[-1.996,0.986],[-5.156,2.548],[-0.698,0.709],[1.146,0.172],[0.859,-0.191],[-2.883,5.843],[0,0.594],[0.143,0.364]],"o":[[-0.358,0],[-5.622,11.686],[0,0],[0.269,0.92],[0,0],[0.233,0],[1.996,-0.986],[0.949,-0.651],[0,-0.977],[-7.609,4.119],[0.197,-0.44],[2.882,-5.843],[0,-0.191],[-0.287,-0.096]],"v":[[128.227,-22.241],[127.099,-22.04],[116.652,-0.057],[116.652,0.517],[117.942,1.897],[118.264,1.897],[121.607,0.417],[132.336,-4.885],[134.807,-6.925],[133.088,-8.649],[120.385,-2.184],[125.005,-11.609],[129.328,-21.264],[129.113,-22.097]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"l","bm":0,"hd":false}],"ip":46,"op":180,"st":13,"bm":0},{"ddd":0,"ind":46,"ty":4,"nm":"s 3","sr":1,"ks":{"p":{"a":0,"k":[394.52,149.876,0]},"a":{"a":0,"k":[137.77,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[131.324,-7.385],[131.432,-5.086],[131.324,-3.391],[131.351,-3.132],[130.546,-2.27],[129.122,-2.644],[128.102,-1.207],[128.236,-0.517],[129.659,0.805],[130.573,0.805],[134.091,-1.034],[141.637,-3.678],[147.438,-7.155],[147.438,-7.615],[146.149,-8.649],[145.719,-8.649],[133.795,-3.42],[133.903,-7.155],[136.857,-8.908],[137.931,-8.477],[138.951,-9.454],[139.032,-9.856],[135.997,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":47,"op":180,"st":14,"bm":0},{"ddd":0,"ind":47,"ty":4,"nm":". 2","sr":1,"ks":{"p":{"a":0,"k":[417.857,153.468,0]},"a":{"a":0,"k":[161.107,-1.782,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[159.496,-2.184],[159.496,-1.609],[160.892,0],[161.322,0],[162.719,-1.264],[162.719,-1.379],[161.859,-3.563],[161.107,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":".","bm":0,"hd":false}],"ip":48,"op":180,"st":15,"bm":0},{"ddd":0,"ind":48,"ty":4,"nm":"T 2 :M","sr":1,"ks":{"p":{"a":0,"k":[340.15,146.17,0]},"a":{"a":0,"k":[340.15,146.17,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[29.003,-25.46],[28.788,-25.574],[28.896,-26.379],[27.285,-27.758],[27.177,-27.758],[23.74,-24.655],[6.66,-22.126],[4.081,-20.747],[4.081,-20.172],[5.156,-18.908],[5.37,-18.908],[21.484,-21.552],[14.824,-10.287],[11.064,-2.471],[6.23,10.402],[6.23,10.517],[6.337,10.517],[8.056,7.873],[8.808,6.724],[10.312,3.621],[14.394,-4.08],[16.972,-8.678],[22.451,-17.758],[25.673,-22.356],[58.222,-26.149],[65.527,-27.414],[64.13,-28.678],[63.808,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"T","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[291.554,146.17]},"a":{"a":0,"k":[34.804,-9.08]},"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":"T 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[28.022,-19.598],[17.226,0.115],[17.226,0.575],[18.301,1.724],[18.73,1.724],[20.449,0.345],[26.867,-5.575],[29.338,-4.31],[32.99,-1.782],[35.461,-2.126],[43.491,-7.442],[43.491,-7.902],[42.309,-8.707],[41.128,-8.477],[33.957,-4.54],[31.487,-5.575],[27.297,-8.908],[24.182,-7.529],[24.074,-7.529],[26.008,-11.552],[31.245,-19.942],[31.245,-20.287],[30.386,-21.666],[30.278,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[287.109,145.279]},"a":{"a":0,"k":[30.359,-9.971]},"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":"h 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[48.503,-8.132],[42.648,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[49.456,-10.761],[47.509,-10.948],[42.487,-9.54],[38.325,-3.908],[38.325,-3.448],[41.493,-0.575],[42.46,-0.632],[42.621,-0.632],[47.079,-1.523],[53.149,-4.282],[56.855,-7.184],[55.754,-8.592],[51.833,-6.034],[43.105,-3.161],[40.903,-4.023],[41.762,-4.023],[45.361,-4.425],[49,-5.963],[51.242,-8.333],[51.135,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[304.34,149.489]},"a":{"a":0,"k":[47.59,-5.761]},"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":"e 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[83.307,-9.655],[84.247,-10.603],[84.355,-11.236],[81.965,-13.304],[81.911,-13.304],[73.827,-8.822],[74.902,-10.919],[73.827,-11.81],[73.532,-11.781],[68.523,-6.667],[64.965,-1.351],[64.965,-1.236],[66.254,0.374],[66.791,0.374],[68.403,-1.121],[81.884,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[331.41,148.785]},"a":{"a":0,"k":[74.66,-6.465]},"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":"r","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[87.931,-8.132],[82.076,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[88.884,-10.761],[86.937,-10.948],[81.915,-9.54],[77.753,-3.908],[77.753,-3.448],[80.922,-0.575],[81.888,-0.632],[82.049,-0.632],[86.507,-1.523],[92.577,-4.282],[96.283,-7.184],[95.182,-8.592],[91.261,-6.034],[82.533,-3.161],[80.331,-4.023],[81.19,-4.023],[84.789,-4.425],[88.428,-5.963],[90.67,-8.333],[90.563,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[343.768,149.489]},"a":{"a":0,"k":[87.018,-5.761]},"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":"e 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.307,1.456],[-0.305,0],[0,0],[-0.09,-0.479],[2.184,-0.383]],"o":[[0.232,-0.421],[0,0],[0.34,0.039],[-0.448,1.897],[0.305,-0.92]],"v":[[95.673,-6.063],[96.478,-6.695],[96.559,-6.695],[97.204,-5.919],[93.256,-2.5]],"c":true}},"nm":"b","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.292,-4.167],[0.501,-0.785],[0.501,-0.938],[0.179,-1.628],[0,0],[-0.859,-0.077],[0,0],[-1.199,0.632],[-0.233,2.433],[-1.415,0],[-1.146,0.364],[-0.305,1.456],[0.716,0.057],[1.665,0],[2.166,0.613],[-1.182,2.385],[-0.493,0.7],[0,0.268],[0.859,0.192]],"o":[[-2.292,4.167],[-0.501,0.786],[-1.056,1.36],[0,0],[0,0.766],[0,0],[0.609,0],[2.954,-1.475],[1.79,0.249],[1.701,0],[0.698,0],[0,-0.249],[-2.185,0.46],[-1.665,0],[0.77,-1.628],[1.182,-2.385],[0.492,-0.699],[0,-0.498],[-0.806,0.287]],"v":[[97.848,-15.474],[93.659,-8.046],[92.155,-5.46],[90.302,-0.977],[90.517,-0.431],[91.806,0.833],[92.128,0.833],[94.84,-0.115],[99.621,-5.977],[104.428,-5.603],[108.698,-6.149],[110.202,-8.333],[109.127,-8.793],[103.353,-8.103],[97.606,-9.023],[100.534,-15.043],[103.045,-19.669],[103.783,-21.12],[102.494,-22.155]],"c":true}},"nm":"b","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"b","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[357.002,144.589]},"a":{"a":0,"k":[100.252,-10.661]},"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":"b","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[114.841,-8.132],[108.987,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[115.795,-10.761],[113.848,-10.948],[108.826,-9.54],[104.663,-3.908],[104.663,-3.448],[107.832,-0.575],[108.799,-0.632],[108.96,-0.632],[113.418,-1.523],[119.487,-4.282],[123.193,-7.184],[122.092,-8.592],[118.171,-6.034],[109.443,-3.161],[107.241,-4.023],[108.101,-4.023],[111.699,-4.425],[115.338,-5.963],[117.581,-8.333],[117.473,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[370.678,149.489]},"a":{"a":0,"k":[113.928,-5.761]},"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":"e 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.134],[1.343,-2.969],[0,0],[-0.591,0],[0,0],[-1.996,0.986],[-5.156,2.548],[-0.698,0.709],[1.146,0.172],[0.859,-0.191],[-2.883,5.843],[0,0.594],[0.143,0.364]],"o":[[-0.358,0],[-5.622,11.686],[0,0],[0.269,0.92],[0,0],[0.233,0],[1.996,-0.986],[0.949,-0.651],[0,-0.977],[-7.609,4.119],[0.197,-0.44],[2.882,-5.843],[0,-0.191],[-0.287,-0.096]],"v":[[128.227,-22.241],[127.099,-22.04],[116.652,-0.057],[116.652,0.517],[117.942,1.897],[118.264,1.897],[121.607,0.417],[132.336,-4.885],[134.807,-6.925],[133.088,-8.649],[120.385,-2.184],[125.005,-11.609],[129.328,-21.264],[129.113,-22.097]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"l","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[382.48,145.078]},"a":{"a":0,"k":[125.73,-10.172]},"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":"l","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[131.324,-7.385],[131.432,-5.086],[131.324,-3.391],[131.351,-3.132],[130.546,-2.27],[129.122,-2.644],[128.102,-1.207],[128.236,-0.517],[129.659,0.805],[130.573,0.805],[134.091,-1.034],[141.637,-3.678],[147.438,-7.155],[147.438,-7.615],[146.149,-8.649],[145.719,-8.649],[133.795,-3.42],[133.903,-7.155],[136.857,-8.908],[137.931,-8.477],[138.951,-9.454],[139.032,-9.856],[135.997,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[394.52,149.876]},"a":{"a":0,"k":[137.77,-5.374]},"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":"s 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[159.496,-2.184],[159.496,-1.609],[160.892,0],[161.322,0],[162.719,-1.264],[162.719,-1.379],[161.859,-3.563],[161.107,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":".","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[417.857,153.468]},"a":{"a":0,"k":[161.107,-1.782]},"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":". 3","bm":0,"hd":false}],"ip":0,"op":12,"st":0,"bm":0},{"ddd":0,"ind":49,"ty":4,"nm":"T 6","sr":1,"ks":{"p":{"a":0,"k":[116.251,193.92,0]},"a":{"a":0,"k":[-127.749,-9.08,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[-133.55,-25.46],[-133.765,-25.574],[-133.657,-26.379],[-135.269,-27.758],[-135.376,-27.758],[-138.813,-24.655],[-155.894,-22.126],[-158.472,-20.747],[-158.472,-20.172],[-157.397,-18.908],[-157.183,-18.908],[-141.069,-21.552],[-147.729,-10.287],[-151.489,-2.471],[-156.323,10.402],[-156.323,10.517],[-156.216,10.517],[-154.497,7.873],[-153.745,6.724],[-152.241,3.621],[-148.159,-4.08],[-145.581,-8.678],[-140.103,-17.758],[-136.88,-22.356],[-104.331,-26.149],[-97.026,-27.414],[-98.423,-28.678],[-98.745,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"T","bm":0,"hd":false}],"ip":42,"op":180,"st":42,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"h 11","sr":1,"ks":{"p":{"a":0,"k":[111.806,193.029,0]},"a":{"a":0,"k":[-132.194,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[-134.531,-19.598],[-145.327,0.115],[-145.327,0.575],[-144.253,1.724],[-143.823,1.724],[-142.104,0.345],[-135.686,-5.575],[-133.215,-4.31],[-129.563,-1.782],[-127.092,-2.126],[-119.062,-7.442],[-119.062,-7.902],[-120.244,-8.707],[-121.425,-8.477],[-128.596,-4.54],[-131.066,-5.575],[-135.256,-8.908],[-138.371,-7.529],[-138.479,-7.529],[-136.545,-11.552],[-131.308,-19.942],[-131.308,-20.287],[-132.168,-21.666],[-132.275,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":43,"op":180,"st":43,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"e 22","sr":1,"ks":{"p":{"a":0,"k":[129.037,197.239,0]},"a":{"a":0,"k":[-114.963,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-114.05,-8.132],[-119.905,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-113.097,-10.761],[-115.044,-10.948],[-120.066,-9.54],[-124.229,-3.908],[-124.229,-3.448],[-121.06,-0.575],[-120.093,-0.632],[-119.932,-0.632],[-115.474,-1.523],[-109.404,-4.282],[-105.698,-7.184],[-106.799,-8.592],[-110.72,-6.034],[-119.448,-3.161],[-121.65,-4.023],[-120.791,-4.023],[-117.192,-4.425],[-113.554,-5.963],[-111.311,-8.333],[-111.419,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":44,"op":180,"st":44,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"t 8","sr":1,"ks":{"p":{"a":0,"k":[156.456,193,0]},"a":{"a":0,"k":[-87.544,-10,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-89.048,-14.483],[-90.659,-14.598],[-92.271,-13.218],[-90.337,-11.839],[-95.171,-1.609],[-95.171,-1.494],[-94.097,0],[-93.667,0],[-82.173,-5.718],[-79.917,-7.557],[-80.454,-8.822],[-80.776,-8.822],[-82.065,-8.362],[-91.304,-3.678],[-91.519,-3.678],[-91.519,-3.793],[-87.437,-11.724],[-85.181,-11.695],[-83.677,-12.845],[-83.677,-13.649],[-84.858,-14.281],[-85.503,-14.253],[-86.255,-14.253],[-86.255,-14.368],[-83.784,-18.621],[-83.784,-18.735],[-84.858,-20],[-85.396,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":45,"op":180,"st":45,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"r 9","sr":1,"ks":{"p":{"a":0,"k":[165.812,196.535,0]},"a":{"a":0,"k":[-78.188,-6.465,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[-69.54,-9.655],[-68.6,-10.603],[-68.493,-11.236],[-70.883,-13.304],[-70.937,-13.304],[-79.02,-8.822],[-77.946,-10.919],[-79.02,-11.81],[-79.316,-11.781],[-84.324,-6.667],[-87.883,-1.351],[-87.883,-1.236],[-86.594,0.374],[-86.057,0.374],[-84.445,-1.121],[-70.964,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":46,"op":180,"st":46,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"o 9","sr":1,"ks":{"p":{"a":0,"k":[178.905,198.043,0]},"a":{"a":0,"k":[-65.095,-4.957,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[-69.07,-6.121],[-66.868,-6.523],[-65.686,-6.178],[-73.877,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[-62.517,-8.017],[-64.907,-9.655],[-71.648,-8.161],[-77.449,-3.764],[-77.449,-3.305],[-74.602,-0.259],[-74.011,-0.259],[-62.517,-4.799],[-59.133,-4.167],[-56.341,-4.483],[-52.742,-6.868],[-52.742,-7.442],[-53.494,-8.477],[-58.731,-7.184],[-62.544,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":47,"op":180,"st":47,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"u 5","sr":1,"ks":{"p":{"a":0,"k":[194.786,198.244,0]},"a":{"a":0,"k":[-49.214,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.306],[0.681,-1.609],[0,0],[-0.931,-0.154],[0,0],[-2.292,1.782],[0,-0.287],[-0.537,-0.019],[0,0],[-3.169,2.299],[0,0.345],[0.895,0.019],[2.184,-0.613],[-1.325,1.743],[0,0],[0.501,0],[0.286,-0.23],[1.244,-0.92],[0.931,-0.134],[0,0.154]],"o":[[-0.305,0],[-2.864,3.295],[0,0],[0,0.843],[0,0],[1.558,-0.115],[-0.233,0.479],[0,0.46],[0,0],[4.565,-1.513],[0.43,-0.594],[0,-0.517],[-3.796,2.318],[0.304,-0.517],[0,0],[-0.376,-0.843],[-0.251,0],[-1.396,2.05],[-1.245,0.92],[2.649,-3.122],[-0.287,-0.843]],"v":[[-53.054,-9.483],[-54.102,-9.023],[-59.419,-1.667],[-59.419,-1.322],[-58.023,0.172],[-57.808,0.172],[-52.034,-2.672],[-52.383,-1.523],[-51.577,-0.805],[-51.255,-0.805],[-39.653,-6.523],[-39.009,-7.931],[-40.352,-8.736],[-49.321,-4.339],[-46.878,-7.73],[-46.475,-8.419],[-47.791,-9.684],[-48.596,-9.339],[-52.558,-4.885],[-55.82,-3.305],[-51.846,-8.218]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"u","bm":0,"hd":false}],"ip":48,"op":180,"st":48,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"b 3","sr":1,"ks":{"p":{"a":0,"k":[208.233,192.339,0]},"a":{"a":0,"k":[-35.767,-10.661,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.307,1.456],[-0.305,0],[0,0],[-0.09,-0.479],[2.184,-0.383]],"o":[[0.232,-0.421],[0,0],[0.34,0.039],[-0.448,1.897],[0.305,-0.92]],"v":[[-40.346,-6.063],[-39.54,-6.695],[-39.46,-6.695],[-38.815,-5.919],[-42.763,-2.5]],"c":true}},"nm":"b","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.292,-4.167],[0.501,-0.785],[0.501,-0.938],[0.179,-1.628],[0,0],[-0.859,-0.077],[0,0],[-1.199,0.632],[-0.233,2.433],[-1.415,0],[-1.146,0.364],[-0.305,1.456],[0.716,0.057],[1.665,0],[2.166,0.613],[-1.182,2.385],[-0.493,0.7],[0,0.268],[0.859,0.192]],"o":[[-2.292,4.167],[-0.501,0.786],[-1.056,1.36],[0,0],[0,0.766],[0,0],[0.609,0],[2.954,-1.475],[1.79,0.249],[1.701,0],[0.698,0],[0,-0.249],[-2.185,0.46],[-1.665,0],[0.77,-1.628],[1.182,-2.385],[0.492,-0.699],[0,-0.498],[-0.806,0.287]],"v":[[-38.171,-15.474],[-42.36,-8.046],[-43.864,-5.46],[-45.717,-0.977],[-45.502,-0.431],[-44.213,0.833],[-43.891,0.833],[-41.179,-0.115],[-36.398,-5.977],[-31.591,-5.603],[-27.321,-6.149],[-25.817,-8.333],[-26.892,-8.793],[-32.665,-8.103],[-38.413,-9.023],[-35.485,-15.043],[-32.974,-19.669],[-32.236,-21.12],[-33.525,-22.155]],"c":true}},"nm":"b","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"b","bm":0,"hd":false}],"ip":49,"op":180,"st":49,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"l 6","sr":1,"ks":{"p":{"a":0,"k":[219.784,192.828,0]},"a":{"a":0,"k":[-24.216,-10.172,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.134],[1.343,-2.969],[0,0],[-0.591,0],[0,0],[-1.996,0.986],[-5.156,2.548],[-0.698,0.709],[1.146,0.172],[0.859,-0.191],[-2.883,5.843],[0,0.594],[0.143,0.364]],"o":[[-0.358,0],[-5.622,11.686],[0,0],[0.269,0.92],[0,0],[0.233,0],[1.996,-0.986],[0.949,-0.651],[0,-0.977],[-7.609,4.119],[0.197,-0.44],[2.882,-5.843],[0,-0.191],[-0.287,-0.096]],"v":[[-21.718,-22.241],[-22.846,-22.04],[-33.293,-0.057],[-33.293,0.517],[-32.004,1.897],[-31.682,1.897],[-28.338,0.417],[-17.609,-4.885],[-15.139,-6.925],[-16.857,-8.649],[-29.56,-2.184],[-24.941,-11.609],[-20.617,-21.264],[-20.832,-22.097]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"l","bm":0,"hd":false}],"ip":50,"op":180,"st":50,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"e 221","sr":1,"ks":{"p":{"a":0,"k":[232.868,197.239,0]},"a":{"a":0,"k":[-11.132,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-10.219,-8.132],[-16.073,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-9.265,-10.761],[-11.212,-10.948],[-16.234,-9.54],[-20.397,-3.908],[-20.397,-3.448],[-17.228,-0.575],[-16.261,-0.632],[-16.1,-0.632],[-11.642,-1.523],[-5.573,-4.282],[-1.867,-7.184],[-2.968,-8.592],[-6.889,-6.034],[-15.617,-3.161],[-17.819,-4.023],[-16.959,-4.023],[-13.361,-4.425],[-9.722,-5.963],[-7.479,-8.333],[-7.587,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":51,"op":180,"st":51,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"m 3","sr":1,"ks":{"p":{"a":0,"k":[249.171,196.822,0]},"a":{"a":0,"k":[5.171,-6.178,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.465,0],[0.358,-0.402],[0,-1.322],[0,0],[-0.788,-0.632],[0,0],[-3.223,3.621],[0,-0.728],[-0.376,-0.383],[-0.287,0.077],[-1.361,0.651],[0,0],[-0.681,0],[-3.876,1.734],[0,0.69],[0,0],[0.573,0.345],[0,0],[1.862,-0.728],[0,0],[0.358,0],[0,0],[2.918,-2.222],[0,0],[0,0.402],[0,0],[0.573,0.766],[2.166,-1.915],[-0.036,0.632]],"o":[[-0.376,0],[-4.565,6.245],[0,0],[0,0.441],[0,0],[0.43,0],[-0.448,1.073],[0,0.671],[0.286,0],[2.363,-2.222],[0,0],[0.465,1.149],[1.021,0],[3.876,-1.734],[0,0],[0,-0.421],[0,0],[-4.548,1.954],[0,0],[-0.358,-1.149],[0,0],[-0.806,0],[0,0],[1.432,-1.743],[0,0],[0,-0.306],[-0.555,0],[1.36,-1.954],[-0.483,-0.651]],"v":[[-0.455,-13.017],[-1.557,-12.414],[-8.405,-1.063],[-8.405,-0.948],[-7.223,0.661],[-6.793,0.661],[-1.315,-4.77],[-1.986,-2.069],[-1.422,-0.488],[-0.563,-0.603],[5.023,-4.914],[3.868,-2.845],[5.587,-1.121],[12.932,-3.721],[18.746,-7.356],[18.746,-7.586],[17.887,-8.736],[16.92,-8.736],[7.306,-4.713],[8.649,-7.701],[7.574,-9.425],[7.359,-9.425],[1.774,-6.092],[1.666,-6.092],[3.815,-9.31],[3.815,-9.425],[2.955,-11.034],[-1.127,-8.161],[0.968,-12.04]],"c":true}},"nm":"m","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"m","bm":0,"hd":false}],"ip":52,"op":180,"st":52,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"a 3","sr":1,"ks":{"p":{"a":0,"k":[268.135,197.741,0]},"a":{"a":0,"k":[24.135,-5.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.276,0.786],[0,0],[0,0],[0.698,-0.038],[0,0]],"o":[[0,0],[0,0],[-4.243,2.414],[0,0],[1.594,-1.743]],"v":[[22.256,-7.356],[22.47,-7.356],[22.47,-7.241],[15.058,-3.563],[14.951,-3.563]],"c":true}},"nm":"a","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.417,-1.379],[0.824,-1.705],[0,0],[-0.859,0],[0,0],[-3.688,1.686],[0,0],[-0.376,0],[0,0],[-3.241,1.207],[0,0.728],[0.859,0.287],[2.524,-0.747],[0,0],[0,0.211],[0,0],[0.394,0],[1.217,-0.862],[0.931,0],[0.215,-0.038]],"o":[[-2.256,1.207],[0,0],[0.573,0.996],[0,0],[0.895,0],[0,0],[0,1.303],[0,0],[1.307,0],[5.317,-1.858],[0,-1.015],[-3.133,1.59],[0,0],[2.417,-1.935],[0,0],[-0.322,-1.073],[-0.215,0],[-0.09,-1.015],[-0.161,0],[-2.31,0]],"v":[[16.025,-7.586],[11.406,-3.218],[11.406,-2.299],[13.554,-0.805],[14.414,-0.805],[21.289,-3.333],[21.289,-2.816],[21.853,-0.862],[22.068,-0.862],[28.889,-2.672],[36.865,-6.552],[35.576,-8.506],[27.089,-5],[24.807,-4.54],[28.432,-7.759],[28.432,-7.873],[27.358,-9.483],[25.21,-8.19],[23.679,-9.713],[23.115,-9.655]],"c":true}},"nm":"a","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"a","bm":0,"hd":false}],"ip":53,"op":180,"st":53,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"k 2","sr":1,"ks":{"p":{"a":0,"k":[288.573,192.741,0]},"a":{"a":0,"k":[44.573,-10.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.806,-1.149],[1.54,-3.812],[0,0],[-0.716,-0.154],[0,0],[-0.232,0.153],[0,0],[-3.617,0.287],[-3.098,0.287],[0,0.422],[0.304,0.402],[0.841,0],[1.074,-0.096],[6.553,-0.996],[-0.842,0.575],[0,0],[0.269,0],[2.757,-1.628],[1.558,-0.823],[-4.136,7.261],[0.573,0.364],[0,0]],"o":[[-5.479,9.598],[0,0],[0,0.613],[0,0],[0.197,0],[0,0],[7.394,-1.494],[0.465,0],[0.447,-0.345],[0,-0.345],[-0.018,-0.172],[-0.609,0],[-2.542,0.211],[5.013,-2.433],[0,0],[-0.448,-0.536],[-0.931,0],[-2.238,1.284],[0.483,-1.303],[0,-0.785],[0,0],[-0.412,0]],"v":[[41.081,-20.258],[30.554,-0.144],[30.554,0.316],[31.628,1.465],[32.058,1.465],[32.702,1.236],[36.059,-2.874],[52.575,-5.546],[57.92,-5.977],[58.591,-7.126],[58.135,-8.247],[56.845,-8.506],[54.321,-8.362],[40.678,-6.552],[49.46,-11.063],[49.46,-12.213],[48.386,-13.017],[42.854,-10.575],[37.16,-7.414],[44.089,-20.258],[43.23,-21.983],[42.908,-21.983]],"c":true}},"nm":"k","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"k","bm":0,"hd":false}],"ip":54,"op":180,"st":54,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"e 220","sr":1,"ks":{"p":{"a":0,"k":[305.9,197.239,0]},"a":{"a":0,"k":[61.9,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[62.813,-8.132],[56.959,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[63.767,-10.761],[61.82,-10.948],[56.798,-9.54],[52.635,-3.908],[52.635,-3.448],[55.804,-0.575],[56.771,-0.632],[56.932,-0.632],[61.39,-1.523],[67.459,-4.282],[71.165,-7.184],[70.064,-8.592],[66.143,-6.034],[57.415,-3.161],[55.213,-4.023],[56.073,-4.023],[59.671,-4.425],[63.31,-5.963],[65.553,-8.333],[65.445,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":55,"op":180,"st":55,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"r 8","sr":1,"ks":{"p":{"a":0,"k":[317.953,196.535,0]},"a":{"a":0,"k":[73.953,-6.465,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[82.6,-9.655],[83.54,-10.603],[83.648,-11.236],[81.258,-13.304],[81.204,-13.304],[73.12,-8.822],[74.195,-10.919],[73.12,-11.81],[72.825,-11.781],[67.817,-6.667],[64.258,-1.351],[64.258,-1.236],[65.547,0.374],[66.084,0.374],[67.696,-1.121],[81.177,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":56,"op":180,"st":56,"bm":0},{"ddd":0,"ind":64,"ty":4,"nm":"s 12","sr":1,"ks":{"p":{"a":0,"k":[329.602,197.626,0]},"a":{"a":0,"k":[85.602,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[79.157,-7.385],[79.265,-5.086],[79.157,-3.391],[79.184,-3.132],[78.378,-2.27],[76.955,-2.644],[75.935,-1.207],[76.069,-0.517],[77.492,0.805],[78.405,0.805],[81.923,-1.034],[89.47,-3.678],[95.27,-7.155],[95.27,-7.615],[93.981,-8.649],[93.552,-8.649],[81.628,-3.42],[81.735,-7.155],[84.689,-8.908],[85.764,-8.477],[86.784,-9.454],[86.865,-9.856],[83.83,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":57,"op":180,"st":57,"bm":0},{"ddd":0,"ind":65,"ty":4,"nm":". 4","sr":1,"ks":{"p":{"a":0,"k":[334.364,201.218,0]},"a":{"a":0,"k":[90.364,-1.782,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[88.752,-2.184],[88.752,-1.609],[90.149,0],[90.579,0],[91.975,-1.264],[91.975,-1.379],[91.116,-3.563],[90.364,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":".","bm":0,"hd":false}],"ip":58,"op":180,"st":58,"bm":0},{"ddd":0,"ind":66,"ty":4,"nm":"T 5","sr":1,"ks":{"p":{"a":0,"k":[380.878,193.92,0]},"a":{"a":0,"k":[136.878,-9.08,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[131.077,-25.46],[130.862,-25.574],[130.969,-26.379],[129.358,-27.758],[129.251,-27.758],[125.813,-24.655],[108.733,-22.126],[106.155,-20.747],[106.155,-20.172],[107.229,-18.908],[107.444,-18.908],[123.557,-21.552],[116.897,-10.287],[113.137,-2.471],[108.303,10.402],[108.303,10.517],[108.411,10.517],[110.129,7.873],[110.881,6.724],[112.385,3.621],[116.467,-4.08],[119.045,-8.678],[124.524,-17.758],[127.747,-22.356],[160.295,-26.149],[167.6,-27.414],[166.204,-28.678],[165.881,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"T","bm":0,"hd":false}],"ip":59,"op":180,"st":59,"bm":0},{"ddd":0,"ind":67,"ty":4,"nm":"h 110","sr":1,"ks":{"p":{"a":0,"k":[376.432,193.029,0]},"a":{"a":0,"k":[132.432,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[130.096,-19.598],[119.3,0.115],[119.3,0.575],[120.374,1.724],[120.804,1.724],[122.522,0.345],[128.941,-5.575],[131.412,-4.31],[135.064,-1.782],[137.535,-2.126],[145.564,-7.442],[145.564,-7.902],[144.383,-8.707],[143.201,-8.477],[136.031,-4.54],[133.56,-5.575],[129.371,-8.908],[126.255,-7.529],[126.148,-7.529],[128.081,-11.552],[133.318,-19.942],[133.318,-20.287],[132.459,-21.666],[132.352,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":60,"op":180,"st":60,"bm":0},{"ddd":0,"ind":68,"ty":4,"nm":"e 119","sr":1,"ks":{"p":{"a":0,"k":[393.663,197.239,0]},"a":{"a":0,"k":[149.663,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[150.576,-8.132],[144.722,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[151.53,-10.761],[149.582,-10.948],[144.561,-9.54],[140.398,-3.908],[140.398,-3.448],[143.567,-0.575],[144.534,-0.632],[144.695,-0.632],[149.153,-1.523],[155.222,-4.282],[158.928,-7.184],[157.827,-8.592],[153.906,-6.034],[145.178,-3.161],[142.976,-4.023],[143.835,-4.023],[147.434,-4.425],[151.073,-5.963],[153.315,-8.333],[153.208,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":61,"op":180,"st":61,"bm":0},{"ddd":0,"ind":69,"ty":4,"nm":"T 3 :M","sr":1,"ks":{"p":{"a":0,"k":[248.564,193.92,0]},"a":{"a":0,"k":[248.564,193.92,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[-133.55,-25.46],[-133.765,-25.574],[-133.657,-26.379],[-135.269,-27.758],[-135.376,-27.758],[-138.813,-24.655],[-155.894,-22.126],[-158.472,-20.747],[-158.472,-20.172],[-157.397,-18.908],[-157.183,-18.908],[-141.069,-21.552],[-147.729,-10.287],[-151.489,-2.471],[-156.323,10.402],[-156.323,10.517],[-156.216,10.517],[-154.497,7.873],[-153.745,6.724],[-152.241,3.621],[-148.159,-4.08],[-145.581,-8.678],[-140.103,-17.758],[-136.88,-22.356],[-104.331,-26.149],[-97.026,-27.414],[-98.423,-28.678],[-98.745,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"T","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[116.251,193.92]},"a":{"a":0,"k":[-127.749,-9.08]},"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":"T 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[-134.531,-19.598],[-145.327,0.115],[-145.327,0.575],[-144.253,1.724],[-143.823,1.724],[-142.104,0.345],[-135.686,-5.575],[-133.215,-4.31],[-129.563,-1.782],[-127.092,-2.126],[-119.062,-7.442],[-119.062,-7.902],[-120.244,-8.707],[-121.425,-8.477],[-128.596,-4.54],[-131.066,-5.575],[-135.256,-8.908],[-138.371,-7.529],[-138.479,-7.529],[-136.545,-11.552],[-131.308,-19.942],[-131.308,-20.287],[-132.168,-21.666],[-132.275,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[111.806,193.029]},"a":{"a":0,"k":[-132.194,-9.971]},"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":"h 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-114.05,-8.132],[-119.905,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-113.097,-10.761],[-115.044,-10.948],[-120.066,-9.54],[-124.229,-3.908],[-124.229,-3.448],[-121.06,-0.575],[-120.093,-0.632],[-119.932,-0.632],[-115.474,-1.523],[-109.404,-4.282],[-105.698,-7.184],[-106.799,-8.592],[-110.72,-6.034],[-119.448,-3.161],[-121.65,-4.023],[-120.791,-4.023],[-117.192,-4.425],[-113.554,-5.963],[-111.311,-8.333],[-111.419,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[129.037,197.239]},"a":{"a":0,"k":[-114.963,-5.761]},"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":"e 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[-89.048,-14.483],[-90.659,-14.598],[-92.271,-13.218],[-90.337,-11.839],[-95.171,-1.609],[-95.171,-1.494],[-94.097,0],[-93.667,0],[-82.173,-5.718],[-79.917,-7.557],[-80.454,-8.822],[-80.776,-8.822],[-82.065,-8.362],[-91.304,-3.678],[-91.519,-3.678],[-91.519,-3.793],[-87.437,-11.724],[-85.181,-11.695],[-83.677,-12.845],[-83.677,-13.649],[-84.858,-14.281],[-85.503,-14.253],[-86.255,-14.253],[-86.255,-14.368],[-83.784,-18.621],[-83.784,-18.735],[-84.858,-20],[-85.396,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[156.456,193]},"a":{"a":0,"k":[-87.544,-10]},"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":"t 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[-69.54,-9.655],[-68.6,-10.603],[-68.493,-11.236],[-70.883,-13.304],[-70.937,-13.304],[-79.02,-8.822],[-77.946,-10.919],[-79.02,-11.81],[-79.316,-11.781],[-84.324,-6.667],[-87.883,-1.351],[-87.883,-1.236],[-86.594,0.374],[-86.057,0.374],[-84.445,-1.121],[-70.964,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[165.812,196.535]},"a":{"a":0,"k":[-78.188,-6.465]},"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":"r 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[-69.07,-6.121],[-66.868,-6.523],[-65.686,-6.178],[-73.877,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[-62.517,-8.017],[-64.907,-9.655],[-71.648,-8.161],[-77.449,-3.764],[-77.449,-3.305],[-74.602,-0.259],[-74.011,-0.259],[-62.517,-4.799],[-59.133,-4.167],[-56.341,-4.483],[-52.742,-6.868],[-52.742,-7.442],[-53.494,-8.477],[-58.731,-7.184],[-62.544,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[178.905,198.043]},"a":{"a":0,"k":[-65.095,-4.957]},"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":"o","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.306],[0.681,-1.609],[0,0],[-0.931,-0.154],[0,0],[-2.292,1.782],[0,-0.287],[-0.537,-0.019],[0,0],[-3.169,2.299],[0,0.345],[0.895,0.019],[2.184,-0.613],[-1.325,1.743],[0,0],[0.501,0],[0.286,-0.23],[1.244,-0.92],[0.931,-0.134],[0,0.154]],"o":[[-0.305,0],[-2.864,3.295],[0,0],[0,0.843],[0,0],[1.558,-0.115],[-0.233,0.479],[0,0.46],[0,0],[4.565,-1.513],[0.43,-0.594],[0,-0.517],[-3.796,2.318],[0.304,-0.517],[0,0],[-0.376,-0.843],[-0.251,0],[-1.396,2.05],[-1.245,0.92],[2.649,-3.122],[-0.287,-0.843]],"v":[[-53.054,-9.483],[-54.102,-9.023],[-59.419,-1.667],[-59.419,-1.322],[-58.023,0.172],[-57.808,0.172],[-52.034,-2.672],[-52.383,-1.523],[-51.577,-0.805],[-51.255,-0.805],[-39.653,-6.523],[-39.009,-7.931],[-40.352,-8.736],[-49.321,-4.339],[-46.878,-7.73],[-46.475,-8.419],[-47.791,-9.684],[-48.596,-9.339],[-52.558,-4.885],[-55.82,-3.305],[-51.846,-8.218]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"u","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[194.786,198.244]},"a":{"a":0,"k":[-49.214,-4.756]},"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":"u","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.307,1.456],[-0.305,0],[0,0],[-0.09,-0.479],[2.184,-0.383]],"o":[[0.232,-0.421],[0,0],[0.34,0.039],[-0.448,1.897],[0.305,-0.92]],"v":[[-40.346,-6.063],[-39.54,-6.695],[-39.46,-6.695],[-38.815,-5.919],[-42.763,-2.5]],"c":true}},"nm":"b","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.292,-4.167],[0.501,-0.785],[0.501,-0.938],[0.179,-1.628],[0,0],[-0.859,-0.077],[0,0],[-1.199,0.632],[-0.233,2.433],[-1.415,0],[-1.146,0.364],[-0.305,1.456],[0.716,0.057],[1.665,0],[2.166,0.613],[-1.182,2.385],[-0.493,0.7],[0,0.268],[0.859,0.192]],"o":[[-2.292,4.167],[-0.501,0.786],[-1.056,1.36],[0,0],[0,0.766],[0,0],[0.609,0],[2.954,-1.475],[1.79,0.249],[1.701,0],[0.698,0],[0,-0.249],[-2.185,0.46],[-1.665,0],[0.77,-1.628],[1.182,-2.385],[0.492,-0.699],[0,-0.498],[-0.806,0.287]],"v":[[-38.171,-15.474],[-42.36,-8.046],[-43.864,-5.46],[-45.717,-0.977],[-45.502,-0.431],[-44.213,0.833],[-43.891,0.833],[-41.179,-0.115],[-36.398,-5.977],[-31.591,-5.603],[-27.321,-6.149],[-25.817,-8.333],[-26.892,-8.793],[-32.665,-8.103],[-38.413,-9.023],[-35.485,-15.043],[-32.974,-19.669],[-32.236,-21.12],[-33.525,-22.155]],"c":true}},"nm":"b","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"b","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[208.233,192.339]},"a":{"a":0,"k":[-35.767,-10.661]},"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":"b 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.134],[1.343,-2.969],[0,0],[-0.591,0],[0,0],[-1.996,0.986],[-5.156,2.548],[-0.698,0.709],[1.146,0.172],[0.859,-0.191],[-2.883,5.843],[0,0.594],[0.143,0.364]],"o":[[-0.358,0],[-5.622,11.686],[0,0],[0.269,0.92],[0,0],[0.233,0],[1.996,-0.986],[0.949,-0.651],[0,-0.977],[-7.609,4.119],[0.197,-0.44],[2.882,-5.843],[0,-0.191],[-0.287,-0.096]],"v":[[-21.718,-22.241],[-22.846,-22.04],[-33.293,-0.057],[-33.293,0.517],[-32.004,1.897],[-31.682,1.897],[-28.338,0.417],[-17.609,-4.885],[-15.139,-6.925],[-16.857,-8.649],[-29.56,-2.184],[-24.941,-11.609],[-20.617,-21.264],[-20.832,-22.097]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"l","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[219.784,192.828]},"a":{"a":0,"k":[-24.216,-10.172]},"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":"l 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[-10.219,-8.132],[-16.073,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[-9.265,-10.761],[-11.212,-10.948],[-16.234,-9.54],[-20.397,-3.908],[-20.397,-3.448],[-17.228,-0.575],[-16.261,-0.632],[-16.1,-0.632],[-11.642,-1.523],[-5.573,-4.282],[-1.867,-7.184],[-2.968,-8.592],[-6.889,-6.034],[-15.617,-3.161],[-17.819,-4.023],[-16.959,-4.023],[-13.361,-4.425],[-9.722,-5.963],[-7.479,-8.333],[-7.587,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[232.868,197.239]},"a":{"a":0,"k":[-11.132,-5.761]},"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":"e 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.465,0],[0.358,-0.402],[0,-1.322],[0,0],[-0.788,-0.632],[0,0],[-3.223,3.621],[0,-0.728],[-0.376,-0.383],[-0.287,0.077],[-1.361,0.651],[0,0],[-0.681,0],[-3.876,1.734],[0,0.69],[0,0],[0.573,0.345],[0,0],[1.862,-0.728],[0,0],[0.358,0],[0,0],[2.918,-2.222],[0,0],[0,0.402],[0,0],[0.573,0.766],[2.166,-1.915],[-0.036,0.632]],"o":[[-0.376,0],[-4.565,6.245],[0,0],[0,0.441],[0,0],[0.43,0],[-0.448,1.073],[0,0.671],[0.286,0],[2.363,-2.222],[0,0],[0.465,1.149],[1.021,0],[3.876,-1.734],[0,0],[0,-0.421],[0,0],[-4.548,1.954],[0,0],[-0.358,-1.149],[0,0],[-0.806,0],[0,0],[1.432,-1.743],[0,0],[0,-0.306],[-0.555,0],[1.36,-1.954],[-0.483,-0.651]],"v":[[-0.455,-13.017],[-1.557,-12.414],[-8.405,-1.063],[-8.405,-0.948],[-7.223,0.661],[-6.793,0.661],[-1.315,-4.77],[-1.986,-2.069],[-1.422,-0.488],[-0.563,-0.603],[5.023,-4.914],[3.868,-2.845],[5.587,-1.121],[12.932,-3.721],[18.746,-7.356],[18.746,-7.586],[17.887,-8.736],[16.92,-8.736],[7.306,-4.713],[8.649,-7.701],[7.574,-9.425],[7.359,-9.425],[1.774,-6.092],[1.666,-6.092],[3.815,-9.31],[3.815,-9.425],[2.955,-11.034],[-1.127,-8.161],[0.968,-12.04]],"c":true}},"nm":"m","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"m","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[249.171,196.822]},"a":{"a":0,"k":[5.171,-6.178]},"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":"m 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.276,0.786],[0,0],[0,0],[0.698,-0.038],[0,0]],"o":[[0,0],[0,0],[-4.243,2.414],[0,0],[1.594,-1.743]],"v":[[22.256,-7.356],[22.47,-7.356],[22.47,-7.241],[15.058,-3.563],[14.951,-3.563]],"c":true}},"nm":"a","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.417,-1.379],[0.824,-1.705],[0,0],[-0.859,0],[0,0],[-3.688,1.686],[0,0],[-0.376,0],[0,0],[-3.241,1.207],[0,0.728],[0.859,0.287],[2.524,-0.747],[0,0],[0,0.211],[0,0],[0.394,0],[1.217,-0.862],[0.931,0],[0.215,-0.038]],"o":[[-2.256,1.207],[0,0],[0.573,0.996],[0,0],[0.895,0],[0,0],[0,1.303],[0,0],[1.307,0],[5.317,-1.858],[0,-1.015],[-3.133,1.59],[0,0],[2.417,-1.935],[0,0],[-0.322,-1.073],[-0.215,0],[-0.09,-1.015],[-0.161,0],[-2.31,0]],"v":[[16.025,-7.586],[11.406,-3.218],[11.406,-2.299],[13.554,-0.805],[14.414,-0.805],[21.289,-3.333],[21.289,-2.816],[21.853,-0.862],[22.068,-0.862],[28.889,-2.672],[36.865,-6.552],[35.576,-8.506],[27.089,-5],[24.807,-4.54],[28.432,-7.759],[28.432,-7.873],[27.358,-9.483],[25.21,-8.19],[23.679,-9.713],[23.115,-9.655]],"c":true}},"nm":"a","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"a","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[268.135,197.741]},"a":{"a":0,"k":[24.135,-5.259]},"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":"a","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.806,-1.149],[1.54,-3.812],[0,0],[-0.716,-0.154],[0,0],[-0.232,0.153],[0,0],[-3.617,0.287],[-3.098,0.287],[0,0.422],[0.304,0.402],[0.841,0],[1.074,-0.096],[6.553,-0.996],[-0.842,0.575],[0,0],[0.269,0],[2.757,-1.628],[1.558,-0.823],[-4.136,7.261],[0.573,0.364],[0,0]],"o":[[-5.479,9.598],[0,0],[0,0.613],[0,0],[0.197,0],[0,0],[7.394,-1.494],[0.465,0],[0.447,-0.345],[0,-0.345],[-0.018,-0.172],[-0.609,0],[-2.542,0.211],[5.013,-2.433],[0,0],[-0.448,-0.536],[-0.931,0],[-2.238,1.284],[0.483,-1.303],[0,-0.785],[0,0],[-0.412,0]],"v":[[41.081,-20.258],[30.554,-0.144],[30.554,0.316],[31.628,1.465],[32.058,1.465],[32.702,1.236],[36.059,-2.874],[52.575,-5.546],[57.92,-5.977],[58.591,-7.126],[58.135,-8.247],[56.845,-8.506],[54.321,-8.362],[40.678,-6.552],[49.46,-11.063],[49.46,-12.213],[48.386,-13.017],[42.854,-10.575],[37.16,-7.414],[44.089,-20.258],[43.23,-21.983],[42.908,-21.983]],"c":true}},"nm":"k","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"k","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[288.573,192.741]},"a":{"a":0,"k":[44.573,-10.259]},"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":"k","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[62.813,-8.132],[56.959,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[63.767,-10.761],[61.82,-10.948],[56.798,-9.54],[52.635,-3.908],[52.635,-3.448],[55.804,-0.575],[56.771,-0.632],[56.932,-0.632],[61.39,-1.523],[67.459,-4.282],[71.165,-7.184],[70.064,-8.592],[66.143,-6.034],[57.415,-3.161],[55.213,-4.023],[56.073,-4.023],[59.671,-4.425],[63.31,-5.963],[65.553,-8.333],[65.445,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[305.9,197.239]},"a":{"a":0,"k":[61.9,-5.761]},"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":"e 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[82.6,-9.655],[83.54,-10.603],[83.648,-11.236],[81.258,-13.304],[81.204,-13.304],[73.12,-8.822],[74.195,-10.919],[73.12,-11.81],[72.825,-11.781],[67.817,-6.667],[64.258,-1.351],[64.258,-1.236],[65.547,0.374],[66.084,0.374],[67.696,-1.121],[81.177,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[317.953,196.535]},"a":{"a":0,"k":[73.953,-6.465]},"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":"r 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[79.157,-7.385],[79.265,-5.086],[79.157,-3.391],[79.184,-3.132],[78.378,-2.27],[76.955,-2.644],[75.935,-1.207],[76.069,-0.517],[77.492,0.805],[78.405,0.805],[81.923,-1.034],[89.47,-3.678],[95.27,-7.155],[95.27,-7.615],[93.981,-8.649],[93.552,-8.649],[81.628,-3.42],[81.735,-7.155],[84.689,-8.908],[85.764,-8.477],[86.784,-9.454],[86.865,-9.856],[83.83,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[329.602,197.626]},"a":{"a":0,"k":[85.602,-5.374]},"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":"s 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[88.752,-2.184],[88.752,-1.609],[90.149,0],[90.579,0],[91.975,-1.264],[91.975,-1.379],[91.116,-3.563],[90.364,-3.563]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":".","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[334.364,201.218]},"a":{"a":0,"k":[90.364,-1.782]},"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":". 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[131.077,-25.46],[130.862,-25.574],[130.969,-26.379],[129.358,-27.758],[129.251,-27.758],[125.813,-24.655],[108.733,-22.126],[106.155,-20.747],[106.155,-20.172],[107.229,-18.908],[107.444,-18.908],[123.557,-21.552],[116.897,-10.287],[113.137,-2.471],[108.303,10.402],[108.303,10.517],[108.411,10.517],[110.129,7.873],[110.881,6.724],[112.385,3.621],[116.467,-4.08],[119.045,-8.678],[124.524,-17.758],[127.747,-22.356],[160.295,-26.149],[167.6,-27.414],[166.204,-28.678],[165.881,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"T","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[380.878,193.92]},"a":{"a":0,"k":[136.878,-9.08]},"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":"T 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[130.096,-19.598],[119.3,0.115],[119.3,0.575],[120.374,1.724],[120.804,1.724],[122.522,0.345],[128.941,-5.575],[131.412,-4.31],[135.064,-1.782],[137.535,-2.126],[145.564,-7.442],[145.564,-7.902],[144.383,-8.707],[143.201,-8.477],[136.031,-4.54],[133.56,-5.575],[129.371,-8.908],[126.255,-7.529],[126.148,-7.529],[128.081,-11.552],[133.318,-19.942],[133.318,-20.287],[132.459,-21.666],[132.352,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[376.432,193.029]},"a":{"a":0,"k":[132.432,-9.971]},"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":"h 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[150.576,-8.132],[144.722,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[151.53,-10.761],[149.582,-10.948],[144.561,-9.54],[140.398,-3.908],[140.398,-3.448],[143.567,-0.575],[144.534,-0.632],[144.695,-0.632],[149.153,-1.523],[155.222,-4.282],[158.928,-7.184],[157.827,-8.592],[153.906,-6.034],[145.178,-3.161],[142.976,-4.023],[143.835,-4.023],[147.434,-4.425],[151.073,-5.963],[153.315,-8.333],[153.208,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[393.663,197.239]},"a":{"a":0,"k":[149.663,-5.761]},"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":"e 8","bm":0,"hd":false}],"ip":0,"op":9,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":4,"nm":"r 5","sr":1,"ks":{"p":{"a":0,"k":[100.619,236.535,0]},"a":{"a":0,"k":[4.619,-6.465,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[13.267,-9.655],[14.207,-10.603],[14.314,-11.236],[11.924,-13.304],[11.87,-13.304],[3.787,-8.822],[4.861,-10.919],[3.787,-11.81],[3.491,-11.781],[-1.517,-6.667],[-5.076,-1.351],[-5.076,-1.236],[-3.787,0.374],[-3.25,0.374],[-1.638,-1.121],[11.843,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":43,"op":180,"st":11,"bm":0},{"ddd":0,"ind":71,"ty":4,"nm":"o 4","sr":1,"ks":{"p":{"a":0,"k":[113.712,238.043,0]},"a":{"a":0,"k":[17.712,-4.957,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[13.737,-6.121],[15.939,-6.523],[17.121,-6.178],[8.93,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[20.29,-8.017],[17.9,-9.655],[11.159,-8.161],[5.358,-3.764],[5.358,-3.305],[8.205,-0.259],[8.796,-0.259],[20.29,-4.799],[23.674,-4.167],[26.466,-4.483],[30.065,-6.868],[30.065,-7.442],[29.313,-8.477],[24.076,-7.184],[20.263,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":44,"op":180,"st":12,"bm":0},{"ddd":0,"ind":72,"ty":4,"nm":"u 4","sr":1,"ks":{"p":{"a":0,"k":[129.593,238.244,0]},"a":{"a":0,"k":[33.593,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.306],[0.681,-1.609],[0,0],[-0.931,-0.154],[0,0],[-2.292,1.782],[0,-0.287],[-0.537,-0.019],[0,0],[-3.169,2.299],[0,0.345],[0.895,0.019],[2.184,-0.613],[-1.325,1.743],[0,0],[0.501,0],[0.286,-0.23],[1.244,-0.92],[0.931,-0.134],[0,0.154]],"o":[[-0.305,0],[-2.864,3.295],[0,0],[0,0.843],[0,0],[1.558,-0.115],[-0.233,0.479],[0,0.46],[0,0],[4.565,-1.513],[0.43,-0.594],[0,-0.517],[-3.796,2.318],[0.304,-0.517],[0,0],[-0.376,-0.843],[-0.251,0],[-1.396,2.05],[-1.245,0.92],[2.649,-3.122],[-0.287,-0.843]],"v":[[29.753,-9.483],[28.705,-9.023],[23.388,-1.667],[23.388,-1.322],[24.784,0.172],[24.999,0.172],[30.773,-2.672],[30.424,-1.523],[31.23,-0.805],[31.552,-0.805],[43.154,-6.523],[43.798,-7.931],[42.455,-8.736],[33.486,-4.339],[35.929,-7.73],[36.332,-8.419],[35.016,-9.684],[34.211,-9.339],[30.249,-4.885],[26.987,-3.305],[30.961,-8.218]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"u","bm":0,"hd":false}],"ip":45,"op":180,"st":13,"bm":0},{"ddd":0,"ind":73,"ty":4,"nm":"n 4","sr":1,"ks":{"p":{"a":0,"k":[144.358,238.244,0]},"a":{"a":0,"k":[48.358,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[44.477,-10.69],[43.134,-10.345],[35.668,-0.431],[35.668,-0.086],[36.42,1.178],[36.85,1.178],[37.494,0.948],[46.276,-5.287],[46.598,-4.942],[46.545,-4.598],[46.249,-2.73],[48.64,-0.488],[56.75,-4.167],[61.047,-7.471],[61.047,-7.816],[59.758,-8.506],[51.929,-4.813],[49.794,-4.109],[49.042,-4.914],[49.338,-6.293],[49.365,-6.782],[48.156,-8.506],[47.565,-8.621],[42.919,-6.063],[45.605,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":46,"op":180,"st":14,"bm":0},{"ddd":0,"ind":74,"ty":4,"nm":"d 3","sr":1,"ks":{"p":{"a":0,"k":[161.494,232.713,0]},"a":{"a":0,"k":[65.494,-10.287,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.313,0.527],[-0.877,0.805],[1.307,-1.341]],"o":[[0.313,-0.527],[-0.859,2.011],[0.662,-1.494]],"v":[[69.724,-14.325],[71.51,-16.322],[68.261,-11.293]],"c":true}},"nm":"d","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.215,0],[2.632,-2.701],[0,-0.766],[0,0],[-1.074,-0.306],[0,0],[-2.829,2.912],[-1.665,0],[-0.358,0.039],[-0.34,0.326],[-0.144,0.575],[0,0],[0.931,0.249],[1.683,0],[0.967,0.383],[-0.824,1.705],[-0.054,0.757],[0,0.077],[0.806,0],[0.322,-0.076],[0.054,-0.019],[2.005,-3.831],[0.322,-1.398],[0.358,0]],"o":[[-2.507,0],[-1.504,1.686],[0,0],[0,0.69],[0,0],[3.706,-0.651],[1.396,1.092],[0.34,0],[2.059,-0.287],[1.271,-0.594],[0,0],[0,-0.977],[-1.665,1.149],[-0.967,0],[2.578,-2.509],[0.823,-1.705],[0.054,-0.757],[0,-0.92],[-0.251,0],[-0.072,0],[-1.629,0.498],[-0.627,1.533],[-0.412,-0.536],[-0.233,-0.019]],"v":[[63.588,-10.029],[55.88,-5.977],[53.624,-2.299],[53.624,-1.839],[55.236,-0.345],[56.202,-0.345],[66.005,-5.69],[70.597,-4.052],[71.644,-4.109],[75.243,-5.029],[77.365,-6.782],[77.365,-6.896],[75.968,-8.736],[70.946,-7.011],[68.046,-7.586],[73.148,-13.908],[74.464,-17.6],[74.545,-18.85],[73.336,-20.23],[72.477,-20.115],[72.289,-20.086],[66.837,-13.592],[65.414,-9.195],[64.259,-10]],"c":true}},"nm":"d","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.286,0.709],[-1.683,0],[-0.179,-0.019],[2.9,-1.303]],"o":[[1.647,-1.839],[0.161,0],[-1.057,1.36],[0,-0.134]],"v":[[58.029,-4.253],[63.024,-7.011],[63.534,-6.983],[57.599,-2.988]],"c":true}},"nm":"d","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"d","bm":0,"hd":false}],"ip":47,"op":180,"st":15,"bm":0},{"ddd":0,"ind":75,"ty":4,"nm":"p 2","sr":1,"ks":{"p":{"a":0,"k":[189.451,244.509,0]},"a":{"a":0,"k":[93.451,1.509,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.69],[0.036,0.154],[0.465,0],[0.412,-0.172],[1.862,-3.506],[3.026,-7.031],[0,-0.192],[0,0],[-0.43,0],[0,0],[-0.716,0.613],[-1.414,3.036],[-0.573,1.092],[-0.645,0.92],[-1.2,0],[-0.215,-0.076],[0.931,-1.8],[0,-0.191],[-0.949,0],[-0.949,0.306],[-2.542,1.475],[-1.164,1.073],[0,0],[0.841,0.211],[2.775,-1.552],[0.286,0],[0,0.115],[-0.645,0.958],[0,0.671],[0.43,0.172],[0.823,0],[0.269,-0.038],[1.164,-0.843]],"o":[[0,-0.153],[-0.125,-0.479],[-0.305,0],[-0.716,0.249],[-1.862,3.506],[-0.859,1.571],[0,0],[0.43,0.766],[0,0],[0.09,0],[0.842,-1.571],[1.415,-3.037],[0.895,-1.667],[2.005,-1.647],[0.269,0],[-0.698,1.264],[-0.054,0.23],[0,0.785],[0.573,0],[1.056,-0.479],[2.542,-1.475],[0,0],[0,-0.249],[-2.417,1.552],[-0.949,0.671],[-0.125,0],[0,-0.306],[0.788,-1.264],[0,-0.498],[-0.483,-0.364],[-0.233,0],[-1.182,0.154],[0.662,-0.881]],"v":[[93.263,-10.172],[93.209,-10.632],[92.323,-11.35],[91.249,-11.092],[87.382,-5.46],[80.05,10.345],[78.761,12.988],[78.761,13.218],[80.05,14.368],[80.587,14.368],[81.796,13.448],[85.179,6.537],[88.16,0.345],[90.47,-3.534],[95.277,-6.006],[96.002,-5.891],[93.558,-1.293],[93.478,-0.661],[94.901,0.517],[97.184,0.057],[102.582,-2.874],[108.141,-6.695],[108.087,-7.816],[106.825,-8.506],[99.037,-3.851],[97.184,-2.845],[96.996,-3.017],[97.963,-4.914],[99.144,-7.816],[98.5,-8.822],[96.539,-9.368],[95.787,-9.31],[92.269,-7.816]],"c":true}},"nm":"p","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"p","bm":0,"hd":false}],"ip":48,"op":180,"st":16,"bm":0},{"ddd":0,"ind":76,"ty":4,"nm":"e 9","sr":1,"ks":{"p":{"a":0,"k":[208.202,237.239,0]},"a":{"a":0,"k":[112.202,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[113.115,-8.132],[107.261,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[114.069,-10.761],[112.122,-10.948],[107.1,-9.54],[102.937,-3.908],[102.937,-3.448],[106.106,-0.575],[107.073,-0.632],[107.234,-0.632],[111.692,-1.523],[117.761,-4.282],[121.467,-7.184],[120.366,-8.592],[116.446,-6.034],[107.717,-3.161],[105.515,-4.023],[106.375,-4.023],[109.973,-4.425],[113.612,-5.963],[115.855,-8.333],[115.747,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":49,"op":180,"st":17,"bm":0},{"ddd":0,"ind":77,"ty":4,"nm":"g 2","sr":1,"ks":{"p":{"a":0,"k":[220.392,245.098,0]},"a":{"a":0,"k":[124.392,2.098,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.972,2.72],[0.483,-0.671],[1.021,-0.479]],"o":[[-0.555,0.805],[-2.005,2.797],[1.092,-2.031]],"v":[[120.283,2.098],[118.726,4.31],[114.187,9.224]],"c":true}},"nm":"g","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.811,-1.283],[-0.877,0],[-0.125,-0.096]],"o":[[2.399,-2.145],[0.179,0],[-0.77,0.766]],"v":[[118.699,-4.023],[123.613,-7.241],[124.07,-7.098]],"c":true}},"nm":"g","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.128,0],[1.199,-0.479],[0.43,-1.063],[0,-0.44],[-0.555,-0.268],[-0.161,0],[-1.396,0.69],[-1.218,0.786],[0,0],[2.095,-2.088],[0.125,-2.069],[0,0],[-0.662,0],[0,0],[-2.775,3.506],[-1.074,2.011],[-3.608,1.763],[-0.824,0.786],[0,0],[0.645,0.307],[2.453,-0.823],[-0.322,0.939],[0.859,0.23]],"o":[[-0.394,-0.92],[-0.806,0],[-2.918,1.973],[-0.43,1.063],[0,0.651],[0.144,0.019],[1.039,0],[1.182,-0.479],[0,0],[-1.629,0.939],[-3.742,4.176],[0,0],[0.125,1.149],[0,0],[2.22,-0.958],[1.808,-2.491],[1.844,-0.671],[3.607,-1.762],[0,0],[0,-0.766],[-5.389,2.912],[1.701,-2.356],[0,-0.843],[0,0]],"v":[[126.138,-8.563],[123.855,-9.942],[120.847,-9.224],[115.825,-4.669],[115.181,-2.414],[116.013,-1.034],[116.47,-1.006],[120.122,-2.04],[123.721,-3.937],[121.76,-1.724],[116.174,2.816],[110.374,12.184],[110.374,12.414],[111.555,14.138],[111.77,14.138],[119.263,7.442],[123.587,0.69],[131.764,-2.96],[138.411,-6.782],[138.411,-7.011],[137.444,-8.621],[125.681,-3.017],[128.716,-7.96],[127.427,-9.569]],"c":true}},"nm":"g","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"g","bm":0,"hd":false}],"ip":50,"op":180,"st":18,"bm":0},{"ddd":0,"ind":78,"ty":4,"nm":"s 5","sr":1,"ks":{"p":{"a":0,"k":[237.123,237.626,0]},"a":{"a":0,"k":[141.123,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[134.677,-7.385],[134.785,-5.086],[134.677,-3.391],[134.704,-3.132],[133.899,-2.27],[132.475,-2.644],[131.455,-1.207],[131.589,-0.517],[133.012,0.805],[133.925,0.805],[137.443,-1.034],[144.99,-3.678],[150.791,-7.155],[150.791,-7.615],[149.502,-8.649],[149.072,-8.649],[137.148,-3.42],[137.256,-7.155],[140.21,-8.908],[141.284,-8.477],[142.304,-9.454],[142.385,-9.856],[139.35,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":51,"op":180,"st":19,"bm":0},{"ddd":0,"ind":79,"ty":4,"nm":"i 3","sr":1,"ks":{"p":{"a":0,"k":[263.159,236.448,0]},"a":{"a":0,"k":[167.159,-6.552,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[164.541,-10.057],[163.44,-9.856],[158.767,-0.776],[158.767,-0.201],[160.056,1.178],[160.378,1.178],[164.232,-0.56],[173.51,-5.115],[175.551,-7.069],[173.833,-8.793],[162.5,-2.902],[164.232,-5.876],[165.669,-9.08],[165.427,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[164.218,-11.494],[165.078,-10.862],[167.199,-11.35],[169.079,-13.161],[168.166,-14.281],[164.299,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"i","bm":0,"hd":false}],"ip":52,"op":180,"st":20,"bm":0},{"ddd":0,"ind":80,"ty":4,"nm":"n 3","sr":1,"ks":{"p":{"a":0,"k":[276.272,238.244,0]},"a":{"a":0,"k":[180.272,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[176.392,-10.69],[175.049,-10.345],[167.583,-0.431],[167.583,-0.086],[168.335,1.178],[168.765,1.178],[169.409,0.948],[178.191,-5.287],[178.513,-4.942],[178.46,-4.598],[178.164,-2.73],[180.554,-0.488],[188.665,-4.167],[192.962,-7.471],[192.962,-7.816],[191.673,-8.506],[183.844,-4.813],[181.709,-4.109],[180.957,-4.914],[181.253,-6.293],[181.279,-6.782],[180.071,-8.506],[179.48,-8.621],[174.834,-6.063],[177.52,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":53,"op":180,"st":21,"bm":0},{"ddd":0,"ind":81,"ty":4,"nm":"t 3","sr":1,"ks":{"p":{"a":0,"k":[306.256,233,0]},"a":{"a":0,"k":[210.256,-10,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[208.753,-14.483],[207.141,-14.598],[205.53,-13.218],[207.464,-11.839],[202.63,-1.609],[202.63,-1.494],[203.704,0],[204.133,0],[215.628,-5.718],[217.883,-7.557],[217.346,-8.822],[217.024,-8.822],[215.735,-8.362],[206.497,-3.678],[206.282,-3.678],[206.282,-3.793],[210.364,-11.724],[212.62,-11.695],[214.124,-12.845],[214.124,-13.649],[212.942,-14.281],[212.298,-14.253],[211.546,-14.253],[211.546,-14.368],[214.016,-18.621],[214.016,-18.735],[212.942,-20],[212.405,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":54,"op":180,"st":22,"bm":0},{"ddd":0,"ind":82,"ty":4,"nm":"h 5","sr":1,"ks":{"p":{"a":0,"k":[319.469,233.029,0]},"a":{"a":0,"k":[223.469,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[221.132,-19.598],[210.337,0.115],[210.337,0.575],[211.411,1.724],[211.84,1.724],[213.559,0.345],[219.978,-5.575],[222.448,-4.31],[226.101,-1.782],[228.571,-2.126],[236.601,-7.442],[236.601,-7.902],[235.42,-8.707],[234.238,-8.477],[227.068,-4.54],[224.597,-5.575],[220.407,-8.908],[217.292,-7.529],[217.185,-7.529],[219.118,-11.552],[224.355,-19.942],[224.355,-20.287],[223.496,-21.666],[223.388,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":55,"op":180,"st":23,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"e 110","sr":1,"ks":{"p":{"a":0,"k":[336.7,237.239,0]},"a":{"a":0,"k":[240.7,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[241.613,-8.132],[235.758,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[242.566,-10.761],[240.619,-10.948],[235.597,-9.54],[231.435,-3.908],[231.435,-3.448],[234.604,-0.575],[235.57,-0.632],[235.732,-0.632],[240.19,-1.523],[246.259,-4.282],[249.965,-7.184],[248.864,-8.592],[244.943,-6.034],[236.215,-3.161],[234.013,-4.023],[234.872,-4.023],[238.471,-4.425],[242.11,-5.963],[244.352,-8.333],[244.245,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":56,"op":180,"st":24,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"s 6","sr":1,"ks":{"p":{"a":0,"k":[364.71,237.626,0]},"a":{"a":0,"k":[268.71,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[262.265,-7.385],[262.372,-5.086],[262.265,-3.391],[262.292,-3.132],[261.486,-2.27],[260.063,-2.644],[259.042,-1.207],[259.176,-0.517],[260.6,0.805],[261.513,0.805],[265.031,-1.034],[272.577,-3.678],[278.378,-7.155],[278.378,-7.615],[277.089,-8.649],[276.659,-8.649],[264.736,-3.42],[264.843,-7.155],[267.797,-8.908],[268.871,-8.477],[269.892,-9.454],[269.972,-9.856],[266.938,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":57,"op":180,"st":25,"bm":0},{"ddd":0,"ind":85,"ty":4,"nm":"q 2","sr":1,"ks":{"p":{"a":0,"k":[379.162,244.853,0]},"a":{"a":0,"k":[283.162,1.853,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.202,-0.613],[0,0],[0,0],[-1.128,0],[0,0]],"o":[[0,0],[0,0],[2.184,-2.107],[0,0],[-1.182,1.552]],"v":[[275.294,-4.08],[275.186,-4.08],[275.186,-4.195],[280.155,-7.356],[280.369,-7.328]],"c":true}},"nm":"q","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.877,0],[1.486,-0.977],[0.34,-2.624],[-0.734,0],[0,0],[-2.524,1.341],[0,-0.192],[0,0],[-0.591,0],[0,0],[-0.734,0.479],[-2.516,2.96],[-5.049,4.042],[0,0.556],[0.071,0.134],[0.376,0],[0.161,-0.057],[6.463,-7.509],[-1.486,2.184],[-0.233,0.46],[0.626,0],[0.949,-0.709]],"o":[[-0.913,0],[-2.954,1.935],[0.197,1.149],[0,0],[1.361,-0.134],[-5.425,10.21],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.506,-2.816],[2.515,-2.96],[1.164,-0.747],[0,-0.134],[-0.269,-0.44],[-0.161,0],[-4.387,2.586],[3.67,-7.203],[0.197,-0.536],[-0.054,-0.958],[-0.519,0],[-0.305,-0.938]],"v":[[280.611,-10.661],[277.012,-9.195],[272.071,-2.356],[273.468,-0.632],[273.575,-0.632],[279.403,-2.845],[271.265,12.758],[271.265,12.988],[272.554,14.368],[272.984,14.368],[274.434,13.649],[281.967,4.986],[293.314,-5.517],[295.059,-7.471],[294.952,-7.873],[293.985,-8.534],[293.502,-8.448],[277.227,6.695],[284.962,-7.385],[285.606,-8.879],[284.586,-10.316],[282.384,-9.253]],"c":true}},"nm":"q","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"q","bm":0,"hd":false}],"ip":58,"op":180,"st":26,"bm":0},{"ddd":0,"ind":86,"ty":4,"nm":"u 3","sr":1,"ks":{"p":{"a":0,"k":[394.071,238.244,0]},"a":{"a":0,"k":[298.071,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.306],[0.681,-1.609],[0,0],[-0.931,-0.154],[0,0],[-2.292,1.782],[0,-0.287],[-0.537,-0.019],[0,0],[-3.169,2.299],[0,0.345],[0.895,0.019],[2.184,-0.613],[-1.325,1.743],[0,0],[0.501,0],[0.286,-0.23],[1.244,-0.92],[0.931,-0.134],[0,0.154]],"o":[[-0.305,0],[-2.864,3.295],[0,0],[0,0.843],[0,0],[1.558,-0.115],[-0.233,0.479],[0,0.46],[0,0],[4.565,-1.513],[0.43,-0.594],[0,-0.517],[-3.796,2.318],[0.304,-0.517],[0,0],[-0.376,-0.843],[-0.251,0],[-1.396,2.05],[-1.245,0.92],[2.649,-3.122],[-0.287,-0.843]],"v":[[294.231,-9.483],[293.183,-9.023],[287.866,-1.667],[287.866,-1.322],[289.262,0.172],[289.477,0.172],[295.251,-2.672],[294.902,-1.523],[295.708,-0.805],[296.03,-0.805],[307.632,-6.523],[308.276,-7.931],[306.933,-8.736],[297.964,-4.339],[300.408,-7.73],[300.81,-8.419],[299.494,-9.684],[298.689,-9.339],[294.728,-4.885],[291.465,-3.305],[295.439,-8.218]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"u","bm":0,"hd":false}],"ip":59,"op":180,"st":27,"bm":0},{"ddd":0,"ind":87,"ty":4,"nm":"a 2","sr":1,"ks":{"p":{"a":0,"k":[409.325,237.741,0]},"a":{"a":0,"k":[313.325,-5.259,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.276,0.786],[0,0],[0,0],[0.698,-0.038],[0,0]],"o":[[0,0],[0,0],[-4.243,2.414],[0,0],[1.594,-1.743]],"v":[[311.445,-7.356],[311.66,-7.356],[311.66,-7.241],[304.248,-3.563],[304.141,-3.563]],"c":true}},"nm":"a","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.417,-1.379],[0.824,-1.705],[0,0],[-0.859,0],[0,0],[-3.688,1.686],[0,0],[-0.376,0],[0,0],[-3.241,1.207],[0,0.728],[0.859,0.287],[2.524,-0.747],[0,0],[0,0.211],[0,0],[0.394,0],[1.217,-0.862],[0.931,0],[0.215,-0.038]],"o":[[-2.256,1.207],[0,0],[0.573,0.996],[0,0],[0.895,0],[0,0],[0,1.303],[0,0],[1.307,0],[5.317,-1.858],[0,-1.015],[-3.133,1.59],[0,0],[2.417,-1.935],[0,0],[-0.322,-1.073],[-0.215,0],[-0.09,-1.015],[-0.161,0],[-2.31,0]],"v":[[305.215,-7.586],[300.596,-3.218],[300.596,-2.299],[302.744,-0.805],[303.604,-0.805],[310.479,-3.333],[310.479,-2.816],[311.043,-0.862],[311.257,-0.862],[318.079,-2.672],[326.055,-6.552],[324.766,-8.506],[316.279,-5],[313.997,-4.54],[317.622,-7.759],[317.622,-7.873],[316.548,-9.483],[314.4,-8.19],[312.869,-9.713],[312.305,-9.655]],"c":true}},"nm":"a","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"a","bm":0,"hd":false}],"ip":60,"op":180,"st":28,"bm":0},{"ddd":0,"ind":88,"ty":4,"nm":"r 4","sr":1,"ks":{"p":{"a":0,"k":[424.809,236.535,0]},"a":{"a":0,"k":[328.809,-6.465,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[337.456,-9.655],[338.396,-10.603],[338.504,-11.236],[336.113,-13.304],[336.06,-13.304],[327.976,-8.822],[329.05,-10.919],[327.976,-11.81],[327.681,-11.781],[322.672,-6.667],[319.114,-1.351],[319.114,-1.236],[320.403,0.374],[320.94,0.374],[322.551,-1.121],[336.033,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":61,"op":180,"st":29,"bm":0},{"ddd":0,"ind":89,"ty":4,"nm":"e 111","sr":1,"ks":{"p":{"a":0,"k":[437.166,237.239,0]},"a":{"a":0,"k":[341.166,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[342.08,-8.132],[336.225,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[343.033,-10.761],[341.086,-10.948],[336.064,-9.54],[331.901,-3.908],[331.901,-3.448],[335.07,-0.575],[336.037,-0.632],[336.198,-0.632],[340.656,-1.523],[346.726,-4.282],[350.432,-7.184],[349.331,-8.592],[345.41,-6.034],[336.682,-3.161],[334.479,-4.023],[335.339,-4.023],[338.937,-4.425],[342.576,-5.963],[344.819,-8.333],[344.711,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":62,"op":180,"st":30,"bm":0},{"ddd":0,"ind":90,"ty":4,"nm":"r 4 :M","sr":1,"ks":{"p":{"a":0,"k":[268.678,239.351,0]},"a":{"a":0,"k":[268.678,239.351,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[13.267,-9.655],[14.207,-10.603],[14.314,-11.236],[11.924,-13.304],[11.87,-13.304],[3.787,-8.822],[4.861,-10.919],[3.787,-11.81],[3.491,-11.781],[-1.517,-6.667],[-5.076,-1.351],[-5.076,-1.236],[-3.787,0.374],[-3.25,0.374],[-1.638,-1.121],[11.843,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[100.619,236.535]},"a":{"a":0,"k":[4.619,-6.465]},"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":"r 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[13.737,-6.121],[15.939,-6.523],[17.121,-6.178],[8.93,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[20.29,-8.017],[17.9,-9.655],[11.159,-8.161],[5.358,-3.764],[5.358,-3.305],[8.205,-0.259],[8.796,-0.259],[20.29,-4.799],[23.674,-4.167],[26.466,-4.483],[30.065,-6.868],[30.065,-7.442],[29.313,-8.477],[24.076,-7.184],[20.263,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[113.712,238.043]},"a":{"a":0,"k":[17.712,-4.957]},"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":"o 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.306],[0.681,-1.609],[0,0],[-0.931,-0.154],[0,0],[-2.292,1.782],[0,-0.287],[-0.537,-0.019],[0,0],[-3.169,2.299],[0,0.345],[0.895,0.019],[2.184,-0.613],[-1.325,1.743],[0,0],[0.501,0],[0.286,-0.23],[1.244,-0.92],[0.931,-0.134],[0,0.154]],"o":[[-0.305,0],[-2.864,3.295],[0,0],[0,0.843],[0,0],[1.558,-0.115],[-0.233,0.479],[0,0.46],[0,0],[4.565,-1.513],[0.43,-0.594],[0,-0.517],[-3.796,2.318],[0.304,-0.517],[0,0],[-0.376,-0.843],[-0.251,0],[-1.396,2.05],[-1.245,0.92],[2.649,-3.122],[-0.287,-0.843]],"v":[[29.753,-9.483],[28.705,-9.023],[23.388,-1.667],[23.388,-1.322],[24.784,0.172],[24.999,0.172],[30.773,-2.672],[30.424,-1.523],[31.23,-0.805],[31.552,-0.805],[43.154,-6.523],[43.798,-7.931],[42.455,-8.736],[33.486,-4.339],[35.929,-7.73],[36.332,-8.419],[35.016,-9.684],[34.211,-9.339],[30.249,-4.885],[26.987,-3.305],[30.961,-8.218]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"u","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[129.593,238.244]},"a":{"a":0,"k":[33.593,-4.756]},"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":"u 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[44.477,-10.69],[43.134,-10.345],[35.668,-0.431],[35.668,-0.086],[36.42,1.178],[36.85,1.178],[37.494,0.948],[46.276,-5.287],[46.598,-4.942],[46.545,-4.598],[46.249,-2.73],[48.64,-0.488],[56.75,-4.167],[61.047,-7.471],[61.047,-7.816],[59.758,-8.506],[51.929,-4.813],[49.794,-4.109],[49.042,-4.914],[49.338,-6.293],[49.365,-6.782],[48.156,-8.506],[47.565,-8.621],[42.919,-6.063],[45.605,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[144.358,238.244]},"a":{"a":0,"k":[48.358,-4.756]},"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":"n","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.313,0.527],[-0.877,0.805],[1.307,-1.341]],"o":[[0.313,-0.527],[-0.859,2.011],[0.662,-1.494]],"v":[[69.724,-14.325],[71.51,-16.322],[68.261,-11.293]],"c":true}},"nm":"d","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.215,0],[2.632,-2.701],[0,-0.766],[0,0],[-1.074,-0.306],[0,0],[-2.829,2.912],[-1.665,0],[-0.358,0.039],[-0.34,0.326],[-0.144,0.575],[0,0],[0.931,0.249],[1.683,0],[0.967,0.383],[-0.824,1.705],[-0.054,0.757],[0,0.077],[0.806,0],[0.322,-0.076],[0.054,-0.019],[2.005,-3.831],[0.322,-1.398],[0.358,0]],"o":[[-2.507,0],[-1.504,1.686],[0,0],[0,0.69],[0,0],[3.706,-0.651],[1.396,1.092],[0.34,0],[2.059,-0.287],[1.271,-0.594],[0,0],[0,-0.977],[-1.665,1.149],[-0.967,0],[2.578,-2.509],[0.823,-1.705],[0.054,-0.757],[0,-0.92],[-0.251,0],[-0.072,0],[-1.629,0.498],[-0.627,1.533],[-0.412,-0.536],[-0.233,-0.019]],"v":[[63.588,-10.029],[55.88,-5.977],[53.624,-2.299],[53.624,-1.839],[55.236,-0.345],[56.202,-0.345],[66.005,-5.69],[70.597,-4.052],[71.644,-4.109],[75.243,-5.029],[77.365,-6.782],[77.365,-6.896],[75.968,-8.736],[70.946,-7.011],[68.046,-7.586],[73.148,-13.908],[74.464,-17.6],[74.545,-18.85],[73.336,-20.23],[72.477,-20.115],[72.289,-20.086],[66.837,-13.592],[65.414,-9.195],[64.259,-10]],"c":true}},"nm":"d","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.286,0.709],[-1.683,0],[-0.179,-0.019],[2.9,-1.303]],"o":[[1.647,-1.839],[0.161,0],[-1.057,1.36],[0,-0.134]],"v":[[58.029,-4.253],[63.024,-7.011],[63.534,-6.983],[57.599,-2.988]],"c":true}},"nm":"d","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"d","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[161.494,232.713]},"a":{"a":0,"k":[65.494,-10.287]},"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":"d","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.69],[0.036,0.154],[0.465,0],[0.412,-0.172],[1.862,-3.506],[3.026,-7.031],[0,-0.192],[0,0],[-0.43,0],[0,0],[-0.716,0.613],[-1.414,3.036],[-0.573,1.092],[-0.645,0.92],[-1.2,0],[-0.215,-0.076],[0.931,-1.8],[0,-0.191],[-0.949,0],[-0.949,0.306],[-2.542,1.475],[-1.164,1.073],[0,0],[0.841,0.211],[2.775,-1.552],[0.286,0],[0,0.115],[-0.645,0.958],[0,0.671],[0.43,0.172],[0.823,0],[0.269,-0.038],[1.164,-0.843]],"o":[[0,-0.153],[-0.125,-0.479],[-0.305,0],[-0.716,0.249],[-1.862,3.506],[-0.859,1.571],[0,0],[0.43,0.766],[0,0],[0.09,0],[0.842,-1.571],[1.415,-3.037],[0.895,-1.667],[2.005,-1.647],[0.269,0],[-0.698,1.264],[-0.054,0.23],[0,0.785],[0.573,0],[1.056,-0.479],[2.542,-1.475],[0,0],[0,-0.249],[-2.417,1.552],[-0.949,0.671],[-0.125,0],[0,-0.306],[0.788,-1.264],[0,-0.498],[-0.483,-0.364],[-0.233,0],[-1.182,0.154],[0.662,-0.881]],"v":[[93.263,-10.172],[93.209,-10.632],[92.323,-11.35],[91.249,-11.092],[87.382,-5.46],[80.05,10.345],[78.761,12.988],[78.761,13.218],[80.05,14.368],[80.587,14.368],[81.796,13.448],[85.179,6.537],[88.16,0.345],[90.47,-3.534],[95.277,-6.006],[96.002,-5.891],[93.558,-1.293],[93.478,-0.661],[94.901,0.517],[97.184,0.057],[102.582,-2.874],[108.141,-6.695],[108.087,-7.816],[106.825,-8.506],[99.037,-3.851],[97.184,-2.845],[96.996,-3.017],[97.963,-4.914],[99.144,-7.816],[98.5,-8.822],[96.539,-9.368],[95.787,-9.31],[92.269,-7.816]],"c":true}},"nm":"p","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"p","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[189.451,244.509]},"a":{"a":0,"k":[93.451,1.509]},"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":"p","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[113.115,-8.132],[107.261,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[114.069,-10.761],[112.122,-10.948],[107.1,-9.54],[102.937,-3.908],[102.937,-3.448],[106.106,-0.575],[107.073,-0.632],[107.234,-0.632],[111.692,-1.523],[117.761,-4.282],[121.467,-7.184],[120.366,-8.592],[116.446,-6.034],[107.717,-3.161],[105.515,-4.023],[106.375,-4.023],[109.973,-4.425],[113.612,-5.963],[115.855,-8.333],[115.747,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[208.202,237.239]},"a":{"a":0,"k":[112.202,-5.761]},"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":"e 11","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.972,2.72],[0.483,-0.671],[1.021,-0.479]],"o":[[-0.555,0.805],[-2.005,2.797],[1.092,-2.031]],"v":[[120.283,2.098],[118.726,4.31],[114.187,9.224]],"c":true}},"nm":"g","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.811,-1.283],[-0.877,0],[-0.125,-0.096]],"o":[[2.399,-2.145],[0.179,0],[-0.77,0.766]],"v":[[118.699,-4.023],[123.613,-7.241],[124.07,-7.098]],"c":true}},"nm":"g","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.128,0],[1.199,-0.479],[0.43,-1.063],[0,-0.44],[-0.555,-0.268],[-0.161,0],[-1.396,0.69],[-1.218,0.786],[0,0],[2.095,-2.088],[0.125,-2.069],[0,0],[-0.662,0],[0,0],[-2.775,3.506],[-1.074,2.011],[-3.608,1.763],[-0.824,0.786],[0,0],[0.645,0.307],[2.453,-0.823],[-0.322,0.939],[0.859,0.23]],"o":[[-0.394,-0.92],[-0.806,0],[-2.918,1.973],[-0.43,1.063],[0,0.651],[0.144,0.019],[1.039,0],[1.182,-0.479],[0,0],[-1.629,0.939],[-3.742,4.176],[0,0],[0.125,1.149],[0,0],[2.22,-0.958],[1.808,-2.491],[1.844,-0.671],[3.607,-1.762],[0,0],[0,-0.766],[-5.389,2.912],[1.701,-2.356],[0,-0.843],[0,0]],"v":[[126.138,-8.563],[123.855,-9.942],[120.847,-9.224],[115.825,-4.669],[115.181,-2.414],[116.013,-1.034],[116.47,-1.006],[120.122,-2.04],[123.721,-3.937],[121.76,-1.724],[116.174,2.816],[110.374,12.184],[110.374,12.414],[111.555,14.138],[111.77,14.138],[119.263,7.442],[123.587,0.69],[131.764,-2.96],[138.411,-6.782],[138.411,-7.011],[137.444,-8.621],[125.681,-3.017],[128.716,-7.96],[127.427,-9.569]],"c":true}},"nm":"g","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"g","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[220.392,245.098]},"a":{"a":0,"k":[124.392,2.098]},"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":"g","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[134.677,-7.385],[134.785,-5.086],[134.677,-3.391],[134.704,-3.132],[133.899,-2.27],[132.475,-2.644],[131.455,-1.207],[131.589,-0.517],[133.012,0.805],[133.925,0.805],[137.443,-1.034],[144.99,-3.678],[150.791,-7.155],[150.791,-7.615],[149.502,-8.649],[149.072,-8.649],[137.148,-3.42],[137.256,-7.155],[140.21,-8.908],[141.284,-8.477],[142.304,-9.454],[142.385,-9.856],[139.35,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[237.123,237.626]},"a":{"a":0,"k":[141.123,-5.374]},"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":"s 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[164.541,-10.057],[163.44,-9.856],[158.767,-0.776],[158.767,-0.201],[160.056,1.178],[160.378,1.178],[164.232,-0.56],[173.51,-5.115],[175.551,-7.069],[173.833,-8.793],[162.5,-2.902],[164.232,-5.876],[165.669,-9.08],[165.427,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[164.218,-11.494],[165.078,-10.862],[167.199,-11.35],[169.079,-13.161],[168.166,-14.281],[164.299,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"i","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[263.159,236.448]},"a":{"a":0,"k":[167.159,-6.552]},"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":"i 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[176.392,-10.69],[175.049,-10.345],[167.583,-0.431],[167.583,-0.086],[168.335,1.178],[168.765,1.178],[169.409,0.948],[178.191,-5.287],[178.513,-4.942],[178.46,-4.598],[178.164,-2.73],[180.554,-0.488],[188.665,-4.167],[192.962,-7.471],[192.962,-7.816],[191.673,-8.506],[183.844,-4.813],[181.709,-4.109],[180.957,-4.914],[181.253,-6.293],[181.279,-6.782],[180.071,-8.506],[179.48,-8.621],[174.834,-6.063],[177.52,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[276.272,238.244]},"a":{"a":0,"k":[180.272,-4.756]},"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":"n 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.144,-0.843],[0,0],[-0.913,0.862]],"v":[[208.753,-14.483],[207.141,-14.598],[205.53,-13.218],[207.464,-11.839],[202.63,-1.609],[202.63,-1.494],[203.704,0],[204.133,0],[215.628,-5.718],[217.883,-7.557],[217.346,-8.822],[217.024,-8.822],[215.735,-8.362],[206.497,-3.678],[206.282,-3.678],[206.282,-3.793],[210.364,-11.724],[212.62,-11.695],[214.124,-12.845],[214.124,-13.649],[212.942,-14.281],[212.298,-14.253],[211.546,-14.253],[211.546,-14.368],[214.016,-18.621],[214.016,-18.735],[212.942,-20],[212.405,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[306.256,233]},"a":{"a":0,"k":[210.256,-10]},"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":"t 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[221.132,-19.598],[210.337,0.115],[210.337,0.575],[211.411,1.724],[211.84,1.724],[213.559,0.345],[219.978,-5.575],[222.448,-4.31],[226.101,-1.782],[228.571,-2.126],[236.601,-7.442],[236.601,-7.902],[235.42,-8.707],[234.238,-8.477],[227.068,-4.54],[224.597,-5.575],[220.407,-8.908],[217.292,-7.529],[217.185,-7.529],[219.118,-11.552],[224.355,-19.942],[224.355,-20.287],[223.496,-21.666],[223.388,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[319.469,233.029]},"a":{"a":0,"k":[223.469,-9.971]},"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":"h 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[241.613,-8.132],[235.758,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[242.566,-10.761],[240.619,-10.948],[235.597,-9.54],[231.435,-3.908],[231.435,-3.448],[234.604,-0.575],[235.57,-0.632],[235.732,-0.632],[240.19,-1.523],[246.259,-4.282],[249.965,-7.184],[248.864,-8.592],[244.943,-6.034],[236.215,-3.161],[234.013,-4.023],[234.872,-4.023],[238.471,-4.425],[242.11,-5.963],[244.352,-8.333],[244.245,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[336.7,237.239]},"a":{"a":0,"k":[240.7,-5.761]},"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":"e 112","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[262.265,-7.385],[262.372,-5.086],[262.265,-3.391],[262.292,-3.132],[261.486,-2.27],[260.063,-2.644],[259.042,-1.207],[259.176,-0.517],[260.6,0.805],[261.513,0.805],[265.031,-1.034],[272.577,-3.678],[278.378,-7.155],[278.378,-7.615],[277.089,-8.649],[276.659,-8.649],[264.736,-3.42],[264.843,-7.155],[267.797,-8.908],[268.871,-8.477],[269.892,-9.454],[269.972,-9.856],[266.938,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[364.71,237.626]},"a":{"a":0,"k":[268.71,-5.374]},"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":"s 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.202,-0.613],[0,0],[0,0],[-1.128,0],[0,0]],"o":[[0,0],[0,0],[2.184,-2.107],[0,0],[-1.182,1.552]],"v":[[275.294,-4.08],[275.186,-4.08],[275.186,-4.195],[280.155,-7.356],[280.369,-7.328]],"c":true}},"nm":"q","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.877,0],[1.486,-0.977],[0.34,-2.624],[-0.734,0],[0,0],[-2.524,1.341],[0,-0.192],[0,0],[-0.591,0],[0,0],[-0.734,0.479],[-2.516,2.96],[-5.049,4.042],[0,0.556],[0.071,0.134],[0.376,0],[0.161,-0.057],[6.463,-7.509],[-1.486,2.184],[-0.233,0.46],[0.626,0],[0.949,-0.709]],"o":[[-0.913,0],[-2.954,1.935],[0.197,1.149],[0,0],[1.361,-0.134],[-5.425,10.21],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.506,-2.816],[2.515,-2.96],[1.164,-0.747],[0,-0.134],[-0.269,-0.44],[-0.161,0],[-4.387,2.586],[3.67,-7.203],[0.197,-0.536],[-0.054,-0.958],[-0.519,0],[-0.305,-0.938]],"v":[[280.611,-10.661],[277.012,-9.195],[272.071,-2.356],[273.468,-0.632],[273.575,-0.632],[279.403,-2.845],[271.265,12.758],[271.265,12.988],[272.554,14.368],[272.984,14.368],[274.434,13.649],[281.967,4.986],[293.314,-5.517],[295.059,-7.471],[294.952,-7.873],[293.985,-8.534],[293.502,-8.448],[277.227,6.695],[284.962,-7.385],[285.606,-8.879],[284.586,-10.316],[282.384,-9.253]],"c":true}},"nm":"q","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"q","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[379.162,244.853]},"a":{"a":0,"k":[283.162,1.853]},"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":"q","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.306],[0.681,-1.609],[0,0],[-0.931,-0.154],[0,0],[-2.292,1.782],[0,-0.287],[-0.537,-0.019],[0,0],[-3.169,2.299],[0,0.345],[0.895,0.019],[2.184,-0.613],[-1.325,1.743],[0,0],[0.501,0],[0.286,-0.23],[1.244,-0.92],[0.931,-0.134],[0,0.154]],"o":[[-0.305,0],[-2.864,3.295],[0,0],[0,0.843],[0,0],[1.558,-0.115],[-0.233,0.479],[0,0.46],[0,0],[4.565,-1.513],[0.43,-0.594],[0,-0.517],[-3.796,2.318],[0.304,-0.517],[0,0],[-0.376,-0.843],[-0.251,0],[-1.396,2.05],[-1.245,0.92],[2.649,-3.122],[-0.287,-0.843]],"v":[[294.231,-9.483],[293.183,-9.023],[287.866,-1.667],[287.866,-1.322],[289.262,0.172],[289.477,0.172],[295.251,-2.672],[294.902,-1.523],[295.708,-0.805],[296.03,-0.805],[307.632,-6.523],[308.276,-7.931],[306.933,-8.736],[297.964,-4.339],[300.408,-7.73],[300.81,-8.419],[299.494,-9.684],[298.689,-9.339],[294.728,-4.885],[291.465,-3.305],[295.439,-8.218]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"u","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[394.071,238.244]},"a":{"a":0,"k":[298.071,-4.756]},"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":"u 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-3.276,0.786],[0,0],[0,0],[0.698,-0.038],[0,0]],"o":[[0,0],[0,0],[-4.243,2.414],[0,0],[1.594,-1.743]],"v":[[311.445,-7.356],[311.66,-7.356],[311.66,-7.241],[304.248,-3.563],[304.141,-3.563]],"c":true}},"nm":"a","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.417,-1.379],[0.824,-1.705],[0,0],[-0.859,0],[0,0],[-3.688,1.686],[0,0],[-0.376,0],[0,0],[-3.241,1.207],[0,0.728],[0.859,0.287],[2.524,-0.747],[0,0],[0,0.211],[0,0],[0.394,0],[1.217,-0.862],[0.931,0],[0.215,-0.038]],"o":[[-2.256,1.207],[0,0],[0.573,0.996],[0,0],[0.895,0],[0,0],[0,1.303],[0,0],[1.307,0],[5.317,-1.858],[0,-1.015],[-3.133,1.59],[0,0],[2.417,-1.935],[0,0],[-0.322,-1.073],[-0.215,0],[-0.09,-1.015],[-0.161,0],[-2.31,0]],"v":[[305.215,-7.586],[300.596,-3.218],[300.596,-2.299],[302.744,-0.805],[303.604,-0.805],[310.479,-3.333],[310.479,-2.816],[311.043,-0.862],[311.257,-0.862],[318.079,-2.672],[326.055,-6.552],[324.766,-8.506],[316.279,-5],[313.997,-4.54],[317.622,-7.759],[317.622,-7.873],[316.548,-9.483],[314.4,-8.19],[312.869,-9.713],[312.305,-9.655]],"c":true}},"nm":"a","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"a","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[409.325,237.741]},"a":{"a":0,"k":[313.325,-5.259]},"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":"a 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.632],[0,0.192],[1.593,0.46],[0,0],[4.279,-2.988],[-0.018,0.613],[0.555,0],[0.107,-0.019],[2.372,-3.18],[0,-0.364],[0,0],[-0.859,-0.632],[0,0],[-0.645,0.996],[-3.402,1.169]],"o":[[0.394,0],[0.071,-0.23],[0,-0.92],[0,0],[-1.11,0],[0.698,-0.785],[-0.161,-0.594],[-0.09,0],[-0.967,0.23],[-2.372,3.18],[0,0],[0,0.441],[0,0],[0.43,0],[5.586,-5.134],[0.555,0.613]],"v":[[337.456,-9.655],[338.396,-10.603],[338.504,-11.236],[336.113,-13.304],[336.06,-13.304],[327.976,-8.822],[329.05,-10.919],[327.976,-11.81],[327.681,-11.781],[322.672,-6.667],[319.114,-1.351],[319.114,-1.236],[320.403,0.374],[320.94,0.374],[322.551,-1.121],[336.033,-10.575]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[424.809,236.535]},"a":{"a":0,"k":[328.809,-6.465]},"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":"r 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[342.08,-8.132],[336.225,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[343.033,-10.761],[341.086,-10.948],[336.064,-9.54],[331.901,-3.908],[331.901,-3.448],[335.07,-0.575],[336.037,-0.632],[336.198,-0.632],[340.656,-1.523],[346.726,-4.282],[350.432,-7.184],[349.331,-8.592],[345.41,-6.034],[336.682,-3.161],[334.479,-4.023],[335.339,-4.023],[338.937,-4.425],[342.576,-5.963],[344.819,-8.333],[344.711,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[437.166,237.239]},"a":{"a":0,"k":[341.166,-5.761]},"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":"e 111","bm":0,"hd":false}],"ip":0,"op":11,"st":0,"bm":0},{"ddd":0,"ind":91,"ty":4,"nm":"h 6","sr":1,"ks":{"p":{"a":0,"k":[104.943,271.029,0]},"a":{"a":0,"k":[8.943,28.029,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[6.606,18.402],[-4.189,38.115],[-4.189,38.575],[-3.115,39.724],[-2.686,39.724],[-0.967,38.345],[5.452,32.425],[7.922,33.69],[11.575,36.218],[14.045,35.874],[22.075,30.558],[22.075,30.098],[20.894,29.293],[19.712,29.523],[12.542,33.46],[10.071,32.425],[5.881,29.092],[2.766,30.471],[2.659,30.471],[4.592,26.448],[9.829,18.058],[9.829,17.713],[8.97,16.334],[8.862,16.334]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":66,"op":180,"st":0,"bm":0},{"ddd":0,"ind":92,"ty":4,"nm":"o 5","sr":1,"ks":{"p":{"a":0,"k":[123.261,276.043,0]},"a":{"a":0,"k":[27.261,33.043,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[23.286,31.879],[25.488,31.477],[26.67,31.822],[18.479,35.012]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[29.839,29.983],[27.449,28.345],[20.708,29.839],[14.907,34.236],[14.907,34.695],[17.754,37.741],[18.345,37.741],[29.839,33.201],[33.222,33.833],[36.015,33.517],[39.614,31.132],[39.614,30.558],[38.862,29.523],[33.625,30.816],[29.812,30.241]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":67,"op":180,"st":1,"bm":0},{"ddd":0,"ind":93,"ty":4,"nm":"l 4","sr":1,"ks":{"p":{"a":0,"k":[138.313,270.828,0]},"a":{"a":0,"k":[42.313,27.828,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.134],[1.343,-2.969],[0,0],[-0.591,0],[0,0],[-1.996,0.986],[-5.156,2.548],[-0.698,0.709],[1.146,0.172],[0.859,-0.191],[-2.883,5.843],[0,0.594],[0.143,0.364]],"o":[[-0.358,0],[-5.622,11.686],[0,0],[0.269,0.92],[0,0],[0.233,0],[1.996,-0.986],[0.949,-0.651],[0,-0.977],[-7.609,4.119],[0.197,-0.44],[2.882,-5.843],[0,-0.191],[-0.287,-0.096]],"v":[[44.811,15.759],[43.683,15.96],[33.236,37.943],[33.236,38.517],[34.525,39.897],[34.847,39.897],[38.191,38.417],[48.92,33.115],[51.39,31.075],[49.672,29.351],[36.969,35.816],[41.588,26.391],[45.912,16.736],[45.697,15.903]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"l","bm":0,"hd":false}],"ip":68,"op":180,"st":2,"bm":0},{"ddd":0,"ind":94,"ty":4,"nm":"e 112","sr":1,"ks":{"p":{"a":0,"k":[151.397,275.239,0]},"a":{"a":0,"k":[55.397,32.239,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[56.31,29.868],[50.456,31.822]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[57.264,27.239],[55.317,27.052],[50.295,28.46],[46.132,34.092],[46.132,34.552],[49.301,37.425],[50.268,37.368],[50.429,37.368],[54.887,36.477],[60.956,33.718],[64.662,30.816],[63.561,29.408],[59.64,31.966],[50.912,34.839],[48.71,33.977],[49.57,33.977],[53.168,33.575],[56.807,32.037],[59.05,29.667],[58.942,29.092]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":69,"op":180,"st":3,"bm":0},{"ddd":0,"ind":95,"ty":4,"nm":"s 8","sr":1,"ks":{"p":{"a":0,"k":[163.862,275.626,0]},"a":{"a":0,"k":[67.862,32.626,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[61.417,30.615],[61.524,32.914],[61.417,34.609],[61.443,34.868],[60.638,35.73],[59.214,35.356],[58.194,36.793],[58.328,37.483],[59.752,38.805],[60.665,38.805],[64.183,36.966],[71.729,34.322],[77.53,30.845],[77.53,30.385],[76.241,29.351],[75.811,29.351],[63.887,34.58],[63.995,30.845],[66.949,29.092],[68.023,29.523],[69.044,28.546],[69.124,28.144],[66.089,26.448]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":70,"op":180,"st":4,"bm":0},{"ddd":0,"ind":96,"ty":4,"nm":". 5","sr":1,"ks":{"p":{"a":0,"k":[187.199,279.218,0]},"a":{"a":0,"k":[91.199,36.218,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[89.588,35.816],[89.588,36.391],[90.984,38],[91.414,38],[92.811,36.736],[92.811,36.621],[91.951,34.437],[91.199,34.437]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":".","bm":0,"hd":false}],"ip":71,"op":180,"st":5,"bm":0},{"ddd":0,"ind":97,"ty":4,"nm":"h 6 :M","sr":1,"ks":{"p":{"a":0,"k":[140.311,270.828,0]},"a":{"a":0,"k":[140.311,270.828,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[6.606,18.402],[-4.189,38.115],[-4.189,38.575],[-3.115,39.724],[-2.686,39.724],[-0.967,38.345],[5.452,32.425],[7.922,33.69],[11.575,36.218],[14.045,35.874],[22.075,30.558],[22.075,30.098],[20.894,29.293],[19.712,29.523],[12.542,33.46],[10.071,32.425],[5.881,29.092],[2.766,30.471],[2.659,30.471],[4.592,26.448],[9.829,18.058],[9.829,17.713],[8.97,16.334],[8.862,16.334]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[104.943,271.029]},"a":{"a":0,"k":[8.943,28.029]},"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":"h 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[23.286,31.879],[25.488,31.477],[26.67,31.822],[18.479,35.012]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[29.839,29.983],[27.449,28.345],[20.708,29.839],[14.907,34.236],[14.907,34.695],[17.754,37.741],[18.345,37.741],[29.839,33.201],[33.222,33.833],[36.015,33.517],[39.614,31.132],[39.614,30.558],[38.862,29.523],[33.625,30.816],[29.812,30.241]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[123.261,276.043]},"a":{"a":0,"k":[27.261,33.043]},"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":"o 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.134],[1.343,-2.969],[0,0],[-0.591,0],[0,0],[-1.996,0.986],[-5.156,2.548],[-0.698,0.709],[1.146,0.172],[0.859,-0.191],[-2.883,5.843],[0,0.594],[0.143,0.364]],"o":[[-0.358,0],[-5.622,11.686],[0,0],[0.269,0.92],[0,0],[0.233,0],[1.996,-0.986],[0.949,-0.651],[0,-0.977],[-7.609,4.119],[0.197,-0.44],[2.882,-5.843],[0,-0.191],[-0.287,-0.096]],"v":[[44.811,15.759],[43.683,15.96],[33.236,37.943],[33.236,38.517],[34.525,39.897],[34.847,39.897],[38.191,38.417],[48.92,33.115],[51.39,31.075],[49.672,29.351],[36.969,35.816],[41.588,26.391],[45.912,16.736],[45.697,15.903]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"l","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[138.313,270.828]},"a":{"a":0,"k":[42.313,27.828]},"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":"l 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[56.31,29.868],[50.456,31.822]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[57.264,27.239],[55.317,27.052],[50.295,28.46],[46.132,34.092],[46.132,34.552],[49.301,37.425],[50.268,37.368],[50.429,37.368],[54.887,36.477],[60.956,33.718],[64.662,30.816],[63.561,29.408],[59.64,31.966],[50.912,34.839],[48.71,33.977],[49.57,33.977],[53.168,33.575],[56.807,32.037],[59.05,29.667],[58.942,29.092]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[151.397,275.239]},"a":{"a":0,"k":[55.397,32.239]},"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":"e 113","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[61.417,30.615],[61.524,32.914],[61.417,34.609],[61.443,34.868],[60.638,35.73],[59.214,35.356],[58.194,36.793],[58.328,37.483],[59.752,38.805],[60.665,38.805],[64.183,36.966],[71.729,34.322],[77.53,30.845],[77.53,30.385],[76.241,29.351],[75.811,29.351],[63.887,34.58],[63.995,30.845],[66.949,29.092],[68.023,29.523],[69.044,28.546],[69.124,28.144],[66.089,26.448]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[163.862,275.626]},"a":{"a":0,"k":[67.862,32.626]},"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":"s 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.747],[0,0],[-0.627,0],[0,0],[0,0.843],[0,0],[0.573,0.479],[0,0]],"o":[[0,0],[0.304,1.073],[0,0],[0.931,0],[0,0],[0,-0.977],[0,0],[-1.074,0.172]],"v":[[89.588,35.816],[89.588,36.391],[90.984,38],[91.414,38],[92.811,36.736],[92.811,36.621],[91.951,34.437],[91.199,34.437]],"c":true}},"nm":".","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":".","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[187.199,279.218]},"a":{"a":0,"k":[91.199,36.218]},"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":". 6","bm":0,"hd":false}],"ip":0,"op":11,"st":0,"bm":0},{"ddd":0,"ind":98,"ty":4,"nm":"T 6","sr":1,"ks":{"p":{"a":0,"k":[119.723,323.42,0]},"a":{"a":0,"k":[30.723,-9.08,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[24.922,-25.46],[24.707,-25.574],[24.814,-26.379],[23.203,-27.758],[23.096,-27.758],[19.658,-24.655],[2.578,-22.126],[0,-20.747],[0,-20.172],[1.074,-18.908],[1.289,-18.908],[17.402,-21.552],[10.742,-10.287],[6.982,-2.471],[2.148,10.402],[2.148,10.517],[2.256,10.517],[3.975,7.873],[4.727,6.724],[6.23,3.621],[10.313,-4.08],[12.891,-8.678],[18.369,-17.758],[21.592,-22.356],[54.141,-26.149],[61.445,-27.414],[60.049,-28.678],[59.727,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"T","bm":0,"hd":false}],"ip":65,"op":180,"st":-2,"bm":0},{"ddd":0,"ind":99,"ty":4,"nm":"h 7","sr":1,"ks":{"p":{"a":0,"k":[115.277,322.529,0]},"a":{"a":0,"k":[26.277,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[23.941,-19.598],[13.145,0.115],[13.145,0.575],[14.219,1.724],[14.649,1.724],[16.368,0.345],[22.786,-5.575],[25.257,-4.31],[28.909,-1.782],[31.38,-2.126],[39.41,-7.442],[39.41,-7.902],[38.228,-8.707],[37.046,-8.477],[29.876,-4.54],[27.405,-5.575],[23.216,-8.908],[20.1,-7.529],[19.993,-7.529],[21.927,-11.552],[27.163,-19.942],[27.163,-20.287],[26.304,-21.666],[26.197,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":66,"op":180,"st":-1,"bm":0},{"ddd":0,"ind":100,"ty":4,"nm":"e 113","sr":1,"ks":{"p":{"a":0,"k":[132.508,326.739,0]},"a":{"a":0,"k":[43.508,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[44.421,-8.132],[38.567,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[45.375,-10.761],[43.428,-10.948],[38.406,-9.54],[34.243,-3.908],[34.243,-3.448],[37.412,-0.575],[38.379,-0.632],[38.54,-0.632],[42.998,-1.523],[49.067,-4.282],[52.773,-7.184],[51.672,-8.592],[47.751,-6.034],[39.023,-3.161],[36.821,-4.023],[37.681,-4.023],[41.279,-4.425],[44.918,-5.963],[47.161,-8.333],[47.053,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":67,"op":180,"st":0,"bm":0},{"ddd":0,"ind":101,"ty":4,"nm":"o 7","sr":1,"ks":{"p":{"a":0,"k":[160.894,327.543,0]},"a":{"a":0,"k":[71.894,-4.957,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[67.92,-6.121],[70.122,-6.523],[71.304,-6.178],[63.113,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[74.473,-8.017],[72.082,-9.655],[65.342,-8.161],[59.541,-3.764],[59.541,-3.305],[62.388,-0.259],[62.978,-0.259],[74.473,-4.799],[77.856,-4.167],[80.649,-4.483],[84.248,-6.868],[84.248,-7.442],[83.496,-8.477],[78.259,-7.184],[74.446,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":68,"op":180,"st":1,"bm":0},{"ddd":0,"ind":102,"ty":4,"nm":"n 6","sr":1,"ks":{"p":{"a":0,"k":[178.527,327.744,0]},"a":{"a":0,"k":[89.527,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[85.646,-10.69],[84.304,-10.345],[76.838,-0.431],[76.838,-0.086],[77.59,1.178],[78.02,1.178],[78.664,0.948],[87.446,-5.287],[87.768,-4.942],[87.714,-4.598],[87.419,-2.73],[89.809,-0.488],[97.919,-4.167],[102.216,-7.471],[102.216,-7.816],[100.927,-8.506],[93.099,-4.813],[90.964,-4.109],[90.212,-4.914],[90.507,-6.293],[90.534,-6.782],[89.326,-8.506],[88.735,-8.621],[84.089,-6.063],[86.774,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":69,"op":180,"st":2,"bm":0},{"ddd":0,"ind":103,"ty":4,"nm":"e 114","sr":1,"ks":{"p":{"a":0,"k":[195.035,326.739,0]},"a":{"a":0,"k":[106.035,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[106.948,-8.132],[101.093,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[107.901,-10.761],[105.954,-10.948],[100.932,-9.54],[96.77,-3.908],[96.77,-3.448],[99.939,-0.575],[100.905,-0.632],[101.066,-0.632],[105.525,-1.523],[111.594,-4.282],[115.3,-7.184],[114.199,-8.592],[110.278,-6.034],[101.55,-3.161],[99.348,-4.023],[100.207,-4.023],[103.806,-4.425],[107.445,-5.963],[109.687,-8.333],[109.58,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":70,"op":180,"st":3,"bm":0},{"ddd":0,"ind":104,"ty":4,"nm":"s 9","sr":1,"ks":{"p":{"a":0,"k":[207.499,327.126,0]},"a":{"a":0,"k":[118.499,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[112.054,-7.385],[112.162,-5.086],[112.054,-3.391],[112.081,-3.132],[111.275,-2.27],[109.852,-2.644],[108.831,-1.207],[108.966,-0.517],[110.389,0.805],[111.302,0.805],[114.82,-1.034],[122.367,-3.678],[128.167,-7.155],[128.167,-7.615],[126.878,-8.649],[126.449,-8.649],[114.525,-3.42],[114.632,-7.155],[117.586,-8.908],[118.661,-8.477],[119.681,-9.454],[119.762,-9.856],[116.727,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":71,"op":180,"st":4,"bm":0},{"ddd":0,"ind":105,"ty":4,"nm":"w 2","sr":1,"ks":{"p":{"a":0,"k":[236.53,327.385,0]},"a":{"a":0,"k":[147.53,-5.115,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.179,0],[1.056,-1.494],[1.611,-2.777],[-0.662,0],[0,0],[-2.059,1.456],[0,-0.517],[-1.182,0],[0,0],[-2.489,3.161],[-0.877,0],[-0.77,0.172],[-0.358,0.805],[0,0],[0.788,0.307],[0.689,-0.124],[0.376,0],[1.199,0.364],[0.161,0],[0.269,-0.326],[0.018,-0.038],[1.396,-0.364],[-0.573,1.054],[0.143,0],[0,0],[0.054,0],[3.419,-2.394],[-0.501,0.575],[0,0],[0.412,0],[0,0]],"o":[[-0.645,0],[-1.325,1.897],[0.34,1.073],[0,0],[1.307,-0.862],[-0.34,0.824],[0,0.977],[0,0],[2.292,-0.747],[1.11,0.096],[1.217,0],[1.343,-0.287],[0,0],[0,-0.613],[-0.967,0.383],[-0.689,0.125],[-0.877,0],[-0.179,-0.076],[-0.34,0],[-0.036,0.039],[-1.862,2.701],[0.967,-1.303],[-0.054,-0.575],[0,0],[-0.036,-0.019],[-0.609,0],[2.22,-2.835],[0,0],[-0.305,-0.536],[0,0],[-0.144,-0.096]],"v":[[142.481,-10.546],[139.93,-8.305],[135.526,-1.293],[137.03,0.316],[137.459,0.316],[142.508,-3.161],[141.998,-1.149],[143.77,0.316],[143.851,0.316],[151.021,-5.546],[154.002,-5.402],[156.983,-5.661],[159.535,-7.299],[159.535,-7.414],[158.353,-8.793],[155.869,-8.032],[154.271,-7.845],[151.156,-8.391],[150.645,-8.506],[149.732,-8.017],[149.652,-7.902],[144.764,-3.305],[147.074,-6.839],[146.778,-7.701],[146.349,-7.701],[146.214,-7.73],[140.172,-4.138],[144.254,-9.253],[144.254,-9.598],[143.18,-10.402],[142.965,-10.402]],"c":true}},"nm":"w","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"w","bm":0,"hd":false}],"ip":72,"op":180,"st":5,"bm":0},{"ddd":0,"ind":106,"ty":4,"nm":"h 8","sr":1,"ks":{"p":{"a":0,"k":[253.42,322.529,0]},"a":{"a":0,"k":[164.42,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[162.083,-19.598],[151.288,0.115],[151.288,0.575],[152.362,1.724],[152.791,1.724],[154.51,0.345],[160.929,-5.575],[163.399,-4.31],[167.052,-1.782],[169.522,-2.126],[177.552,-7.442],[177.552,-7.902],[176.371,-8.707],[175.189,-8.477],[168.019,-4.54],[165.548,-5.575],[161.358,-8.908],[158.243,-7.529],[158.136,-7.529],[160.069,-11.552],[165.306,-19.942],[165.306,-20.287],[164.447,-21.666],[164.339,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":73,"op":180,"st":6,"bm":0},{"ddd":0,"ind":107,"ty":4,"nm":"o 6","sr":1,"ks":{"p":{"a":0,"k":[271.738,327.543,0]},"a":{"a":0,"k":[182.738,-4.957,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[178.763,-6.121],[180.965,-6.523],[182.147,-6.178],[173.956,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[185.316,-8.017],[182.926,-9.655],[176.185,-8.161],[170.384,-3.764],[170.384,-3.305],[173.231,-0.259],[173.822,-0.259],[185.316,-4.799],[188.699,-4.167],[191.492,-4.483],[195.091,-6.868],[195.091,-7.442],[194.339,-8.477],[189.102,-7.184],[185.289,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":74,"op":180,"st":7,"bm":0},{"ddd":0,"ind":108,"ty":4,"nm":"s 111","sr":1,"ks":{"p":{"a":0,"k":[302.46,327.126,0]},"a":{"a":0,"k":[213.46,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[207.015,-7.385],[207.122,-5.086],[207.015,-3.391],[207.042,-3.132],[206.236,-2.27],[204.813,-2.644],[203.792,-1.207],[203.927,-0.517],[205.35,0.805],[206.263,0.805],[209.781,-1.034],[217.327,-3.678],[223.128,-7.155],[223.128,-7.615],[221.839,-8.649],[221.409,-8.649],[209.486,-3.42],[209.593,-7.155],[212.547,-8.908],[213.621,-8.477],[214.642,-9.454],[214.722,-9.856],[211.688,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":75,"op":180,"st":8,"bm":0},{"ddd":0,"ind":109,"ty":4,"nm":"e 112","sr":1,"ks":{"p":{"a":0,"k":[315.553,326.739,0]},"a":{"a":0,"k":[226.553,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[227.466,-8.132],[221.611,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[228.419,-10.761],[226.472,-10.948],[221.45,-9.54],[217.287,-3.908],[217.287,-3.448],[220.456,-0.575],[221.423,-0.632],[221.584,-0.632],[226.042,-1.523],[232.112,-4.282],[235.818,-7.184],[234.717,-8.592],[230.796,-6.034],[222.068,-3.161],[219.866,-4.023],[220.725,-4.023],[224.324,-4.425],[227.962,-5.963],[230.205,-8.333],[230.097,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":76,"op":180,"st":9,"bm":0},{"ddd":0,"ind":110,"ty":4,"nm":"e 113","sr":1,"ks":{"p":{"a":0,"k":[328.912,326.739,0]},"a":{"a":0,"k":[239.912,-5.761,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[240.826,-8.132],[234.971,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[241.779,-10.761],[239.832,-10.948],[234.81,-9.54],[230.647,-3.908],[230.647,-3.448],[233.816,-0.575],[234.783,-0.632],[234.944,-0.632],[239.402,-1.523],[245.472,-4.282],[249.178,-7.184],[248.077,-8.592],[244.156,-6.034],[235.428,-3.161],[233.225,-4.023],[234.085,-4.023],[237.683,-4.425],[241.322,-5.963],[243.565,-8.333],[243.457,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":77,"op":180,"st":10,"bm":0},{"ddd":0,"ind":111,"ty":4,"nm":"t 5","sr":1,"ks":{"p":{"a":0,"k":[356.332,322.5,0]},"a":{"a":0,"k":[267.332,-10,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.143,-0.843],[0,0],[-0.913,0.862]],"v":[[265.828,-14.483],[264.217,-14.598],[262.605,-13.218],[264.539,-11.839],[259.705,-1.609],[259.705,-1.494],[260.779,0],[261.209,0],[272.703,-5.718],[274.959,-7.557],[274.422,-8.822],[274.099,-8.822],[272.81,-8.362],[263.572,-3.678],[263.357,-3.678],[263.357,-3.793],[267.439,-11.724],[269.695,-11.695],[271.199,-12.845],[271.199,-13.649],[270.017,-14.281],[269.373,-14.253],[268.621,-14.253],[268.621,-14.368],[271.092,-18.621],[271.092,-18.735],[270.017,-20],[269.48,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":78,"op":180,"st":11,"bm":0},{"ddd":0,"ind":112,"ty":4,"nm":"h 111","sr":1,"ks":{"p":{"a":0,"k":[369.544,322.529,0]},"a":{"a":0,"k":[280.544,-9.971,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[278.208,-19.598],[267.412,0.115],[267.412,0.575],[268.486,1.724],[268.916,1.724],[270.635,0.345],[277.053,-5.575],[279.524,-4.31],[283.176,-1.782],[285.647,-2.126],[293.677,-7.442],[293.677,-7.902],[292.495,-8.707],[291.313,-8.477],[284.143,-4.54],[281.672,-5.575],[277.483,-8.908],[274.368,-7.529],[274.26,-7.529],[276.194,-11.552],[281.431,-19.942],[281.431,-20.287],[280.571,-21.666],[280.464,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":79,"op":180,"st":12,"bm":0},{"ddd":0,"ind":113,"ty":4,"nm":"i 6","sr":1,"ks":{"p":{"a":0,"k":[384.801,325.948,0]},"a":{"a":0,"k":[295.801,-6.552,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[293.182,-10.057],[292.081,-9.856],[287.408,-0.776],[287.408,-0.201],[288.697,1.178],[289.02,1.178],[292.874,-0.56],[302.152,-5.115],[304.193,-7.069],[302.474,-8.793],[291.141,-2.902],[292.874,-5.876],[294.31,-9.08],[294.069,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[292.86,-11.494],[293.719,-10.862],[295.841,-11.35],[297.721,-13.161],[296.808,-14.281],[292.941,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"i","bm":0,"hd":false}],"ip":80,"op":180,"st":13,"bm":0},{"ddd":0,"ind":114,"ty":4,"nm":"n 5","sr":1,"ks":{"p":{"a":0,"k":[397.914,327.744,0]},"a":{"a":0,"k":[308.914,-4.756,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.143,-0.67]],"v":[[305.033,-10.69],[303.691,-10.345],[296.225,-0.431],[296.225,-0.086],[296.977,1.178],[297.406,1.178],[298.051,0.948],[306.833,-5.287],[307.155,-4.942],[307.101,-4.598],[306.806,-2.73],[309.196,-0.488],[317.306,-4.167],[321.603,-7.471],[321.603,-7.816],[320.314,-8.506],[312.486,-4.813],[310.351,-4.109],[309.599,-4.914],[309.894,-6.293],[309.921,-6.782],[308.713,-8.506],[308.122,-8.621],[303.476,-6.063],[306.161,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":81,"op":180,"st":14,"bm":0},{"ddd":0,"ind":115,"ty":4,"nm":"g 3","sr":1,"ks":{"p":{"a":0,"k":[413.109,334.598,0]},"a":{"a":0,"k":[324.109,2.098,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.972,2.72],[0.483,-0.671],[1.021,-0.479]],"o":[[-0.555,0.805],[-2.005,2.797],[1.092,-2.031]],"v":[[320,2.098],[318.442,4.31],[313.904,9.224]],"c":true}},"nm":"g","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.811,-1.283],[-0.877,0],[-0.125,-0.096]],"o":[[2.399,-2.145],[0.179,0],[-0.77,0.766]],"v":[[318.415,-4.023],[323.33,-7.241],[323.786,-7.098]],"c":true}},"nm":"g","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.128,0],[1.199,-0.479],[0.43,-1.063],[0,-0.44],[-0.555,-0.268],[-0.161,0],[-1.396,0.69],[-1.218,0.786],[0,0],[2.095,-2.088],[0.125,-2.069],[0,0],[-0.662,0],[0,0],[-2.775,3.506],[-1.074,2.011],[-3.608,1.763],[-0.824,0.786],[0,0],[0.645,0.307],[2.453,-0.823],[-0.322,0.939],[0.859,0.23]],"o":[[-0.394,-0.92],[-0.806,0],[-2.918,1.973],[-0.43,1.063],[0,0.651],[0.143,0.019],[1.039,0],[1.182,-0.479],[0,0],[-1.629,0.939],[-3.742,4.176],[0,0],[0.125,1.149],[0,0],[2.22,-0.958],[1.808,-2.491],[1.844,-0.671],[3.607,-1.762],[0,0],[0,-0.766],[-5.389,2.912],[1.701,-2.356],[0,-0.843],[0,0]],"v":[[325.854,-8.563],[323.572,-9.942],[320.564,-9.224],[315.542,-4.669],[314.897,-2.414],[315.73,-1.034],[316.186,-1.006],[319.839,-2.04],[323.437,-3.937],[321.477,-1.724],[315.891,2.816],[310.09,12.184],[310.09,12.414],[311.272,14.138],[311.487,14.138],[318.979,7.442],[323.303,0.69],[331.48,-2.96],[338.127,-6.782],[338.127,-7.011],[337.16,-8.621],[325.398,-3.017],[328.432,-7.96],[327.143,-9.569]],"c":true}},"nm":"g","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"g","bm":0,"hd":false}],"ip":82,"op":180,"st":15,"bm":0},{"ddd":0,"ind":116,"ty":4,"nm":"s 112","sr":1,"ks":{"p":{"a":0,"k":[429.839,327.126,0]},"a":{"a":0,"k":[340.839,-5.374,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[334.394,-7.385],[334.501,-5.086],[334.394,-3.391],[334.421,-3.132],[333.615,-2.27],[332.192,-2.644],[331.171,-1.207],[331.305,-0.517],[332.729,0.805],[333.642,0.805],[337.16,-1.034],[344.706,-3.678],[350.507,-7.155],[350.507,-7.615],[349.218,-8.649],[348.788,-8.649],[336.864,-3.42],[336.972,-7.155],[339.926,-8.908],[341,-8.477],[342.021,-9.454],[342.101,-9.856],[339.067,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":83,"op":180,"st":16,"bm":0},{"ddd":0,"ind":117,"ty":4,"nm":"T 5 :M","sr":1,"ks":{"p":{"a":0,"k":[264.254,325.23,0]},"a":{"a":0,"k":[264.254,325.23,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[20.857,-2.145],[0,0],[0,0],[1.074,0.383],[0,0],[1.253,-2.069],[8.182,-1.073],[0.394,-0.92],[0,0],[-0.716,-0.268],[0,0],[-6.714,0.843],[3.706,-6.188],[0.823,-1.532],[1.754,-5.977],[0,0],[0,0],[-0.466,1.207],[-0.501,0.019],[-0.233,0.134],[0,0],[-0.448,0.479],[-1.79,2.605],[-0.752,0.632],[0,0],[0,0.517],[0.931,0.134],[0,0]],"o":[[0,0],[0,0],[0,-0.536],[0,0],[-1.039,0],[-3.205,0.613],[-1.325,0],[0,0],[0,0.575],[0,0],[4.028,-0.92],[-0.734,1.322],[-1.683,3.678],[-1.468,2.605],[0,0],[0,0],[0.68,-0.556],[0,-0.747],[0.77,-1.935],[0,0],[1.271,-2.586],[1.862,-3.448],[1.396,-2.433],[0,0],[4.87,-0.326],[0,-0.709],[0,0],[-2.346,0]],"v":[[24.922,-25.46],[24.707,-25.574],[24.814,-26.379],[23.203,-27.758],[23.096,-27.758],[19.658,-24.655],[2.578,-22.126],[0,-20.747],[0,-20.172],[1.074,-18.908],[1.289,-18.908],[17.402,-21.552],[10.742,-10.287],[6.982,-2.471],[2.148,10.402],[2.148,10.517],[2.256,10.517],[3.975,7.873],[4.727,6.724],[6.23,3.621],[10.313,-4.08],[12.891,-8.678],[18.369,-17.758],[21.592,-22.356],[54.141,-26.149],[61.445,-27.414],[60.049,-28.678],[59.727,-28.678]],"c":true}},"nm":"T","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"T","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[119.723,323.42]},"a":{"a":0,"k":[30.723,-9.08]},"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":"T 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[23.941,-19.598],[13.145,0.115],[13.145,0.575],[14.219,1.724],[14.649,1.724],[16.368,0.345],[22.786,-5.575],[25.257,-4.31],[28.909,-1.782],[31.38,-2.126],[39.41,-7.442],[39.41,-7.902],[38.228,-8.707],[37.046,-8.477],[29.876,-4.54],[27.405,-5.575],[23.216,-8.908],[20.1,-7.529],[19.993,-7.529],[21.927,-11.552],[27.163,-19.942],[27.163,-20.287],[26.304,-21.666],[26.197,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[115.277,322.529]},"a":{"a":0,"k":[26.277,-9.971]},"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":"h 9","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[44.421,-8.132],[38.567,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[45.375,-10.761],[43.428,-10.948],[38.406,-9.54],[34.243,-3.908],[34.243,-3.448],[37.412,-0.575],[38.379,-0.632],[38.54,-0.632],[42.998,-1.523],[49.067,-4.282],[52.773,-7.184],[51.672,-8.592],[47.751,-6.034],[39.023,-3.161],[36.821,-4.023],[37.681,-4.023],[41.279,-4.425],[44.918,-5.963],[47.161,-8.333],[47.053,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[132.508,326.739]},"a":{"a":0,"k":[43.508,-5.761]},"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":"e 114","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[67.92,-6.121],[70.122,-6.523],[71.304,-6.178],[63.113,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[74.473,-8.017],[72.082,-9.655],[65.342,-8.161],[59.541,-3.764],[59.541,-3.305],[62.388,-0.259],[62.978,-0.259],[74.473,-4.799],[77.856,-4.167],[80.649,-4.483],[84.248,-6.868],[84.248,-7.442],[83.496,-8.477],[78.259,-7.184],[74.446,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[160.894,327.543]},"a":{"a":0,"k":[71.894,-4.957]},"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":"o 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.144,-0.67]],"v":[[85.646,-10.69],[84.304,-10.345],[76.838,-0.431],[76.838,-0.086],[77.59,1.178],[78.02,1.178],[78.664,0.948],[87.446,-5.287],[87.768,-4.942],[87.714,-4.598],[87.419,-2.73],[89.809,-0.488],[97.919,-4.167],[102.216,-7.471],[102.216,-7.816],[100.927,-8.506],[93.099,-4.813],[90.964,-4.109],[90.212,-4.914],[90.507,-6.293],[90.534,-6.782],[89.326,-8.506],[88.735,-8.621],[84.089,-6.063],[86.774,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[178.527,327.744]},"a":{"a":0,"k":[89.527,-4.756]},"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":"n 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[106.948,-8.132],[101.093,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[107.901,-10.761],[105.954,-10.948],[100.932,-9.54],[96.77,-3.908],[96.77,-3.448],[99.939,-0.575],[100.905,-0.632],[101.066,-0.632],[105.525,-1.523],[111.594,-4.282],[115.3,-7.184],[114.199,-8.592],[110.278,-6.034],[101.55,-3.161],[99.348,-4.023],[100.207,-4.023],[103.806,-4.425],[107.445,-5.963],[109.687,-8.333],[109.58,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[195.035,326.739]},"a":{"a":0,"k":[106.035,-5.761]},"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":"e 114","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[112.054,-7.385],[112.162,-5.086],[112.054,-3.391],[112.081,-3.132],[111.275,-2.27],[109.852,-2.644],[108.831,-1.207],[108.966,-0.517],[110.389,0.805],[111.302,0.805],[114.82,-1.034],[122.367,-3.678],[128.167,-7.155],[128.167,-7.615],[126.878,-8.649],[126.449,-8.649],[114.525,-3.42],[114.632,-7.155],[117.586,-8.908],[118.661,-8.477],[119.681,-9.454],[119.762,-9.856],[116.727,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[207.499,327.126]},"a":{"a":0,"k":[118.499,-5.374]},"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":"s 11","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.179,0],[1.056,-1.494],[1.611,-2.777],[-0.662,0],[0,0],[-2.059,1.456],[0,-0.517],[-1.182,0],[0,0],[-2.489,3.161],[-0.877,0],[-0.77,0.172],[-0.358,0.805],[0,0],[0.788,0.307],[0.689,-0.124],[0.376,0],[1.199,0.364],[0.161,0],[0.269,-0.326],[0.018,-0.038],[1.396,-0.364],[-0.573,1.054],[0.143,0],[0,0],[0.054,0],[3.419,-2.394],[-0.501,0.575],[0,0],[0.412,0],[0,0]],"o":[[-0.645,0],[-1.325,1.897],[0.34,1.073],[0,0],[1.307,-0.862],[-0.34,0.824],[0,0.977],[0,0],[2.292,-0.747],[1.11,0.096],[1.217,0],[1.343,-0.287],[0,0],[0,-0.613],[-0.967,0.383],[-0.689,0.125],[-0.877,0],[-0.179,-0.076],[-0.34,0],[-0.036,0.039],[-1.862,2.701],[0.967,-1.303],[-0.054,-0.575],[0,0],[-0.036,-0.019],[-0.609,0],[2.22,-2.835],[0,0],[-0.305,-0.536],[0,0],[-0.144,-0.096]],"v":[[142.481,-10.546],[139.93,-8.305],[135.526,-1.293],[137.03,0.316],[137.459,0.316],[142.508,-3.161],[141.998,-1.149],[143.77,0.316],[143.851,0.316],[151.021,-5.546],[154.002,-5.402],[156.983,-5.661],[159.535,-7.299],[159.535,-7.414],[158.353,-8.793],[155.869,-8.032],[154.271,-7.845],[151.156,-8.391],[150.645,-8.506],[149.732,-8.017],[149.652,-7.902],[144.764,-3.305],[147.074,-6.839],[146.778,-7.701],[146.349,-7.701],[146.214,-7.73],[140.172,-4.138],[144.254,-9.253],[144.254,-9.598],[143.18,-10.402],[142.965,-10.402]],"c":true}},"nm":"w","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"w","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[236.53,327.385]},"a":{"a":0,"k":[147.53,-5.115]},"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":"w","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[162.083,-19.598],[151.288,0.115],[151.288,0.575],[152.362,1.724],[152.791,1.724],[154.51,0.345],[160.929,-5.575],[163.399,-4.31],[167.052,-1.782],[169.522,-2.126],[177.552,-7.442],[177.552,-7.902],[176.371,-8.707],[175.189,-8.477],[168.019,-4.54],[165.548,-5.575],[161.358,-8.908],[158.243,-7.529],[158.136,-7.529],[160.069,-11.552],[165.306,-19.942],[165.306,-20.287],[164.447,-21.666],[164.339,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[253.42,322.529]},"a":{"a":0,"k":[164.42,-9.971]},"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":"h 10","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,0.786],[-0.573,0],[-0.251,-0.23],[3.258,0]],"o":[[0.895,-0.268],[0.537,0],[-2.202,2.126],[1.164,-1.303]],"v":[[178.763,-6.121],[180.965,-6.523],[182.147,-6.178],[173.956,-2.988]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-0.996],[0,-1.111],[0,0],[-1.898,-0.785],[0,0],[-3.151,3.027],[-1.253,0],[-0.985,0.211],[0,1.111],[0,0],[0.501,0.211],[1.844,0],[1.307,0.383]],"o":[[0,-1.092],[-1.522,0],[-3.867,1.82],[0,0],[0,1.245],[0,0],[4.512,0],[1.002,0.422],[0.877,0],[2.399,-0.479],[0,0],[0,-0.479],[-1.647,0.862],[-1.235,0],[0,0]],"v":[[185.316,-8.017],[182.926,-9.655],[176.185,-8.161],[170.384,-3.764],[170.384,-3.305],[173.231,-0.259],[173.822,-0.259],[185.316,-4.799],[188.699,-4.167],[191.492,-4.483],[195.091,-6.868],[195.091,-7.442],[194.339,-8.477],[189.102,-7.184],[185.289,-7.759]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[271.738,327.543]},"a":{"a":0,"k":[182.738,-4.957]},"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":"o 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[207.015,-7.385],[207.122,-5.086],[207.015,-3.391],[207.042,-3.132],[206.236,-2.27],[204.813,-2.644],[203.792,-1.207],[203.927,-0.517],[205.35,0.805],[206.263,0.805],[209.781,-1.034],[217.327,-3.678],[223.128,-7.155],[223.128,-7.615],[221.839,-8.649],[221.409,-8.649],[209.486,-3.42],[209.593,-7.155],[212.547,-8.908],[213.621,-8.477],[214.642,-9.454],[214.722,-9.856],[211.688,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[302.46,327.126]},"a":{"a":0,"k":[213.46,-5.374]},"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":"s 11","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[227.466,-8.132],[221.611,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[228.419,-10.761],[226.472,-10.948],[221.45,-9.54],[217.287,-3.908],[217.287,-3.448],[220.456,-0.575],[221.423,-0.632],[221.584,-0.632],[226.042,-1.523],[232.112,-4.282],[235.818,-7.184],[234.717,-8.592],[230.796,-6.034],[222.068,-3.161],[219.866,-4.023],[220.725,-4.023],[224.324,-4.425],[227.962,-5.963],[230.205,-8.333],[230.097,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[315.553,326.739]},"a":{"a":0,"k":[226.553,-5.761]},"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":"e 115","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.192],[2.471,-0.211]],"o":[[-1.433,1.092],[2.005,-1.111]],"v":[[240.826,-8.132],[234.971,-6.178]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.125],[0.286,0],[1.826,-0.938],[0,-2.011],[0,0],[-1.611,-0.153],[0,0],[0,0],[-1.987,0.594],[-1.934,1.226],[-0.537,0.709],[0.734,0.192],[1.629,-1.149],[1.898,0],[0.43,0.575],[0,0],[-0.842,0.268],[-1.441,0.718],[-0.054,0.862],[0,0]],"o":[[-1.012,-0.124],[-1.522,0],[-2.775,1.743],[0,0],[0.501,1.763],[0,0],[0,0],[0.984,0],[2.112,-0.613],[1.934,-1.226],[0,-0.747],[-0.985,0.556],[-3.921,1.916],[-1.039,0],[0,0],[1.558,0],[0.984,-0.306],[1.441,-0.718],[0,0],[-0.107,-1.111]],"v":[[241.779,-10.761],[239.832,-10.948],[234.81,-9.54],[230.647,-3.908],[230.647,-3.448],[233.816,-0.575],[234.783,-0.632],[234.944,-0.632],[239.402,-1.523],[245.472,-4.282],[249.178,-7.184],[248.077,-8.592],[244.156,-6.034],[235.428,-3.161],[233.225,-4.023],[234.085,-4.023],[237.683,-4.425],[241.322,-5.963],[243.565,-8.333],[243.457,-8.908]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[328.912,326.739]},"a":{"a":0,"k":[239.912,-5.761]},"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":"e 116","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-2.816],[0.895,0.077],[0,-0.709],[-1.289,-0.096],[0,-1.456],[0,0],[-0.716,-0.115],[0,0],[-6.732,3.812],[0,0.728],[0.251,0],[0,0],[0.483,-0.306],[0.752,-0.249],[0,0],[0,0],[-2.596,3.812],[-0.233,0],[-0.448,0.766],[0,0],[0.788,0],[0.251,-0.019],[0,0],[0,0],[0,0.192],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.211],[0,0.824],[-3.223,5.364],[0,0],[0,0.881],[0,0],[0.931,0],[1.504,-0.498],[-0.107,-0.843],[0,0],[-0.376,0],[-5.407,2.874],[0,0],[0,0],[0.125,-1.475],[1.271,0.019],[0.555,0],[0,0],[0,-0.421],[-0.179,0],[0,0],[0,0],[1.647,-2.644],[0,0],[-0.143,-0.843],[0,0],[-0.913,0.862]],"v":[[265.828,-14.483],[264.217,-14.598],[262.605,-13.218],[264.539,-11.839],[259.705,-1.609],[259.705,-1.494],[260.779,0],[261.209,0],[272.703,-5.718],[274.959,-7.557],[274.422,-8.822],[274.099,-8.822],[272.81,-8.362],[263.572,-3.678],[263.357,-3.678],[263.357,-3.793],[267.439,-11.724],[269.695,-11.695],[271.199,-12.845],[271.199,-13.649],[270.017,-14.281],[269.373,-14.253],[268.621,-14.253],[268.621,-14.368],[271.092,-18.621],[271.092,-18.735],[270.017,-20],[269.48,-20]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[356.332,322.5]},"a":{"a":0,"k":[267.332,-10]},"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":"t 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.379],[1.898,-4.387],[0,0],[-0.716,-0.154],[0,0],[-0.698,0.92],[-1.074,0],[-0.949,-0.843],[-1.218,0],[-0.627,0.154],[0,1.456],[0,0],[0.43,0],[0.501,-0.153],[1.128,0],[0.949,0.69],[1.021,0],[1.343,-0.9],[0,0],[-1.039,2.031],[0,0.268],[0,0],[0.573,0.441],[0,0]],"o":[[-5.3,8.755],[0,0],[0,0.613],[0,0],[0.448,0],[3.205,-3.946],[0.698,0],[1.217,1.686],[1.021,-0.076],[5.353,-2.088],[0,0],[-0.358,-0.536],[-0.287,0],[-3.652,2.625],[-0.698,0],[-1.772,-2.222],[-0.734,0.019],[0,0],[0.251,-0.651],[3.491,-5.325],[0,0],[0,-0.479],[0,0],[-0.645,0]],"v":[[278.208,-19.598],[267.412,0.115],[267.412,0.575],[268.486,1.724],[268.916,1.724],[270.635,0.345],[277.053,-5.575],[279.524,-4.31],[283.176,-1.782],[285.647,-2.126],[293.677,-7.442],[293.677,-7.902],[292.495,-8.707],[291.313,-8.477],[284.143,-4.54],[281.672,-5.575],[277.483,-8.908],[274.368,-7.529],[274.26,-7.529],[276.194,-11.552],[281.431,-19.942],[281.431,-20.287],[280.571,-21.666],[280.464,-21.666]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[369.544,322.529]},"a":{"a":0,"k":[280.544,-9.971]},"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":"h 11","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.134],[1.325,-2.969],[0,0],[-0.591,0],[0,0],[-2.336,1.159],[-3.85,1.878],[-0.43,0.594],[1.146,0.172],[0.859,-0.191],[-0.958,1.542],[0,0.594],[0.161,0.383]],"o":[[-0.358,0],[-1.79,3.085],[0,0],[0.269,0.92],[0,0],[0.233,0],[2.336,-1.159],[0.931,-0.708],[0,-0.977],[-6.696,3.736],[0.197,-0.44],[0.958,-1.542],[0,-0.172],[-0.287,-0.096]],"v":[[293.182,-10.057],[292.081,-9.856],[287.408,-0.776],[287.408,-0.201],[288.697,1.178],[289.02,1.178],[292.874,-0.56],[302.152,-5.115],[304.193,-7.069],[302.474,-8.793],[291.141,-2.902],[292.874,-5.876],[294.31,-9.08],[294.069,-9.914]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.134],[-0.573,0],[-0.931,0.326],[0,0.556],[0.608,0.345],[0.645,-1.379]],"o":[[0,0.422],[0.483,0],[1.253,-0.651],[0,-0.402],[-1.934,0.192],[-0.054,0.154]],"v":[[292.86,-11.494],[293.719,-10.862],[295.841,-11.35],[297.721,-13.161],[296.808,-14.281],[292.941,-11.925]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"i","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[384.801,325.948]},"a":{"a":0,"k":[295.801,-6.552]},"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":"i 4","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.23],[0.519,-2.222],[0,0],[-0.501,-0.383],[0,0],[-0.232,0.153],[-0.931,0],[0,-0.23],[0.036,-0.134],[0,-0.536],[-1.594,0],[-2.757,1.552],[0,0.939],[0,0],[0.608,0],[1.137,-0.469],[0.286,0],[0,0.537],[-0.197,0.575],[0,0.154],[0.806,0.172],[0.215,0],[2.059,-1.705],[0,0.096]],"o":[[-0.358,0],[-4.458,4.387],[0,0],[0,0.46],[0,0],[0.197,0],[4.923,-4.157],[0.215,0],[0,0.096],[-0.197,0.709],[0,1.494],[2.649,-0.9],[2.864,-1.264],[0,0],[-0.251,-0.46],[-4.082,1.993],[-1.137,0.47],[-0.501,0],[0,-0.345],[0.018,-0.172],[0,-0.977],[-0.179,-0.076],[-1.039,0],[1.79,-2.318],[-0.143,-0.67]],"v":[[305.033,-10.69],[303.691,-10.345],[296.225,-0.431],[296.225,-0.086],[296.977,1.178],[297.406,1.178],[298.051,0.948],[306.833,-5.287],[307.155,-4.942],[307.101,-4.598],[306.806,-2.73],[309.196,-0.488],[317.306,-4.167],[321.603,-7.471],[321.603,-7.816],[320.314,-8.506],[312.486,-4.813],[310.351,-4.109],[309.599,-4.914],[309.894,-6.293],[309.921,-6.782],[308.713,-8.506],[308.122,-8.621],[303.476,-6.063],[306.161,-9.684]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[397.914,327.744]},"a":{"a":0,"k":[308.914,-4.756]},"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":"n 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.972,2.72],[0.483,-0.671],[1.021,-0.479]],"o":[[-0.555,0.805],[-2.005,2.797],[1.092,-2.031]],"v":[[320,2.098],[318.442,4.31],[313.904,9.224]],"c":true}},"nm":"g","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[2.811,-1.283],[-0.877,0],[-0.125,-0.096]],"o":[[2.399,-2.145],[0.179,0],[-0.77,0.766]],"v":[[318.415,-4.023],[323.33,-7.241],[323.786,-7.098]],"c":true}},"nm":"g","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.128,0],[1.199,-0.479],[0.43,-1.063],[0,-0.44],[-0.555,-0.268],[-0.161,0],[-1.396,0.69],[-1.218,0.786],[0,0],[2.095,-2.088],[0.125,-2.069],[0,0],[-0.662,0],[0,0],[-2.775,3.506],[-1.074,2.011],[-3.608,1.763],[-0.824,0.786],[0,0],[0.645,0.307],[2.453,-0.823],[-0.322,0.939],[0.859,0.23]],"o":[[-0.394,-0.92],[-0.806,0],[-2.918,1.973],[-0.43,1.063],[0,0.651],[0.143,0.019],[1.039,0],[1.182,-0.479],[0,0],[-1.629,0.939],[-3.742,4.176],[0,0],[0.125,1.149],[0,0],[2.22,-0.958],[1.808,-2.491],[1.844,-0.671],[3.607,-1.762],[0,0],[0,-0.766],[-5.389,2.912],[1.701,-2.356],[0,-0.843],[0,0]],"v":[[325.854,-8.563],[323.572,-9.942],[320.564,-9.224],[315.542,-4.669],[314.897,-2.414],[315.73,-1.034],[316.186,-1.006],[319.839,-2.04],[323.437,-3.937],[321.477,-1.724],[315.891,2.816],[310.09,12.184],[310.09,12.414],[311.272,14.138],[311.487,14.138],[318.979,7.442],[323.303,0.69],[331.48,-2.96],[338.127,-6.782],[338.127,-7.011],[337.16,-8.621],[325.398,-3.017],[328.432,-7.96],[327.143,-9.569]],"c":true}},"nm":"g","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"g","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[413.109,334.598]},"a":{"a":0,"k":[324.109,2.098]},"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":"g 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-2.471],[0,-0.67],[0,0],[0,-0.076],[0.537,0],[0.591,0.249],[0,-0.575],[-0.089,-0.249],[-0.591,0],[-0.018,0],[-1.218,1.226],[-3.008,1.207],[-0.859,1.111],[0,0],[0.859,0],[0,0],[4.977,-1.417],[-0.072,0.441],[-1.755,0.096],[-0.305,0],[-0.233,0.651],[0,0.134],[2.023,0.287]],"o":[[0.072,0.862],[0,0],[0.018,0.096],[0,0.575],[-0.358,0],[-0.68,0.383],[0,0.211],[0.358,0.881],[0.591,0],[1.128,0],[2.023,-0.555],[3.008,-1.207],[0,0],[0,-0.69],[0,0],[-2.972,2.069],[0,-2.05],[0.215,-1.073],[0.412,0.287],[0.447,0],[0.054,-0.134],[0,-0.843],[-2.775,0.307]],"v":[[334.394,-7.385],[334.501,-5.086],[334.394,-3.391],[334.421,-3.132],[333.615,-2.27],[332.192,-2.644],[331.171,-1.207],[331.305,-0.517],[332.729,0.805],[333.642,0.805],[337.16,-1.034],[344.706,-3.678],[350.507,-7.155],[350.507,-7.615],[349.218,-8.649],[348.788,-8.649],[336.864,-3.42],[336.972,-7.155],[339.926,-8.908],[341,-8.477],[342.021,-9.454],[342.101,-9.856],[339.067,-11.552]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[429.839,327.126]},"a":{"a":0,"k":[340.839,-5.374]},"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":"s 113","bm":0,"hd":false}],"ip":0,"op":13,"st":0,"bm":0},{"ddd":0,"ind":118,"ty":4,"nm":"d 4","sr":1,"ks":{"p":{"a":0,"k":[105.204,364.04,0]},"a":{"a":0,"k":[6.204,-13.46,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.313,0.69],[-0.877,1.053],[1.307,-1.754]],"o":[[0.313,-0.689],[-0.859,2.632],[0.662,-1.955]],"v":[[10.433,-18.742],[12.219,-21.355],[8.97,-14.776]],"c":true}},"nm":"d","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.215,0],[2.632,-3.534],[0,-1.002],[0,0],[-1.074,-0.401],[0,0],[-2.829,3.81],[-1.665,0],[-0.358,0.051],[-0.34,0.426],[-0.144,0.752],[0,0],[0.931,0.326],[1.683,0],[0.967,0.502],[-0.824,2.231],[-0.054,0.99],[0,0.1],[0.806,0],[0.322,-0.1],[0.054,-0.025],[2.005,-5.013],[0.322,-1.829],[0.358,0]],"o":[[-2.507,0],[-1.504,2.206],[0,0],[0,0.902],[0,0],[3.706,-0.852],[1.396,1.429],[0.34,0],[2.059,-0.376],[1.271,-0.777],[0,0],[0,-1.278],[-1.665,1.504],[-0.967,0],[2.578,-3.283],[0.823,-2.231],[0.054,-0.99],[0,-1.203],[-0.251,0],[-0.072,0],[-1.629,0.652],[-0.627,2.006],[-0.412,-0.701],[-0.233,-0.025]],"v":[[4.297,-13.122],[-3.411,-7.82],[-5.667,-3.008],[-5.667,-2.406],[-4.055,-0.451],[-3.088,-0.451],[6.714,-7.444],[11.306,-5.301],[12.354,-5.376],[15.952,-6.58],[18.074,-8.873],[18.074,-9.023],[16.677,-11.43],[11.655,-9.174],[8.755,-9.926],[13.857,-18.197],[15.173,-23.029],[15.254,-24.664],[14.045,-26.469],[13.186,-26.318],[12.998,-26.281],[7.546,-17.784],[6.123,-12.031],[4.968,-13.084]],"c":true}},"nm":"d","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.286,0.928],[-1.683,0],[-0.179,-0.025],[2.9,-1.704]],"o":[[1.647,-2.406],[0.161,0],[-1.057,1.78],[0,-0.175]],"v":[[-1.262,-5.564],[3.733,-9.174],[4.243,-9.136],[-1.692,-3.91]],"c":true}},"nm":"d","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"d","bm":0,"hd":false}],"ip":67,"op":180,"st":0,"bm":0},{"ddd":0,"ind":119,"ty":4,"nm":"i 7","sr":1,"ks":{"p":{"a":0,"k":[118.769,368.928,0]},"a":{"a":0,"k":[19.769,-8.572,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.175],[1.325,-3.885],[0,0],[-0.591,0],[0,0],[-2.336,1.516],[-3.85,2.457],[-0.43,0.777],[1.146,0.226],[0.859,-0.25],[-0.958,2.018],[0,0.777],[0.161,0.502]],"o":[[-0.358,0],[-1.79,4.036],[0,0],[0.269,1.203],[0,0],[0.233,0],[2.336,-1.516],[0.931,-0.927],[0,-1.278],[-6.696,4.888],[0.197,-0.576],[0.958,-2.017],[0,-0.226],[-0.287,-0.125]],"v":[[17.15,-13.159],[16.049,-12.896],[11.376,-1.015],[11.376,-0.263],[12.666,1.542],[12.988,1.542],[16.842,-0.733],[26.12,-6.692],[28.161,-9.249],[26.442,-11.505],[15.109,-3.797],[16.842,-7.689],[18.278,-11.881],[18.037,-12.971]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.175],[-0.573,0],[-0.931,0.426],[0,0.727],[0.608,0.451],[0.645,-1.805]],"o":[[0,0.552],[0.483,0],[1.253,-0.852],[0,-0.526],[-1.934,0.251],[-0.054,0.201]],"v":[[16.828,-15.039],[17.687,-14.212],[19.809,-14.851],[21.689,-17.22],[20.776,-18.686],[16.909,-15.603]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"i","bm":0,"hd":false}],"ip":68,"op":180,"st":1,"bm":0},{"ddd":0,"ind":120,"ty":4,"nm":"f 5","sr":1,"ks":{"p":{"a":0,"k":[129.29,374.868,0]},"a":{"a":0,"k":[30.29,-2.632,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.779],[-2.865,4.161]],"o":[[0.089,-0.376],[-0.645,2.758]],"v":[[29.216,-12.031],[33.647,-18.836]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.895],[2.023,-3.685],[0,0.075],[-3.473,9.725]],"o":[[0,0],[-0.018,1.905],[-0.743,2.895],[-0.018,-0.075],[0,-1.604],[0,0]],"v":[[25.939,-4.061],[25.939,-3.91],[24.798,3.29],[20.649,13.159],[20.622,12.934],[25.832,-4.061]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.105],[1.45,-3.835],[0,0],[0.197,-1.203],[0,0],[-0.788,-0.351],[0.125,-4.186],[-0.806,0],[0,0],[-2.721,5.765],[-0.144,5.314],[-0.788,0],[-4.333,1.705],[-0.018,0.878],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.025],[-1.235,2.507],[0,1.905],[0.036,0.301],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.484],[0,0],[-0.591,0],[0,0],[0,1.028],[-3.599,9.349],[0.125,1.905],[0,0],[1.325,0],[1.593,-4.211],[0.662,0.15],[2.739,0],[0.931,-0.626],[-0.197,-1.328],[-0.054,0],[-3.133,1.78],[-0.412,0],[2.596,-0.852],[1.235,-2.506],[0,-0.301],[0,0],[-0.197,-1.103],[0,0],[-0.824,0]],"v":[[31.203,-20.152],[25.187,-9.174],[23.576,-9.174],[22.394,-7.369],[22.394,-7.181],[23.576,-5.113],[17.99,15.189],[19.387,18.047],[19.709,18.047],[25.778,9.399],[28.383,-4.888],[30.558,-4.662],[41.166,-7.219],[42.59,-9.475],[41.596,-11.467],[41.408,-11.43],[30.048,-8.76],[28.813,-8.798],[34.56,-13.836],[36.413,-20.453],[36.359,-21.355],[36.359,-21.656],[35.178,-23.311],[34.963,-23.311]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"f","bm":0,"hd":false}],"ip":69,"op":180,"st":2,"bm":0},{"ddd":0,"ind":121,"ty":4,"nm":"f 4","sr":1,"ks":{"p":{"a":0,"k":[143.552,374.868,0]},"a":{"a":0,"k":[44.552,-2.632,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.779],[-2.865,4.161]],"o":[[0.089,-0.376],[-0.645,2.758]],"v":[[43.477,-12.031],[47.908,-18.836]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.895],[2.023,-3.685],[0,0.075],[-3.473,9.725]],"o":[[0,0],[-0.018,1.905],[-0.743,2.895],[-0.018,-0.075],[0,-1.604],[0,0]],"v":[[40.201,-4.061],[40.201,-3.91],[39.06,3.29],[34.91,13.159],[34.884,12.934],[40.094,-4.061]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.105],[1.45,-3.835],[0,0],[0.197,-1.203],[0,0],[-0.788,-0.351],[0.125,-4.186],[-0.806,0],[0,0],[-2.721,5.765],[-0.144,5.314],[-0.788,0],[-4.333,1.705],[-0.018,0.878],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.025],[-1.235,2.507],[0,1.905],[0.036,0.301],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.484],[0,0],[-0.591,0],[0,0],[0,1.028],[-3.599,9.349],[0.125,1.905],[0,0],[1.325,0],[1.593,-4.211],[0.662,0.15],[2.739,0],[0.931,-0.626],[-0.197,-1.328],[-0.054,0],[-3.133,1.78],[-0.412,0],[2.596,-0.852],[1.235,-2.506],[0,-0.301],[0,0],[-0.197,-1.103],[0,0],[-0.824,0]],"v":[[45.465,-20.152],[39.449,-9.174],[37.838,-9.174],[36.656,-7.369],[36.656,-7.181],[37.838,-5.113],[32.252,15.189],[33.648,18.047],[33.97,18.047],[40.04,9.399],[42.645,-4.888],[44.82,-4.662],[55.428,-7.219],[56.851,-9.475],[55.858,-11.467],[55.67,-11.43],[44.31,-8.76],[43.074,-8.798],[48.822,-13.836],[50.675,-20.453],[50.621,-21.355],[50.621,-21.656],[49.439,-23.311],[49.224,-23.311]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"f","bm":0,"hd":false}],"ip":70,"op":180,"st":3,"bm":0},{"ddd":0,"ind":122,"ty":4,"nm":"e 117","sr":1,"ks":{"p":{"a":0,"k":[159.269,369.962,0]},"a":{"a":0,"k":[60.269,-7.538,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[61.182,-10.64],[55.327,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[62.135,-14.08],[60.188,-14.325],[55.166,-12.482],[51.003,-5.113],[51.003,-4.512],[54.172,-0.752],[55.139,-0.827],[55.3,-0.827],[59.758,-1.993],[65.828,-5.602],[69.534,-9.399],[68.433,-11.242],[64.512,-7.896],[55.784,-4.136],[53.582,-5.264],[54.441,-5.264],[58.04,-5.79],[61.678,-7.802],[63.921,-10.903],[63.813,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":71,"op":180,"st":4,"bm":0},{"ddd":0,"ind":123,"ty":4,"nm":"r 7","sr":1,"ks":{"p":{"a":0,"k":[171.321,369.041,0]},"a":{"a":0,"k":[72.321,-8.459,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.827],[0,0.251],[1.593,0.602],[0,0],[4.279,-3.91],[-0.018,0.802],[0.555,0],[0.107,-0.025],[2.372,-4.16],[0,-0.476],[0,0],[-0.859,-0.827],[0,0],[-0.645,1.304],[-3.402,1.529]],"o":[[0.394,0],[0.071,-0.301],[0,-1.203],[0,0],[-1.11,0],[0.698,-1.027],[-0.161,-0.777],[-0.09,0],[-0.967,0.301],[-2.372,4.161],[0,0],[0,0.577],[0,0],[0.43,0],[5.586,-6.717],[0.555,0.802]],"v":[[80.969,-12.633],[81.909,-13.874],[82.016,-14.701],[79.626,-17.408],[79.572,-17.408],[71.489,-11.542],[72.563,-14.287],[71.489,-15.453],[71.193,-15.415],[66.185,-8.723],[62.626,-1.767],[62.626,-1.617],[63.916,0.489],[64.453,0.489],[66.064,-1.466],[79.545,-13.836]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":72,"op":180,"st":5,"bm":0},{"ddd":0,"ind":124,"ty":4,"nm":"e 117","sr":1,"ks":{"p":{"a":0,"k":[183.679,369.962,0]},"a":{"a":0,"k":[84.679,-7.538,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[85.592,-10.64],[79.738,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[86.546,-14.08],[84.599,-14.325],[79.577,-12.482],[75.414,-5.113],[75.414,-4.512],[78.583,-0.752],[79.55,-0.827],[79.711,-0.827],[84.169,-1.993],[90.238,-5.602],[93.944,-9.399],[92.843,-11.242],[88.922,-7.896],[80.194,-4.136],[77.992,-5.264],[78.851,-5.264],[82.45,-5.79],[86.089,-7.802],[88.331,-10.903],[88.224,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":73,"op":180,"st":6,"bm":0},{"ddd":0,"ind":125,"ty":4,"nm":"n 8","sr":1,"ks":{"p":{"a":0,"k":[198.231,371.278,0]},"a":{"a":0,"k":[99.231,-6.222,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.301],[0.519,-2.907],[0,0],[-0.501,-0.502],[0,0],[-0.232,0.2],[-0.931,0],[0,-0.301],[0.036,-0.175],[0,-0.701],[-1.594,0],[-2.757,2.03],[0,1.228],[0,0],[0.608,0],[1.137,-0.614],[0.286,0],[0,0.702],[-0.197,0.752],[0,0.201],[0.806,0.226],[0.215,0],[2.059,-2.231],[0,0.126]],"o":[[-0.358,0],[-4.458,5.74],[0,0],[0,0.602],[0,0],[0.197,0],[4.923,-5.439],[0.215,0],[0,0.126],[-0.197,0.928],[0,1.955],[2.649,-1.178],[2.864,-1.654],[0,0],[-0.251,-0.602],[-4.082,2.607],[-1.137,0.614],[-0.501,0],[0,-0.451],[0.018,-0.226],[0,-1.278],[-0.179,-0.1],[-1.039,0],[1.79,-3.032],[-0.144,-0.877]],"v":[[95.35,-13.986],[94.007,-13.535],[86.542,-0.564],[86.542,-0.113],[87.294,1.542],[87.723,1.542],[88.368,1.241],[97.15,-6.918],[97.472,-6.467],[97.418,-6.016],[97.123,-3.572],[99.513,-0.639],[107.623,-5.452],[111.92,-9.775],[111.92,-10.227],[110.631,-11.129],[102.803,-6.298],[100.668,-5.376],[99.916,-6.429],[100.211,-8.234],[100.238,-8.873],[99.029,-11.129],[98.439,-11.279],[93.793,-7.933],[96.478,-12.67]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":74,"op":180,"st":7,"bm":0},{"ddd":0,"ind":126,"ty":4,"nm":"t 6","sr":1,"ks":{"p":{"a":0,"k":[212.845,364.416,0]},"a":{"a":0,"k":[113.845,-13.084,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-3.685],[0.895,0.1],[0,-0.927],[-1.289,-0.125],[0,-1.905],[0,0],[-0.716,-0.15],[0,0],[-6.732,4.988],[0,0.953],[0.251,0],[0,0],[0.483,-0.401],[0.752,-0.325],[0,0],[0,0],[-2.596,4.988],[-0.233,0],[-0.448,1.003],[0,0],[0.788,0],[0.251,-0.025],[0,0],[0,0],[0,0.251],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.276],[0,1.078],[-3.223,7.018],[0,0],[0,1.153],[0,0],[0.931,0],[1.504,-0.652],[-0.107,-1.103],[0,0],[-0.376,0],[-5.407,3.76],[0,0],[0,0],[0.125,-1.93],[1.271,0.025],[0.555,0],[0,0],[0,-0.551],[-0.179,0],[0,0],[0,0],[1.647,-3.459],[0,0],[-0.144,-1.103],[0,0],[-0.913,1.128]],"v":[[112.341,-18.949],[110.73,-19.1],[109.119,-17.295],[111.052,-15.49],[106.218,-2.105],[106.218,-1.955],[107.293,0],[107.722,0],[119.216,-7.482],[121.472,-9.888],[120.935,-11.542],[120.613,-11.542],[119.324,-10.941],[110.086,-4.813],[109.871,-4.813],[109.871,-4.963],[113.953,-15.34],[116.209,-15.302],[117.713,-16.806],[117.713,-17.859],[116.531,-18.686],[115.886,-18.648],[115.134,-18.648],[115.134,-18.799],[117.605,-24.363],[117.605,-24.514],[116.531,-26.168],[115.994,-26.168]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":75,"op":180,"st":8,"bm":0},{"ddd":0,"ind":127,"ty":4,"nm":"l 5","sr":1,"ks":{"p":{"a":0,"k":[222.137,364.19,0]},"a":{"a":0,"k":[123.137,-13.31,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.175],[1.343,-3.885],[0,0],[-0.591,0],[0,0],[-1.996,1.291],[-5.156,3.334],[-0.698,0.928],[1.146,0.226],[0.859,-0.25],[-2.883,7.645],[0,0.777],[0.143,0.476]],"o":[[-0.358,0],[-5.622,15.29],[0,0],[0.269,1.203],[0,0],[0.233,0],[1.996,-1.291],[0.949,-0.852],[0,-1.278],[-7.609,5.389],[0.197,-0.576],[2.882,-7.645],[0,-0.25],[-0.287,-0.125]],"v":[[125.635,-29.101],[124.507,-28.837],[114.06,-0.075],[114.06,0.677],[115.349,2.481],[115.671,2.481],[119.015,0.545],[129.744,-6.392],[132.214,-9.061],[130.496,-11.317],[117.793,-2.857],[122.412,-15.189],[126.736,-27.822],[126.521,-28.913]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"l","bm":0,"hd":false}],"ip":76,"op":180,"st":9,"bm":0},{"ddd":0,"ind":128,"ty":4,"nm":"y 3","sr":1,"ks":{"p":{"a":0,"k":[233.33,380.32,0]},"a":{"a":0,"k":[134.33,2.82,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.524,3.359],[0,0],[0.716,-0.051]],"o":[[0,0],[-1.701,3.509],[0.555,-1.604]],"v":[[128.945,6.053],[127.951,8.159],[124.326,13.498]],"c":true}},"nm":"y","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.502],[0.698,0],[0.232,-0.05],[1.002,-0.701],[0.305,0],[0,0.201],[-0.34,0.602],[-0.752,1.078],[0,0],[0.645,0],[0,0],[0.716,-0.902],[0.394,-0.551],[0,-1.027],[0,0],[0,-0.175],[-1.056,0],[-1.307,0.576],[0.287,-0.627],[0.77,-5.038],[-0.806,0],[-0.859,0.652],[-2.22,6.366],[-0.179,0.276],[0.68,0],[0,0],[3.312,-3.045],[1.647,-1.729],[-0.493,0.714],[-1.809,3.209]],"o":[[0,-0.752],[-0.197,0],[-3.062,5.439],[-0.77,0.476],[-0.197,0],[0,-0.25],[1.217,-2.581],[0,0],[-0.072,-1.203],[0,0],[-0.358,0],[-0.645,1.404],[-1.719,3.183],[0,0],[-0.036,0.226],[0,1.128],[0.752,0],[-0.34,0.802],[-4.834,4.687],[0.036,1.479],[0.537,0],[2.561,-2.382],[10.402,-9.023],[-0.018,-1.203],[0,0],[-0.949,0.075],[-3.312,3.045],[1.235,-2.256],[0.492,-0.714],[0.322,-0.852]],"v":[[139.016,-11.806],[137.969,-12.934],[137.324,-12.858],[131.228,-3.647],[129.617,-2.933],[129.321,-3.233],[129.831,-4.512],[132.785,-10.001],[132.785,-10.753],[131.711,-12.558],[131.604,-12.558],[129.992,-11.204],[128.435,-8.271],[125.857,-1.955],[125.857,-1.805],[125.803,-1.203],[127.388,0.489],[130.476,-0.376],[129.536,1.767],[121.13,16.355],[122.392,18.573],[124.487,17.596],[131.658,4.474],[147.529,-9.475],[146.482,-11.279],[146.321,-11.279],[139.929,-6.598],[132.49,0.564],[135.082,-3.891],[138.533,-9.775]],"c":true}},"nm":"y","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"y","bm":0,"hd":false}],"ip":77,"op":180,"st":10,"bm":0},{"ddd":0,"ind":129,"ty":4,"nm":"t 8","sr":1,"ks":{"p":{"a":0,"k":[262.938,364.416,0]},"a":{"a":0,"k":[163.938,-13.084,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-3.685],[0.895,0.1],[0,-0.927],[-1.289,-0.125],[0,-1.905],[0,0],[-0.716,-0.15],[0,0],[-6.732,4.988],[0,0.953],[0.251,0],[0,0],[0.483,-0.401],[0.752,-0.325],[0,0],[0,0],[-2.596,4.988],[-0.233,0],[-0.448,1.003],[0,0],[0.788,0],[0.251,-0.025],[0,0],[0,0],[0,0.251],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.276],[0,1.078],[-3.223,7.018],[0,0],[0,1.153],[0,0],[0.931,0],[1.504,-0.652],[-0.107,-1.103],[0,0],[-0.376,0],[-5.407,3.76],[0,0],[0,0],[0.125,-1.93],[1.271,0.025],[0.555,0],[0,0],[0,-0.551],[-0.179,0],[0,0],[0,0],[1.647,-3.459],[0,0],[-0.144,-1.103],[0,0],[-0.913,1.128]],"v":[[162.434,-18.949],[160.823,-19.1],[159.211,-17.295],[161.145,-15.49],[156.311,-2.105],[156.311,-1.955],[157.385,0],[157.815,0],[169.309,-7.482],[171.565,-9.888],[171.028,-11.542],[170.705,-11.542],[169.416,-10.941],[160.178,-4.813],[159.963,-4.813],[159.963,-4.963],[164.045,-15.34],[166.301,-15.302],[167.805,-16.806],[167.805,-17.859],[166.623,-18.686],[165.979,-18.648],[165.227,-18.648],[165.227,-18.799],[167.698,-24.363],[167.698,-24.514],[166.623,-26.168],[166.086,-26.168]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":78,"op":180,"st":11,"bm":0},{"ddd":0,"ind":130,"ty":4,"nm":"h 11","sr":1,"ks":{"p":{"a":0,"k":[276.15,364.454,0]},"a":{"a":0,"k":[177.15,-13.046,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.805],[1.898,-5.74],[0,0],[-0.716,-0.201],[0,0],[-0.698,1.203],[-1.074,0],[-0.949,-1.103],[-1.218,0],[-0.627,0.201],[0,1.905],[0,0],[0.43,0],[0.501,-0.2],[1.128,0],[0.949,0.902],[1.021,0],[1.343,-1.178],[0,0],[-1.039,2.657],[0,0.351],[0,0],[0.573,0.577],[0,0]],"o":[[-5.3,11.455],[0,0],[0,0.802],[0,0],[0.448,0],[3.205,-5.163],[0.698,0],[1.217,2.206],[1.021,-0.1],[5.353,-2.732],[0,0],[-0.358,-0.701],[-0.287,0],[-3.652,3.434],[-0.698,0],[-1.772,-2.907],[-0.734,0.025],[0,0],[0.251,-0.852],[3.491,-6.968],[0,0],[0,-0.626],[0,0],[-0.645,0]],"v":[[174.814,-25.642],[164.018,0.15],[164.018,0.752],[165.092,2.256],[165.522,2.256],[167.241,0.451],[173.659,-7.294],[176.13,-5.64],[179.782,-2.331],[182.253,-2.782],[190.283,-9.738],[190.283,-10.339],[189.101,-11.392],[187.919,-11.091],[180.749,-5.94],[178.278,-7.294],[174.089,-11.655],[170.973,-9.851],[170.866,-9.851],[172.8,-15.114],[178.036,-26.093],[178.036,-26.544],[177.177,-28.349],[177.07,-28.349]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"h","bm":0,"hd":false}],"ip":79,"op":180,"st":12,"bm":0},{"ddd":0,"ind":131,"ty":4,"nm":"e 116","sr":1,"ks":{"p":{"a":0,"k":[293.381,369.962,0]},"a":{"a":0,"k":[194.381,-7.538,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[195.294,-10.64],[189.44,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[196.248,-14.08],[194.301,-14.325],[189.279,-12.482],[185.116,-5.113],[185.116,-4.512],[188.285,-0.752],[189.252,-0.827],[189.413,-0.827],[193.871,-1.993],[199.94,-5.602],[203.646,-9.399],[202.545,-11.242],[198.624,-7.896],[189.896,-4.136],[187.694,-5.264],[188.554,-5.264],[192.152,-5.79],[195.791,-7.802],[198.034,-10.903],[197.926,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":80,"op":180,"st":13,"bm":0},{"ddd":0,"ind":132,"ty":4,"nm":"y 2","sr":1,"ks":{"p":{"a":0,"k":[304.762,380.32,0]},"a":{"a":0,"k":[205.762,2.82,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.524,3.359],[0,0],[0.716,-0.051]],"o":[[0,0],[-1.701,3.509],[0.555,-1.604]],"v":[[200.377,6.053],[199.384,8.159],[195.758,13.498]],"c":true}},"nm":"y","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.502],[0.698,0],[0.232,-0.05],[1.002,-0.701],[0.305,0],[0,0.201],[-0.34,0.602],[-0.752,1.078],[0,0],[0.645,0],[0,0],[0.716,-0.902],[0.394,-0.551],[0,-1.027],[0,0],[0,-0.175],[-1.056,0],[-1.307,0.576],[0.287,-0.627],[0.77,-5.038],[-0.806,0],[-0.859,0.652],[-2.22,6.366],[-0.179,0.276],[0.68,0],[0,0],[3.312,-3.045],[1.647,-1.729],[-0.493,0.714],[-1.809,3.209]],"o":[[0,-0.752],[-0.197,0],[-3.062,5.439],[-0.77,0.476],[-0.197,0],[0,-0.25],[1.217,-2.581],[0,0],[-0.072,-1.203],[0,0],[-0.358,0],[-0.645,1.404],[-1.719,3.183],[0,0],[-0.036,0.226],[0,1.128],[0.752,0],[-0.34,0.802],[-4.834,4.687],[0.036,1.479],[0.537,0],[2.561,-2.382],[10.402,-9.023],[-0.018,-1.203],[0,0],[-0.949,0.075],[-3.312,3.045],[1.235,-2.256],[0.492,-0.714],[0.322,-0.852]],"v":[[210.448,-11.806],[209.401,-12.934],[208.756,-12.858],[202.66,-3.647],[201.049,-2.933],[200.753,-3.233],[201.263,-4.512],[204.218,-10.001],[204.218,-10.753],[203.143,-12.558],[203.036,-12.558],[201.425,-11.204],[199.867,-8.271],[197.289,-1.955],[197.289,-1.805],[197.235,-1.203],[198.82,0.489],[201.908,-0.376],[200.968,1.767],[192.562,16.355],[193.824,18.573],[195.919,17.596],[203.09,4.474],[218.961,-9.475],[217.914,-11.279],[217.753,-11.279],[211.361,-6.598],[203.922,0.564],[206.514,-3.891],[209.965,-9.775]],"c":true}},"nm":"y","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"y","bm":0,"hd":false}],"ip":81,"op":180,"st":14,"bm":0},{"ddd":0,"ind":133,"ty":4,"nm":"’ 2","sr":1,"ks":{"p":{"a":0,"k":[311.977,340.354,0]},"a":{"a":0,"k":[212.977,-37.146,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-1.228],[0,0],[-0.287,-0.526],[0,-0.175],[0,-0.476],[0,0],[-0.107,0],[0,0],[0,1.529],[0,0],[0.859,0],[0,0]],"o":[[0,0],[0,0.577],[1.002,0.226],[-1.146,1.429],[0,0],[0.107,0.301],[0,0],[2.22,-1.779],[0,0],[-0.287,-1.604],[0,0],[-1.576,0.176]],"v":[[210.56,-39.177],[210.56,-38.726],[210.989,-37.071],[212.493,-36.47],[210.774,-33.612],[210.774,-33.462],[211.097,-33.011],[212.064,-33.011],[215.394,-37.974],[215.394,-38.876],[213.675,-41.282],[212.923,-41.282]],"c":true}},"nm":"’","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"’","bm":0,"hd":false}],"ip":82,"op":180,"st":15,"bm":0},{"ddd":0,"ind":134,"ty":4,"nm":"r 6","sr":1,"ks":{"p":{"a":0,"k":[312.493,369.041,0]},"a":{"a":0,"k":[213.493,-8.459,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.827],[0,0.251],[1.593,0.602],[0,0],[4.279,-3.91],[-0.018,0.802],[0.555,0],[0.107,-0.025],[2.372,-4.16],[0,-0.476],[0,0],[-0.859,-0.827],[0,0],[-0.645,1.304],[-3.402,1.529]],"o":[[0.394,0],[0.071,-0.301],[0,-1.203],[0,0],[-1.11,0],[0.698,-1.027],[-0.161,-0.777],[-0.09,0],[-0.967,0.301],[-2.372,4.161],[0,0],[0,0.577],[0,0],[0.43,0],[5.586,-6.717],[0.555,0.802]],"v":[[222.14,-12.633],[223.08,-13.874],[223.188,-14.701],[220.797,-17.408],[220.744,-17.408],[212.66,-11.542],[213.734,-14.287],[212.66,-15.453],[212.365,-15.415],[207.356,-8.723],[203.798,-1.767],[203.798,-1.617],[205.087,0.489],[205.624,0.489],[207.235,-1.466],[220.717,-13.836]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":83,"op":180,"st":16,"bm":0},{"ddd":0,"ind":135,"ty":4,"nm":"e 115","sr":1,"ks":{"p":{"a":0,"k":[324.85,369.962,0]},"a":{"a":0,"k":[225.85,-7.538,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[226.764,-10.64],[220.909,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[227.717,-14.08],[225.77,-14.325],[220.748,-12.482],[216.585,-5.113],[216.585,-4.512],[219.754,-0.752],[220.721,-0.827],[220.882,-0.827],[225.34,-1.993],[231.41,-5.602],[235.116,-9.399],[234.015,-11.242],[230.094,-7.896],[221.366,-4.136],[219.163,-5.264],[220.023,-5.264],[223.621,-5.79],[227.26,-7.802],[229.503,-10.903],[229.395,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":84,"op":180,"st":17,"bm":0},{"ddd":0,"ind":136,"ty":4,"nm":"n 7","sr":1,"ks":{"p":{"a":0,"k":[354.244,371.278,0]},"a":{"a":0,"k":[255.244,-6.222,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.301],[0.519,-2.907],[0,0],[-0.501,-0.502],[0,0],[-0.232,0.2],[-0.931,0],[0,-0.301],[0.036,-0.175],[0,-0.701],[-1.594,0],[-2.757,2.03],[0,1.228],[0,0],[0.608,0],[1.137,-0.614],[0.286,0],[0,0.702],[-0.197,0.752],[0,0.201],[0.806,0.226],[0.215,0],[2.059,-2.231],[0,0.126]],"o":[[-0.358,0],[-4.458,5.74],[0,0],[0,0.602],[0,0],[0.197,0],[4.923,-5.439],[0.215,0],[0,0.126],[-0.197,0.928],[0,1.955],[2.649,-1.178],[2.864,-1.654],[0,0],[-0.251,-0.602],[-4.082,2.607],[-1.137,0.614],[-0.501,0],[0,-0.451],[0.018,-0.226],[0,-1.278],[-0.179,-0.1],[-1.039,0],[1.79,-3.032],[-0.144,-0.877]],"v":[[251.363,-13.986],[250.02,-13.535],[242.555,-0.564],[242.555,-0.113],[243.307,1.542],[243.736,1.542],[244.381,1.241],[253.163,-6.918],[253.485,-6.467],[253.431,-6.016],[253.136,-3.572],[255.526,-0.639],[263.636,-5.452],[267.933,-9.775],[267.933,-10.227],[266.644,-11.129],[258.816,-6.298],[256.681,-5.376],[255.929,-6.429],[256.224,-8.234],[256.251,-8.873],[255.042,-11.129],[254.452,-11.279],[249.806,-7.933],[252.491,-12.67]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":85,"op":180,"st":18,"bm":0},{"ddd":0,"ind":137,"ty":4,"nm":"o 8","sr":1,"ks":{"p":{"a":0,"k":[371.827,371.014,0]},"a":{"a":0,"k":[272.827,-6.486,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,1.028],[-0.573,0],[-0.251,-0.301],[3.258,0]],"o":[[0.895,-0.351],[0.537,0],[-2.202,2.782],[1.164,-1.704]],"v":[[268.853,-8.008],[271.055,-8.535],[272.236,-8.083],[264.045,-3.91]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-1.303],[0,-1.453],[0,0],[-1.898,-1.027],[0,0],[-3.151,3.961],[-1.253,0],[-0.985,0.276],[0,1.454],[0,0],[0.501,0.276],[1.844,0],[1.307,0.502]],"o":[[0,-1.429],[-1.522,0],[-3.867,2.382],[0,0],[0,1.63],[0,0],[4.512,0],[1.002,0.552],[0.877,0],[2.399,-0.626],[0,0],[0,-0.626],[-1.647,1.128],[-1.235,0],[0,0]],"v":[[275.405,-10.49],[273.015,-12.633],[266.274,-10.678],[260.474,-4.925],[260.474,-4.324],[263.32,-0.338],[263.911,-0.338],[275.405,-6.279],[278.789,-5.452],[281.582,-5.865],[285.181,-8.986],[285.181,-9.738],[284.429,-11.091],[279.192,-9.399],[275.378,-10.151]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":86,"op":180,"st":19,"bm":0},{"ddd":0,"ind":138,"ty":4,"nm":"t 9","sr":1,"ks":{"p":{"a":0,"k":[386.65,364.416,0]},"a":{"a":0,"k":[287.65,-13.084,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-3.685],[0.895,0.1],[0,-0.927],[-1.289,-0.125],[0,-1.905],[0,0],[-0.716,-0.15],[0,0],[-6.732,4.988],[0,0.953],[0.251,0],[0,0],[0.483,-0.401],[0.752,-0.325],[0,0],[0,0],[-2.596,4.988],[-0.233,0],[-0.448,1.003],[0,0],[0.788,0],[0.251,-0.025],[0,0],[0,0],[0,0.251],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.276],[0,1.078],[-3.223,7.018],[0,0],[0,1.153],[0,0],[0.931,0],[1.504,-0.652],[-0.107,-1.103],[0,0],[-0.376,0],[-5.407,3.76],[0,0],[0,0],[0.125,-1.93],[1.271,0.025],[0.555,0],[0,0],[0,-0.551],[-0.179,0],[0,0],[0,0],[1.647,-3.459],[0,0],[-0.143,-1.103],[0,0],[-0.913,1.128]],"v":[[286.146,-18.949],[284.535,-19.1],[282.923,-17.295],[284.857,-15.49],[280.023,-2.105],[280.023,-1.955],[281.097,0],[281.527,0],[293.021,-7.482],[295.277,-9.888],[294.74,-11.542],[294.417,-11.542],[293.128,-10.941],[283.89,-4.813],[283.675,-4.813],[283.675,-4.963],[287.757,-15.34],[290.013,-15.302],[291.517,-16.806],[291.517,-17.859],[290.335,-18.686],[289.691,-18.648],[288.939,-18.648],[288.939,-18.799],[291.41,-24.363],[291.41,-24.514],[290.335,-26.168],[289.798,-26.168]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"t","bm":0,"hd":false}],"ip":87,"op":180,"st":20,"bm":0},{"ddd":0,"ind":139,"ty":4,"nm":"d 2 :M","sr":1,"ks":{"p":{"a":0,"k":[243.805,366.146,0]},"a":{"a":0,"k":[243.805,366.146,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.313,0.69],[-0.877,1.053],[1.307,-1.754]],"o":[[0.313,-0.689],[-0.859,2.632],[0.662,-1.955]],"v":[[10.433,-18.742],[12.219,-21.355],[8.97,-14.776]],"c":true}},"nm":"d","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.215,0],[2.632,-3.534],[0,-1.002],[0,0],[-1.074,-0.401],[0,0],[-2.829,3.81],[-1.665,0],[-0.358,0.051],[-0.34,0.426],[-0.144,0.752],[0,0],[0.931,0.326],[1.683,0],[0.967,0.502],[-0.824,2.231],[-0.054,0.99],[0,0.1],[0.806,0],[0.322,-0.1],[0.054,-0.025],[2.005,-5.013],[0.322,-1.829],[0.358,0]],"o":[[-2.507,0],[-1.504,2.206],[0,0],[0,0.902],[0,0],[3.706,-0.852],[1.396,1.429],[0.34,0],[2.059,-0.376],[1.271,-0.777],[0,0],[0,-1.278],[-1.665,1.504],[-0.967,0],[2.578,-3.283],[0.823,-2.231],[0.054,-0.99],[0,-1.203],[-0.251,0],[-0.072,0],[-1.629,0.652],[-0.627,2.006],[-0.412,-0.701],[-0.233,-0.025]],"v":[[4.297,-13.122],[-3.411,-7.82],[-5.667,-3.008],[-5.667,-2.406],[-4.055,-0.451],[-3.088,-0.451],[6.714,-7.444],[11.306,-5.301],[12.354,-5.376],[15.952,-6.58],[18.074,-8.873],[18.074,-9.023],[16.677,-11.43],[11.655,-9.174],[8.755,-9.926],[13.857,-18.197],[15.173,-23.029],[15.254,-24.664],[14.045,-26.469],[13.186,-26.318],[12.998,-26.281],[7.546,-17.784],[6.123,-12.031],[4.968,-13.084]],"c":true}},"nm":"d","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.286,0.928],[-1.683,0],[-0.179,-0.025],[2.9,-1.704]],"o":[[1.647,-2.406],[0.161,0],[-1.057,1.78],[0,-0.175]],"v":[[-1.262,-5.564],[3.733,-9.174],[4.243,-9.136],[-1.692,-3.91]],"c":true}},"nm":"d","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"d","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[105.204,364.04]},"a":{"a":0,"k":[6.204,-13.46]},"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":"d 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.376,-0.175],[1.325,-3.885],[0,0],[-0.591,0],[0,0],[-2.336,1.516],[-3.85,2.457],[-0.43,0.777],[1.146,0.226],[0.859,-0.25],[-0.958,2.018],[0,0.777],[0.161,0.502]],"o":[[-0.358,0],[-1.79,4.036],[0,0],[0.269,1.203],[0,0],[0.233,0],[2.336,-1.516],[0.931,-0.927],[0,-1.278],[-6.696,4.888],[0.197,-0.576],[0.958,-2.017],[0,-0.226],[-0.287,-0.125]],"v":[[17.15,-13.159],[16.049,-12.896],[11.376,-1.015],[11.376,-0.263],[12.666,1.542],[12.988,1.542],[16.842,-0.733],[26.12,-6.692],[28.161,-9.249],[26.442,-11.505],[15.109,-3.797],[16.842,-7.689],[18.278,-11.881],[18.037,-12.971]],"c":true}},"nm":"i","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-0.175],[-0.573,0],[-0.931,0.426],[0,0.727],[0.608,0.451],[0.645,-1.805]],"o":[[0,0.552],[0.483,0],[1.253,-0.852],[0,-0.526],[-1.934,0.251],[-0.054,0.201]],"v":[[16.828,-15.039],[17.687,-14.212],[19.809,-14.851],[21.689,-17.22],[20.776,-18.686],[16.909,-15.603]],"c":true}},"nm":"i","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"i","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[118.769,368.928]},"a":{"a":0,"k":[19.769,-8.572]},"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":"i 8","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.779],[-2.865,4.161]],"o":[[0.089,-0.376],[-0.645,2.758]],"v":[[29.216,-12.031],[33.647,-18.836]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.895],[2.023,-3.685],[0,0.075],[-3.473,9.725]],"o":[[0,0],[-0.018,1.905],[-0.743,2.895],[-0.018,-0.075],[0,-1.604],[0,0]],"v":[[25.939,-4.061],[25.939,-3.91],[24.798,3.29],[20.649,13.159],[20.622,12.934],[25.832,-4.061]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.105],[1.45,-3.835],[0,0],[0.197,-1.203],[0,0],[-0.788,-0.351],[0.125,-4.186],[-0.806,0],[0,0],[-2.721,5.765],[-0.144,5.314],[-0.788,0],[-4.333,1.705],[-0.018,0.878],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.025],[-1.235,2.507],[0,1.905],[0.036,0.301],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.484],[0,0],[-0.591,0],[0,0],[0,1.028],[-3.599,9.349],[0.125,1.905],[0,0],[1.325,0],[1.593,-4.211],[0.662,0.15],[2.739,0],[0.931,-0.626],[-0.197,-1.328],[-0.054,0],[-3.133,1.78],[-0.412,0],[2.596,-0.852],[1.235,-2.506],[0,-0.301],[0,0],[-0.197,-1.103],[0,0],[-0.824,0]],"v":[[31.203,-20.152],[25.187,-9.174],[23.576,-9.174],[22.394,-7.369],[22.394,-7.181],[23.576,-5.113],[17.99,15.189],[19.387,18.047],[19.709,18.047],[25.778,9.399],[28.383,-4.888],[30.558,-4.662],[41.166,-7.219],[42.59,-9.475],[41.596,-11.467],[41.408,-11.43],[30.048,-8.76],[28.813,-8.798],[34.56,-13.836],[36.413,-20.453],[36.359,-21.355],[36.359,-21.656],[35.178,-23.311],[34.963,-23.311]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"f","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[129.29,374.868]},"a":{"a":0,"k":[30.29,-2.632]},"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":"f 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.779],[-2.865,4.161]],"o":[[0.089,-0.376],[-0.645,2.758]],"v":[[43.477,-12.031],[47.908,-18.836]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.895],[2.023,-3.685],[0,0.075],[-3.473,9.725]],"o":[[0,0],[-0.018,1.905],[-0.743,2.895],[-0.018,-0.075],[0,-1.604],[0,0]],"v":[[40.201,-4.061],[40.201,-3.91],[39.06,3.29],[34.91,13.159],[34.884,12.934],[40.094,-4.061]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.105],[1.45,-3.835],[0,0],[0.197,-1.203],[0,0],[-0.788,-0.351],[0.125,-4.186],[-0.806,0],[0,0],[-2.721,5.765],[-0.144,5.314],[-0.788,0],[-4.333,1.705],[-0.018,0.878],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.025],[-1.235,2.507],[0,1.905],[0.036,0.301],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.484],[0,0],[-0.591,0],[0,0],[0,1.028],[-3.599,9.349],[0.125,1.905],[0,0],[1.325,0],[1.593,-4.211],[0.662,0.15],[2.739,0],[0.931,-0.626],[-0.197,-1.328],[-0.054,0],[-3.133,1.78],[-0.412,0],[2.596,-0.852],[1.235,-2.506],[0,-0.301],[0,0],[-0.197,-1.103],[0,0],[-0.824,0]],"v":[[45.465,-20.152],[39.449,-9.174],[37.838,-9.174],[36.656,-7.369],[36.656,-7.181],[37.838,-5.113],[32.252,15.189],[33.648,18.047],[33.97,18.047],[40.04,9.399],[42.645,-4.888],[44.82,-4.662],[55.428,-7.219],[56.851,-9.475],[55.858,-11.467],[55.67,-11.43],[44.31,-8.76],[43.074,-8.798],[48.822,-13.836],[50.675,-20.453],[50.621,-21.355],[50.621,-21.656],[49.439,-23.311],[49.224,-23.311]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"f","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[143.552,374.868]},"a":{"a":0,"k":[44.552,-2.632]},"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":"f 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[61.182,-10.64],[55.327,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[62.135,-14.08],[60.188,-14.325],[55.166,-12.482],[51.003,-5.113],[51.003,-4.512],[54.172,-0.752],[55.139,-0.827],[55.3,-0.827],[59.758,-1.993],[65.828,-5.602],[69.534,-9.399],[68.433,-11.242],[64.512,-7.896],[55.784,-4.136],[53.582,-5.264],[54.441,-5.264],[58.04,-5.79],[61.678,-7.802],[63.921,-10.903],[63.813,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[159.269,369.962]},"a":{"a":0,"k":[60.269,-7.538]},"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":"e 118","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.827],[0,0.251],[1.593,0.602],[0,0],[4.279,-3.91],[-0.018,0.802],[0.555,0],[0.107,-0.025],[2.372,-4.16],[0,-0.476],[0,0],[-0.859,-0.827],[0,0],[-0.645,1.304],[-3.402,1.529]],"o":[[0.394,0],[0.071,-0.301],[0,-1.203],[0,0],[-1.11,0],[0.698,-1.027],[-0.161,-0.777],[-0.09,0],[-0.967,0.301],[-2.372,4.161],[0,0],[0,0.577],[0,0],[0.43,0],[5.586,-6.717],[0.555,0.802]],"v":[[80.969,-12.633],[81.909,-13.874],[82.016,-14.701],[79.626,-17.408],[79.572,-17.408],[71.489,-11.542],[72.563,-14.287],[71.489,-15.453],[71.193,-15.415],[66.185,-8.723],[62.626,-1.767],[62.626,-1.617],[63.916,0.489],[64.453,0.489],[66.064,-1.466],[79.545,-13.836]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[171.321,369.041]},"a":{"a":0,"k":[72.321,-8.459]},"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":"r 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[85.592,-10.64],[79.738,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[86.546,-14.08],[84.599,-14.325],[79.577,-12.482],[75.414,-5.113],[75.414,-4.512],[78.583,-0.752],[79.55,-0.827],[79.711,-0.827],[84.169,-1.993],[90.238,-5.602],[93.944,-9.399],[92.843,-11.242],[88.922,-7.896],[80.194,-4.136],[77.992,-5.264],[78.851,-5.264],[82.45,-5.79],[86.089,-7.802],[88.331,-10.903],[88.224,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[183.679,369.962]},"a":{"a":0,"k":[84.679,-7.538]},"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":"e 119","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.301],[0.519,-2.907],[0,0],[-0.501,-0.502],[0,0],[-0.232,0.2],[-0.931,0],[0,-0.301],[0.036,-0.175],[0,-0.701],[-1.594,0],[-2.757,2.03],[0,1.228],[0,0],[0.608,0],[1.137,-0.614],[0.286,0],[0,0.702],[-0.197,0.752],[0,0.201],[0.806,0.226],[0.215,0],[2.059,-2.231],[0,0.126]],"o":[[-0.358,0],[-4.458,5.74],[0,0],[0,0.602],[0,0],[0.197,0],[4.923,-5.439],[0.215,0],[0,0.126],[-0.197,0.928],[0,1.955],[2.649,-1.178],[2.864,-1.654],[0,0],[-0.251,-0.602],[-4.082,2.607],[-1.137,0.614],[-0.501,0],[0,-0.451],[0.018,-0.226],[0,-1.278],[-0.179,-0.1],[-1.039,0],[1.79,-3.032],[-0.144,-0.877]],"v":[[95.35,-13.986],[94.007,-13.535],[86.542,-0.564],[86.542,-0.113],[87.294,1.542],[87.723,1.542],[88.368,1.241],[97.15,-6.918],[97.472,-6.467],[97.418,-6.016],[97.123,-3.572],[99.513,-0.639],[107.623,-5.452],[111.92,-9.775],[111.92,-10.227],[110.631,-11.129],[102.803,-6.298],[100.668,-5.376],[99.916,-6.429],[100.211,-8.234],[100.238,-8.873],[99.029,-11.129],[98.439,-11.279],[93.793,-7.933],[96.478,-12.67]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[198.231,371.278]},"a":{"a":0,"k":[99.231,-6.222]},"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":"n 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-3.685],[0.895,0.1],[0,-0.927],[-1.289,-0.125],[0,-1.905],[0,0],[-0.716,-0.15],[0,0],[-6.732,4.988],[0,0.953],[0.251,0],[0,0],[0.483,-0.401],[0.752,-0.325],[0,0],[0,0],[-2.596,4.988],[-0.233,0],[-0.448,1.003],[0,0],[0.788,0],[0.251,-0.025],[0,0],[0,0],[0,0.251],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.276],[0,1.078],[-3.223,7.018],[0,0],[0,1.153],[0,0],[0.931,0],[1.504,-0.652],[-0.107,-1.103],[0,0],[-0.376,0],[-5.407,3.76],[0,0],[0,0],[0.125,-1.93],[1.271,0.025],[0.555,0],[0,0],[0,-0.551],[-0.179,0],[0,0],[0,0],[1.647,-3.459],[0,0],[-0.144,-1.103],[0,0],[-0.913,1.128]],"v":[[112.341,-18.949],[110.73,-19.1],[109.119,-17.295],[111.052,-15.49],[106.218,-2.105],[106.218,-1.955],[107.293,0],[107.722,0],[119.216,-7.482],[121.472,-9.888],[120.935,-11.542],[120.613,-11.542],[119.324,-10.941],[110.086,-4.813],[109.871,-4.813],[109.871,-4.963],[113.953,-15.34],[116.209,-15.302],[117.713,-16.806],[117.713,-17.859],[116.531,-18.686],[115.886,-18.648],[115.134,-18.648],[115.134,-18.799],[117.605,-24.363],[117.605,-24.514],[116.531,-26.168],[115.994,-26.168]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[212.845,364.416]},"a":{"a":0,"k":[113.845,-13.084]},"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":"t 8","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.175],[1.343,-3.885],[0,0],[-0.591,0],[0,0],[-1.996,1.291],[-5.156,3.334],[-0.698,0.928],[1.146,0.226],[0.859,-0.25],[-2.883,7.645],[0,0.777],[0.143,0.476]],"o":[[-0.358,0],[-5.622,15.29],[0,0],[0.269,1.203],[0,0],[0.233,0],[1.996,-1.291],[0.949,-0.852],[0,-1.278],[-7.609,5.389],[0.197,-0.576],[2.882,-7.645],[0,-0.25],[-0.287,-0.125]],"v":[[125.635,-29.101],[124.507,-28.837],[114.06,-0.075],[114.06,0.677],[115.349,2.481],[115.671,2.481],[119.015,0.545],[129.744,-6.392],[132.214,-9.061],[130.496,-11.317],[117.793,-2.857],[122.412,-15.189],[126.736,-27.822],[126.521,-28.913]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"l","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[222.137,364.19]},"a":{"a":0,"k":[123.137,-13.31]},"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":"l 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.524,3.359],[0,0],[0.716,-0.051]],"o":[[0,0],[-1.701,3.509],[0.555,-1.604]],"v":[[128.945,6.053],[127.951,8.159],[124.326,13.498]],"c":true}},"nm":"y","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.502],[0.698,0],[0.232,-0.05],[1.002,-0.701],[0.305,0],[0,0.201],[-0.34,0.602],[-0.752,1.078],[0,0],[0.645,0],[0,0],[0.716,-0.902],[0.394,-0.551],[0,-1.027],[0,0],[0,-0.175],[-1.056,0],[-1.307,0.576],[0.287,-0.627],[0.77,-5.038],[-0.806,0],[-0.859,0.652],[-2.22,6.366],[-0.179,0.276],[0.68,0],[0,0],[3.312,-3.045],[1.647,-1.729],[-0.493,0.714],[-1.809,3.209]],"o":[[0,-0.752],[-0.197,0],[-3.062,5.439],[-0.77,0.476],[-0.197,0],[0,-0.25],[1.217,-2.581],[0,0],[-0.072,-1.203],[0,0],[-0.358,0],[-0.645,1.404],[-1.719,3.183],[0,0],[-0.036,0.226],[0,1.128],[0.752,0],[-0.34,0.802],[-4.834,4.687],[0.036,1.479],[0.537,0],[2.561,-2.382],[10.402,-9.023],[-0.018,-1.203],[0,0],[-0.949,0.075],[-3.312,3.045],[1.235,-2.256],[0.492,-0.714],[0.322,-0.852]],"v":[[139.016,-11.806],[137.969,-12.934],[137.324,-12.858],[131.228,-3.647],[129.617,-2.933],[129.321,-3.233],[129.831,-4.512],[132.785,-10.001],[132.785,-10.753],[131.711,-12.558],[131.604,-12.558],[129.992,-11.204],[128.435,-8.271],[125.857,-1.955],[125.857,-1.805],[125.803,-1.203],[127.388,0.489],[130.476,-0.376],[129.536,1.767],[121.13,16.355],[122.392,18.573],[124.487,17.596],[131.658,4.474],[147.529,-9.475],[146.482,-11.279],[146.321,-11.279],[139.929,-6.598],[132.49,0.564],[135.082,-3.891],[138.533,-9.775]],"c":true}},"nm":"y","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"y","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[233.33,380.32]},"a":{"a":0,"k":[134.33,2.82]},"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":"y","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-3.685],[0.895,0.1],[0,-0.927],[-1.289,-0.125],[0,-1.905],[0,0],[-0.716,-0.15],[0,0],[-6.732,4.988],[0,0.953],[0.251,0],[0,0],[0.483,-0.401],[0.752,-0.325],[0,0],[0,0],[-2.596,4.988],[-0.233,0],[-0.448,1.003],[0,0],[0.788,0],[0.251,-0.025],[0,0],[0,0],[0,0.251],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.276],[0,1.078],[-3.223,7.018],[0,0],[0,1.153],[0,0],[0.931,0],[1.504,-0.652],[-0.107,-1.103],[0,0],[-0.376,0],[-5.407,3.76],[0,0],[0,0],[0.125,-1.93],[1.271,0.025],[0.555,0],[0,0],[0,-0.551],[-0.179,0],[0,0],[0,0],[1.647,-3.459],[0,0],[-0.144,-1.103],[0,0],[-0.913,1.128]],"v":[[162.434,-18.949],[160.823,-19.1],[159.211,-17.295],[161.145,-15.49],[156.311,-2.105],[156.311,-1.955],[157.385,0],[157.815,0],[169.309,-7.482],[171.565,-9.888],[171.028,-11.542],[170.705,-11.542],[169.416,-10.941],[160.178,-4.813],[159.963,-4.813],[159.963,-4.963],[164.045,-15.34],[166.301,-15.302],[167.805,-16.806],[167.805,-17.859],[166.623,-18.686],[165.979,-18.648],[165.227,-18.648],[165.227,-18.799],[167.698,-24.363],[167.698,-24.514],[166.623,-26.168],[166.086,-26.168]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[262.938,364.416]},"a":{"a":0,"k":[163.938,-13.084]},"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":"t 8","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.859,-1.805],[1.898,-5.74],[0,0],[-0.716,-0.201],[0,0],[-0.698,1.203],[-1.074,0],[-0.949,-1.103],[-1.218,0],[-0.627,0.201],[0,1.905],[0,0],[0.43,0],[0.501,-0.2],[1.128,0],[0.949,0.902],[1.021,0],[1.343,-1.178],[0,0],[-1.039,2.657],[0,0.351],[0,0],[0.573,0.577],[0,0]],"o":[[-5.3,11.455],[0,0],[0,0.802],[0,0],[0.448,0],[3.205,-5.163],[0.698,0],[1.217,2.206],[1.021,-0.1],[5.353,-2.732],[0,0],[-0.358,-0.701],[-0.287,0],[-3.652,3.434],[-0.698,0],[-1.772,-2.907],[-0.734,0.025],[0,0],[0.251,-0.852],[3.491,-6.968],[0,0],[0,-0.626],[0,0],[-0.645,0]],"v":[[174.814,-25.642],[164.018,0.15],[164.018,0.752],[165.092,2.256],[165.522,2.256],[167.241,0.451],[173.659,-7.294],[176.13,-5.64],[179.782,-2.331],[182.253,-2.782],[190.283,-9.738],[190.283,-10.339],[189.101,-11.392],[187.919,-11.091],[180.749,-5.94],[178.278,-7.294],[174.089,-11.655],[170.973,-9.851],[170.866,-9.851],[172.8,-15.114],[178.036,-26.093],[178.036,-26.544],[177.177,-28.349],[177.07,-28.349]],"c":true}},"nm":"h","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"h","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[276.15,364.454]},"a":{"a":0,"k":[177.15,-13.046]},"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":"h 112","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[195.294,-10.64],[189.44,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[196.248,-14.08],[194.301,-14.325],[189.279,-12.482],[185.116,-5.113],[185.116,-4.512],[188.285,-0.752],[189.252,-0.827],[189.413,-0.827],[193.871,-1.993],[199.94,-5.602],[203.646,-9.399],[202.545,-11.242],[198.624,-7.896],[189.896,-4.136],[187.694,-5.264],[188.554,-5.264],[192.152,-5.79],[195.791,-7.802],[198.034,-10.903],[197.926,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[293.381,369.962]},"a":{"a":0,"k":[194.381,-7.538]},"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":"e 120","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.524,3.359],[0,0],[0.716,-0.051]],"o":[[0,0],[-1.701,3.509],[0.555,-1.604]],"v":[[200.377,6.053],[199.384,8.159],[195.758,13.498]],"c":true}},"nm":"y","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0.502],[0.698,0],[0.232,-0.05],[1.002,-0.701],[0.305,0],[0,0.201],[-0.34,0.602],[-0.752,1.078],[0,0],[0.645,0],[0,0],[0.716,-0.902],[0.394,-0.551],[0,-1.027],[0,0],[0,-0.175],[-1.056,0],[-1.307,0.576],[0.287,-0.627],[0.77,-5.038],[-0.806,0],[-0.859,0.652],[-2.22,6.366],[-0.179,0.276],[0.68,0],[0,0],[3.312,-3.045],[1.647,-1.729],[-0.493,0.714],[-1.809,3.209]],"o":[[0,-0.752],[-0.197,0],[-3.062,5.439],[-0.77,0.476],[-0.197,0],[0,-0.25],[1.217,-2.581],[0,0],[-0.072,-1.203],[0,0],[-0.358,0],[-0.645,1.404],[-1.719,3.183],[0,0],[-0.036,0.226],[0,1.128],[0.752,0],[-0.34,0.802],[-4.834,4.687],[0.036,1.479],[0.537,0],[2.561,-2.382],[10.402,-9.023],[-0.018,-1.203],[0,0],[-0.949,0.075],[-3.312,3.045],[1.235,-2.256],[0.492,-0.714],[0.322,-0.852]],"v":[[210.448,-11.806],[209.401,-12.934],[208.756,-12.858],[202.66,-3.647],[201.049,-2.933],[200.753,-3.233],[201.263,-4.512],[204.218,-10.001],[204.218,-10.753],[203.143,-12.558],[203.036,-12.558],[201.425,-11.204],[199.867,-8.271],[197.289,-1.955],[197.289,-1.805],[197.235,-1.203],[198.82,0.489],[201.908,-0.376],[200.968,1.767],[192.562,16.355],[193.824,18.573],[195.919,17.596],[203.09,4.474],[218.961,-9.475],[217.914,-11.279],[217.753,-11.279],[211.361,-6.598],[203.922,0.564],[206.514,-3.891],[209.965,-9.775]],"c":true}},"nm":"y","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"y","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[304.762,380.32]},"a":{"a":0,"k":[205.762,2.82]},"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":"y 3","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-1.228],[0,0],[-0.287,-0.526],[0,-0.175],[0,-0.476],[0,0],[-0.107,0],[0,0],[0,1.529],[0,0],[0.859,0],[0,0]],"o":[[0,0],[0,0.577],[1.002,0.226],[-1.146,1.429],[0,0],[0.107,0.301],[0,0],[2.22,-1.779],[0,0],[-0.287,-1.604],[0,0],[-1.576,0.176]],"v":[[210.56,-39.177],[210.56,-38.726],[210.989,-37.071],[212.493,-36.47],[210.774,-33.612],[210.774,-33.462],[211.097,-33.011],[212.064,-33.011],[215.394,-37.974],[215.394,-38.876],[213.675,-41.282],[212.923,-41.282]],"c":true}},"nm":"’","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"’","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[311.977,340.354]},"a":{"a":0,"k":[212.977,-37.146]},"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":"’","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.827],[0,0.251],[1.593,0.602],[0,0],[4.279,-3.91],[-0.018,0.802],[0.555,0],[0.107,-0.025],[2.372,-4.16],[0,-0.476],[0,0],[-0.859,-0.827],[0,0],[-0.645,1.304],[-3.402,1.529]],"o":[[0.394,0],[0.071,-0.301],[0,-1.203],[0,0],[-1.11,0],[0.698,-1.027],[-0.161,-0.777],[-0.09,0],[-0.967,0.301],[-2.372,4.161],[0,0],[0,0.577],[0,0],[0.43,0],[5.586,-6.717],[0.555,0.802]],"v":[[222.14,-12.633],[223.08,-13.874],[223.188,-14.701],[220.797,-17.408],[220.744,-17.408],[212.66,-11.542],[213.734,-14.287],[212.66,-15.453],[212.365,-15.415],[207.356,-8.723],[203.798,-1.767],[203.798,-1.617],[205.087,0.489],[205.624,0.489],[207.235,-1.466],[220.717,-13.836]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[312.493,369.041]},"a":{"a":0,"k":[213.493,-8.459]},"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":"r 8","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.251],[2.471,-0.276]],"o":[[-1.433,1.429],[2.005,-1.453]],"v":[[226.764,-10.64],[220.909,-8.083]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.163],[0.286,0],[1.826,-1.228],[0,-2.632],[0,0],[-1.611,-0.2],[0,0],[0,0],[-1.987,0.777],[-1.934,1.604],[-0.537,0.928],[0.734,0.251],[1.629,-1.504],[1.898,0],[0.43,0.752],[0,0],[-0.842,0.351],[-1.441,0.94],[-0.054,1.128],[0,0]],"o":[[-1.012,-0.163],[-1.522,0],[-2.775,2.281],[0,0],[0.501,2.306],[0,0],[0,0],[0.984,0],[2.112,-0.802],[1.934,-1.604],[0,-0.978],[-0.985,0.727],[-3.921,2.507],[-1.039,0],[0,0],[1.558,0],[0.984,-0.401],[1.441,-0.94],[0,0],[-0.107,-1.453]],"v":[[227.717,-14.08],[225.77,-14.325],[220.748,-12.482],[216.585,-5.113],[216.585,-4.512],[219.754,-0.752],[220.721,-0.827],[220.882,-0.827],[225.34,-1.993],[231.41,-5.602],[235.116,-9.399],[234.015,-11.242],[230.094,-7.896],[221.366,-4.136],[219.163,-5.264],[220.023,-5.264],[223.621,-5.79],[227.26,-7.802],[229.503,-10.903],[229.395,-11.655]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[324.85,369.962]},"a":{"a":0,"k":[225.85,-7.538]},"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":"e 221","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.301],[0.519,-2.907],[0,0],[-0.501,-0.502],[0,0],[-0.232,0.2],[-0.931,0],[0,-0.301],[0.036,-0.175],[0,-0.701],[-1.594,0],[-2.757,2.03],[0,1.228],[0,0],[0.608,0],[1.137,-0.614],[0.286,0],[0,0.702],[-0.197,0.752],[0,0.201],[0.806,0.226],[0.215,0],[2.059,-2.231],[0,0.126]],"o":[[-0.358,0],[-4.458,5.74],[0,0],[0,0.602],[0,0],[0.197,0],[4.923,-5.439],[0.215,0],[0,0.126],[-0.197,0.928],[0,1.955],[2.649,-1.178],[2.864,-1.654],[0,0],[-0.251,-0.602],[-4.082,2.607],[-1.137,0.614],[-0.501,0],[0,-0.451],[0.018,-0.226],[0,-1.278],[-0.179,-0.1],[-1.039,0],[1.79,-3.032],[-0.144,-0.877]],"v":[[251.363,-13.986],[250.02,-13.535],[242.555,-0.564],[242.555,-0.113],[243.307,1.542],[243.736,1.542],[244.381,1.241],[253.163,-6.918],[253.485,-6.467],[253.431,-6.016],[253.136,-3.572],[255.526,-0.639],[263.636,-5.452],[267.933,-9.775],[267.933,-10.227],[266.644,-11.129],[258.816,-6.298],[256.681,-5.376],[255.929,-6.429],[256.224,-8.234],[256.251,-8.873],[255.042,-11.129],[254.452,-11.279],[249.806,-7.933],[252.491,-12.67]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[354.244,371.278]},"a":{"a":0,"k":[255.244,-6.222]},"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":"n 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,1.028],[-0.573,0],[-0.251,-0.301],[3.258,0]],"o":[[0.895,-0.351],[0.537,0],[-2.202,2.782],[1.164,-1.704]],"v":[[268.853,-8.008],[271.055,-8.535],[272.236,-8.083],[264.045,-3.91]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-1.303],[0,-1.453],[0,0],[-1.898,-1.027],[0,0],[-3.151,3.961],[-1.253,0],[-0.985,0.276],[0,1.454],[0,0],[0.501,0.276],[1.844,0],[1.307,0.502]],"o":[[0,-1.429],[-1.522,0],[-3.867,2.382],[0,0],[0,1.63],[0,0],[4.512,0],[1.002,0.552],[0.877,0],[2.399,-0.626],[0,0],[0,-0.626],[-1.647,1.128],[-1.235,0],[0,0]],"v":[[275.405,-10.49],[273.015,-12.633],[266.274,-10.678],[260.474,-4.925],[260.474,-4.324],[263.32,-0.338],[263.911,-0.338],[275.405,-6.279],[278.789,-5.452],[281.582,-5.865],[285.181,-8.986],[285.181,-9.738],[284.429,-11.091],[279.192,-9.399],[275.378,-10.151]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[371.827,371.014]},"a":{"a":0,"k":[272.827,-6.486]},"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":"o 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[1.522,-3.685],[0.895,0.1],[0,-0.927],[-1.289,-0.125],[0,-1.905],[0,0],[-0.716,-0.15],[0,0],[-6.732,4.988],[0,0.953],[0.251,0],[0,0],[0.483,-0.401],[0.752,-0.325],[0,0],[0,0],[-2.596,4.988],[-0.233,0],[-0.448,1.003],[0,0],[0.788,0],[0.251,-0.025],[0,0],[0,0],[0,0.251],[0,0],[0.573,0],[0,0]],"o":[[-0.179,0],[-1.074,0.276],[0,1.078],[-3.223,7.018],[0,0],[0,1.153],[0,0],[0.931,0],[1.504,-0.652],[-0.107,-1.103],[0,0],[-0.376,0],[-5.407,3.76],[0,0],[0,0],[0.125,-1.93],[1.271,0.025],[0.555,0],[0,0],[0,-0.551],[-0.179,0],[0,0],[0,0],[1.647,-3.459],[0,0],[-0.143,-1.103],[0,0],[-0.913,1.128]],"v":[[286.146,-18.949],[284.535,-19.1],[282.923,-17.295],[284.857,-15.49],[280.023,-2.105],[280.023,-1.955],[281.097,0],[281.527,0],[293.021,-7.482],[295.277,-9.888],[294.74,-11.542],[294.417,-11.542],[293.128,-10.941],[283.89,-4.813],[283.675,-4.813],[283.675,-4.963],[287.757,-15.34],[290.013,-15.302],[291.517,-16.806],[291.517,-17.859],[290.335,-18.686],[289.691,-18.648],[288.939,-18.648],[288.939,-18.799],[291.41,-24.363],[291.41,-24.514],[290.335,-26.168],[289.798,-26.168]],"c":true}},"nm":"t","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"t","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[386.65,364.416]},"a":{"a":0,"k":[287.65,-13.084]},"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":"t 10","bm":0,"hd":false}],"ip":0,"op":13,"st":0,"bm":0},{"ddd":0,"ind":140,"ty":4,"nm":"f 6","sr":1,"ks":{"p":{"a":0,"k":[104.877,423.812,0]},"a":{"a":0,"k":[4.377,-2.688,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.818],[-2.865,4.25]],"o":[[0.089,-0.384],[-0.645,2.817]],"v":[[3.303,-12.289],[7.734,-19.24]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.957],[2.023,-3.764],[0,0.077],[-3.473,9.933]],"o":[[0,0],[-0.018,1.946],[-0.743,2.957],[-0.018,-0.077],[0,-1.639],[0,0]],"v":[[0.027,-4.148],[0.027,-3.994],[-1.115,3.36],[-5.264,13.441],[-5.291,13.211],[-0.081,-4.148]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.151],[1.45,-3.917],[0,0],[0.197,-1.229],[0,0],[-0.788,-0.358],[0.125,-4.276],[-0.806,0],[0,0],[-2.721,5.888],[-0.144,5.427],[-0.788,0],[-4.333,1.741],[-0.018,0.896],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.026],[-1.235,2.56],[0,1.946],[0.036,0.307],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.559],[0,0],[-0.591,0],[0,0],[0,1.05],[-3.599,9.549],[0.125,1.945],[0,0],[1.325,0],[1.593,-4.301],[0.662,0.154],[2.739,0],[0.931,-0.64],[-0.197,-1.357],[-0.054,0],[-3.133,1.818],[-0.412,0],[2.596,-0.87],[1.235,-2.56],[0,-0.307],[0,0],[-0.197,-1.126],[0,0],[-0.824,0]],"v":[[5.291,-20.584],[-0.725,-9.37],[-2.336,-9.37],[-3.518,-7.527],[-3.518,-7.335],[-2.336,-5.223],[-7.922,15.515],[-6.526,18.434],[-6.204,18.434],[-0.134,9.601],[2.471,-4.992],[4.646,-4.762],[15.254,-7.373],[16.677,-9.678],[15.684,-11.713],[15.496,-11.675],[4.136,-8.948],[2.9,-8.986],[8.647,-14.132],[10.5,-20.891],[10.447,-21.813],[10.447,-22.12],[9.265,-23.81],[9.05,-23.81]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"f","bm":0,"hd":false}],"ip":105,"op":180,"st":0,"bm":0},{"ddd":0,"ind":141,"ty":4,"nm":"o 9","sr":1,"ks":{"p":{"a":0,"k":[121.648,419.875,0]},"a":{"a":0,"k":[21.148,-6.625,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,1.05],[-0.573,0],[-0.251,-0.307],[3.258,0]],"o":[[0.895,-0.358],[0.537,0],[-2.202,2.842],[1.164,-1.741]],"v":[[17.174,-8.18],[19.376,-8.718],[20.557,-8.257],[12.366,-3.994]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-1.331],[0,-1.485],[0,0],[-1.898,-1.049],[0,0],[-3.151,4.046],[-1.253,0],[-0.985,0.282],[0,1.485],[0,0],[0.501,0.282],[1.844,0],[1.307,0.512]],"o":[[0,-1.459],[-1.522,0],[-3.867,2.433],[0,0],[0,1.665],[0,0],[4.512,0],[1.002,0.563],[0.877,0],[2.399,-0.64],[0,0],[0,-0.64],[-1.647,1.152],[-1.235,0],[0,0]],"v":[[23.726,-10.715],[21.336,-12.904],[14.595,-10.907],[8.795,-5.031],[8.795,-4.416],[11.641,-0.346],[12.232,-0.346],[23.726,-6.413],[27.11,-5.568],[29.903,-5.991],[33.502,-9.178],[33.502,-9.946],[32.75,-11.329],[27.513,-9.601],[23.699,-10.369]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":107,"op":180,"st":2,"bm":0},{"ddd":0,"ind":142,"ty":4,"nm":"n 8","sr":1,"ks":{"p":{"a":0,"k":[139.281,420.144,0]},"a":{"a":0,"k":[38.781,-6.356,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.307],[0.519,-2.97],[0,0],[-0.501,-0.512],[0,0],[-0.232,0.205],[-0.931,0],[0,-0.307],[0.036,-0.179],[0,-0.716],[-1.594,0],[-2.757,2.074],[0,1.255],[0,0],[0.608,0],[1.137,-0.627],[0.286,0],[0,0.717],[-0.197,0.768],[0,0.205],[0.806,0.23],[0.215,0],[2.059,-2.278],[0,0.128]],"o":[[-0.358,0],[-4.458,5.863],[0,0],[0,0.614],[0,0],[0.197,0],[4.923,-5.555],[0.215,0],[0,0.128],[-0.197,0.947],[0,1.997],[2.649,-1.203],[2.864,-1.69],[0,0],[-0.251,-0.614],[-4.082,2.663],[-1.137,0.628],[-0.501,0],[0,-0.461],[0.018,-0.23],[0,-1.306],[-0.179,-0.102],[-1.039,0],[1.79,-3.097],[-0.144,-0.896]],"v":[[34.9,-14.286],[33.557,-13.825],[26.092,-0.576],[26.092,-0.115],[26.844,1.575],[27.273,1.575],[27.918,1.267],[36.7,-7.066],[37.022,-6.605],[36.968,-6.145],[36.673,-3.648],[39.063,-0.653],[47.173,-5.568],[51.47,-9.985],[51.47,-10.446],[50.181,-11.367],[42.353,-6.433],[40.218,-5.492],[39.466,-6.567],[39.761,-8.41],[39.788,-9.063],[38.579,-11.367],[37.989,-11.521],[33.343,-8.103],[36.028,-12.942]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"n","bm":0,"hd":false}],"ip":109,"op":180,"st":4,"bm":0},{"ddd":0,"ind":143,"ty":4,"nm":"d 4","sr":1,"ks":{"p":{"a":0,"k":[156.418,412.752,0]},"a":{"a":0,"k":[55.918,-13.748,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.313,0.704],[-0.877,1.075],[1.307,-1.792]],"o":[[0.313,-0.704],[-0.859,2.688],[0.662,-1.997]],"v":[[60.147,-19.144],[61.933,-21.813],[58.684,-15.092]],"c":true}},"nm":"d","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.215,0],[2.632,-3.61],[0,-1.024],[0,0],[-1.074,-0.409],[0,0],[-2.829,3.892],[-1.665,0],[-0.358,0.052],[-0.34,0.436],[-0.144,0.768],[0,0],[0.931,0.333],[1.683,0],[0.967,0.512],[-0.824,2.279],[-0.054,1.012],[0,0.103],[0.806,0],[0.322,-0.102],[0.054,-0.025],[2.005,-5.12],[0.322,-1.869],[0.358,0]],"o":[[-2.507,0],[-1.504,2.253],[0,0],[0,0.922],[0,0],[3.706,-0.87],[1.396,1.459],[0.34,0],[2.059,-0.384],[1.271,-0.793],[0,0],[0,-1.306],[-1.665,1.536],[-0.967,0],[2.578,-3.354],[0.823,-2.278],[0.054,-1.011],[0,-1.229],[-0.251,0],[-0.072,0],[-1.629,0.666],[-0.627,2.049],[-0.412,-0.716],[-0.233,-0.025]],"v":[[54.011,-13.403],[46.303,-7.988],[44.048,-3.072],[44.048,-2.458],[45.659,-0.461],[46.626,-0.461],[56.428,-7.604],[61.02,-5.415],[62.068,-5.492],[65.666,-6.721],[67.788,-9.063],[67.788,-9.217],[66.391,-11.675],[61.369,-9.37],[58.469,-10.138],[63.572,-18.587],[64.887,-23.522],[64.968,-25.193],[63.76,-27.036],[62.9,-26.882],[62.712,-26.844],[57.26,-18.165],[55.837,-12.289],[54.682,-13.364]],"c":true}},"nm":"d","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.286,0.947],[-1.683,0],[-0.179,-0.025],[2.9,-1.741]],"o":[[1.647,-2.458],[0.161,0],[-1.057,1.818],[0,-0.179]],"v":[[48.452,-5.684],[53.447,-9.37],[53.957,-9.332],[48.022,-3.994]],"c":true}},"nm":"d","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"d","bm":0,"hd":false}],"ip":111,"op":180,"st":6,"bm":0},{"ddd":0,"ind":144,"ty":4,"nm":"o 10","sr":1,"ks":{"p":{"a":0,"k":[185.878,419.875,0]},"a":{"a":0,"k":[85.378,-6.625,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,1.05],[-0.573,0],[-0.251,-0.307],[3.258,0]],"o":[[0.895,-0.358],[0.537,0],[-2.202,2.842],[1.164,-1.741]],"v":[[81.404,-8.18],[83.606,-8.718],[84.787,-8.257],[76.596,-3.994]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-1.331],[0,-1.485],[0,0],[-1.898,-1.049],[0,0],[-3.151,4.046],[-1.253,0],[-0.985,0.282],[0,1.485],[0,0],[0.501,0.282],[1.844,0],[1.307,0.512]],"o":[[0,-1.459],[-1.522,0],[-3.867,2.433],[0,0],[0,1.665],[0,0],[4.512,0],[1.002,0.563],[0.877,0],[2.399,-0.64],[0,0],[0,-0.64],[-1.647,1.152],[-1.235,0],[0,0]],"v":[[87.956,-10.715],[85.566,-12.904],[78.825,-10.907],[73.025,-5.031],[73.025,-4.416],[75.871,-0.346],[76.462,-0.346],[87.956,-6.413],[91.34,-5.568],[94.133,-5.991],[97.732,-9.178],[97.732,-9.946],[96.98,-11.329],[91.743,-9.601],[87.929,-10.369]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"o","bm":0,"hd":false}],"ip":113,"op":180,"st":8,"bm":0},{"ddd":0,"ind":145,"ty":4,"nm":"f 7","sr":1,"ks":{"p":{"a":0,"k":[200.957,423.812,0]},"a":{"a":0,"k":[100.457,-2.688,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.818],[-2.865,4.25]],"o":[[0.089,-0.384],[-0.645,2.817]],"v":[[99.383,-12.289],[103.814,-19.24]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.957],[2.023,-3.764],[0,0.077],[-3.473,9.933]],"o":[[0,0],[-0.018,1.946],[-0.743,2.957],[-0.018,-0.077],[0,-1.639],[0,0]],"v":[[96.107,-4.148],[96.107,-3.994],[94.965,3.36],[90.816,13.441],[90.789,13.211],[95.999,-4.148]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.151],[1.45,-3.917],[0,0],[0.197,-1.229],[0,0],[-0.788,-0.358],[0.125,-4.276],[-0.806,0],[0,0],[-2.721,5.888],[-0.144,5.427],[-0.788,0],[-4.333,1.741],[-0.018,0.896],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.026],[-1.235,2.56],[0,1.946],[0.036,0.307],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.559],[0,0],[-0.591,0],[0,0],[0,1.05],[-3.599,9.549],[0.125,1.945],[0,0],[1.325,0],[1.593,-4.301],[0.662,0.154],[2.739,0],[0.931,-0.64],[-0.197,-1.357],[-0.054,0],[-3.133,1.818],[-0.412,0],[2.596,-0.87],[1.235,-2.56],[0,-0.307],[0,0],[-0.197,-1.126],[0,0],[-0.824,0]],"v":[[101.37,-20.584],[95.355,-9.37],[93.743,-9.37],[92.562,-7.527],[92.562,-7.335],[93.743,-5.223],[88.157,15.515],[89.554,18.434],[89.876,18.434],[95.945,9.601],[98.55,-4.992],[100.726,-4.762],[111.334,-7.373],[112.757,-9.678],[111.763,-11.713],[111.575,-11.675],[100.215,-8.948],[98.98,-8.986],[104.727,-14.132],[106.58,-20.891],[106.526,-21.813],[106.526,-22.12],[105.345,-23.81],[105.13,-23.81]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"f","bm":0,"hd":false}],"ip":115,"op":180,"st":10,"bm":0},{"ddd":0,"ind":146,"ty":4,"nm":"r 9","sr":1,"ks":{"p":{"a":0,"k":[229.961,417.859,0]},"a":{"a":0,"k":[129.461,-8.641,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.845],[0,0.256],[1.593,0.614],[0,0],[4.279,-3.994],[-0.018,0.82],[0.555,0],[0.107,-0.025],[2.372,-4.25],[0,-0.486],[0,0],[-0.859,-0.845],[0,0],[-0.645,1.332],[-3.402,1.562]],"o":[[0.394,0],[0.071,-0.307],[0,-1.229],[0,0],[-1.11,0],[0.698,-1.049],[-0.161,-0.793],[-0.09,0],[-0.967,0.307],[-2.372,4.25],[0,0],[0,0.589],[0,0],[0.43,0],[5.586,-6.861],[0.555,0.82]],"v":[[138.108,-12.904],[139.048,-14.171],[139.156,-15.016],[136.766,-17.781],[136.712,-17.781],[128.629,-11.79],[129.703,-14.593],[128.629,-15.784],[128.333,-15.745],[123.325,-8.91],[119.766,-1.805],[119.766,-1.651],[121.055,0.499],[121.592,0.499],[123.204,-1.498],[136.685,-14.132]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"r","bm":0,"hd":false}],"ip":117,"op":180,"st":12,"bm":0},{"ddd":0,"ind":147,"ty":4,"nm":"u 5","sr":1,"ks":{"p":{"a":0,"k":[240.956,420.144,0]},"a":{"a":0,"k":[140.456,-6.356,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.409],[0.681,-2.151],[0,0],[-0.931,-0.205],[0,0],[-2.292,2.381],[0,-0.384],[-0.537,-0.025],[0,0],[-3.169,3.072],[0,0.461],[0.895,0.026],[2.184,-0.819],[-1.325,2.33],[0,0],[0.501,0],[0.286,-0.307],[1.244,-1.229],[0.931,-0.179],[0,0.205]],"o":[[-0.305,0],[-2.864,4.404],[0,0],[0,1.127],[0,0],[1.558,-0.154],[-0.233,0.64],[0,0.614],[0,0],[4.565,-2.022],[0.43,-0.793],[0,-0.691],[-3.796,3.098],[0.304,-0.691],[0,0],[-0.376,-1.126],[-0.251,0],[-1.396,2.74],[-1.245,1.229],[2.649,-4.173],[-0.287,-1.126]],"v":[[136.616,-12.673],[135.569,-12.059],[130.251,-2.227],[130.251,-1.767],[131.648,0.23],[131.863,0.23],[137.636,-3.572],[137.287,-2.035],[138.093,-1.075],[138.415,-1.075],[150.017,-8.718],[150.661,-10.599],[149.319,-11.675],[140.349,-5.799],[142.793,-10.33],[143.196,-11.252],[141.88,-12.942],[141.074,-12.481],[137.113,-6.529],[133.85,-4.416],[137.824,-10.983]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"u","bm":0,"hd":false}],"ip":119,"op":180,"st":14,"bm":0},{"ddd":0,"ind":148,"ty":4,"nm":"l 6","sr":1,"ks":{"p":{"a":0,"k":[252.97,412.905,0]},"a":{"a":0,"k":[152.47,-13.595,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.179],[1.343,-3.968],[0,0],[-0.591,0],[0,0],[-1.996,1.318],[-5.156,3.405],[-0.698,0.947],[1.146,0.23],[0.859,-0.256],[-2.883,7.809],[0,0.794],[0.143,0.487]],"o":[[-0.358,0],[-5.622,15.618],[0,0],[0.269,1.229],[0,0],[0.233,0],[1.996,-1.318],[0.949,-0.87],[0,-1.306],[-7.609,5.505],[0.197,-0.589],[2.882,-7.808],[0,-0.256],[-0.287,-0.128]],"v":[[154.968,-29.724],[153.84,-29.455],[143.393,-0.077],[143.393,0.691],[144.682,2.535],[145.005,2.535],[148.348,0.557],[159.077,-6.529],[161.548,-9.255],[159.829,-11.559],[147.126,-2.919],[151.745,-15.515],[156.069,-28.418],[155.854,-29.532]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"l","bm":0,"hd":false}],"ip":121,"op":180,"st":16,"bm":0},{"ddd":0,"ind":149,"ty":4,"nm":"e 114","sr":1,"ks":{"p":{"a":0,"k":[266.054,418.8,0]},"a":{"a":0,"k":[165.554,-7.7,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.256],[2.471,-0.281]],"o":[[-1.433,1.459],[2.005,-1.485]],"v":[[166.468,-10.868],[160.613,-8.257]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.167],[0.286,0],[1.826,-1.254],[0,-2.688],[0,0],[-1.611,-0.205],[0,0],[0,0],[-1.987,0.794],[-1.934,1.639],[-0.537,0.947],[0.734,0.256],[1.629,-1.536],[1.898,0],[0.43,0.768],[0,0],[-0.842,0.359],[-1.441,0.96],[-0.054,1.152],[0,0]],"o":[[-1.012,-0.166],[-1.522,0],[-2.775,2.33],[0,0],[0.501,2.356],[0,0],[0,0],[0.984,0],[2.112,-0.819],[1.934,-1.638],[0,-0.998],[-0.985,0.743],[-3.921,2.56],[-1.039,0],[0,0],[1.558,0],[0.984,-0.409],[1.441,-0.96],[0,0],[-0.107,-1.485]],"v":[[167.421,-14.382],[165.474,-14.632],[160.452,-12.75],[156.289,-5.223],[156.289,-4.608],[159.458,-0.768],[160.425,-0.845],[160.586,-0.845],[165.044,-2.035],[171.114,-5.722],[174.82,-9.601],[173.718,-11.483],[169.798,-8.065],[161.07,-4.224],[158.867,-5.376],[159.727,-5.376],[163.325,-5.914],[166.964,-7.969],[169.207,-11.137],[169.099,-11.905]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"e","bm":0,"hd":false}],"ip":123,"op":180,"st":18,"bm":0},{"ddd":0,"ind":150,"ty":4,"nm":"s 12","sr":1,"ks":{"p":{"a":0,"k":[278.519,419.319,0]},"a":{"a":0,"k":[178.019,-7.181,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-3.303],[0,-0.896],[0,0],[0,-0.102],[0.537,0],[0.591,0.333],[0,-0.768],[-0.089,-0.332],[-0.591,0],[-0.018,0],[-1.218,1.638],[-3.008,1.613],[-0.859,1.485],[0,0],[0.859,0],[0,0],[4.977,-1.894],[-0.072,0.589],[-1.755,0.128],[-0.305,0],[-0.233,0.871],[0,0.179],[2.023,0.384]],"o":[[0.072,1.152],[0,0],[0.018,0.128],[0,0.768],[-0.358,0],[-0.68,0.512],[0,0.282],[0.358,1.177],[0.591,0],[1.128,0],[2.023,-0.742],[3.008,-1.613],[0,0],[0,-0.922],[0,0],[-2.972,2.765],[0,-2.739],[0.215,-1.434],[0.412,0.384],[0.447,0],[0.054,-0.179],[0,-1.126],[-2.775,0.41]],"v":[[171.574,-9.87],[171.681,-6.797],[171.574,-4.532],[171.601,-4.186],[170.795,-3.034],[169.372,-3.533],[168.351,-1.613],[168.485,-0.691],[169.909,1.075],[170.822,1.075],[174.34,-1.383],[181.886,-4.916],[187.687,-9.562],[187.687,-10.177],[186.398,-11.559],[185.968,-11.559],[174.044,-4.57],[174.152,-9.562],[177.106,-11.905],[178.18,-11.329],[179.201,-12.635],[179.281,-13.172],[176.247,-15.438]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550006941,0.372550006941,0.376470019771,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":"s","bm":0,"hd":false}],"ip":125,"op":180,"st":20,"bm":0},{"ddd":0,"ind":151,"ty":4,"nm":"f 4 :M","sr":1,"ks":{"p":{"a":0,"k":[190.382,420.855,0]},"a":{"a":0,"k":[190.382,420.855,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.818],[-2.865,4.25]],"o":[[0.089,-0.384],[-0.645,2.817]],"v":[[3.303,-12.289],[7.734,-19.24]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.957],[2.023,-3.764],[0,0.077],[-3.473,9.933]],"o":[[0,0],[-0.018,1.946],[-0.743,2.957],[-0.018,-0.077],[0,-1.639],[0,0]],"v":[[0.027,-4.148],[0.027,-3.994],[-1.115,3.36],[-5.264,13.441],[-5.291,13.211],[-0.081,-4.148]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.151],[1.45,-3.917],[0,0],[0.197,-1.229],[0,0],[-0.788,-0.358],[0.125,-4.276],[-0.806,0],[0,0],[-2.721,5.888],[-0.144,5.427],[-0.788,0],[-4.333,1.741],[-0.018,0.896],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.026],[-1.235,2.56],[0,1.946],[0.036,0.307],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.559],[0,0],[-0.591,0],[0,0],[0,1.05],[-3.599,9.549],[0.125,1.945],[0,0],[1.325,0],[1.593,-4.301],[0.662,0.154],[2.739,0],[0.931,-0.64],[-0.197,-1.357],[-0.054,0],[-3.133,1.818],[-0.412,0],[2.596,-0.87],[1.235,-2.56],[0,-0.307],[0,0],[-0.197,-1.126],[0,0],[-0.824,0]],"v":[[5.291,-20.584],[-0.725,-9.37],[-2.336,-9.37],[-3.518,-7.527],[-3.518,-7.335],[-2.336,-5.223],[-7.922,15.515],[-6.526,18.434],[-6.204,18.434],[-0.134,9.601],[2.471,-4.992],[4.646,-4.762],[15.254,-7.373],[16.677,-9.678],[15.684,-11.713],[15.496,-11.675],[4.136,-8.948],[2.9,-8.986],[8.647,-14.132],[10.5,-20.891],[10.447,-21.813],[10.447,-22.12],[9.265,-23.81],[9.05,-23.81]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"f","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[104.877,423.812]},"a":{"a":0,"k":[4.377,-2.688]},"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":"f 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,1.05],[-0.573,0],[-0.251,-0.307],[3.258,0]],"o":[[0.895,-0.358],[0.537,0],[-2.202,2.842],[1.164,-1.741]],"v":[[17.174,-8.18],[19.376,-8.718],[20.557,-8.257],[12.366,-3.994]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-1.331],[0,-1.485],[0,0],[-1.898,-1.049],[0,0],[-3.151,4.046],[-1.253,0],[-0.985,0.282],[0,1.485],[0,0],[0.501,0.282],[1.844,0],[1.307,0.512]],"o":[[0,-1.459],[-1.522,0],[-3.867,2.433],[0,0],[0,1.665],[0,0],[4.512,0],[1.002,0.563],[0.877,0],[2.399,-0.64],[0,0],[0,-0.64],[-1.647,1.152],[-1.235,0],[0,0]],"v":[[23.726,-10.715],[21.336,-12.904],[14.595,-10.907],[8.795,-5.031],[8.795,-4.416],[11.641,-0.346],[12.232,-0.346],[23.726,-6.413],[27.11,-5.568],[29.903,-5.991],[33.502,-9.178],[33.502,-9.946],[32.75,-11.329],[27.513,-9.601],[23.699,-10.369]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[121.648,419.875]},"a":{"a":0,"k":[21.148,-6.625]},"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":"o 9","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.608,0],[0.537,-0.307],[0.519,-2.97],[0,0],[-0.501,-0.512],[0,0],[-0.232,0.205],[-0.931,0],[0,-0.307],[0.036,-0.179],[0,-0.716],[-1.594,0],[-2.757,2.074],[0,1.255],[0,0],[0.608,0],[1.137,-0.627],[0.286,0],[0,0.717],[-0.197,0.768],[0,0.205],[0.806,0.23],[0.215,0],[2.059,-2.278],[0,0.128]],"o":[[-0.358,0],[-4.458,5.863],[0,0],[0,0.614],[0,0],[0.197,0],[4.923,-5.555],[0.215,0],[0,0.128],[-0.197,0.947],[0,1.997],[2.649,-1.203],[2.864,-1.69],[0,0],[-0.251,-0.614],[-4.082,2.663],[-1.137,0.628],[-0.501,0],[0,-0.461],[0.018,-0.23],[0,-1.306],[-0.179,-0.102],[-1.039,0],[1.79,-3.097],[-0.144,-0.896]],"v":[[34.9,-14.286],[33.557,-13.825],[26.092,-0.576],[26.092,-0.115],[26.844,1.575],[27.273,1.575],[27.918,1.267],[36.7,-7.066],[37.022,-6.605],[36.968,-6.145],[36.673,-3.648],[39.063,-0.653],[47.173,-5.568],[51.47,-9.985],[51.47,-10.446],[50.181,-11.367],[42.353,-6.433],[40.218,-5.492],[39.466,-6.567],[39.761,-8.41],[39.788,-9.063],[38.579,-11.367],[37.989,-11.521],[33.343,-8.103],[36.028,-12.942]],"c":true}},"nm":"n","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"n","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[139.281,420.144]},"a":{"a":0,"k":[38.781,-6.356]},"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":"n 9","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.313,0.704],[-0.877,1.075],[1.307,-1.792]],"o":[[0.313,-0.704],[-0.859,2.688],[0.662,-1.997]],"v":[[60.147,-19.144],[61.933,-21.813],[58.684,-15.092]],"c":true}},"nm":"d","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0.215,0],[2.632,-3.61],[0,-1.024],[0,0],[-1.074,-0.409],[0,0],[-2.829,3.892],[-1.665,0],[-0.358,0.052],[-0.34,0.436],[-0.144,0.768],[0,0],[0.931,0.333],[1.683,0],[0.967,0.512],[-0.824,2.279],[-0.054,1.012],[0,0.103],[0.806,0],[0.322,-0.102],[0.054,-0.025],[2.005,-5.12],[0.322,-1.869],[0.358,0]],"o":[[-2.507,0],[-1.504,2.253],[0,0],[0,0.922],[0,0],[3.706,-0.87],[1.396,1.459],[0.34,0],[2.059,-0.384],[1.271,-0.793],[0,0],[0,-1.306],[-1.665,1.536],[-0.967,0],[2.578,-3.354],[0.823,-2.278],[0.054,-1.011],[0,-1.229],[-0.251,0],[-0.072,0],[-1.629,0.666],[-0.627,2.049],[-0.412,-0.716],[-0.233,-0.025]],"v":[[54.011,-13.403],[46.303,-7.988],[44.048,-3.072],[44.048,-2.458],[45.659,-0.461],[46.626,-0.461],[56.428,-7.604],[61.02,-5.415],[62.068,-5.492],[65.666,-6.721],[67.788,-9.063],[67.788,-9.217],[66.391,-11.675],[61.369,-9.37],[58.469,-10.138],[63.572,-18.587],[64.887,-23.522],[64.968,-25.193],[63.76,-27.036],[62.9,-26.882],[62.712,-26.844],[57.26,-18.165],[55.837,-12.289],[54.682,-13.364]],"c":true}},"nm":"d","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.286,0.947],[-1.683,0],[-0.179,-0.025],[2.9,-1.741]],"o":[[1.647,-2.458],[0.161,0],[-1.057,1.818],[0,-0.179]],"v":[[48.452,-5.684],[53.447,-9.37],[53.957,-9.332],[48.022,-3.994]],"c":true}},"nm":"d","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"d","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[156.418,412.752]},"a":{"a":0,"k":[55.918,-13.748]},"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":"d 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.041,1.05],[-0.573,0],[-0.251,-0.307],[3.258,0]],"o":[[0.895,-0.358],[0.537,0],[-2.202,2.842],[1.164,-1.741]],"v":[[81.404,-8.18],[83.606,-8.718],[84.787,-8.257],[76.596,-3.994]],"c":true}},"nm":"o","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[1.593,0],[2.972,-1.331],[0,-1.485],[0,0],[-1.898,-1.049],[0,0],[-3.151,4.046],[-1.253,0],[-0.985,0.282],[0,1.485],[0,0],[0.501,0.282],[1.844,0],[1.307,0.512]],"o":[[0,-1.459],[-1.522,0],[-3.867,2.433],[0,0],[0,1.665],[0,0],[4.512,0],[1.002,0.563],[0.877,0],[2.399,-0.64],[0,0],[0,-0.64],[-1.647,1.152],[-1.235,0],[0,0]],"v":[[87.956,-10.715],[85.566,-12.904],[78.825,-10.907],[73.025,-5.031],[73.025,-4.416],[75.871,-0.346],[76.462,-0.346],[87.956,-6.413],[91.34,-5.568],[94.133,-5.991],[97.732,-9.178],[97.732,-9.946],[96.98,-11.329],[91.743,-9.601],[87.929,-10.369]],"c":true}},"nm":"o","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"o","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[185.878,419.875]},"a":{"a":0,"k":[85.378,-6.625]},"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":"o 11","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[2.31,-1.818],[-2.865,4.25]],"o":[[0.089,-0.384],[-0.645,2.817]],"v":[[99.383,-12.289],[103.814,-19.24]],"c":true}},"nm":"f","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.743,-2.957],[2.023,-3.764],[0,0.077],[-3.473,9.933]],"o":[[0,0],[-0.018,1.946],[-0.743,2.957],[-0.018,-0.077],[0,-1.639],[0,0]],"v":[[96.107,-4.148],[96.107,-3.994],[94.965,3.36],[90.816,13.441],[90.789,13.211],[95.999,-4.148]],"c":true}},"nm":"f","hd":false},{"ind":2,"ty":"sh","ks":{"a":0,"k":{"i":[[1.683,-2.151],[1.45,-3.917],[0,0],[0.197,-1.229],[0,0],[-0.788,-0.358],[0.125,-4.276],[-0.806,0],[0,0],[-2.721,5.888],[-0.144,5.427],[-0.788,0],[-4.333,1.741],[-0.018,0.896],[0.465,0],[0.071,-0.025],[4.44,0],[0.412,0.026],[-1.235,2.56],[0,1.946],[0.036,0.307],[0,0],[0.591,0],[0,0]],"o":[[-2.561,3.559],[0,0],[-0.591,0],[0,0],[0,1.05],[-3.599,9.549],[0.125,1.945],[0,0],[1.325,0],[1.593,-4.301],[0.662,0.154],[2.739,0],[0.931,-0.64],[-0.197,-1.357],[-0.054,0],[-3.133,1.818],[-0.412,0],[2.596,-0.87],[1.235,-2.56],[0,-0.307],[0,0],[-0.197,-1.126],[0,0],[-0.824,0]],"v":[[101.37,-20.584],[95.355,-9.37],[93.743,-9.37],[92.562,-7.527],[92.562,-7.335],[93.743,-5.223],[88.157,15.515],[89.554,18.434],[89.876,18.434],[95.945,9.601],[98.55,-4.992],[100.726,-4.762],[111.334,-7.373],[112.757,-9.678],[111.763,-11.713],[111.575,-11.675],[100.215,-8.948],[98.98,-8.986],[104.727,-14.132],[106.58,-20.891],[106.526,-21.813],[106.526,-22.12],[105.345,-23.81],[105.13,-23.81]],"c":true}},"nm":"f","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"f","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[200.957,423.812]},"a":{"a":0,"k":[100.457,-2.688]},"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":"f 8","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-0.394,0],[-0.233,0.845],[0,0.256],[1.593,0.614],[0,0],[4.279,-3.994],[-0.018,0.82],[0.555,0],[0.107,-0.025],[2.372,-4.25],[0,-0.486],[0,0],[-0.859,-0.845],[0,0],[-0.645,1.332],[-3.402,1.562]],"o":[[0.394,0],[0.071,-0.307],[0,-1.229],[0,0],[-1.11,0],[0.698,-1.049],[-0.161,-0.793],[-0.09,0],[-0.967,0.307],[-2.372,4.25],[0,0],[0,0.589],[0,0],[0.43,0],[5.586,-6.861],[0.555,0.82]],"v":[[138.108,-12.904],[139.048,-14.171],[139.156,-15.016],[136.766,-17.781],[136.712,-17.781],[128.629,-11.79],[129.703,-14.593],[128.629,-15.784],[128.333,-15.745],[123.325,-8.91],[119.766,-1.805],[119.766,-1.651],[121.055,0.499],[121.592,0.499],[123.204,-1.498],[136.685,-14.132]],"c":true}},"nm":"r","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"r","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[229.961,417.859]},"a":{"a":0,"k":[129.461,-8.641]},"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":"r 9","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.519,0],[0.394,-0.409],[0.681,-2.151],[0,0],[-0.931,-0.205],[0,0],[-2.292,2.381],[0,-0.384],[-0.537,-0.025],[0,0],[-3.169,3.072],[0,0.461],[0.895,0.026],[2.184,-0.819],[-1.325,2.33],[0,0],[0.501,0],[0.286,-0.307],[1.244,-1.229],[0.931,-0.179],[0,0.205]],"o":[[-0.305,0],[-2.864,4.404],[0,0],[0,1.127],[0,0],[1.558,-0.154],[-0.233,0.64],[0,0.614],[0,0],[4.565,-2.022],[0.43,-0.793],[0,-0.691],[-3.796,3.098],[0.304,-0.691],[0,0],[-0.376,-1.126],[-0.251,0],[-1.396,2.74],[-1.245,1.229],[2.649,-4.173],[-0.287,-1.126]],"v":[[136.616,-12.673],[135.569,-12.059],[130.251,-2.227],[130.251,-1.767],[131.648,0.23],[131.863,0.23],[137.636,-3.572],[137.287,-2.035],[138.093,-1.075],[138.415,-1.075],[150.017,-8.718],[150.661,-10.599],[149.319,-11.675],[140.349,-5.799],[142.793,-10.33],[143.196,-11.252],[141.88,-12.942],[141.074,-12.481],[137.113,-6.529],[133.85,-4.416],[137.824,-10.983]],"c":true}},"nm":"u","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"u","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[240.956,420.144]},"a":{"a":0,"k":[140.456,-6.356]},"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":"u 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.304,0],[0.394,-0.179],[1.343,-3.968],[0,0],[-0.591,0],[0,0],[-1.996,1.318],[-5.156,3.405],[-0.698,0.947],[1.146,0.23],[0.859,-0.256],[-2.883,7.809],[0,0.794],[0.143,0.487]],"o":[[-0.358,0],[-5.622,15.618],[0,0],[0.269,1.229],[0,0],[0.233,0],[1.996,-1.318],[0.949,-0.87],[0,-1.306],[-7.609,5.505],[0.197,-0.589],[2.882,-7.808],[0,-0.256],[-0.287,-0.128]],"v":[[154.968,-29.724],[153.84,-29.455],[143.393,-0.077],[143.393,0.691],[144.682,2.535],[145.005,2.535],[148.348,0.557],[159.077,-6.529],[161.548,-9.255],[159.829,-11.559],[147.126,-2.919],[151.745,-15.515],[156.069,-28.418],[155.854,-29.532]],"c":true}},"nm":"l","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"l","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[252.97,412.905]},"a":{"a":0,"k":[152.47,-13.595]},"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":"l 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.898,0.256],[2.471,-0.281]],"o":[[-1.433,1.459],[2.005,-1.485]],"v":[[166.468,-10.868],[160.613,-8.257]],"c":true}},"nm":"e","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[1.011,0.167],[0.286,0],[1.826,-1.254],[0,-2.688],[0,0],[-1.611,-0.205],[0,0],[0,0],[-1.987,0.794],[-1.934,1.639],[-0.537,0.947],[0.734,0.256],[1.629,-1.536],[1.898,0],[0.43,0.768],[0,0],[-0.842,0.359],[-1.441,0.96],[-0.054,1.152],[0,0]],"o":[[-1.012,-0.166],[-1.522,0],[-2.775,2.33],[0,0],[0.501,2.356],[0,0],[0,0],[0.984,0],[2.112,-0.819],[1.934,-1.638],[0,-0.998],[-0.985,0.743],[-3.921,2.56],[-1.039,0],[0,0],[1.558,0],[0.984,-0.409],[1.441,-0.96],[0,0],[-0.107,-1.485]],"v":[[167.421,-14.382],[165.474,-14.632],[160.452,-12.75],[156.289,-5.223],[156.289,-4.608],[159.458,-0.768],[160.425,-0.845],[160.586,-0.845],[165.044,-2.035],[171.114,-5.722],[174.82,-9.601],[173.718,-11.483],[169.798,-8.065],[161.07,-4.224],[158.867,-5.376],[159.727,-5.376],[163.325,-5.914],[166.964,-7.969],[169.207,-11.137],[169.099,-11.905]],"c":true}},"nm":"e","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"e","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[266.054,418.8]},"a":{"a":0,"k":[165.554,-7.7]},"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":"e 222","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0.34,-3.303],[0,-0.896],[0,0],[0,-0.102],[0.537,0],[0.591,0.333],[0,-0.768],[-0.089,-0.332],[-0.591,0],[-0.018,0],[-1.218,1.638],[-3.008,1.613],[-0.859,1.485],[0,0],[0.859,0],[0,0],[4.977,-1.894],[-0.072,0.589],[-1.755,0.128],[-0.305,0],[-0.233,0.871],[0,0.179],[2.023,0.384]],"o":[[0.072,1.152],[0,0],[0.018,0.128],[0,0.768],[-0.358,0],[-0.68,0.512],[0,0.282],[0.358,1.177],[0.591,0],[1.128,0],[2.023,-0.742],[3.008,-1.613],[0,0],[0,-0.922],[0,0],[-2.972,2.765],[0,-2.739],[0.215,-1.434],[0.412,0.384],[0.447,0],[0.054,-0.179],[0,-1.126],[-2.775,0.41]],"v":[[171.574,-9.87],[171.681,-6.797],[171.574,-4.532],[171.601,-4.186],[170.795,-3.034],[169.372,-3.533],[168.351,-1.613],[168.485,-0.691],[169.909,1.075],[170.822,1.075],[174.34,-1.383],[181.886,-4.916],[187.687,-9.562],[187.687,-10.177],[186.398,-11.559],[185.968,-11.559],[174.044,-4.57],[174.152,-9.562],[177.106,-11.905],[178.18,-11.329],[179.201,-12.635],[179.281,-13.172],[176.247,-15.438]],"c":true}},"nm":"s","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372550010681,0.372550010681,0.376470029354,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":"s","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[278.519,419.319]},"a":{"a":0,"k":[178.019,-7.181]},"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":"s 112","bm":0,"hd":false}],"ip":0,"op":13,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Pencil position ","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[421.508,298.837,0],"to":[0,0,0],"ti":[0.733,93.534,0]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[310.068,33.915,0],"to":[111.032,75.21,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.34,"y":0},"t":49,"s":[532.195,30.343,0],"to":[0,0,0],"ti":[90.672,119.188,0]},{"i":{"x":0,"y":1},"o":{"x":0.34,"y":0},"t":64,"s":[283.188,79.035,0],"to":[0.016,0.059,0],"ti":[-141.065,35.039,0]},{"i":{"x":0,"y":1},"o":{"x":0.34,"y":0},"t":84,"s":[494.584,165.576,0],"to":[-139.409,112.697,0],"ti":[0,0,0]},{"i":{"x":0.637,"y":0.501},"o":{"x":0.474,"y":0},"t":104,"s":[293.748,209.595,0],"to":[0,0,0],"ti":[-58.443,-5.09,0]},{"i":{"x":0.469,"y":1},"o":{"x":0.192,"y":0.459},"t":112,"s":[405.718,255.953,0],"to":[46.425,4.043,0],"ti":[0,0,0]},{"i":{"x":0.999,"y":1},"o":{"x":0.72,"y":0},"t":124,"s":[506.275,228.103,0],"to":[-35.546,48.368,0],"ti":[24.261,-7.485,0]},{"t":145,"s":[421.508,298.837,0]}]},"s":{"a":0,"k":[96,96,100]}},"ao":0,"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"pencil angle ","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[23]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[66.067]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[6]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[-3.158]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":49,"s":[11]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":105,"s":[11]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":111,"s":[19.632]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133,"s":[-13]},{"t":152,"s":[0]}]},"p":{"a":0,"k":[-246.593,153.161,0]},"a":{"a":0,"k":[-86,194,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":8,"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":15,"s":[85,85,100]},{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":30,"s":[70,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.34,0.34,0.34],"y":[0,0,0]},"t":49,"s":[70,70,100]},{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.211,0.211,0.211],"y":[0,0,0]},"t":50,"s":[70,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.34,0.34,0.34],"y":[0,0,0]},"t":64,"s":[70,70,100]},{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":65,"s":[70,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.34,0.34,0.34],"y":[0,0,0]},"t":84,"s":[70,70,100]},{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":85,"s":[70,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.34,0.34,0.34],"y":[0,0,0]},"t":104,"s":[70,70,100]},{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":105,"s":[70,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[1,1,1],"y":[0,0,0]},"t":124,"s":[76,76,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":133,"s":[70,70,100]},{"i":{"x":[0.999,0.999,0.999],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":145,"s":[70,70,100]},{"i":{"x":[0.5,0.5,0.5],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":151,"s":[100,100,100]},{"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":157.5,"s":[105.792,105.792,100]},{"i":{"x":[0.499,0.499,0.499],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"t":171,"s":[100,100,100]},{"i":{"x":[0.5,0.5,0.5],"y":[1,1,1]},"o":{"x":[0.5,0.5,0.5],"y":[0,0,0]},"t":320.5,"s":[100,100,100]},{"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":333.5,"s":[100,100,100]},{"t":346.5,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"jelezka stroke up 2","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[167.065,-14.815,0]},"a":{"a":0,"k":[-362.933,-54.454,0]},"s":{"a":0,"k":[-59,59,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":15,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-386.625,-29.75],[-318.25,-99.717],[-257.438,-155.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-325.892,35.034],[-246.677,-25.037],[-202.607,-91.889]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-325.892,35.034],[-246.677,-25.037],[-202.607,-91.889]],"c":false}]},{"t":136,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-386.625,-29.75],[-318.25,-99.717],[-257.438,-155.188]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":38},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.643137254902,0.643137254902,0.647058823529,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":16},"lc":2,"lj":1,"ml":4,"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"jelezka stroke up","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[142.933,-37.243,0]},"a":{"a":0,"k":[-322.031,-92.469,0]},"s":{"a":0,"k":[-59,59,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":15,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-386.625,-29.75],[-318.25,-99.717],[-257.438,-155.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-325.892,35.034],[-246.677,-25.037],[-202.607,-91.889]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-325.892,35.034],[-246.677,-25.037],[-202.607,-91.889]],"c":false}]},{"t":136,"s":[{"i":[[0,0],[-38.301,36.747],[0,0]],"o":[[0,0],[32.651,-31.326],[0,0]],"v":[[-386.625,-29.75],[-318.25,-99.717],[-257.438,-155.188]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.564705882353,0.682352941176,0.866666726505,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":16},"lc":2,"lj":1,"ml":4,"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"jelezka stroke down 2","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[137.803,16.501,0]},"a":{"a":0,"k":[-365.837,-53.376,0]},"s":{"a":0,"k":[-59,59,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":15,"s":[{"i":[[0,0],[-24.537,23.173],[0,0]],"o":[[0,0],[18.95,-17.896],[0,0]],"v":[[-389.125,-31],[-316.208,-100.835],[-258.688,-154.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-33.499,32.384],[-0.092,1.955]],"o":[[0,0],[23.566,-22.781],[0,0]],"v":[[-331.235,30.736],[-250.776,-25.592],[-203.847,-89.609]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[-33.499,32.384],[-0.092,1.955]],"o":[[0,0],[23.566,-22.781],[0,0]],"v":[[-331.235,30.736],[-250.776,-25.592],[-203.847,-89.609]],"c":false}]},{"t":136,"s":[{"i":[[0,0],[-24.537,23.173],[0,0]],"o":[[0,0],[18.95,-17.896],[0,0]],"v":[[-389.125,-31],[-316.208,-100.835],[-258.688,-154.188]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":36},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.529967902688,0.529967902688,0.549803969439,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":16},"lc":2,"lj":1,"ml":4,"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"jelezka stroke down ","parent":2,"sr":1,"ks":{"p":{"a":0,"k":[113.064,-6.637,0]},"a":{"a":0,"k":[-323.906,-92.594,0]},"s":{"a":0,"k":[-59,59,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":15,"s":[{"i":[[0,0],[-24.537,23.173],[0,0]],"o":[[0,0],[18.95,-17.896],[0,0]],"v":[[-389.125,-31],[-316.208,-100.835],[-258.688,-154.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[-33.499,32.384],[-0.092,1.955]],"o":[[0,0],[23.566,-22.781],[0,0]],"v":[[-331.235,30.736],[-250.776,-25.592],[-203.847,-89.609]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[-33.499,32.384],[-0.092,1.955]],"o":[[0,0],[23.566,-22.781],[0,0]],"v":[[-331.235,30.736],[-250.776,-25.592],[-203.847,-89.609]],"c":false}]},{"t":136,"s":[{"i":[[0,0],[-24.537,23.173],[0,0]],"o":[[0,0],[18.95,-17.896],[0,0]],"v":[[-389.125,-31],[-316.208,-100.835],[-258.688,-154.188]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.521568627451,0.611764705882,0.749019607843,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":16},"lc":2,"lj":1,"ml":4,"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"shadow up","parent":2,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[81]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16.008,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":133.992,"s":[0]},{"t":135,"s":[81]}]},"r":{"a":0,"k":90},"p":{"a":0,"k":[139.358,-36.878,0]},"a":{"a":0,"k":[121.544,-20.421,0]},"s":{"a":0,"k":[-117.41,117.41,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[11.577,9.419],[-0.119,-2.583],[-17.522,-15.99]],"o":[[-0.057,-0.018],[14.365,12.584],[-7.912,-13.665]],"v":[[96.669,-52.218],[92.347,-45.731],[150.743,11.376]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.290196078431,0.290196078431,0.286274509804,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 12","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"shadow in 4","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[122.755,-14.744,0]},"a":{"a":0,"k":[122.925,-29.412,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[1.02,-1.044],[0,0],[0,0]],"o":[[-4.145,0.139],[0,0],[0,0]],"v":[[99.136,-55.46],[96.805,-52.362],[149.439,-3.349]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[7.855,19.952],[-0.504,-1.19],[0,0]],"o":[[-4.146,-0.103],[10.922,25.763],[0,0]],"v":[[65.709,-25.064],[63.203,-22.107],[115.244,29.104]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[7.855,19.952],[-0.504,-1.19],[0,0]],"o":[[-4.146,-0.103],[10.922,25.763],[0,0]],"v":[[65.709,-25.064],[63.203,-22.107],[115.244,29.104]],"c":true}]},{"t":136,"s":[{"i":[[1.02,-1.044],[0,0],[0,0]],"o":[[-4.145,0.139],[0,0],[0,0]],"v":[[99.136,-55.46],[96.805,-52.362],[149.439,-3.349]],"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.002,0.455,0.455,0.459,0.521,0.475,0.5,0.539,1,0.494,0.545,0.62]}},"s":{"a":0,"k":[104.459,-30.185]},"e":{"a":0,"k":[126.995,-12.133]},"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 12","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"shadow in 3","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[129.005,-20.244,0]},"a":{"a":0,"k":[122.925,-29.412,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[1.02,-1.044],[0,0],[0,0]],"o":[[-4.145,0.139],[0,0],[0,0]],"v":[[99.136,-55.46],[96.805,-52.362],[149.439,-3.349]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[9.934,21.583],[-0.614,-1.137],[0,0]],"o":[[-4.145,0.139],[12.919,23.943],[0,0]],"v":[[66.88,-25.92],[64.55,-22.822],[116.568,27.722]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[9.934,21.583],[-0.614,-1.137],[0,0]],"o":[[-4.145,0.139],[12.919,23.943],[0,0]],"v":[[66.88,-25.92],[64.55,-22.822],[116.568,27.722]],"c":true}]},{"t":136,"s":[{"i":[[1.02,-1.044],[0,0],[0,0]],"o":[[-4.145,0.139],[0,0],[0,0]],"v":[[99.136,-55.46],[96.805,-52.362],[149.439,-3.349]],"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.002,0.455,0.455,0.459,0.521,0.475,0.5,0.539,1,0.494,0.545,0.62]}},"s":{"a":0,"k":[104.459,-30.185]},"e":{"a":0,"k":[126.995,-12.133]},"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 12","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"shadow in 2","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[135.755,-26.994,0]},"a":{"a":0,"k":[122.925,-29.412,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[1.02,-1.044],[0,0],[0,0]],"o":[[-4.145,0.139],[0,0],[0,0]],"v":[[99.136,-55.46],[96.805,-52.362],[149.439,-3.349]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[4.699,19.262],[-0.447,-1.212],[0,0]],"o":[[-4.147,-0.085],[9.519,25.814],[0,0]],"v":[[69.181,-26.121],[66.686,-23.153],[117.17,28.333]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[4.699,19.262],[-0.447,-1.212],[0,0]],"o":[[-4.147,-0.085],[9.519,25.814],[0,0]],"v":[[69.181,-26.121],[66.686,-23.153],[117.17,28.333]],"c":true}]},{"t":136,"s":[{"i":[[1.02,-1.044],[0,0],[0,0]],"o":[[-4.145,0.139],[0,0],[0,0]],"v":[[99.136,-55.46],[96.805,-52.362],[149.439,-3.349]],"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.002,0.455,0.455,0.459,0.521,0.475,0.5,0.539,1,0.494,0.545,0.62]}},"s":{"a":0,"k":[104.459,-30.185]},"e":{"a":0,"k":[126.995,-12.133]},"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 12","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"jelezka body stroke L","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[97.005,-53.897,0]},"a":{"a":0,"k":[135.666,8.675,0]},"s":{"a":0,"k":[-129.8,129.8,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":15,"s":[{"i":[[3.052,3.922],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.769,7.007],[0.895,3.96],[1.376,4.088]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,0.985],[2.145,1.801],[4.955,0.792]],"v":[[145.991,-3.173],[106.015,-45.303],[97.642,-51.225],[90.555,-45.966],[84.935,-40.378],[79.637,-34.956],[74.637,-29.264],[84.007,-20.698],[124.043,19.545],[130.267,15.901],[135.705,10.425],[140.906,4.786]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[3.051,3.923],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.769,7.007],[0.895,3.96],[1.376,4.088]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,0.985],[2.145,1.801],[4.955,0.792]],"v":[[117.135,25.592],[77.16,-16.538],[68.786,-22.46],[61.7,-17.201],[56.079,-11.613],[50.781,-6.191],[45.781,-0.499],[55.151,8.066],[95.188,48.309],[101.412,44.666],[106.85,39.19],[112.051,33.551]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[3.051,3.923],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.769,7.007],[0.895,3.96],[1.376,4.088]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,0.985],[2.145,1.801],[4.955,0.792]],"v":[[117.135,25.592],[77.16,-16.538],[68.786,-22.46],[61.7,-17.201],[56.079,-11.613],[50.781,-6.191],[45.781,-0.499],[55.151,8.066],[95.188,48.309],[101.412,44.666],[106.85,39.19],[112.051,33.551]],"c":true}]},{"t":136,"s":[{"i":[[3.052,3.922],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.769,7.007],[0.895,3.96],[1.376,4.088]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,0.985],[2.145,1.801],[4.955,0.792]],"v":[[145.991,-3.173],[106.015,-45.303],[97.642,-51.225],[90.555,-45.966],[84.935,-40.378],[79.637,-34.956],[74.637,-29.264],[84.007,-20.698],[124.043,19.545],[130.267,15.901],[135.705,10.425],[140.906,4.786]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":81.1},"e":{"a":0,"k":99.9},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.658823529412,0.658823529412,0.658823529412,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 12","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"jelezka body stroke R","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[162.066,9.802,0]},"a":{"a":0,"k":[83.978,-39.517,0]},"s":{"a":0,"k":[-129.8,129.8,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":15,"s":[{"i":[[1.405,4.49],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.031,7.064],[0.27,3.563],[1.376,4.599]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,1.496],[2.94,1.46],[3.762,0.11]],"v":[[147.184,-2.491],[106.015,-45.303],[97.642,-51.225],[90.555,-45.966],[84.935,-40.378],[79.637,-34.956],[74.637,-29.264],[84.007,-20.698],[124.498,20.226],[129.699,14.878],[135.137,9.005],[140.679,3.139]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[1.405,4.49],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.031,7.064],[0.27,3.563],[1.376,4.599]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,1.496],[2.94,1.46],[3.762,0.11]],"v":[[117.263,24.187],[76.095,-18.624],[67.721,-24.547],[60.634,-19.287],[55.014,-13.699],[49.716,-8.277],[44.716,-2.586],[54.086,5.98],[94.577,46.905],[99.778,41.557],[105.216,35.683],[110.758,29.817]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[1.405,4.49],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.031,7.064],[0.27,3.563],[1.376,4.599]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,1.496],[2.94,1.46],[3.762,0.11]],"v":[[117.263,24.187],[76.095,-18.624],[67.721,-24.547],[60.634,-19.287],[55.014,-13.699],[49.716,-8.277],[44.716,-2.586],[54.086,5.98],[94.577,46.905],[99.778,41.557],[105.216,35.683],[110.758,29.817]],"c":true}]},{"t":136,"s":[{"i":[[1.405,4.49],[16.721,13.268],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[-4.094,-3.552],[0,0],[-0.031,7.064],[0.27,3.563],[1.376,4.599]],"o":[[-14.05,-18.066],[-3.796,-3.012],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[18.105,15.709],[0,0],[2.583,1.496],[2.94,1.46],[3.762,0.11]],"v":[[147.184,-2.491],[106.015,-45.303],[97.642,-51.225],[90.555,-45.966],[84.935,-40.378],[79.637,-34.956],[74.637,-29.264],[84.007,-20.698],[124.498,20.226],[129.699,14.878],[135.137,9.005],[140.679,3.139]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.26807493322,0.275187294156,0.289411956189,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 12","bm":0,"hd":false},{"ty":"tm","s":{"a":0,"k":34.3},"e":{"a":0,"k":49.9},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"jelezka body ","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[129.55,-24.301,0]},"a":{"a":0,"k":[110.592,-14.921,0]},"s":{"a":0,"k":[-129.8,129.8,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":15,"s":[{"i":[[1.405,4.49],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[0,0],[-0.826,5.871],[0.27,3.563],[-0.271,3.058]],"o":[[-15.68,-14.898],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[0,0],[2.185,-0.038],[2.77,-0.017],[3.762,0.11]],"v":[[146.332,-2.719],[97.642,-51.225],[90.839,-45.795],[85.105,-40.378],[79.41,-35.126],[74.637,-29.264],[122.503,21.567],[130.836,15.333],[135.478,10.482],[140.679,5.184]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[1.381,4.497],[2.334,1.413],[-0.082,-5.203],[-0.522,-4.308],[-0.353,-2.181],[-0.785,-2.533],[0,0],[-0.857,5.865],[0.251,3.563],[-0.287,3.056]],"o":[[-33.878,-12.043],[-2.412,-0.589],[-2.315,-0.624],[-3.497,0.004],[-2.57,0.301],[2.975,24.785],[0,0],[2.185,-0.027],[2.769,-0.002],[3.761,0.13]],"v":[[121.478,25.614],[67.415,-26.847],[60.74,-21.295],[55.13,-15.777],[49.555,-10.426],[44.912,-4.483],[97.494,49.907],[105.858,43.718],[110.525,38.893],[115.753,33.623]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[1.381,4.497],[2.334,1.413],[-0.082,-5.203],[-0.522,-4.308],[-0.353,-2.181],[-0.785,-2.533],[0,0],[-0.857,5.865],[0.251,3.563],[-0.287,3.056]],"o":[[-33.878,-12.043],[-2.412,-0.589],[-2.315,-0.624],[-3.497,0.004],[-2.57,0.301],[2.975,24.785],[0,0],[2.185,-0.027],[2.769,-0.002],[3.761,0.13]],"v":[[121.478,25.614],[67.415,-26.847],[60.74,-21.295],[55.13,-15.777],[49.555,-10.426],[44.912,-4.483],[97.494,49.907],[105.858,43.718],[110.525,38.893],[115.753,33.623]],"c":true}]},{"t":136,"s":[{"i":[[1.405,4.49],[2.311,1.463],[0.022,-5.217],[-0.437,-4.328],[-0.309,-2.193],[-0.735,-2.555],[0,0],[-0.826,5.871],[0.27,3.563],[-0.271,3.058]],"o":[[-15.68,-14.898],[-2.405,-0.639],[-2.307,-0.672],[-3.505,-0.067],[-2.582,0.25],[0.6,1.434],[0,0],[2.185,-0.038],[2.77,-0.017],[3.762,0.11]],"v":[[146.332,-2.719],[97.642,-51.225],[90.839,-45.795],[85.105,-40.378],[79.41,-35.126],[74.637,-29.264],[122.503,21.567],[130.836,15.333],[135.478,10.482],[140.679,5.184]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":9,"k":{"a":0,"k":[0.204,0.478,0.482,0.486,0.276,0.658,0.63,0.596,0.378,0.838,0.777,0.706,0.423,0.737,0.753,0.778,0.489,0.635,0.729,0.851,0.626,0.635,0.729,0.851,0.762,0.635,0.729,0.851,0.838,0.816,0.861,0.922,0.946,0.996,0.992,0.992]}},"s":{"a":0,"k":[79.899,-46.231]},"e":{"a":0,"k":[140.201,15.075]},"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 12","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"shadow down ","parent":2,"sr":1,"ks":{"o":{"a":0,"k":68},"r":{"a":0,"k":90},"p":{"a":0,"k":[111.592,-5.092,0]},"a":{"a":0,"k":[112.174,-13.72,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[11.577,9.419],[0,0],[0,0],[0,0]],"o":[[0,0],[-1.161,1.393],[0,0],[0,0],[0,0]],"v":[[145.921,15.917],[84.306,-49.28],[78.427,-43.483],[111.778,-8.017],[139.854,21.839]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[11.577,9.419],[0,0],[-14.476,-15.252],[0,0]],"o":[[0,0],[-1.161,1.393],[0,0],[12.925,13.617],[0,0]],"v":[[114.735,47.103],[53.119,-18.094],[47.556,-12.943],[74.731,26.397],[109.883,52.244]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[11.577,9.419],[0,0],[-14.476,-15.252],[0,0]],"o":[[0,0],[-1.161,1.393],[0,0],[12.925,13.617],[0,0]],"v":[[114.735,47.103],[53.119,-18.094],[47.556,-12.943],[74.731,26.397],[109.883,52.244]],"c":true}]},{"t":136,"s":[{"i":[[0,0],[11.577,9.419],[0,0],[0,0],[0,0]],"o":[[0,0],[-1.161,1.393],[0,0],[0,0],[0,0]],"v":[[145.921,15.917],[84.306,-49.28],[78.427,-43.483],[111.778,-8.017],[139.854,21.839]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388235324037,0.294117647059,0.20000001496,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 12","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"lastik stroke","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[124.933,-75.139,0]},"a":{"a":0,"k":[156.141,-11.652,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[5.53,10.282],[4.484,4.613],[6.694,3.68],[9.8,-7.927],[0,0],[0,0],[-3.495,4.201]],"o":[[-3.283,-6.104],[-5.037,-5.181],[-8.52,-4.684],[-5.211,4.215],[0,0],[0,0],[7.975,-9.587]],"v":[[166.862,-42.044],[154.318,-58.989],[138.166,-71.678],[109.684,-70.372],[93.572,-54.805],[150.925,2.634],[165.78,-11.928]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[6.676,11.545],[5.395,4.977],[8.002,3.47],[10.673,-9.639],[4.013,-4.061],[0,0],[-4.17,4.645]],"o":[[-3.963,-6.854],[-6.059,-5.59],[-10.139,-4.403],[-5.675,5.125],[-1.287,30.481],[0,0],[9.515,-10.598]],"v":[[140.92,-16.051],[126.661,-34.052],[107.374,-46.492],[76.816,-40.924],[60.171,-24.666],[122.747,32.259],[138.444,16.852]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[6.676,11.545],[5.395,4.977],[8.002,3.47],[10.673,-9.639],[4.013,-4.061],[0,0],[-4.17,4.645]],"o":[[-3.963,-6.854],[-6.059,-5.59],[-10.139,-4.403],[-5.675,5.125],[-1.287,30.481],[0,0],[9.515,-10.598]],"v":[[140.92,-16.051],[126.661,-34.052],[107.374,-46.492],[76.816,-40.924],[60.171,-24.666],[122.747,32.259],[138.444,16.852]],"c":true}]},{"t":136,"s":[{"i":[[5.53,10.282],[4.484,4.613],[6.694,3.68],[9.8,-7.927],[0,0],[0,0],[-3.495,4.201]],"o":[[-3.283,-6.104],[-5.037,-5.181],[-8.52,-4.684],[-5.211,4.215],[0,0],[0,0],[7.975,-9.587]],"v":[[166.862,-42.044],[154.318,-58.989],[138.166,-71.678],[109.684,-70.372],[93.572,-54.805],[150.925,2.634],[165.78,-11.928]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.910588283165,0.357807653091,0.374948209875,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":"tm","s":{"a":0,"k":62},"e":{"a":0,"k":84},"o":{"a":0,"k":31},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"lastik stroke 3","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[154.179,-47.357,0]},"a":{"a":0,"k":[132.479,-36.561,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[5.53,10.282],[4.484,4.613],[6.694,3.68],[9.8,-7.927],[0,0],[0,0],[-3.495,4.201]],"o":[[-3.283,-6.104],[-5.037,-5.181],[-8.52,-4.684],[-5.211,4.215],[0,0],[0,0],[7.975,-9.587]],"v":[[166.862,-42.044],[154.318,-58.989],[138.166,-71.678],[109.684,-70.372],[93.572,-54.805],[150.925,2.634],[165.78,-11.928]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[6.676,11.545],[5.395,4.977],[8.002,3.47],[10.673,-9.639],[4.013,-4.061],[0,0],[-4.17,4.645]],"o":[[-3.963,-6.854],[-6.059,-5.59],[-10.139,-4.403],[-5.675,5.125],[-1.287,30.481],[0,0],[9.515,-10.598]],"v":[[140.92,-16.051],[126.661,-34.052],[107.374,-46.492],[76.816,-40.924],[60.171,-24.666],[122.747,32.259],[138.444,16.852]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[6.676,11.545],[5.395,4.977],[8.002,3.47],[10.673,-9.639],[4.013,-4.061],[0,0],[-4.17,4.645]],"o":[[-3.963,-6.854],[-6.059,-5.59],[-10.139,-4.403],[-5.675,5.125],[-1.287,30.481],[0,0],[9.515,-10.598]],"v":[[140.92,-16.051],[126.661,-34.052],[107.374,-46.492],[76.816,-40.924],[60.171,-24.666],[122.747,32.259],[138.444,16.852]],"c":true}]},{"t":136,"s":[{"i":[[5.53,10.282],[4.484,4.613],[6.694,3.68],[9.8,-7.927],[0,0],[0,0],[-3.495,4.201]],"o":[[-3.283,-6.104],[-5.037,-5.181],[-8.52,-4.684],[-5.211,4.215],[0,0],[0,0],[7.975,-9.587]],"v":[[166.862,-42.044],[154.318,-58.989],[138.166,-71.678],[109.684,-70.372],[93.572,-54.805],[150.925,2.634],[165.78,-11.928]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.609411860447,0.18784233542,0.202898392023,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":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":83},"o":{"a":0,"k":-124},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"zasvet","parent":2,"sr":1,"ks":{"o":{"a":0,"k":30},"p":{"a":0,"k":[154.448,-48.702,0]},"a":{"a":0,"k":[-394.049,-160.89,0]},"s":{"a":0,"k":[-59,59,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":15,"s":[{"i":[[12.014,1.386],[4.5,-39.5],[0,0],[-2.203,17.415],[-32.48,-3.894],[-14.5,-8.5]],"o":[[-39,-4.5],[-2.5,18.5],[0,0],[3.776,-29.846],[11.727,1.406],[0,0]],"v":[[-361,-234.5],[-471,-149],[-427,-87],[-450.776,-143.654],[-366.52,-214.606],[-317,-189.5]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[12.014,1.386],[4.5,-39.5],[0,0],[-2.203,17.415],[-32.48,-3.894],[-14.5,-8.5]],"o":[[-39,-4.5],[-2.5,18.5],[0,0],[3.776,-29.846],[11.727,1.406],[0,0]],"v":[[-310.326,-178.081],[-420.326,-92.581],[-376.326,-30.581],[-400.102,-87.235],[-315.846,-158.187],[-266.326,-133.081]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[12.014,1.386],[4.5,-39.5],[0,0],[-2.203,17.415],[-32.48,-3.894],[-14.5,-8.5]],"o":[[-39,-4.5],[-2.5,18.5],[0,0],[3.776,-29.846],[11.727,1.406],[0,0]],"v":[[-310.326,-178.081],[-420.326,-92.581],[-376.326,-30.581],[-400.102,-87.235],[-315.846,-158.187],[-266.326,-133.081]],"c":true}]},{"t":136,"s":[{"i":[[12.014,1.386],[4.5,-39.5],[0,0],[-2.203,17.415],[-32.48,-3.894],[-14.5,-8.5]],"o":[[-39,-4.5],[-2.5,18.5],[0,0],[3.776,-29.846],[11.727,1.406],[0,0]],"v":[[-361,-234.5],[-471,-149],[-427,-87],[-450.776,-143.654],[-366.52,-214.606],[-317,-189.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.979607855105,0.759868367513,0.759868367513,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":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"lastik ","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[154.179,-47.357,0]},"a":{"a":0,"k":[132.479,-36.561,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[5.53,10.282],[4.484,4.613],[6.694,3.68],[9.8,-7.927],[0,0],[0,0],[-3.495,4.201]],"o":[[-3.283,-6.104],[-5.037,-5.181],[-8.52,-4.684],[-5.211,4.215],[0,0],[0,0],[7.975,-9.587]],"v":[[166.862,-42.044],[154.318,-58.989],[138.166,-71.678],[109.684,-70.372],[93.572,-54.805],[150.925,2.634],[165.78,-11.928]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[6.676,11.545],[5.395,4.977],[8.002,3.47],[10.673,-9.639],[4.013,-4.061],[0,0],[-4.17,4.645]],"o":[[-3.963,-6.854],[-6.059,-5.59],[-10.139,-4.403],[-5.675,5.125],[-1.287,30.481],[0,0],[9.515,-10.598]],"v":[[140.92,-16.051],[126.661,-34.052],[107.374,-46.492],[76.816,-40.924],[60.171,-24.666],[122.747,32.259],[138.444,16.852]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[6.676,11.545],[5.395,4.977],[8.002,3.47],[10.673,-9.639],[4.013,-4.061],[0,0],[-4.17,4.645]],"o":[[-3.963,-6.854],[-6.059,-5.59],[-10.139,-4.403],[-5.675,5.125],[-1.287,30.481],[0,0],[9.515,-10.598]],"v":[[140.92,-16.051],[126.661,-34.052],[107.374,-46.492],[76.816,-40.924],[60.171,-24.666],[122.747,32.259],[138.444,16.852]],"c":true}]},{"t":136,"s":[{"i":[[5.53,10.282],[4.484,4.613],[6.694,3.68],[9.8,-7.927],[0,0],[0,0],[-3.495,4.201]],"o":[[-3.283,-6.104],[-5.037,-5.181],[-8.52,-4.684],[-5.211,4.215],[0,0],[0,0],[7.975,-9.587]],"v":[[166.862,-42.044],[154.318,-58.989],[138.166,-71.678],[109.684,-70.372],[93.572,-54.805],[150.925,2.634],[165.78,-11.928]],"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.316,0.969,0.62,0.627,0.65,0.894,0.525,0.535,1,0.82,0.431,0.443]}},"s":{"a":0,"k":[146.49,-32.469]},"e":{"a":0,"k":[115.092,-57.714]},"t":2,"h":{"a":0,"k":1.027},"a":{"a":0,"k":217.853},"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"body stroke centre","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-32.509,108.172,0]},"a":{"a":0,"k":[-2.249,123.198,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[108.974,43.829],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.093,134.79],[-2.568,129.575],[-2.443,116.278],[-7.321,111.764],[-21.763,109.381],[-30.173,100.479],[-29.855,81.665],[-33.91,77.109],[-42.524,77.761],[47.925,-14.054]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[108.974,43.829],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.093,134.79],[-2.568,129.575],[-2.443,116.278],[-7.321,111.764],[-21.763,109.381],[-30.173,100.479],[-29.855,81.665],[-33.91,77.109],[-42.524,77.761],[47.925,-14.054]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[110.857,41.937],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.347,134.743],[-2.314,129.528],[-2.294,116.127],[-7.172,111.614],[-21.614,109.231],[-30.024,100.329],[-29.855,81.665],[-33.91,77.109],[-42.521,77.811],[50.131,-15.951]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[0.307,5.482],[0,0],[1.517,-0.494],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.284,-1.122],[0,0],[0,0],[0,0]],"v":[[119.647,33.104],[18.885,136.547],[14.757,139.572],[13.494,124.855],[9.917,123.8],[-2.484,126.037],[-8.145,120.823],[-11.61,102.305],[-16.488,97.791],[-30.348,97.822],[-38.758,88.92],[-33.902,76.975],[-35.436,75.35],[-42.509,78.046],[60.429,-24.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[0.307,5.482],[0,0],[1.517,-0.494],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.284,-1.122],[0,0],[0,0],[0,0]],"v":[[119.647,33.104],[18.885,136.547],[14.757,139.572],[13.494,124.855],[9.917,123.8],[-2.484,126.037],[-8.145,120.823],[-11.61,102.305],[-16.488,97.791],[-30.348,97.822],[-38.758,88.92],[-33.902,76.975],[-35.436,75.35],[-42.509,78.046],[60.429,-24.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]},{"t":149,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":31},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":108,"s":[45]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":122,"s":[50]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[50]},{"t":149,"s":[45]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.854902020623,0.560784313725,0,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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"body stroke centre 3","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-14.307,119.342,0]},"a":{"a":0,"k":[-11.763,107.695,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[108.974,43.829],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.093,134.79],[-2.568,129.575],[-2.443,116.278],[-7.321,111.764],[-21.763,109.381],[-30.173,100.479],[-29.855,81.665],[-33.91,77.109],[-42.524,77.761],[47.925,-14.054]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[108.974,43.829],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.093,134.79],[-2.568,129.575],[-2.443,116.278],[-7.321,111.764],[-21.763,109.381],[-30.173,100.479],[-29.855,81.665],[-33.91,77.109],[-42.524,77.761],[47.925,-14.054]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[110.857,41.937],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.347,134.743],[-2.314,129.528],[-2.294,116.127],[-7.172,111.614],[-21.614,109.231],[-30.024,100.329],[-29.855,81.665],[-33.91,77.109],[-42.521,77.811],[50.131,-15.951]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[0.307,5.482],[0,0],[1.517,-0.494],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.284,-1.122],[0,0],[0,0],[0,0]],"v":[[119.647,33.104],[18.885,136.547],[14.757,139.572],[13.494,124.855],[9.917,123.8],[-2.484,126.037],[-8.145,120.823],[-11.61,102.305],[-16.488,97.791],[-30.348,97.822],[-38.758,88.92],[-33.902,76.975],[-35.436,75.35],[-42.509,78.046],[60.429,-24.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[0.307,5.482],[0,0],[1.517,-0.494],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.284,-1.122],[0,0],[0,0],[0,0]],"v":[[119.647,33.104],[18.885,136.547],[14.757,139.572],[13.494,124.855],[9.917,123.8],[-2.484,126.037],[-8.145,120.823],[-11.61,102.305],[-16.488,97.791],[-30.348,97.822],[-38.758,88.92],[-33.902,76.975],[-35.436,75.35],[-42.509,78.046],[60.429,-24.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]},{"t":149,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":31},"e":{"a":0,"k":53.5},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.662745098039,0.482414484959,0.023391003702,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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"body stroke up","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[15.958,21.461,0]},"a":{"a":0,"k":[71.604,81.917,0]},"s":{"a":0,"k":[-117.41,117.41,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.779,-0.058],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[-0.607,3.018],[0,0],[1.946,-0.725],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.083,-2.779],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.4,-2.035],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[13.738,124.987],[8.777,119.993],[-4.611,120.993],[-10.272,115.778],[-11.548,98.544],[-16.425,94.03],[-30.122,94.096],[-34.912,88.282],[-32.942,78.471],[-36.465,75.459],[-41.059,74.821],[70.726,-33.658]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.904313749426,0.565687890146,0.204977746103,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":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":31.7},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"body stroke down ","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[86.366,89.772,0]},"a":{"a":0,"k":[13.422,21.95,0]},"s":{"a":0,"k":[-117.41,117.41,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.779,-0.058],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[-0.607,3.018],[0,0],[1.946,-0.725],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.083,-2.779],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.4,-2.035],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[13.738,124.987],[8.777,119.993],[-4.611,120.993],[-10.272,115.778],[-11.548,98.544],[-16.425,94.03],[-30.122,94.096],[-34.912,88.282],[-32.942,78.471],[-36.465,75.459],[-41.059,74.821],[70.726,-33.658]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.625098134957,0.449440301633,0.010295748243,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":"tm","s":{"a":0,"k":1.3},"e":{"a":0,"k":31},"o":{"a":0,"k":188},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"body 2","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[49.961,55.08,0]},"a":{"a":0,"k":[42.97,52.957,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[108.974,43.829],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.093,134.79],[-2.568,129.575],[-2.443,116.278],[-7.321,111.764],[-21.763,109.381],[-30.173,100.479],[-29.855,81.665],[-33.91,77.109],[-42.524,77.761],[47.925,-14.054]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[108.974,43.829],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.093,134.79],[-2.568,129.575],[-2.443,116.278],[-7.321,111.764],[-21.763,109.381],[-30.173,100.479],[-29.855,81.665],[-33.91,77.109],[-42.524,77.761],[47.925,-14.054]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[110.857,41.937],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[3.347,134.743],[-2.314,129.528],[-2.294,116.127],[-7.172,111.614],[-21.614,109.231],[-30.024,100.329],[-29.855,81.665],[-33.91,77.109],[-42.521,77.811],[50.131,-15.951]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[0.307,5.482],[0,0],[1.517,-0.494],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.284,-1.122],[0,0],[0,0],[0,0]],"v":[[119.647,33.104],[18.885,136.547],[14.757,139.572],[13.494,124.855],[9.917,123.8],[-2.484,126.037],[-8.145,120.823],[-11.61,102.305],[-16.488,97.791],[-30.348,97.822],[-38.758,88.92],[-33.902,76.975],[-35.436,75.35],[-42.509,78.046],[60.429,-24.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.01],[0,0],[0.307,5.482],[0,0],[1.517,-0.494],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.284,-1.122],[0,0],[0,0],[0,0]],"v":[[119.647,33.104],[18.885,136.547],[14.757,139.572],[13.494,124.855],[9.917,123.8],[-2.484,126.037],[-8.145,120.823],[-11.61,102.305],[-16.488,97.791],[-30.348,97.822],[-38.758,88.92],[-33.902,76.975],[-35.436,75.35],[-42.509,78.046],[60.429,-24.805]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":146,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]},{"t":149,"s":[{"i":[[0,0],[0,0],[1.522,-0.796],[0,0],[2.025,-0.199],[0,0],[0.186,2.581],[0,0],[2.56,-0.009],[0,0],[0.307,5.482],[0,0],[2.392,-0.114],[0,0],[0,0]],"o":[[0,0],[-1.218,1.214],[0,0],[0.205,-1.413],[0,0],[-2.595,0.059],[0,0],[-0.193,-2.546],[0,0],[-3.083,0.022],[0,0],[0.254,-3.232],[0,0],[0,0],[0,0]],"v":[[128.437,24.27],[18.885,136.547],[14.757,139.572],[19.061,134.25],[15.484,133.195],[5.716,134.301],[0.055,129.086],[-0.901,114.726],[-5.779,110.213],[-20.221,107.83],[-28.631,98.928],[-29.855,81.665],[-33.91,77.109],[-42.497,78.281],[70.726,-33.658]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":11,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.961,0.722,0.106,0.39,0.992,0.816,0.212,0.674,0.996,0.756,0.139,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.935,0.71,0.112,0.756,0.878,0.596,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.907,0.656,0,0.39,0.885,0.685,0,0.674,0.943,0.691,0.033,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.981,0.786,0.252,0.756,0.97,0.749,0.281]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.961,0.722,0.106,0.39,0.992,0.816,0.212,0.674,0.996,0.756,0.139,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.935,0.71,0.112,0.756,0.878,0.596,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.907,0.656,0,0.39,0.885,0.685,0,0.674,0.943,0.691,0.033,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.981,0.786,0.252,0.756,0.97,0.749,0.281]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.907,0.656,0,0.39,0.885,0.685,0,0.674,0.943,0.691,0.033,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.981,0.786,0.252,0.756,0.97,0.749,0.281]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.961,0.722,0.106,0.39,0.992,0.816,0.212,0.674,0.996,0.756,0.139,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.935,0.71,0.112,0.756,0.878,0.596,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":67,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.961,0.722,0.106,0.39,0.992,0.816,0.212,0.674,0.996,0.756,0.139,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.935,0.71,0.112,0.756,0.878,0.596,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.907,0.656,0,0.39,0.885,0.685,0,0.674,0.943,0.691,0.033,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.981,0.786,0.252,0.756,0.97,0.749,0.281]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":84,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.907,0.656,0,0.39,0.885,0.685,0,0.674,0.943,0.691,0.033,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.981,0.786,0.252,0.756,0.97,0.749,0.281]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.961,0.722,0.106,0.39,0.992,0.816,0.212,0.674,0.996,0.756,0.139,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.935,0.71,0.112,0.756,0.878,0.596,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.961,0.722,0.106,0.39,0.992,0.816,0.212,0.674,0.996,0.756,0.139,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.935,0.71,0.112,0.756,0.878,0.596,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.907,0.656,0,0.39,0.885,0.685,0,0.674,0.943,0.691,0.033,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.981,0.786,0.252,0.756,0.97,0.749,0.281]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":131,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.907,0.656,0,0.39,0.885,0.685,0,0.674,0.943,0.691,0.033,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.981,0.786,0.252,0.756,0.97,0.749,0.281]},{"t":146,"s":[0.322,0.82,0.582,0.065,0.341,0.875,0.605,0.032,0.359,0.929,0.627,0,0.374,0.961,0.722,0.106,0.39,0.992,0.816,0.212,0.674,0.996,0.756,0.139,0.704,1,0.697,0.067,0.715,0.996,0.76,0.145,0.727,0.992,0.824,0.224,0.741,0.935,0.71,0.112,0.756,0.878,0.596,0]}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[55.276,-38.693],"to":[1.08,-5.1],"ti":[-1.08,5.1]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[61.755,-69.294],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[55.276,-38.693],"to":[1.08,-5.1],"ti":[-1.08,5.1]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[61.755,-69.294],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[61.755,-69.294],"to":[-1.08,5.1],"ti":[1.08,-5.1]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[55.276,-38.693],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[55.276,-38.693],"to":[1.08,-5.1],"ti":[-1.08,5.1]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[61.755,-69.294],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[61.755,-69.294],"to":[-1.08,5.1],"ti":[1.08,-5.1]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[55.276,-38.693],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[55.276,-38.693],"to":[1.08,-5.1],"ti":[-1.08,5.1]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[66.572,-64.566],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[61.755,-69.294],"to":[-1.08,5.1],"ti":[1.08,-5.1]},{"t":146,"s":[55.276,-38.693]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[139.698,43.719],"to":[-1.087,-7.19],"ti":[1.087,7.19]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21,"s":[133.177,0.578],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":33,"s":[139.698,43.719],"to":[-1.087,-7.19],"ti":[1.087,7.19]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39,"s":[133.177,0.578],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[133.177,0.578],"to":[1.087,7.19],"ti":[-1.087,-7.19]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[139.698,43.719],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[139.698,43.719],"to":[-1.087,-7.19],"ti":[1.087,7.19]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":79,"s":[133.177,0.578],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":87,"s":[133.177,0.578],"to":[1.087,7.19],"ti":[-1.087,-7.19]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":93,"s":[139.698,43.719],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":108,"s":[139.698,43.719],"to":[-1.087,-7.19],"ti":[1.087,7.19]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":122,"s":[139.002,7.601],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":135,"s":[133.177,0.578],"to":[1.087,7.19],"ti":[-1.087,-7.19]},{"t":146,"s":[139.698,43.719]}]},"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"grifel stroke 3","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-59.583,165.92,0]},"a":{"a":0,"k":[-50.931,146.006,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"t":136,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":21.1},"e":{"a":0,"k":34.6},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.098039215686,0.109803921569,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":4,"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"down stroke R","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-10.585,167.147,0]},"a":{"a":0,"k":[-52.479,104.525,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"t":136,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"tm","s":{"a":0,"k":34.7},"e":{"a":0,"k":57.5},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.61568627451,0.495644632975,0.25931261848,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":4,"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"down stroke L","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-63.033,121.46,0]},"a":{"a":0,"k":[-13.567,149.195,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"t":136,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.819607843137,0.660515759038,0.329771752451,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":4,"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":"tm","s":{"a":0,"k":0},"e":{"a":0,"k":22.1},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":"shadow down 2","parent":28,"sr":1,"ks":{"o":{"a":0,"k":70},"r":{"a":0,"k":113},"p":{"a":0,"k":[133.335,179.654,0]},"s":{"a":0,"k":[-100.202,100.202,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":0,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.02,161.254],[-46.003,177.703],[-34.75,198],[32.5,199],[33.25,186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.02,161.254],[-46.003,177.703],[-34.75,198],[32.5,199],[33.25,186]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.02,161.254],[-39.569,176.214],[-28.315,196.511],[32.5,199],[33.25,186]],"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],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.02,161.254],[-39.569,176.214],[-28.315,196.511],[32.5,199],[33.25,186]],"c":true}]},{"t":136,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.02,161.254],[-46.003,177.703],[-34.75,198],[32.5,199],[33.25,186]],"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.698,0.914,0.773,0.486,0.785,0.782,0.651,0.396,0.99,0.651,0.529,0.306]}},"s":{"a":0,"k":[-14.847,119.574]},"e":{"a":0,"k":[6.111,186.381]},"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":"Shape 1","bm":0,"hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"down 2","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-20.324,129.955,0]},"a":{"a":0,"k":[-20.802,112.82,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.481,4.235],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.52,-2.839],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-33.439,153.374],[-57.992,126.564],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]},{"t":136,"s":[{"i":[[0,0],[0.778,-0.282],[0,0],[-1.507,4.282],[0,0],[-1.821,1.814],[0,0],[-10.062,-12.148],[0,0]],"o":[[-0.729,0.388],[0,0],[-13.755,-2.871],[0,0],[0.853,-2.431],[0,0],[0,0],[8.273,9.988],[0,0]],"v":[[14.254,139.572],[11.99,140.572],[-37.993,158.819],[-62.972,131.706],[-43.874,79.894],[-39.803,73.439],[-32.507,66.821],[3.521,97.503],[21.49,132.012]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.913725554943,0.77254909277,0.486274540424,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 1","bm":0,"hd":false}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"grifel light","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-67.065,175.139,0]},"a":{"a":0,"k":[-59.286,152.629,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[2.981,0.059],[0,0],[-8.996,-8.066]],"o":[[-0.725,-1.26],[0,0],[0.426,0.526]],"v":[[-70.746,165.047],[-64.874,140.212],[-47.776,157.356]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[2.981,0.059],[0,0],[-8.996,-8.066]],"o":[[-0.725,-1.26],[0,0],[0.426,0.526]],"v":[[-66.493,160.668],[-60.622,135.833],[-43.524,152.977]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[2.981,0.059],[0,0],[-8.996,-8.066]],"o":[[-0.725,-1.26],[0,0],[0.426,0.526]],"v":[[-66.493,160.668],[-60.622,135.833],[-43.524,152.977]],"c":true}]},{"t":136,"s":[{"i":[[2.981,0.059],[0,0],[-8.996,-8.066]],"o":[[-0.725,-1.26],[0,0],[0.426,0.526]],"v":[[-70.746,165.047],[-64.874,140.212],[-47.776,157.356]],"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.078,0.098,0.11,0.163,0.198,0.222,0.241,0.311,0.318,0.345,0.373,0.406,0.198,0.222,0.241,0.494,0.078,0.098,0.11]}},"s":{"a":0,"k":[-42.839,168.085]},"e":{"a":0,"k":[-80.402,122.94]},"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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"grifel 2","parent":2,"sr":1,"ks":{"r":{"a":0,"k":90},"p":{"a":0,"k":[-66.107,172.664,0]},"a":{"a":0,"k":[-57.178,151.814,0]},"s":{"a":0,"k":[-117.41,117.41,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":15,"s":[{"i":[[-11.915,-11.352],[0,0],[-4.096,12.212],[0,0]],"o":[[0,0],[-8.518,2.641],[0,0],[0,0]],"v":[[-39.33,158.883],[-65.277,167.552],[-73.343,159.489],[-63.679,134.246]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26,"s":[{"i":[[-11.915,-11.352],[0,0],[-3.225,10.687],[0,0]],"o":[[0,0],[-7.854,1.838],[0,0],[0,0]],"v":[[-34.569,153.459],[-58.266,159.599],[-66.333,151.823],[-58.533,128.891]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":105,"s":[{"i":[[-11.915,-11.352],[0,0],[-3.225,10.687],[0,0]],"o":[[0,0],[-7.854,1.838],[0,0],[0,0]],"v":[[-34.569,153.459],[-58.266,159.599],[-66.333,151.823],[-58.533,128.891]],"c":true}]},{"t":136,"s":[{"i":[[-11.915,-11.352],[0,0],[-4.096,12.212],[0,0]],"o":[[0,0],[-8.518,2.641],[0,0],[0,0]],"v":[[-39.33,158.883],[-65.277,167.552],[-73.343,159.489],[-63.679,134.246]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.078431372549,0.098039223166,0.109803929048,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}],"ip":0,"op":311,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":3,"nm":"letter cntrl ","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":7,"s":[256,256,0],"to":[-6.333,-2.333,0],"ti":[6.333,2.333,0]},{"i":{"x":0.917,"y":0.917},"o":{"x":0.753,"y":0.753},"t":21,"s":[218,242,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0.33},"t":106,"s":[218,242,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.999,"y":1},"o":{"x":0.167,"y":0.167},"t":113,"s":[218,242,0],"to":[6.333,2.333,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.001,"y":0},"t":121,"s":[256,256,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.5,"y":0},"t":128,"s":[263.336,258.703,0],"to":[0,0,0],"ti":[0,0,0]},{"t":142,"s":[256,256,0]}]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.203]},"t":7,"s":[100,100,100]},{"i":{"x":[0.917,0.917,0.917],"y":[1,1,1.38]},"o":{"x":[0.753,0.753,0.753],"y":[0,0,0]},"t":21,"s":[83,83,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1.283]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,-0.125]},"t":106,"s":[83,83,100]},{"i":{"x":[0.999,0.999,0.999],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.216]},"t":113,"s":[76,76,100]},{"i":{"x":[0.5,0.5,0.5],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":121,"s":[100,100,100]},{"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":128,"s":[104.634,104.634,100]},{"t":142,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":0,"nm":"text","parent":31,"refId":"comp_0","sr":1,"ks":{"p":{"a":0,"k":[236.338,-0.37,0]},"a":{"a":0,"k":[512,256,0]},"s":{"a":0,"k":[94,95.8,100]}},"ao":0,"w":1024,"h":512,"ip":30,"op":179,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"bend matte","parent":37,"td":1,"sr":1,"ks":{"p":{"a":0,"k":[-1,-1,0]},"a":{"a":0,"k":[-1,-1,0]}},"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":5,"s":[{"i":[[0,0],[2.149,-0.109],[2.304,-24.04],[10.861,-21.07],[0.806,-2.806],[-15.635,10.204],[-7.069,-0.355]],"o":[[0,0],[-11.584,0.589],[-13.269,-0.25],[-2.237,4.339],[2.519,-33],[22.484,-14.674],[1.245,0.063]],"v":[[-98.231,-225.5],[-101.648,-225.391],[-152.731,-195.75],[-189.361,-165.68],[-192.769,-153],[-154.993,-211.401],[-100.156,-225.633]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[6.719,-4.298],[3.569,-38.802],[26.284,-20.082],[2.414,-2.02],[-20.353,16.045],[-8.461,3.254]],"o":[[0,0],[-10.75,6.876],[-25.459,-7.056],[-2.281,1.743],[11.433,-26.567],[29.267,-23.073],[1.49,-0.573]],"v":[[-59.72,-214.773],[-70.44,-210.493],[-106.731,-135],[-175.272,-117.195],[-182.269,-111.5],[-130.698,-175.226],[-62.53,-214.143]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[-3.435,2.996],[5.612,-6.112],[-3.011,-72.98],[37.169,-22.087],[2.615,-3.029],[-25.779,27.39],[-25.016,22.276]],"o":[[-2.884,3.127],[-17.518,24.799],[-36.72,-4.752],[-3.314,1.961],[9.362,-27.145],[40.023,-43.052],[4.406,-3.924]],"v":[[-3.961,-220.841],[-19.542,-204],[-42.671,-64.978],[-169.158,-43.254],[-179.368,-32.092],[-123.805,-116.231],[-16.016,-210.554]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-8.045,1.223],[4.505,-7.925],[-35.199,-94.006],[48.054,-24.092],[2.815,-4.038],[-31.588,38.256],[-51.297,29.366]],"o":[[-5.767,6.254],[-24.285,42.722],[-47.981,-2.448],[-4.348,2.18],[3.37,-28.744],[51.535,-62.414],[6.669,-3.818]],"v":[[52.463,-227.967],[31.232,-202.012],[21.39,5.044],[-163.045,30.687],[-178.309,45.308],[-109.462,-91.747],[33.521,-220.711]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-6.267,1.622],[8.959,-21.185],[-36.292,-101.96],[51.017,-31.402],[4.065,-6.25],[-34.922,48.91],[-48.513,32.734]],"o":[[-10.652,6.655],[-27.085,59.733],[-47.394,0.008],[-6.044,3.871],[4.483,-28.043],[54.292,-75.266],[18.708,-14.213]],"v":[[97.747,-253.485],[49.467,-201.704],[54.391,23.184],[-155.512,59.988],[-172.359,78.454],[-92.27,-89.324],[55.597,-232.351]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-4.489,2.021],[13.414,-34.445],[-37.385,-109.914],[53.98,-38.711],[5.316,-8.462],[-38.256,59.563],[-57.632,45.171]],"o":[[-15.537,7.057],[-29.885,76.743],[-46.808,2.463],[-7.741,5.562],[5.596,-27.342],[57.049,-88.118],[29.791,-23.35]],"v":[[112.543,-260.412],[66.362,-209.564],[87.392,41.325],[-147.979,89.288],[-166.409,111.6],[-75.079,-86.901],[55.059,-238.052]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-2.712,2.421],[3.219,-17.691],[-38.478,-117.868],[56.943,-46.021],[6.566,-10.674],[-60.395,109.663],[-43.958,32.331]],"o":[[-5.709,9.382],[-14.503,79.708],[-46.221,4.919],[-9.438,7.254],[6.709,-26.642],[56.613,-102.795],[7.341,-5.399]],"v":[[102.294,-289.08],[77.802,-234.774],[120.393,59.465],[-140.446,118.589],[-160.459,144.745],[-76.402,-82.692],[84.006,-277.241]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-5.174,2.267],[-2.627,-27.071],[-36.788,-108.376],[61.251,-47.702],[4.768,-16.568],[-37.809,67.005],[-36.75,47.147]],"o":[[-6.801,18.613],[5.591,65.909],[-45.635,7.375],[-11.397,8.567],[5.297,-40.73],[42.381,-75.108],[9.445,-12.53]],"v":[[98.432,-283.239],[89.253,-216.22],[153.207,43.313],[-141.833,126.836],[-163.901,158.551],[-66.238,-56.394],[75.249,-263.238]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-7.637,2.113],[-7.06,-21.682],[-35.097,-98.884],[101.647,-47.686],[10.542,-8.056],[-35.363,67.433],[-37.996,59.524]],"o":[[3.823,16.668],[21.159,69.561],[-45.048,9.831],[-16.275,7.635],[15.727,-45.013],[41.026,-78.231],[9.603,-18.014]],"v":[[94.569,-277.399],[115.81,-207.655],[186.021,27.161],[-123.221,158.049],[-161.61,181.823],[-66.496,-26.208],[67.371,-254.817]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[-10.101,1.959],[-10.608,-23.883],[-41.382,-97.543],[78.099,-37.273],[-0.522,0.868],[-44.297,84.348],[-37.746,55.034]],"o":[[2.42,16.297],[32.444,73.044],[-44.462,12.286],[-1.186,0.566],[20.237,-54.198],[57.357,-109.217],[14.766,-21.53]],"v":[[85.906,-285.913],[113.403,-211.562],[211.456,16.258],[-158.786,184.391],[-158.028,179.768],[-69.063,-38.851],[41.883,-234.374]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-7.669,0.638],[-1.793,-14.23],[-24.829,-58.526],[46.859,-22.364],[-5.175,7.057],[-40.241,63.211],[-32.196,39.705]],"o":[[1.179,13.717],[6.02,47.786],[-26.677,7.372],[-0.712,0.34],[18.385,-40.634],[47.308,-77.423],[12.217,-14.908]],"v":[[144.997,-250.934],[151.148,-140.283],[197.285,77.335],[-199.078,156.127],[-179.222,86.875],[-85.666,-83.396],[17.508,-229.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-4.02,-1.345],[0,0],[0,0],[0,0],[-12.154,16.342],[-34.157,31.506],[-23.873,16.712]],"o":[[-0.682,9.846],[0,0],[0,0],[0,0],[15.608,-20.288],[32.234,-29.733],[8.393,-4.975]],"v":[[233.633,-198.466],[207.766,-33.364],[176.029,168.951],[-259.515,113.729],[-211.014,-52.466],[-110.569,-150.213],[-19.055,-223.043]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[-2.68,-0.897],[0,0],[0,0],[0,0],[-8.103,10.895],[-22.771,21.004],[-15.915,11.141]],"o":[[-0.455,6.564],[0,0],[0,0],[0,0],[10.405,-13.525],[21.489,-19.822],[5.596,-3.317]],"v":[[245.122,-176.304],[212.937,-8.923],[173.482,193.648],[-262.778,118.317],[-204.327,-91.993],[-125.091,-168.296],[-51.914,-226.16]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[-1.34,-0.448],[0,0],[0,0],[0,0],[-6.801,16.568],[-33.801,26.349],[-15.559,-1.966]],"o":[[-0.227,3.282],[0,0],[0,0],[0,0],[4.746,-13.481],[11.528,-8.987],[2.798,-1.658]],"v":[[256.612,-154.142],[218.109,15.517],[170.936,218.345],[-266.041,122.904],[-197.639,-131.521],[-148.076,-207.228],[-84.772,-229.278]],"c":true}]},{"t":25,"s":[{"i":[[0,0],[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],[0,0]],"v":[[273.295,-124.713],[228.413,41.327],[175.133,240.475],[-273.904,124.148],[-194.008,-172.006],[-174.882,-240.145],[-119.472,-225.647]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.725490196078,0.725490196078,0.725490196078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"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":10,"s":[0,0.512,0.512,0.497,0.286,0.676,0.674,0.664,0.778,0.839,0.835,0.831]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[0,0.6,0.6,0.582,0.26,0.735,0.727,0.71,0.916,0.87,0.854,0.838]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[0,0.484,0.484,0.477,0.276,0.662,0.66,0.654,0.916,0.839,0.835,0.831]},{"t":22,"s":[0,0.941,0.941,0.937,0.486,0.89,0.888,0.884,0.916,0.839,0.835,0.831]}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[-171.89,-185.215],"to":[0.377,10.679],"ti":[-0.868,-24.56]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[-73.918,-79.971],"to":[0.492,13.921],"ti":[4.206,-13.331]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[-45.296,-56.979],"to":[-11.754,37.259],"ti":[-0.598,-16.917]},{"t":22,"s":[-115.112,48.232]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[-114.502,-126.528],"to":[8.835,5.762],"ti":[-22.986,-20.314]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[-57.921,-83.645],"to":[12.909,11.409],"ti":[-11.412,-7.443]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[-23.166,-48.914],"to":[11.991,7.82],"ti":[-8.729,-2.911]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[26.186,-22.992],"to":[40.959,13.661],"ti":[-24.465,-15.956]},{"t":22,"s":[80.324,-35.183]}]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-1,-1]},"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":"Rectangle 1","bm":0,"hd":false}],"ip":5,"op":179,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"shadow main 3","parent":2,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":60},"p":{"a":0,"k":[-73.891,204.207,0]},"a":{"a":0,"k":[-59.256,206.165,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[16,-12.5],[0,0],[0,0],[-2,-2.875],[0,0],[-16.75,9],[-40.349,42.358],[-1.134,1.191],[-0.098,2.525],[-6.691,7.07],[-1.868,2.27],[-1.159,1.227],[0,0],[11.323,12.411]],"o":[[0,0],[-16,12.5],[0,0],[0,0],[2.141,3.078],[0,0],[31.944,-30.813],[1.346,0.223],[1.419,-1.49],[8.522,-8.96],[1.388,-1.466],[2.073,-2.518],[10.36,-10.966],[0,0],[-13,-14.25]],"v":[[201.5,-72],[165.5,-68.5],[-32.5,122.5],[-57.23,195.18],[-58.625,204.875],[-45.591,204.555],[48.5,175.5],[174.154,46.902],[179.26,45.259],[181.223,39.475],[204.226,15.227],[210.243,13.23],[211.871,7.142],[228.5,-10.5],[231,-45.5]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.345882400812,0.345882400812,0.345882400812,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":15,"op":300,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"bend ","parent":37,"sr":1,"ks":{"p":{"a":0,"k":[-1,-1,0]},"a":{"a":0,"k":[-1,-1,0]}},"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":5,"s":[{"i":[[0,0],[2.149,-0.109],[2.304,-24.04],[10.861,-21.07],[0.806,-2.806],[-15.635,10.204],[-7.069,-0.355]],"o":[[0,0],[-11.584,0.589],[-13.269,-0.25],[-2.237,4.339],[2.519,-33],[22.484,-14.674],[1.245,0.063]],"v":[[-98.231,-225.5],[-101.648,-225.391],[-152.731,-195.75],[-189.361,-165.68],[-192.769,-153],[-154.993,-211.401],[-100.156,-225.633]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[6.719,-4.298],[3.569,-38.802],[26.284,-20.082],[2.414,-2.02],[-20.353,16.045],[-8.461,3.254]],"o":[[0,0],[-10.75,6.876],[-25.459,-7.056],[-2.281,1.743],[11.433,-26.567],[29.267,-23.073],[1.49,-0.573]],"v":[[-59.72,-214.773],[-70.44,-210.493],[-106.731,-135],[-175.272,-117.195],[-182.269,-111.5],[-130.698,-175.226],[-62.53,-214.143]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[-3.435,2.996],[5.612,-6.112],[-3.011,-72.98],[37.169,-22.087],[2.615,-3.029],[-25.779,27.39],[-25.016,22.276]],"o":[[-2.884,3.127],[-17.518,24.799],[-36.72,-4.752],[-3.314,1.961],[9.362,-27.145],[40.023,-43.052],[4.406,-3.924]],"v":[[-3.961,-220.841],[-19.542,-204],[-42.671,-64.978],[-169.158,-43.254],[-179.368,-32.092],[-123.805,-116.231],[-16.016,-210.554]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[-8.045,1.223],[4.505,-7.925],[-35.199,-94.006],[48.054,-24.092],[2.815,-4.038],[-31.588,38.256],[-51.297,29.366]],"o":[[-5.767,6.254],[-24.285,42.722],[-47.981,-2.448],[-4.348,2.18],[3.37,-28.744],[51.535,-62.414],[6.669,-3.818]],"v":[[52.463,-227.967],[31.232,-202.012],[21.39,5.044],[-163.045,30.687],[-178.309,45.308],[-109.462,-91.747],[33.521,-220.711]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[-6.267,1.622],[8.959,-21.185],[-36.292,-101.96],[51.017,-31.402],[4.065,-6.25],[-34.922,48.91],[-48.513,32.734]],"o":[[-10.652,6.655],[-27.085,59.733],[-47.394,0.008],[-6.044,3.871],[4.483,-28.043],[54.292,-75.266],[18.708,-14.213]],"v":[[97.747,-253.485],[49.467,-201.704],[54.391,23.184],[-155.512,59.988],[-172.359,78.454],[-92.27,-89.324],[55.597,-232.351]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[-4.489,2.021],[13.414,-34.445],[-37.385,-109.914],[53.98,-38.711],[5.316,-8.462],[-38.256,59.563],[-57.632,45.171]],"o":[[-15.537,7.057],[-29.885,76.743],[-46.808,2.463],[-7.741,5.562],[5.596,-27.342],[57.049,-88.118],[29.791,-23.35]],"v":[[112.543,-260.412],[66.362,-209.564],[87.392,41.325],[-147.979,89.288],[-166.409,111.6],[-75.079,-86.901],[55.059,-238.052]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[-2.712,2.421],[3.219,-17.691],[-38.478,-117.868],[56.943,-46.021],[6.566,-10.674],[-60.395,109.663],[-43.958,32.331]],"o":[[-5.709,9.382],[-14.503,79.708],[-46.221,4.919],[-9.438,7.254],[6.709,-26.642],[56.613,-102.795],[7.341,-5.399]],"v":[[102.294,-289.08],[77.802,-234.774],[120.393,59.465],[-140.446,118.589],[-160.459,144.745],[-76.402,-82.692],[84.006,-277.241]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[-5.174,2.267],[-2.627,-27.071],[-36.788,-108.376],[61.251,-47.702],[4.768,-16.568],[-37.809,67.005],[-36.75,47.147]],"o":[[-6.801,18.613],[5.591,65.909],[-45.635,7.375],[-11.397,8.567],[5.297,-40.73],[42.381,-75.108],[9.445,-12.53]],"v":[[98.432,-283.239],[89.253,-216.22],[153.207,43.313],[-141.833,126.836],[-163.901,158.551],[-66.238,-56.394],[75.249,-263.238]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[{"i":[[-7.637,2.113],[-7.06,-21.682],[-35.097,-98.884],[101.647,-47.686],[10.542,-8.056],[-35.363,67.433],[-37.996,59.524]],"o":[[3.823,16.668],[21.159,69.561],[-45.048,9.831],[-16.275,7.635],[15.727,-45.013],[41.026,-78.231],[9.603,-18.014]],"v":[[94.569,-277.399],[115.81,-207.655],[186.021,27.161],[-123.221,158.049],[-161.61,181.823],[-66.496,-26.208],[67.371,-254.817]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17,"s":[{"i":[[-10.101,1.959],[-10.608,-23.883],[-41.382,-97.543],[78.099,-37.273],[-0.522,0.868],[-44.297,84.348],[-37.746,55.034]],"o":[[2.42,16.297],[32.444,73.044],[-44.462,12.286],[-1.186,0.566],[20.237,-54.198],[57.357,-109.217],[14.766,-21.53]],"v":[[85.906,-285.913],[113.403,-211.562],[211.456,16.258],[-158.786,184.391],[-158.028,179.768],[-69.063,-38.851],[41.883,-234.374]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[-7.669,0.638],[-1.793,-14.23],[-24.829,-58.526],[46.859,-22.364],[-5.175,7.057],[-40.241,63.211],[-32.196,39.705]],"o":[[1.179,13.717],[6.02,47.786],[-26.677,7.372],[-0.712,0.34],[18.385,-40.634],[47.308,-77.423],[12.217,-14.908]],"v":[[144.997,-250.934],[151.148,-140.283],[197.285,77.335],[-199.078,156.127],[-179.222,86.875],[-85.666,-83.396],[17.508,-229.842]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22,"s":[{"i":[[-4.02,-1.345],[0,0],[0,0],[0,0],[-12.154,16.342],[-34.157,31.506],[-23.873,16.712]],"o":[[-0.682,9.846],[0,0],[0,0],[0,0],[15.608,-20.288],[32.234,-29.733],[8.393,-4.975]],"v":[[233.633,-198.466],[207.766,-33.364],[176.029,168.951],[-259.515,113.729],[-211.014,-52.466],[-110.569,-150.213],[-19.055,-223.043]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[-2.68,-0.897],[0,0],[0,0],[0,0],[-8.103,10.895],[-22.771,21.004],[-15.915,11.141]],"o":[[-0.455,6.564],[0,0],[0,0],[0,0],[10.405,-13.525],[21.489,-19.822],[5.596,-3.317]],"v":[[245.122,-176.304],[212.937,-8.923],[173.482,193.648],[-262.778,118.317],[-204.327,-91.993],[-125.091,-168.296],[-51.914,-226.16]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":24,"s":[{"i":[[-1.34,-0.448],[0,0],[0,0],[0,0],[-6.801,16.568],[-33.801,26.349],[-15.559,-1.966]],"o":[[-0.227,3.282],[0,0],[0,0],[0,0],[4.746,-13.481],[11.528,-8.987],[2.798,-1.658]],"v":[[256.612,-154.142],[218.109,15.517],[170.936,218.345],[-266.041,122.904],[-197.639,-131.521],[-148.076,-207.228],[-84.772,-229.278]],"c":true}]},{"t":25,"s":[{"i":[[0,0],[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],[0,0]],"v":[[273.295,-124.713],[228.413,41.327],[175.133,240.475],[-273.904,124.148],[-194.008,-172.006],[-174.882,-240.145],[-119.472,-225.647]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.725490196078,0.725490196078,0.725490196078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"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":10,"s":[0,0.512,0.512,0.497,0.286,0.676,0.674,0.664,0.778,0.839,0.835,0.831]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[0,0.6,0.6,0.582,0.26,0.735,0.727,0.71,0.916,0.87,0.854,0.838]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[0,0.484,0.484,0.477,0.276,0.662,0.66,0.654,0.916,0.839,0.835,0.831]},{"t":22,"s":[0,0.941,0.941,0.937,0.486,0.89,0.888,0.884,0.916,0.839,0.835,0.831]}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[-171.89,-185.215],"to":[0.377,10.679],"ti":[-0.868,-24.56]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[-73.918,-79.971],"to":[0.492,13.921],"ti":[4.206,-13.331]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[-45.296,-56.979],"to":[-11.754,37.259],"ti":[-0.598,-16.917]},{"t":22,"s":[-115.112,48.232]}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[-114.502,-126.528],"to":[8.835,5.762],"ti":[-22.986,-20.314]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[-57.921,-83.645],"to":[12.909,11.409],"ti":[-11.412,-7.443]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[-23.166,-48.914],"to":[11.991,7.82],"ti":[-8.729,-2.911]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":16,"s":[26.186,-22.992],"to":[40.959,13.661],"ti":[-24.465,-15.956]},{"t":22,"s":[80.324,-35.183]}]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-1,-1]},"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":"Rectangle 1","bm":0,"hd":false}],"ip":5,"op":179,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":0,"nm":"text","parent":37,"refId":"comp_0","sr":1,"ks":{"p":{"a":0,"k":[252,-1,0]},"a":{"a":0,"k":[512,256,0]}},"ao":0,"w":1024,"h":512,"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"letter matte","parent":31,"td":1,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.669],"y":[0.489]},"o":{"x":[0.298],"y":[0]},"t":5,"s":[0]},{"t":18,"s":[75.221]}]},"p":{"a":0,"k":[-1.3,0,0]},"a":{"a":0,"k":[-1,-1,0]},"s":{"a":0,"k":[94,96,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":0,"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":[[193,-227],[193,227],[-193,227],[-193,-113.656],[-193,-227],[-67.794,-227]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[0,0],[0,0],[-1.998,127.87],[-14.708,15.784],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.5,-6.344],[20.5,-22],[0,0]],"v":[[193,-227],[193,227],[-193,227],[-193,-156.656],[-163.5,-203.5],[-109.294,-227]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[0,0],[0,0],[-24.071,62.955],[-16.727,13.626],[-28.159,8.153]],"o":[[0,0],[0,0],[0,0],[10.212,-23.544],[24.896,-20.28],[81.855,-23.7]],"v":[[193,-227],[193,227],[-193,227],[-182.606,-111.151],[-134.803,-170.355],[-59.158,-215.217]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[-13.83,-108.825],[0,0],[-24.894,132.872],[-15.718,14.705],[-32.013,15.822]],"o":[[0,0],[-71.462,-10.639],[0,0],[4.856,-14.944],[22.698,-21.14],[58.766,-29.045]],"v":[[193,-227],[202.248,220.381],[-180.279,237.793],[-180.338,-33.56],[-104.803,-125.257],[1.485,-224.214]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[-27.659,-217.651],[0,0],[-17.037,123.066],[-14.708,15.784],[-56.779,31.133]],"o":[[0,0],[-142.924,-21.278],[0,0],[-0.5,-6.344],[20.5,-22],[41.208,-22.595]],"v":[[193,-227],[212.882,230.683],[-143.446,268.966],[-178.071,44.031],[-74.803,-80.16],[50.83,-229.008]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-52.722,-179.747],[0,0],[-10.604,80.949],[-14.35,18.087],[-49.644,33.072]],"o":[[0,0],[-155.608,-11.294],[0,0],[-0.5,-6.344],[70.713,-119.107],[19.572,-13.039]],"v":[[162.872,-247.831],[195.304,183.044],[-142.351,239.1],[-172.146,76.928],[-29.876,-119.424],[91.683,-250.344]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[-77.785,-141.843],[0,0],[-14.126,53.326],[-13.993,20.39],[-45.303,54.296]],"o":[[0,0],[-168.292,-1.31],[0,0],[-0.5,-6.344],[17.158,-24.517],[23.691,-28.393]],"v":[[127.155,-260.001],[193.114,136.941],[-152.282,198.473],[-166.22,109.825],[-51.589,-65.592],[73.738,-236.755]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-77.526,-155.592],[0,0],[-1.32,35.117],[-13.635,22.693],[0,0]],"o":[[0,0],[-156.875,7.775],[0,0],[-0.5,-6.344],[15.488,-25.776],[0,0]],"v":[[102.616,-289.493],[175.025,84.614],[-148.203,183.274],[-160.295,142.722],[-39.982,-58.309],[77.35,-250.958]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[-45.426,-133.658],[0,0],[-6.175,20.431],[-17.523,32.214],[0,0]],"o":[[0,0],[-182.287,35.844],[0,0],[-0.334,-6.346],[17.033,-29.946],[0,0]],"v":[[96.619,-282.859],[155.412,43.671],[-155.214,179.18],[-161.335,149.542],[-37.927,-62.706],[77.519,-260.121]],"c":true}]},{"t":16,"s":[{"i":[[0,0],[-45.856,-137.643],[0,0],[-15.973,31.613],[-21.411,41.735],[0,0]],"o":[[0,0],[-120.2,6.97],[0,0],[-0.169,-6.349],[18.579,-34.116],[0,0]],"v":[[90.622,-276.224],[196.476,53.956],[-159.853,182.587],[-138.065,132.404],[-35.873,-67.104],[77.688,-269.284]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.725490196078,0.725490196078,0.725490196078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"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.941,0.941,0.937,0.486,0.89,0.888,0.884,0.916,0.839,0.835,0.831]}},"s":{"a":0,"k":[-75,-98]},"e":{"a":0,"k":[50,65]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-1,-1]},"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":"Rectangle 1","bm":0,"hd":false}],"ip":0,"op":16,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"shadow pencil ","parent":2,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":60},"p":{"a":0,"k":[-73.891,204.207,0]},"a":{"a":0,"k":[-59.256,206.165,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[16,-12.5],[0,0],[0,0],[-2,-2.875],[0,0],[-16.75,9],[-40.349,42.358],[-1.134,1.191],[-0.098,2.525],[-6.691,7.07],[-1.868,2.27],[-1.159,1.227],[0,0],[11.323,12.411]],"o":[[0,0],[-16,12.5],[0,0],[0,0],[2.141,3.078],[0,0],[31.944,-30.813],[1.346,0.223],[1.419,-1.49],[8.522,-8.96],[1.388,-1.466],[2.073,-2.518],[10.36,-10.966],[0,0],[-13,-14.25]],"v":[[201.5,-72],[165.5,-68.5],[-32.5,122.5],[-57.23,195.18],[-58.625,204.875],[-45.591,204.555],[48.5,175.5],[174.154,46.902],[179.26,45.259],[181.223,39.475],[204.226,15.227],[210.243,13.23],[211.871,7.142],[228.5,-10.5],[231,-45.5]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.345882400812,0.345882400812,0.345882400812,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":0,"op":15,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"letter 3","parent":31,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.669],"y":[0.489]},"o":{"x":[0.298],"y":[0]},"t":5,"s":[0]},{"t":18,"s":[75.221]}]},"p":{"a":0,"k":[-1.3,0,0]},"a":{"a":0,"k":[-1,-1,0]},"s":{"a":0,"k":[94,96,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":0,"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":[[193,-227],[193,227],[-193,227],[-193,-113.656],[-193,-227],[-67.794,-227]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[{"i":[[0,0],[0,0],[0,0],[-1.998,127.87],[-14.708,15.784],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.5,-6.344],[20.5,-22],[0,0]],"v":[[193,-227],[193,227],[-193,227],[-193,-156.656],[-163.5,-203.5],[-109.294,-227]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":7,"s":[{"i":[[0,0],[0,0],[0,0],[-24.071,62.955],[-16.727,13.626],[-28.159,8.153]],"o":[[0,0],[0,0],[0,0],[10.212,-23.544],[24.896,-20.28],[81.855,-23.7]],"v":[[193,-227],[193,227],[-193,227],[-182.606,-111.151],[-134.803,-170.355],[-59.158,-215.217]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[-13.83,-108.825],[0,0],[-24.894,132.872],[-15.718,14.705],[-32.013,15.822]],"o":[[0,0],[-71.462,-10.639],[0,0],[4.856,-14.944],[22.698,-21.14],[58.766,-29.045]],"v":[[193,-227],[202.248,220.381],[-180.279,237.793],[-180.338,-33.56],[-104.803,-125.257],[1.485,-224.214]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11,"s":[{"i":[[0,0],[-27.659,-217.651],[0,0],[-17.037,123.066],[-14.708,15.784],[-56.779,31.133]],"o":[[0,0],[-142.924,-21.278],[0,0],[-0.5,-6.344],[20.5,-22],[41.208,-22.595]],"v":[[193,-227],[212.882,230.683],[-143.446,268.966],[-178.071,44.031],[-74.803,-80.16],[50.83,-229.008]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12,"s":[{"i":[[0,0],[-52.722,-179.747],[0,0],[-10.604,80.949],[-14.35,18.087],[-49.644,33.072]],"o":[[0,0],[-155.608,-11.294],[0,0],[-0.5,-6.344],[70.713,-119.107],[19.572,-13.039]],"v":[[162.872,-247.831],[195.304,183.044],[-142.351,239.1],[-172.146,76.928],[-29.876,-119.424],[91.683,-250.344]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[-77.785,-141.843],[0,0],[-14.126,53.326],[-13.993,20.39],[-45.303,54.296]],"o":[[0,0],[-168.292,-1.31],[0,0],[-0.5,-6.344],[17.158,-24.517],[23.691,-28.393]],"v":[[127.155,-260.001],[193.114,136.941],[-152.282,198.473],[-166.22,109.825],[-51.589,-65.592],[73.738,-236.755]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[-77.526,-155.592],[0,0],[-1.32,35.117],[-13.635,22.693],[0,0]],"o":[[0,0],[-156.875,7.775],[0,0],[-0.5,-6.344],[15.488,-25.776],[0,0]],"v":[[102.616,-289.493],[175.025,84.614],[-148.203,183.274],[-160.295,142.722],[-39.982,-58.309],[77.35,-250.958]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":15,"s":[{"i":[[0,0],[-45.426,-133.658],[0,0],[-6.175,20.431],[-17.523,32.214],[0,0]],"o":[[0,0],[-182.287,35.844],[0,0],[-0.334,-6.346],[17.033,-29.946],[0,0]],"v":[[96.619,-282.859],[155.412,43.671],[-155.214,179.18],[-161.335,149.542],[-37.927,-62.706],[77.519,-260.121]],"c":true}]},{"t":16,"s":[{"i":[[0,0],[-45.856,-137.643],[0,0],[-15.973,31.613],[-21.411,41.735],[0,0]],"o":[[0,0],[-120.2,6.97],[0,0],[-0.169,-6.349],[18.579,-34.116],[0,0]],"v":[[90.622,-276.224],[196.476,53.956],[-159.853,182.587],[-138.065,132.404],[-35.873,-67.104],[77.688,-269.284]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.725490196078,0.725490196078,0.725490196078,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"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.941,0.941,0.937,0.486,0.89,0.888,0.884,0.916,0.839,0.835,0.831]}},"s":{"a":0,"k":[-75,-98]},"e":{"a":0,"k":[50,65]},"t":1,"nm":"Gradient Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-1,-1]},"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":"Rectangle 1","bm":0,"hd":false}],"ip":0,"op":16,"st":0,"bm":0}]} \ No newline at end of file diff --git a/app/components/DialogsPanel/DialogsPanel.module.css b/app/components/DialogsPanel/DialogsPanel.module.css new file mode 100644 index 0000000..e69de29 diff --git a/app/components/DialogsPanel/DialogsPanel.tsx b/app/components/DialogsPanel/DialogsPanel.tsx new file mode 100644 index 0000000..86e782e --- /dev/null +++ b/app/components/DialogsPanel/DialogsPanel.tsx @@ -0,0 +1,73 @@ +import { Box, Divider, Flex, ScrollArea } from '@mantine/core'; +import { RequestsButton } from '../RequestsButton/RequestsButton'; +import { UserButton } from '../UserButton/UserButton'; +import { useEffect, useState } from 'react'; +import { useRosettaColors } from '@/app/hooks/useRosettaColors'; +import { UpdateAlert } from '../UpdateAlert/UpdateAlert'; +import { useNavigate } from 'react-router-dom'; +import { DialogsList } from '../DialogsList/DialogsList'; +import { DialogsPanelHeader } from '../DialogsPanelHeader/DialogsPanelHeader'; +import { useDialogsList } from '@/app/providers/DialogListProvider/useDialogsList'; + +export function DialogsPanel() { + const [dialogsMode, setDialogsMode] = useState<'all' | 'requests'>('all'); + const [requestsCount, setRequestsCount] = useState(0); + const {dialogs} = useDialogsList(); + const colors = useRosettaColors(); + const navigate = useNavigate(); + + useEffect(() => { + ((async () => { + let requests = dialogs.filter(d => d.is_request); + setRequestsCount(requests.length); + if(requests.length == 0 && dialogsMode == 'requests'){ + setDialogsMode('all'); + } + }))(); + }, [dialogs]); + + const changeDialogMode = () => { + if(dialogsMode == 'all'){ + setDialogsMode('requests'); + } else { + setDialogsMode('all'); + } + } + + const onSelectDialog = async (dialog: string) => { + console.info("[PT] SELECT DIALOG ", Date.now()); + navigate(`/main/chat/${dialog.replace("#", "%23")}`); + } + + return ( + + + + {requestsCount > 0 && } + + + + + + + + + + + + + + + ); +} \ No newline at end of file diff --git a/app/components/DialogsPanelHeader/DialogsPanelHeader.tsx b/app/components/DialogsPanelHeader/DialogsPanelHeader.tsx new file mode 100644 index 0000000..bd33cbb --- /dev/null +++ b/app/components/DialogsPanelHeader/DialogsPanelHeader.tsx @@ -0,0 +1,112 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Flex, Menu, Text } from "@mantine/core"; +import { IconBuildingBroadcastTower, IconDoorExit, IconEdit, IconNote, IconPalette, IconPencil, IconUser, IconUsersGroup } from "@tabler/icons-react"; +import { DialogsSearch } from "../DialogsSearch/DialogsSearch"; +import { useLogout } from "@/app/providers/AccountProvider/useLogout"; +import { useHotkeys } from "@mantine/hooks"; +import { useNavigate } from "react-router-dom"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; + +export function DialogsPanelHeader() { + const colors = useRosettaColors(); + const logout = useLogout(); + const navigate = useNavigate(); + const publicKey = usePublicKey(); + const viewKeys = window.platform == 'darwin' ? '⌘' : 'Ctrl+'; + const triggerKeys = window.platform == 'darwin' ? 'mod' : 'Ctrl'; + + useHotkeys([ + [`${triggerKeys}+L`, () => logout()], + [`${triggerKeys}+P`, () => navigate('/main/profile/me')], + ], [], true); + + return ( + + + + + + + + Profile + navigate('/main/profile/me')} + leftSection={} + rightSection={ + + {viewKeys}P + + } + > + Edit + + navigate('/main/theme')} + leftSection={} + > + Theme + + } + rightSection={ + + {viewKeys}L + + } + > + Lock + + + + Chats + + + + + + Write + navigate('/main/chat/' + publicKey)} + leftSection={} + > + Note + + navigate('/main/newgroup')} + leftSection={} + > + Group chat + + navigate('/main/chat/' + publicKey)} + leftSection={} + > + Channel + + + + + + + + + ); +} \ No newline at end of file diff --git a/app/components/DialogsSearch/DialogsSearch.tsx b/app/components/DialogsSearch/DialogsSearch.tsx new file mode 100644 index 0000000..85fbff7 --- /dev/null +++ b/app/components/DialogsSearch/DialogsSearch.tsx @@ -0,0 +1,136 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { PacketSearch, PacketSearchUser } from "@/app/providers/ProtocolProvider/protocol/packets/packet.search"; +import { Avatar, Box, Flex, Loader, Popover, Text } from "@mantine/core"; +import { IconBookmark } from "@tabler/icons-react"; +import { useEffect, useRef, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { usePrivateKeyHash } from "@/app/providers/AccountProvider/usePrivateKeyHash"; +import { useSender } from "@/app/providers/ProtocolProvider/useSender"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; +import { DEVTOOLS_CHEATCODE } from "@/app/constants"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { useViewPanelsState, ViewPanelsState } from "@/app/hooks/useViewPanelsState"; +import InputCustomPlaceholder from "../InputCustomPlaceholder/InputCustomPlaceholder"; +import { SearchRow } from "../SearchRow/SearchRow"; + +export function DialogsSearch() { + const publicKey = usePublicKey(); + const privateKey = usePrivateKeyHash(); + const [opened, setOpened] = useState(false); + const [loading, setLoading] = useState(false); + const timeout = useRef(null); + const [searchValue, setSearchValue] = useState(""); + const navigate = useNavigate(); + const send = useSender(); + const {lg} = useRosettaBreakpoints(); + const [viewState] = useViewPanelsState(); + const [searchResults, setSearchResults] = useState([]); + const colors = useRosettaColors(); + + useEffect(() => { + if(searchValue.trim() == DEVTOOLS_CHEATCODE){ + window.electron.ipcRenderer.invoke('open-dev-tools'); + } + }, [searchValue]); + + + const handleSearch = (event: React.ChangeEvent) => { + const value = event.currentTarget.value. + replace("@", ""); + if (timeout.current) { + clearTimeout(timeout.current); + } + if (value.trim() === "") { + if(timeout.current) { + clearTimeout(timeout.current); + } + setSearchResults([]); + setOpened(false); + setSearchValue(value); + return; + } + setOpened(true); + setLoading(true); + setSearchValue(value); + timeout.current = setTimeout(() => { + let packetSearch = new PacketSearch(); + packetSearch.setSearch(value); + packetSearch.setPrivateKey(privateKey); + send(packetSearch); + }, 1000); + + } + + usePacket(0x03, (packet : PacketSearch) => { + setSearchResults(packet.getUsers()); + setLoading(false); + }); + + const onDialogClick = (publicKey : string) => { + setOpened(false); + navigate(`/main/chat/${publicKey}`); + setSearchValue(""); + } + + return ( + + setOpened(false)} + width={'target'} + shadow="md" + clickOutsideEvents={['mouseup', 'touchend']} + //withOverlay + withArrow + overlayProps={{ zIndex: 10000, blur: '3px' }} + zIndex={10001} + position="bottom" + > + + setOpened(false)} onChange={handleSearch}> + + + {!loading && searchResults.length === 0 && ( + + You can search by username or public key. + + )} + {loading && ( + + + + )} + {searchResults.length > 0 && !loading && + ( + {searchResults.map((user, index) => ( +
+ {user.publicKey !== publicKey && ( + + )} + {user.publicKey === publicKey && ( + onDialogClick(user.publicKey)} p={'sm'} direction={'row'} gap={'sm'}> + + + + + Saved messages + Notes + + + )} +
+ ))} +
) + } +
+
+
+ ); +} \ No newline at end of file diff --git a/app/components/DiceDropdown/DiceDropdown.tsx b/app/components/DiceDropdown/DiceDropdown.tsx new file mode 100644 index 0000000..6b053ac --- /dev/null +++ b/app/components/DiceDropdown/DiceDropdown.tsx @@ -0,0 +1,90 @@ +import { AccountBase } from "@/app/providers/AccountProvider/AccountProvider"; +import { useAccountProvider } from "@/app/providers/AccountProvider/useAccountProvider"; +import { Avatar, Box, Flex, Popover, Text } from "@mantine/core"; +import { UserAccountSelect } from "../UserAccountSelect/UserAccountSelect"; +import { IconPlus } from "@tabler/icons-react"; +import { modals } from "@mantine/modals"; +import { useNavigate } from "react-router-dom"; +import { useState } from "react"; + +interface DiceDropdownProps { + children: React.ReactNode; + onClick?: (accountBase: AccountBase) => void; + selectedPublicKey?: string; +} + +export function DiceDropdown(props: DiceDropdownProps) { + const { allAccounts } = useAccountProvider(); + const navigate = useNavigate(); + const [opened, setOpened] = useState(false); + + const createAccount = () => { + modals.openConfirmModal({ + title: 'Create account', + centered: true, + children: ( + + You may be create new account or import existing + + ), + withCloseButton: false, + labels: { confirm: 'Create new', cancel: "Import" }, + cancelProps: { + autoFocus: false, + style: { + outline: 'none' + } + }, + onCancel: () => { + navigate("/exists-seed"); + }, + onConfirm: () => { + navigate("/create-seed"); + } + }); + } + + return ( + + + setOpened(!opened)}> + {props.children} + + + + + {allAccounts.map((accountBase: AccountBase) => { + return ( { + if (props.onClick) { + props.onClick(accountBase); + } + setOpened(false); + }}>) + })} + { + createAccount(); + setOpened(false); + }} pl={'xs'} pr={'xs'} pt={10} pb={10} gap={'xs'} align={'center'}> + + + + + New account + + + + + + ); +} \ No newline at end of file diff --git a/app/components/Emoji/Emoji.tsx b/app/components/Emoji/Emoji.tsx new file mode 100644 index 0000000..436bc6c --- /dev/null +++ b/app/components/Emoji/Emoji.tsx @@ -0,0 +1,40 @@ +import { useState } from "react"; + +interface EmojiProps { + unified: string; + size?: number; +} + +export function Emoji(props: EmojiProps) { + const [error, setError] = useState(false); + const [loaded, setLoaded] = useState(false); + + const handleError = () => setError(true); + const handleLoad = () => setLoaded(true); + + return ( + <> + + {!error && ( + <> + {props.unified} + + )} + {error && props.unified} + + + ) +} \ No newline at end of file diff --git a/app/components/GroupDialog/GroupDialog.tsx b/app/components/GroupDialog/GroupDialog.tsx new file mode 100644 index 0000000..5278e40 --- /dev/null +++ b/app/components/GroupDialog/GroupDialog.tsx @@ -0,0 +1,170 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Avatar, Badge, Box, Divider, Flex, Loader, Skeleton, Text, useComputedColorScheme, useMantineTheme } from "@mantine/core"; +import { IconAlertCircle, IconBellOff, IconCheck, IconChecks, IconClock, IconPin, IconUsers } from "@tabler/icons-react"; +import { DeliveredMessageState } from "@/app/providers/DialogProvider/DialogProvider"; +import { dotMessageIfNeeded, isMessageDeliveredByTime } from "@/app/utils/utils"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; +import { useEffect, useState } from "react"; +import { PacketTyping } from "@/app/providers/ProtocolProvider/protocol/packets/packet.typeing"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { TextParser } from "../TextParser/TextParser"; +import { useMemory } from "@/app/providers/MemoryProvider/useMemory"; +import { DialogRow } from "@/app/providers/DialogListProvider/DialogListProvider"; +import { useGroupInformation } from "@/app/providers/InformationProvider/useGroupInformation"; +import { useDialogInfo } from "@/app/providers/DialogListProvider/useDialogInfo"; +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; +import { useDialogContextMenu } from "@/app/hooks/useDialogContextMenu"; +import { useDialogMute } from "@/app/providers/DialogStateProvider.tsx/useDialogMute"; +import { useDialogPin } from "@/app/providers/DialogStateProvider.tsx/useDialogPin"; +import { useMentions } from "@/app/providers/DialogStateProvider.tsx/useMentions"; + +export interface DialogProps extends DialogRow { + onClickDialog: (dialog: string) => void; +} + +export function GroupDialog(props : DialogProps) { + const colors = useRosettaColors(); + const theme = useMantineTheme(); + const computedTheme = useComputedColorScheme(); + + /** + * Принимает #group:group_id, для + * диалогов между пользователями есть просто public_key собеседника + */ + const groupId = props.dialog_id; + const {isMuted} = useDialogMute(groupId); + const {isPinned} = useDialogPin(groupId); + + const {groupInfo} = useGroupInformation(groupId); + + const {lastMessage, unreaded, loading} = useDialogInfo(props); + const lastMessageFromMe = lastMessage.from_me == 1; + + const [usersTypeing, setUsersTypeing] = useState<{ + timeout: NodeJS.Timeout | null, + fromPublicKey: string + }[]>([]); + + const avatars = useAvatars(groupId); + const [сurrentDialogPublicKeyView] = useMemory("current-dialog-public-key-view", "", true); + const [userInfo] = useUserInformation(lastMessage.from_public_key); + const [typingUser] = useUserInformation(usersTypeing[0]?.fromPublicKey || ''); + + const isInCurrentDialog = props.dialog_id == сurrentDialogPublicKeyView; + const currentDialogColor = computedTheme == 'dark' ? '#2a6292' :'#438fd1'; + const {openContextMenu} = useDialogContextMenu(); + const {isMentioned} = useMentions(); + + + useEffect(() => { + clearUsersTypeing(); + }, [props.dialog_id]); + + const clearUsersTypeing = () => { + usersTypeing.forEach(ut => { + if(ut.timeout){ + clearTimeout(ut.timeout); + } + }); + setUsersTypeing([]); + } + + usePacket(0x0B, (packet : PacketTyping) => { + if(packet.getToPublicKey() == props.dialog_id){ + setUsersTypeing((prev) => [...prev, { + fromPublicKey: packet.getFromPublicKey(), + timeout: setTimeout(() => { + setUsersTypeing((prev) => { + return prev.filter(ut => ut.fromPublicKey != packet.getFromPublicKey()); + }); + }, 3000) + }]); + } + }, [props.dialog_id]); + + return ( + props.onClickDialog(props.dialog_id)} onContextMenu={() => { + openContextMenu(props.dialog_id) + }}> + + + 0 ? avatars[0].avatar : undefined} variant={isInCurrentDialog ? 'filled' : 'light'} name={groupInfo.title} size={50} color={'initials'} /> + + + + + + {dotMessageIfNeeded(groupInfo.title, 15)} + + + {isMuted && } + {isPinned && } + + {usersTypeing.length <= 0 && <> + + {loading && } + {!loading && ( + <> + {userInfo.title}: + + + )} + + } + {usersTypeing.length > 0 && <> + + {typingUser.title} {usersTypeing.length > 1 && 'and ' + (usersTypeing.length - 1)} typing + + + } + + + {!loading && ( + + {new Date(lastMessage.timestamp).toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit' })} + + )} + {loading && ( + + )} + {lastMessage.delivered == DeliveredMessageState.DELIVERED && <> + {lastMessageFromMe && unreaded > 0 && + } + {lastMessageFromMe && unreaded <= 0 && + } + } + {(lastMessage.delivered == DeliveredMessageState.WAITING && (isMessageDeliveredByTime(lastMessage.timestamp, lastMessage.attachments.length))) && <> + + } + {!loading && (lastMessage.delivered == DeliveredMessageState.ERROR || (!isMessageDeliveredByTime(lastMessage.timestamp, lastMessage.attachments.length) && lastMessage.delivered != DeliveredMessageState.DELIVERED)) && ( + + )} + {unreaded > 0 && !lastMessageFromMe && !isMentioned(props.dialog_id) && {unreaded > 99 ? '99+' : unreaded}} + {isMentioned(props.dialog_id) && !lastMessageFromMe && @} + + + + + + ) +} \ No newline at end of file diff --git a/app/components/GroupHeader/GroupHeader.tsx b/app/components/GroupHeader/GroupHeader.tsx new file mode 100644 index 0000000..7bb3c09 --- /dev/null +++ b/app/components/GroupHeader/GroupHeader.tsx @@ -0,0 +1,152 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { ProtocolState } from "@/app/providers/ProtocolProvider/ProtocolProvider"; +import { useProtocolState } from "@/app/providers/ProtocolProvider/useProtocolState"; +import { Avatar, Box, Divider, Flex, Loader, Skeleton, Text, Tooltip, useComputedColorScheme, useMantineTheme } from "@mantine/core"; +import { modals } from "@mantine/modals"; +import { IconTrashX } from "@tabler/icons-react"; +import { useEffect, useState } from "react"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; +import { PacketTyping } from "@/app/providers/ProtocolProvider/protocol/packets/packet.typeing"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; +import { ReplyHeader } from "../ReplyHeader/ReplyHeader"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { BackToDialogs } from "../BackToDialogs/BackToDialogs"; +import { useGroupInformation } from "@/app/providers/InformationProvider/useGroupInformation"; +import { useNavigate } from "react-router-dom"; +import { useGroupMembers } from "@/app/providers/InformationProvider/useGroupMembers"; +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; + + +export function GroupHeader() { + const colors = useRosettaColors(); + const computedTheme = useComputedColorScheme(); + const {deleteMessages, dialog} = useDialog(); + const theme = useMantineTheme(); + const {groupInfo} = useGroupInformation(dialog); + const protocolState = useProtocolState(); + const [usersTypeing, setUsersTypeing] = useState<{ + timeout: NodeJS.Timeout | null, + fromPublicKey: string + }[]>([]); + const avatars = useAvatars(dialog); + const {replyMessages} = useReplyMessages(); + const {lg} = useRosettaBreakpoints(); + const [userInfo] = useUserInformation(usersTypeing[0]?.fromPublicKey || ''); + const navigate = useNavigate(); + /** + * Указывем force для того, чтобы при открытии диалога + * с группой подгружался сразу актуальный список участников + * даже если он уже был загружен ранее. Потому что + * событие добавления/удаления участников могло произойти + * когда диалог был закрыт. + */ + const {members, loading} = useGroupMembers(groupInfo.groupId, true); + + useEffect(() => { + clearUsersTypeing(); + }, [dialog]); + + const clearUsersTypeing = () => { + usersTypeing.forEach(ut => { + if(ut.timeout){ + clearTimeout(ut.timeout); + } + }); + setUsersTypeing([]); + } + + usePacket(0x0B, (packet : PacketTyping) => { + if(packet.getToPublicKey() == dialog){ + setUsersTypeing((prev) => [...prev, { + fromPublicKey: packet.getFromPublicKey(), + timeout: setTimeout(() => { + setUsersTypeing((prev) => { + return prev.filter(ut => ut.fromPublicKey != packet.getFromPublicKey()); + }); + }, 3000) + }]); + } + }, [dialog]); + + const clearMessages = async () => { + deleteMessages(); + modals.closeAll(); + } + + const onClickClearMessages = () => { + modals.openConfirmModal({ + title: 'Clear all messages?', + centered: true, + children: ( + + Are you sure you want to clear all messages? This action cannot be undone. + + ), + withCloseButton: false, + labels: { confirm: 'Continue', cancel: "Cancel" }, + confirmProps: { color: 'red' }, + onConfirm: clearMessages + }); + } + + const onClickProfile = () => { + navigate(`/main/group/${groupInfo.groupId.replace('#group:', '')}`); + } + + return (<> + + {(replyMessages.messages.length <= 0 || replyMessages.inDialogInput) && + + {!lg && } + 0 ? avatars[0].avatar : undefined} name={groupInfo.title}> + + + + {groupInfo.title} + + + {members.length > 0 && usersTypeing.length <= 0 && protocolState == ProtocolState.CONNECTED && ( + {members.length} member{members.length > 1 ? 's' : ''} + )} + {loading && usersTypeing.length <= 0 && protocolState == ProtocolState.CONNECTED && members.length == 0 && ( + + )} + {!loading && members.length == 0 && ( + + Deleted group + + )} + {usersTypeing.length > 0 && protocolState == ProtocolState.CONNECTED && <> + + {userInfo.title} {usersTypeing.length > 1 && 'and ' + (usersTypeing.length - 1)} typing + + + } + {protocolState != ProtocolState.CONNECTED && + + + connecting... + + } + + + + + + + + } + {replyMessages.messages.length > 0 && !replyMessages.inDialogInput && } + + + ) +} \ No newline at end of file diff --git a/app/components/GroupInvite/GroupInvite.tsx b/app/components/GroupInvite/GroupInvite.tsx new file mode 100644 index 0000000..1059a4e --- /dev/null +++ b/app/components/GroupInvite/GroupInvite.tsx @@ -0,0 +1,55 @@ +import { ActionIcon, Avatar, CopyButton, Flex, MantineSize, Text } from "@mantine/core"; +import { SettingsPaper } from "../SettingsPaper/SettingsPaper"; +import { IconCheck, IconCopy, IconLink } from "@tabler/icons-react"; +import { useGroupInformation } from "@/app/providers/InformationProvider/useGroupInformation"; +import { useGroups } from "@/app/providers/DialogProvider/useGroups"; +import { useEffect, useState } from "react"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; + +export interface GroupInviteProps { + groupId: string; + mt?: MantineSize; +} + +export function GroupInvite(props: GroupInviteProps) { + const {groupInfo} = useGroupInformation(props.groupId); + const {constructGroupString, getGroupKey} = useGroups(); + const [groupString, setGroupString] = useState(''); + const colors = useRosettaColors(); + + useEffect(() => { + initGroupString(); + }, [props.groupId]) + + const initGroupString = async () => { + const groupKey = await getGroupKey(groupInfo.groupId); + if(!groupKey){ + return; + } + const str = await constructGroupString(groupInfo.groupId, groupInfo.title, groupKey, groupInfo.description); + setGroupString(str); + } + + return ( + + + + + + + + Group Invite Code + Copy and share this invite code with any Rosetta users to the group. + + + + {({ copied, copy }) => ( + + {copied ? : } + + )} + + + + ) +} \ No newline at end of file diff --git a/app/components/GroupInviteMessage/GroupInviteMessage.tsx b/app/components/GroupInviteMessage/GroupInviteMessage.tsx new file mode 100644 index 0000000..aa99de2 --- /dev/null +++ b/app/components/GroupInviteMessage/GroupInviteMessage.tsx @@ -0,0 +1,108 @@ +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { useGroupInviteStatus } from "@/app/providers/DialogProvider/useGroupInviteStatus"; +import { useGroups } from "@/app/providers/DialogProvider/useGroups"; +import { GroupStatus } from "@/app/providers/ProtocolProvider/protocol/packets/packet.group.invite.info"; +import { Avatar, Button, Flex, Paper, Skeleton, Text } from "@mantine/core"; +import { IconBan, IconCheck, IconLink, IconPlus, IconX } from "@tabler/icons-react"; +import { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; + +export interface GroupInviteMessageProps { + groupInviteCode: string; +} + +export function GroupInviteMessage(props: GroupInviteMessageProps) { + const {parseGroupString, prepareForRoute, joinGroup, loading} = useGroups(); + const [groupInfo, setGroupInfo] = useState({ + groupId: '', + title: '', + description: '', + encryptKey: '' + }); + const {inviteStatus} = + useGroupInviteStatus(groupInfo.groupId); + const colorStatus = ( + inviteStatus === GroupStatus.NOT_JOINED ? 'blue' : + inviteStatus === GroupStatus.JOINED ? 'green' : + 'red' + ); + const navigate = useNavigate(); + const {lg} = useRosettaBreakpoints(); + + useEffect(() => { + initGroupInfo(); + }, [props.groupInviteCode]); + + const initGroupInfo = async () => { + const info = await parseGroupString(props.groupInviteCode); + if(!info){ + setGroupInfo({ + groupId: 'Invalid', + title: 'Invalid', + description: 'Invalid', + encryptKey: '' + }); + return; + } + setGroupInfo(info); + } + + const onClickButton = async () => { + if(inviteStatus === GroupStatus.NOT_JOINED){ + await joinGroup(props.groupInviteCode); + return; + } + if(inviteStatus === GroupStatus.JOINED){ + navigate(`/main/chat/${prepareForRoute(groupInfo.groupId)}`); + return; + } + } + + return ( + <> + {groupInfo.groupId === '' && ( + + )} + {groupInfo.groupId != '' && ( + + + {lg && ( + + + + )} + + {groupInfo.title} + + {inviteStatus === GroupStatus.NOT_JOINED && "Invite to join in this group."} + {inviteStatus === GroupStatus.JOINED && "You are already a member of this group."} + {inviteStatus === GroupStatus.INVALID && "This group invite is invalid."} + {inviteStatus === GroupStatus.BANNED && "You are banned in this group."} + + {inviteStatus === GroupStatus.NOT_JOINED && ( + + )} + {inviteStatus === GroupStatus.JOINED && ( + + )} + {inviteStatus === GroupStatus.INVALID && ( + + )} + {inviteStatus === GroupStatus.BANNED && ( + + )} + + + + )} + + ); +} \ No newline at end of file diff --git a/app/components/InputChainHidden/InputChain.module.css b/app/components/InputChainHidden/InputChain.module.css new file mode 100644 index 0000000..fbf198d --- /dev/null +++ b/app/components/InputChainHidden/InputChain.module.css @@ -0,0 +1,46 @@ +.wrapper{ + display: flex; + gap: 10px; + flex-wrap: wrap; + justify-content: center; +} + +.targetArea { + padding: 16px; + border: 2px dashed light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4)); + border-radius: 8px; + background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6)); +} + +.availableArea { + padding: 16px; + border: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4)); + border-radius: 8px; + background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-7)); +} + +.staticWord { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 6px 12px; + border-radius: 4px; + background: light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-5)); +} + +.targetSlot { + min-width: 100px; + cursor: pointer; +} + +.targetSlot:hover { + transform: translateY(-1px); +} + +.availableWord { + transition: all 0.2s ease; +} + +.availableWord:hover { + transform: scale(1.05); +} \ No newline at end of file diff --git a/app/components/InputChainHidden/InputChainHidden.tsx b/app/components/InputChainHidden/InputChainHidden.tsx new file mode 100644 index 0000000..a6c8d65 --- /dev/null +++ b/app/components/InputChainHidden/InputChainHidden.tsx @@ -0,0 +1,177 @@ +import { Button, Group, Stack, Text, Box, Transition } from "@mantine/core"; +import classes from './InputChain.module.css' +import { useEffect, useState } from "react"; + +interface InputChainProps { + text: string; + hidden: number; + onPassed: () => void; + onNotPassed?: () => void; + size?: string; + w?: number; +} + +export function InputChainHidden(props : InputChainProps) { + const text = props.text; + if(text.trim() == ""){ + return (<>); + } + + const words = text.split(" "); + const [hiddenIndices, setHiddenIndices] = useState([]); + const [selectedWords, setSelectedWords] = useState<(string | null)[]>([]); + const [availableWords, setAvailableWords] = useState([]); + const [wrongIndices, setWrongIndices] = useState([]); + const [correctIndices, setCorrectIndices] = useState([]); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + let hidden : number[] = []; + while (hidden.length < props.hidden) { + let num = Math.floor(Math.random() * words.length); + if(hidden.indexOf(num) == -1){ + hidden.push(num); + } + } + hidden.sort((a, b) => a - b); + setHiddenIndices(hidden); + + const hiddenWords = hidden.map(idx => words[idx]); + const shuffled = [...hiddenWords].sort(() => Math.random() - 0.5); + setAvailableWords(shuffled); + setSelectedWords(new Array(hidden.length).fill(null)); + + setTimeout(() => setMounted(true), 100); + }, []); + + const handleWordClick = (word: string) => { + const firstEmptyIndex = selectedWords.findIndex(w => w === null); + if (firstEmptyIndex !== -1) { + const newSelected = [...selectedWords]; + newSelected[firstEmptyIndex] = word; + setSelectedWords(newSelected); + setAvailableWords(availableWords.filter(w => w !== word)); + checkIfPassed(newSelected); + validateWords(newSelected); + } + }; + + const handleRemoveWord = (index: number) => { + const word = selectedWords[index]; + if (word) { + const newSelected = [...selectedWords]; + newSelected[index] = null; + setSelectedWords(newSelected); + setAvailableWords([...availableWords, word]); + if(props.onNotPassed){ + props.onNotPassed(); + } + validateWords(newSelected); + } + }; + + const validateWords = (selected: (string | null)[]) => { + const wrong: number[] = []; + const correct: number[] = []; + selected.forEach((word, idx) => { + if (word !== null) { + if (word === words[hiddenIndices[idx]]) { + correct.push(idx); + } else { + wrong.push(idx); + } + } + }); + setWrongIndices(wrong); + setCorrectIndices(correct); + }; + + const checkIfPassed = (selected: (string | null)[]) => { + const allFilled = selected.every(w => w !== null); + if (allFilled) { + const isCorrect = selected.every((word, idx) => + word === words[hiddenIndices[idx]] + ); + if (isCorrect) { + props.onPassed(); + } else if(props.onNotPassed) { + props.onNotPassed(); + } + } else { + if(props.onNotPassed){ + props.onNotPassed(); + } + } + }; + + return ( + + {/* Target area - where words should be placed */} + + {(styles) => ( + + + Click the words in the correct order: + + + {words.map((word, i) => { + const hiddenIdx = hiddenIndices.indexOf(i); + const isHidden = hiddenIdx !== -1; + + if (!isHidden) { + return ( + + {i + 1}. + {word} + + ); + } + + const isWrong = wrongIndices.includes(hiddenIdx); + const isCorrect = correctIndices.includes(hiddenIdx); + + return ( + + ); + })} + + + )} + + + {/* Available words area */} + + {(transitionStyles) => ( + + + Available words: + + + {availableWords.map((word, idx) => ( + + ))} + + + )} + + + ); +} \ No newline at end of file diff --git a/app/components/InputChainWords/InputChainWords.module.css b/app/components/InputChainWords/InputChainWords.module.css new file mode 100644 index 0000000..9fa6a4d --- /dev/null +++ b/app/components/InputChainWords/InputChainWords.module.css @@ -0,0 +1,30 @@ +.displayArea { + padding: 16px; + border: 2px dashed light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4)); + border-radius: 8px; + background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6)); + min-height: 250px; + max-height: 250px; + height: 250px; + min-width: 360px; + max-width: 360px; + width: 360px; +} + +.wordInput { + height: 36px; + padding: 8px 12px; + border-radius: 6px; + background: light-dark(var(--mantine-color-white), var(--mantine-color-dark-5)); + border: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4)); + transition: all 0.2s ease; +} + +.wordInput:hover { + border-color: light-dark(var(--mantine-color-gray-4), var(--mantine-color-dark-3)); + background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-4)); +} + +.wordInput:focus { + border-color: var(--mantine-color-blue-filled); +} \ No newline at end of file diff --git a/app/components/InputChainWords/InputChainWords.tsx b/app/components/InputChainWords/InputChainWords.tsx new file mode 100644 index 0000000..0a3eb5b --- /dev/null +++ b/app/components/InputChainWords/InputChainWords.tsx @@ -0,0 +1,108 @@ +import { Box, Text, SimpleGrid, TextInput } from "@mantine/core"; +import classes from './InputChainWords.module.css' +import { useState, useEffect } from "react"; + +interface InputChainWordsProps { + words: number; + onPassed: (words : string[]) => void; + wordlist?: string[]; + onNotPassed: () => void; + placeholderFunc?: (inputNumber : number) => string; +} + +export function InputChainWords(props : InputChainWordsProps) { + const [inputValues, setInputValues] = useState(Array(props.words).fill("")); + const [mounted, setMounted] = useState([]); + + useEffect(() => { + setMounted(new Array(props.words).fill(false)); + + Array.from({ length: props.words }).forEach((_, index) => { + setTimeout(() => { + setMounted(prev => { + const newMounted = [...prev]; + newMounted[index] = true; + return newMounted; + }); + }, index * 50); + }); + }, [props.words]); + + const handleInputChange = (value: string, index: number) => { + const updatedValues = [...inputValues]; + updatedValues[index] = value; + setInputValues(updatedValues); + + const allFilled = updatedValues.every((word) => word.trim() !== ""); + const allValid = props.wordlist + ? updatedValues.every((word) => props.wordlist!.includes(word.trim())) + : true; + + if (allFilled && allValid) { + props.onPassed(updatedValues); + } else { + props.onNotPassed(); + } + } + + const handlePaste = (event: React.ClipboardEvent) => { + event.preventDefault(); + const pastedText = event.clipboardData.getData("text"); + const pastedWords = pastedText.split(/\s+/).slice(0, props.words); + + const updatedValues = [...inputValues]; + pastedWords.forEach((word, index) => { + if (index < props.words) { + updatedValues[index] = word; + } + }); + + setInputValues(updatedValues); + + const allFilled = updatedValues.every((word) => word.trim() !== ""); + const allValid = props.wordlist + ? updatedValues.every((word) => props.wordlist!.includes(word.trim())) + : true; + + if (allFilled && allValid) { + props.onPassed(updatedValues); + } else { + props.onNotPassed(); + } + }; + + return ( + + + + Enter your seed phrase: + + + {Array.from({ length: props.words }, (_, i) => ( + + handleInputChange(e.target.value, i)} + onPaste={(e) => handlePaste(e)} + //placeholder={props.placeholderFunc ? props.placeholderFunc(i) : undefined} + classNames={{ input: classes.wordInput }} + leftSection={ + {i + 1}. + } + size="sm" + /> + + ))} + + + + ); +} \ No newline at end of file diff --git a/app/components/InputCustomPlaceholder/InputCustomPlaceholder.tsx b/app/components/InputCustomPlaceholder/InputCustomPlaceholder.tsx new file mode 100644 index 0000000..d9f25a1 --- /dev/null +++ b/app/components/InputCustomPlaceholder/InputCustomPlaceholder.tsx @@ -0,0 +1,78 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Flex, Input, Text } from "@mantine/core"; +import { IconSearch } from "@tabler/icons-react"; +import { forwardRef, useState } from "react"; + +interface InputCustomPlaceholderProps { + onChange?: (e: React.ChangeEvent) => void; + onBlur?: () => void; +} + +const InputCustomPlaceholder = forwardRef((props: InputCustomPlaceholderProps, ref) => { + const colors = useRosettaColors(); + const [isFocused, setIsFocused] = useState(false); + const [value, setValue] = useState(""); + + const handleFocus = () => setIsFocused(true); + + const handleBlur = () => { + setIsFocused(false); + setValue(""); + if (props.onBlur) props.onBlur(); + }; + + const handleChange = (e: React.ChangeEvent) => { + setValue(e.currentTarget.value); + if (props.onChange) props.onChange(e); + } + + return ( +
+
+
+ + + + + Search + + + +
+
+ +
+ ); +}); + +export default InputCustomPlaceholder; \ No newline at end of file diff --git a/app/components/InternalScreen/InternalScreen.tsx b/app/components/InternalScreen/InternalScreen.tsx new file mode 100644 index 0000000..a617791 --- /dev/null +++ b/app/components/InternalScreen/InternalScreen.tsx @@ -0,0 +1,35 @@ +import { Box, Flex, ScrollArea } from "@mantine/core"; +import { useEffect, useState } from "react"; + +interface InternalScreenProps { + children: any; +} +export function InternalScreen(props : InternalScreenProps) { + const [scrollAreaHeight, setScrollAreaHeight] = useState(window.innerHeight); + + useEffect(() => { + const handleResize = () => setScrollAreaHeight(window.innerHeight); + window.addEventListener("resize", handleResize); + handleResize(); + return () => window.removeEventListener("resize", handleResize); + }, []); + + return ( + + + + + {props.children} + + + + + ); +} \ No newline at end of file diff --git a/app/components/KeyImage/KeyImage.tsx b/app/components/KeyImage/KeyImage.tsx new file mode 100644 index 0000000..b53c35e --- /dev/null +++ b/app/components/KeyImage/KeyImage.tsx @@ -0,0 +1,76 @@ +import { useEffect, useMemo, useRef } from "react"; + +export interface KeyImageProps { + keyRender: string; + size: number; + radius?: number; + colors: string[]; +} + +export function KeyImage(props: KeyImageProps) { + const canvasRef = useRef(null); + + const colorsArr: string[] = useMemo(() => { + /** + * Random color generation based on keyRender + */ + let colors : string[] = []; + for(let i = 0; i < props.keyRender.length; i++){ + const char = props.keyRender.charCodeAt(i); + const colorIndex = char % props.colors.length; + colors.push(props.colors[colorIndex]); + } + return colors; + }, [props.colors, props.keyRender]); + + const composition: string[] = useMemo(() => { + const align = 64; // 8x8 + const total = colorsArr.length; + const result: string[] = []; + for (let i = 0; i < align; i++) { + let color = colorsArr[i % total] ?? "gray"; + result.push(color); + } + return result; + }, [colorsArr]); + + useEffect(() => { + const canvas = canvasRef.current; + if (!canvas) return; + const ctx = canvas.getContext("2d"); + if (!ctx) return; + + const size = props.size; + const cells = 8; + const cellSize = size / cells; + + // Ensure crisp rendering + canvas.width = size; + canvas.height = size; + + // Draw 8x8 grid + for (let i = 0; i < composition.length; i++) { + const row = Math.floor(i / cells); + const col = i % cells; + const posX = Math.floor(col * cellSize); + const posY = Math.floor(row * cellSize); + const sizePx = Math.ceil(cellSize); + ctx.fillStyle = composition[i]; + ctx.fillRect(posX, posY, sizePx, sizePx); + } + }, [composition, props.size]); + + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/app/components/MacFrameButtons/MacFrameButtons.module.css b/app/components/MacFrameButtons/MacFrameButtons.module.css new file mode 100644 index 0000000..b00a813 --- /dev/null +++ b/app/components/MacFrameButtons/MacFrameButtons.module.css @@ -0,0 +1,27 @@ +.traffic_lights { + position: absolute; + top: 8px; + left: 12px; + display: flex; + gap: 8px; + z-index: 10; + app-region: no-drag; +} +.close_btn, .minimize_btn, .maximize_btn { + width: 12px; + height: 12px; + border-radius: 50%; +} +.close_btn { + background-color: #ff5f57; +} +.minimize_btn { + background-color: #ffbd2e; +} +.maximize_btn { + background-color: #28c840; +} +.disabled { + opacity: 0.4; + pointer-events: none; +} \ No newline at end of file diff --git a/app/components/MacFrameButtons/MacFrameButtons.tsx b/app/components/MacFrameButtons/MacFrameButtons.tsx new file mode 100644 index 0000000..5c0c3b8 --- /dev/null +++ b/app/components/MacFrameButtons/MacFrameButtons.tsx @@ -0,0 +1,36 @@ +import classes from './MacFrameButtons.module.css'; +import { cx } from '@/app/utils/style'; +import { useWindowState } from '@/app/hooks/useWindowState'; +import { useWindowFocus } from '@/app/hooks/useWindowFocus'; +import { useWindowActions } from '@/app/hooks/useWindowActions'; + + +export function MacFrameButtons() { + const windowState = useWindowState(); + const focus = useWindowFocus(); + const {toggle, close, minimize} = useWindowActions(); + + return ( + <> +
+
+
+
+
+ + ); +} \ No newline at end of file diff --git a/app/components/MentionList/MentionList.tsx b/app/components/MentionList/MentionList.tsx new file mode 100644 index 0000000..818174e --- /dev/null +++ b/app/components/MentionList/MentionList.tsx @@ -0,0 +1,74 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Box, Divider, Flex } from "@mantine/core"; +import { MentionRow } from "./MentionRow"; +import React, { useState } from "react"; +import { useHotkeys } from "@mantine/hooks"; + +export interface Mention { + username: string; + title: string; + publicKey: string; +} + +interface MentionListProps { + mentions: Mention[]; + style?: React.CSSProperties; + onSelectMention?: (mention: Mention) => void; +} + +export function MentionList(props: MentionListProps) { + const colors = useRosettaColors(); + const [selectedIndex, setSelectedIndex] = useState(-1); + + useHotkeys([ + ['ArrowDown', () => { + if(props.mentions.length === 1){ + //setSelectedIndex(0); + return; + } + setSelectedIndex((prev) => (prev + 1) % props.mentions.length); + }], + ['ArrowUp', () => { + if(props.mentions.length === 1){ + //setSelectedIndex(0); + return; + } + setSelectedIndex((prev) => (prev - 1 + props.mentions.length) % props.mentions.length); + }], + ['Enter', () => { + if(props.mentions.length === 1){ + if(props.onSelectMention){ + props.onSelectMention(props.mentions[0]); + } + return; + } + if(selectedIndex >= 0 && selectedIndex < props.mentions.length) { + const mention = props.mentions[selectedIndex]; + if(props.onSelectMention){ + props.onSelectMention(mention); + } + } + }] + ], [], true); + + const onClick = (mention: Mention) => { + if(props.onSelectMention){ + props.onSelectMention(mention); + } + } + + return ( + + + {props.mentions.map((mention, index) => ( + onClick(mention)} key={mention.publicKey}> + + {index < props.mentions.length - 1 && + + } + + ))} + + + ); +} \ No newline at end of file diff --git a/app/components/MentionList/MentionRow.tsx b/app/components/MentionList/MentionRow.tsx new file mode 100644 index 0000000..e51208f --- /dev/null +++ b/app/components/MentionList/MentionRow.tsx @@ -0,0 +1,39 @@ +import { Avatar, Flex, Text, useMantineTheme } from "@mantine/core"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { Mention } from "./MentionList"; + +interface MentionRowProps extends Mention { + selected?: boolean; +} + +export function MentionRow(props : MentionRowProps) { + const colors = useRosettaColors(); + const avatars = useAvatars(props.publicKey, false); + const theme = useMantineTheme(); + + return ( + + {props.username == 'all' && @} + {props.username == 'admin' && @} + {props.username != 'all' && props.username != 'admin' && 0 ? avatars[0].avatar : null} + >} + + + + {props.username == 'all' && 'All users'} + {props.username == 'admin' && 'Administrator'} + {props.username != 'all' && props.username != 'admin' && props.title} + + + @{props.username} + + + ) +} \ No newline at end of file diff --git a/app/components/MessageAttachments/MessageAttachments.tsx b/app/components/MessageAttachments/MessageAttachments.tsx new file mode 100644 index 0000000..44c7714 --- /dev/null +++ b/app/components/MessageAttachments/MessageAttachments.tsx @@ -0,0 +1,61 @@ +import { Attachment, AttachmentType } from "@/app/providers/ProtocolProvider/protocol/packets/packet.message"; +import { DeliveredMessageState } from "@/app/providers/DialogProvider/DialogProvider"; +import { Flex } from "@mantine/core"; +import { MessageImage } from "./MessageImage"; +import { MessageReplyMessages } from "./MessageReplyMessages"; +import { MessageFile } from "./MessageFile"; +import { ErrorBoundaryProvider } from "@/app/providers/ErrorBoundaryProvider/ErrorBoundaryProvider"; +import { AttachmentError } from "../AttachmentError/AttachmentError"; +import { MessageAvatar } from "./MessageAvatar"; +import { MessageProps } from "../Messages/Message"; + +export interface MessageAttachmentsProps { + attachments: Attachment[]; + delivered: DeliveredMessageState; + timestamp: number; + text: string; + chacha_key_plain: string; + parent: MessageProps; +} + +export interface AttachmentProps { + attachment: Attachment; + attachments: Attachment[]; + delivered: DeliveredMessageState; + timestamp: number; + text: string; + chacha_key_plain: string; + parent: MessageProps; +} + +export function MessageAttachments(props: MessageAttachmentsProps) { + return ( + }> + + {props.attachments.map((att, index) => { + const attachProps : AttachmentProps = { + chacha_key_plain: props.chacha_key_plain, + attachment: att, + attachments: props.attachments, + delivered: props.delivered, + timestamp: props.timestamp, + text: props.text, + parent: props.parent, + } + switch (att.type) { + case AttachmentType.MESSAGES: + return + case AttachmentType.IMAGE: + return + case AttachmentType.FILE: + return + case AttachmentType.AVATAR: + return + default: + return ; + } + })} + + + ); +} \ No newline at end of file diff --git a/app/components/MessageAttachments/MessageAvatar.tsx b/app/components/MessageAttachments/MessageAvatar.tsx new file mode 100644 index 0000000..5523635 --- /dev/null +++ b/app/components/MessageAttachments/MessageAvatar.tsx @@ -0,0 +1,111 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useImageViewer } from "@/app/providers/ImageViewerProvider/useImageViewer"; +import { AspectRatio, Button, Flex, Paper, Text } from "@mantine/core"; +import { IconArrowDown } from "@tabler/icons-react"; +import { useEffect, useRef, useState } from "react"; +import { AttachmentProps } from "./MessageAttachments"; +import { blurhashToBase64Image } from "@/app/utils/utils"; +import { AnimatedRoundedProgress } from "../AnimatedRoundedProgress/AnimatedRoundedProgress"; +import { ImageToView } from "@/app/providers/ImageViewerProvider/ImageViewerProvider"; +import { DownloadStatus, useAttachment } from "@/app/providers/AttachmentProvider/useAttachment"; +import { PopoverLockIconAvatar } from "../PopoverLockIconAvatar/PopoverLockIconAvatar"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; + +export function MessageAvatar(props: AttachmentProps) { + const colors = useRosettaColors(); + const { + downloadPercentage, + //uploadedPercentage, + download, + downloadStatus, + getBlob, + getPreview} = useAttachment(props.attachment, props.chacha_key_plain); + const mainRef = useRef(null); + const { open } = useImageViewer(); + const preview = getPreview(); + const [blob, setBlob] = useState(props.attachment.blob); + const {lg} = useRosettaBreakpoints(); + + + useEffect(() => { + constructBlob(); + }, [downloadStatus]); + + const constructBlob = async () => { + let blob = await getBlob(); + setBlob(blob); + } + + const openImageViewer = () => { + const images: ImageToView[] = [{ + src: blob, + caption: props.text, + timestamp: props.timestamp + }]; + + open(images, 0); + } + + const onClick = () => { + if (downloadStatus == DownloadStatus.DOWNLOADED) { + openImageViewer(); + return; + } + if (downloadStatus == DownloadStatus.NOT_DOWNLOADED) { + download(); + return; + } + } + + return ( + + + + {blob != "" && ( + )} + {downloadStatus != DownloadStatus.DOWNLOADED && downloadStatus != DownloadStatus.PENDING && preview.length >= 20 && ( + <> + + + )} + + + + Avatar + + + + An avatar image shared in the message. + + {downloadStatus != DownloadStatus.DOWNLOADED && ( + + {lg && Avatars are end-to-end encrypted} + + {downloadStatus == DownloadStatus.NOT_DOWNLOADED && + + } + {downloadStatus == DownloadStatus.DOWNLOADING && + + } + + + )} + + + + ); +} diff --git a/app/components/MessageAttachments/MessageFile.tsx b/app/components/MessageAttachments/MessageFile.tsx new file mode 100644 index 0000000..fb4e26f --- /dev/null +++ b/app/components/MessageAttachments/MessageFile.tsx @@ -0,0 +1,133 @@ +import { DownloadStatus, useAttachment } from "@/app/providers/AttachmentProvider/useAttachment"; +import { AttachmentProps } from "./MessageAttachments"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Avatar, Box, Flex, Loader, Text } from "@mantine/core"; +import { IconArrowDown, IconFile, IconX } from "@tabler/icons-react"; +import { dotCenterIfNeeded, humanFilesize } from "@/app/utils/utils"; +import { AnimatedRoundedProgress } from "../AnimatedRoundedProgress/AnimatedRoundedProgress"; +import { DeliveredMessageState } from "@/app/providers/DialogProvider/DialogProvider"; + +export function MessageFile(props : AttachmentProps) { + const colors = useRosettaColors(); + const { + downloadPercentage, + downloadStatus, + uploadedPercentage, + download, + getPreview, + } = + useAttachment( + props.attachment, + props.chacha_key_plain, + ); + const preview = getPreview(); + const error = downloadStatus == DownloadStatus.ERROR; + const filesize = parseInt(preview.split("::")[0]); + const filename = preview.split("::")[1]; + const filetype = filename.split(".")[filename.split(".").length - 1]; + const isEncrypting = props.delivered == DeliveredMessageState.WAITING && uploadedPercentage <= 0; + const isUploading = props.delivered == DeliveredMessageState.WAITING && uploadedPercentage > 0 && uploadedPercentage < 100; + + const onClick = async () => { + if(downloadStatus == DownloadStatus.ERROR){ + return; + } + if(downloadStatus == DownloadStatus.DOWNLOADED){ + //let content = await getBlob(); + //let buffer = Buffer.from(content.split(",")[1], 'base64'); + let pathInDownloads = window.downloadsPath + "/Rosetta Downloads/" + filename; + //await writeFile(pathInDownloads, buffer, false); + window.shell.showItemInFolder(pathInDownloads); + return; + } + if(downloadStatus == DownloadStatus.NOT_DOWNLOADED){ + download(); + return; + } + } + + return ( + + + + {!error && <> + {(downloadStatus == DownloadStatus.DOWNLOADING && downloadPercentage > 0 && downloadPercentage < 100) && ( +
+ +
+ )} + {downloadStatus != DownloadStatus.DOWNLOADED && ( + + )} + {isUploading && ( +
+ +
+ )} + {downloadStatus == DownloadStatus.DOWNLOADED && } + } + {error && <> + + } +
+ + {dotCenterIfNeeded(filename, 25, 8)} + {!error && !isEncrypting && !isUploading && (downloadStatus == DownloadStatus.DOWNLOADED || downloadStatus == DownloadStatus.NOT_DOWNLOADED) && + + {humanFilesize(filesize)} {filetype.toUpperCase()} + + } + {downloadStatus == DownloadStatus.DOWNLOADING && + + + + Downloading... {downloadPercentage}% + + + } + {isEncrypting && + + + + Encrypting... + + + } + {isUploading && + + + + Uploading... {uploadedPercentage}% + + + } + {downloadStatus == DownloadStatus.DECRYPTING && + + + + Decrypting... + + + } + {error && + File expired + } + +
+
+ ) +} \ No newline at end of file diff --git a/app/components/MessageAttachments/MessageImage.tsx b/app/components/MessageAttachments/MessageImage.tsx new file mode 100644 index 0000000..2361ed6 --- /dev/null +++ b/app/components/MessageAttachments/MessageImage.tsx @@ -0,0 +1,154 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { DeliveredMessageState } from "@/app/providers/DialogProvider/DialogProvider"; +import { useImageViewer } from "@/app/providers/ImageViewerProvider/useImageViewer"; +import { AspectRatio, Box, Flex, Overlay, Portal, Text } from "@mantine/core"; +import { IconArrowDown, IconCircleX, IconFlameFilled } from "@tabler/icons-react"; +import { useEffect, useRef, useState } from "react"; +import { AttachmentProps } from "./MessageAttachments"; +import { blurhashToBase64Image, isMessageDeliveredByTime } from "@/app/utils/utils"; +import { AnimatedRoundedProgress } from "../AnimatedRoundedProgress/AnimatedRoundedProgress"; +import { ImageToView } from "@/app/providers/ImageViewerProvider/ImageViewerProvider"; +import { DownloadStatus, useAttachment } from "@/app/providers/AttachmentProvider/useAttachment"; + +export function MessageImage(props: AttachmentProps) { + const colors = useRosettaColors(); + const { + downloadPercentage, + uploadedPercentage, + download, + downloadStatus, + getBlob, + getPreview} = useAttachment(props.attachment, props.chacha_key_plain); + const mainRef = useRef(null); + const error = downloadStatus == DownloadStatus.ERROR; + const { open } = useImageViewer(); + const preview = getPreview(); + const [blob, setBlob] = useState(props.attachment.blob); + const [loadedImage, setLoadedImage] = useState(false); + + useEffect(() => { + constructBlob(); + }, [downloadStatus]); + + const constructBlob = async () => { + let blob = await getBlob(); + setBlob(blob); + } + + const openImageViewer = () => { + const images: ImageToView[] = [{ + src: blob, + caption: props.text, + timestamp: props.timestamp + }]; + + open(images, 0); + } + + const onClick = () => { + if (downloadStatus == DownloadStatus.DOWNLOADED) { + openImageViewer(); + return; + } + if (downloadStatus == DownloadStatus.NOT_DOWNLOADED) { + download(); + return; + } + } + + return ( + + {blob != "" && ( + setLoadedImage(true)}>)} + {((downloadStatus != DownloadStatus.DOWNLOADED && downloadStatus != DownloadStatus.PENDING) || !loadedImage) && preview.length >= 20 && ( + <> + + + + {!error && ( + + {downloadPercentage > 0 ? ( + + ) : ( + + )} + + )} + {error && ( + + + Image expired + + + + )} + + + + )} + + {(props.delivered == DeliveredMessageState.WAITING && uploadedPercentage > 0 && isMessageDeliveredByTime(props.timestamp || 0, props.attachments.length)) && + + + + 95 ? 95 : uploadedPercentage}> + + + } + {(props.delivered == DeliveredMessageState.ERROR || (props.delivered != DeliveredMessageState.DELIVERED && + !isMessageDeliveredByTime(props.timestamp || 0, props.attachments.length) + )) && ( + + + + )} + + ); +} diff --git a/app/components/MessageAttachments/MessageReplyMessages.tsx b/app/components/MessageAttachments/MessageReplyMessages.tsx new file mode 100644 index 0000000..c0027fc --- /dev/null +++ b/app/components/MessageAttachments/MessageReplyMessages.tsx @@ -0,0 +1,61 @@ +import { Alert, Flex, Skeleton, Text } from "@mantine/core"; +import { AttachmentProps } from "./MessageAttachments"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { ReplyedMessage } from "../ReplyedMessage/ReplyedMessage"; +import { IconX } from "@tabler/icons-react"; +import { useSetting } from "@/app/providers/SettingsProvider/useSetting"; +import { modals } from "@mantine/modals"; + +export function MessageReplyMessages(props: AttachmentProps) { + const colors = useRosettaColors(); + const [showAlertInReplyMessages, setShowAlertInReplyMessages] = useSetting + ('showAlertInReplyMessages', true); + const [bgInReplyMessages] = useSetting + ('bgInReplyMessages', ''); + const reply = JSON.parse(props.attachment.blob); + + //console.info("Mreply", reply); + + const closeAlert = () => { + modals.openConfirmModal({ + title: 'Disable Warning', + centered: true, + children: ( + + Are you sure you want to disable the warning about forged messages in replies? + + ), + labels: { confirm: 'Yes, disable', cancel: 'No, keep it' }, + + onCancel: () => {}, + onConfirm: () => setShowAlertInReplyMessages(false), + }); + } + + return ( + + {reply.length <= 0 && + + } + {reply.map((msg, index) => ( + + ))} + {showAlertInReplyMessages && + + + Due to the use of encryption, these messages may be forged by the sender + + + + } + + ); +} diff --git a/app/components/MessageError/MessageError.tsx b/app/components/MessageError/MessageError.tsx new file mode 100644 index 0000000..70c851a --- /dev/null +++ b/app/components/MessageError/MessageError.tsx @@ -0,0 +1,44 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { Menu } from "@mantine/core"; +import { IconAlertCircle, IconRefresh, IconTrash } from "@tabler/icons-react"; + +interface MessageErrorProps { + text: string; + messageId: string; +} + +export function MessageError(props : MessageErrorProps) { + const colors = useRosettaColors(); + const {sendMessage, deleteMessageById} = useDialog(); + + const retry = async () => { + deleteMessageById(props.messageId); + sendMessage(props.text, []); + } + + const remove = () => { + deleteMessageById(props.messageId); + } + + return ( + <> + + + + + + {props.text.trim() != "" && }> + Retry + } + } + > + Remove + + + + + ); +} \ No newline at end of file diff --git a/app/components/MessageSkeleton/MessageSkeleton.tsx b/app/components/MessageSkeleton/MessageSkeleton.tsx new file mode 100644 index 0000000..8c6b861 --- /dev/null +++ b/app/components/MessageSkeleton/MessageSkeleton.tsx @@ -0,0 +1,19 @@ +import { Flex, Skeleton } from "@mantine/core"; + +interface MessageSkeletonProps { + messageHeight: number; +} + +export function MessageSkeleton(props : MessageSkeletonProps) { + return ( + <> + + + + + + + + + ) +} \ No newline at end of file diff --git a/app/components/Messages/.DS_Store b/app/components/Messages/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/app/components/Messages/.DS_Store differ diff --git a/app/components/Messages/Message.tsx b/app/components/Messages/Message.tsx new file mode 100644 index 0000000..8868292 --- /dev/null +++ b/app/components/Messages/Message.tsx @@ -0,0 +1,369 @@ +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; +import { getInitialsColor, isMessageDeliveredByTime } from "@/app/utils/utils"; +import { Avatar, Box, Flex, MantineColor, Text, useComputedColorScheme, useMantineTheme } from "@mantine/core"; +import { IconCheck, IconChecks, IconCircleCheck, IconCircleCheckFilled, IconCircleX, IconClock, IconTextCaption } from "@tabler/icons-react"; +import { MessageError } from "../MessageError/MessageError"; +import { DeliveredMessageState } from "@/app/providers/DialogProvider/DialogProvider"; +import { Attachment, AttachmentType } from "@/app/providers/ProtocolProvider/protocol/packets/packet.message"; +import { MessageAttachments } from "../MessageAttachments/MessageAttachments"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { useContextMenu } from "@/app/providers/ContextMenuProvider/useContextMenu"; +import { useNavigate } from "react-router-dom"; +import { MessageReply, useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; +import { useSetting } from "@/app/providers/SettingsProvider/useSetting"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { TextParser } from "../TextParser/TextParser"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { ATTACHMENTS_NOT_ALLOWED_TO_REPLY, ENTITY_LIMITS_TO_PARSE_IN_MESSAGE } from "@/app/constants"; +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { VerifiedBadge } from "../VerifiedBadge/VerifiedBadge"; +import { useGroupMembers } from "@/app/providers/InformationProvider/useGroupMembers"; + + +export enum MessageStyle { + BUBBLES = 'bubbles', + ROWS = 'rows' +} + +export interface MessageProps { + message: string; + from_me?: boolean; + readed?: boolean; + avatar_no_render?: boolean; + delivered: DeliveredMessageState; + from: string; + timestamp: number; + message_id: string; + attachments: Attachment[]; + replyed?: boolean; + is_last_message_in_stack?: boolean; + chacha_key_plain: string; + parent?: MessageProps; +} + +interface MessageSystemProps { + message: string; + c?: MantineColor; +} + +export function MessageSystem(props: MessageSystemProps) { + const [wallpaper] = useSetting + ('wallpaper', ''); + return (<> + + + + + {props.message} + + + + + ); +} + +export function Message(props: MessageProps) { + const computedTheme = useComputedColorScheme(); + const theme = useMantineTheme(); + const publicKey = usePublicKey(); + const openContextMenu = useContextMenu(); + const colors = useRosettaColors(); + const navigate = useNavigate(); + const { isSelectionStarted, + selectMessage, + deselectMessage, + isMessageSelected, + translateMessagesToDialogInput + } = useReplyMessages(); + const { dialog } = useDialog(); + const { md } = useRosettaBreakpoints(); + const { members } = useGroupMembers(dialog); + + const [showTimeInReplyMessages] = useSetting + ('showTimeInReplyMessages', false); + const [wallpaper] = useSetting + ('wallpaper', ''); + + const [userInfo] = useUserInformation(publicKey); + const [opponent] = useUserInformation(props.from); + const user = props.from_me ? userInfo : { + ...opponent, + avatar: "" + }; + + const messageReply: MessageReply = { + timestamp: props.timestamp, + publicKey: user.publicKey, + message: props.message, + attachments: props.attachments.filter(a => a.type != AttachmentType.MESSAGES), + message_id: props.message_id + }; + + const avatars = useAvatars(user.publicKey); + + const [messageStyle] = useSetting + ('messageStyle', MessageStyle.ROWS); + + const computedMessageStyle = props.replyed ? MessageStyle.ROWS : messageStyle; + + + const navigateToUserProfile = () => { + if (isSelectionStarted()) { + return; + } + navigate(`/main/profile/${user.publicKey}`); + } + + const canReply = () => { + if (props.replyed) { + return false; + } + if (messageReply.attachments.find((v) => ATTACHMENTS_NOT_ALLOWED_TO_REPLY.includes(v.type))) { + return false; + } + if (messageReply.message.trim().length == 0 && messageReply.attachments.length == 0) { + return false; + } + if (props.delivered != DeliveredMessageState.DELIVERED) { + return false; + } + return true; + } + + const onMessageSelectClick = () => { + if (props.replyed || !canReply()) { + return; + } + if (isMessageSelected(messageReply)) { + deselectMessage(messageReply); + } else { + selectMessage(messageReply); + } + } + + const onDobuleClick = () => { + if (!canReply()) { + return; + } + if (isSelectionStarted()) { + return; + } + selectMessage(messageReply); + translateMessagesToDialogInput(dialog); + } + + return (<> + !props.replyed && openContextMenu([ + { + label: 'Copy Message', + action: () => { + navigator.clipboard.writeText(props.message); + }, + icon: , + cond: async () => { + return props.message.trim().length > 0; + } + }, + { + label: !isMessageSelected(messageReply) ? 'Select' : 'Deselect', + action: onMessageSelectClick, + icon: !isMessageSelected(messageReply) ? : , + cond: () => { + return canReply(); + }, + } + ])} p={'sm'} pt={props.avatar_no_render ? 0 : 'sm'} style={{ + cursor: 'pointer', + userSelect: 'auto' + }}> + {computedMessageStyle == MessageStyle.ROWS && ( + + + {(!props.avatar_no_render && (md || !props.replyed)) && 0 ? avatars[0].avatar : undefined} name={user.title} variant={props.parent ? 'filled' : 'light'} color="initials">} + + + {!props.avatar_no_render && ( + /** Только если не установлен флаг который + * запрещает рендеринг аватарки и имени*/ + <> + {user.title} + {(members.length > 0 && members[0] == props.from) && ( + + )} + + )} + + {props.attachments.length > 0 && + + + + } + + + + + + + + {!isSelectionStarted() && <> + {props.delivered == DeliveredMessageState.DELIVERED && <> + {props.from_me && !props.readed && ( + + )} + {props.from_me && props.readed && ( + + )} + } + {(props.delivered == DeliveredMessageState.WAITING && (isMessageDeliveredByTime(props.timestamp, props.attachments.length))) && <> + + } + {(props.delivered == DeliveredMessageState.ERROR || ((!isMessageDeliveredByTime(props.timestamp, props.attachments.length)) && props.delivered != DeliveredMessageState.DELIVERED)) && ( + + )} + } + {(isSelectionStarted() && !props.replyed && canReply()) && <> + {isMessageSelected(messageReply) ? + + : + + } + } + {(isSelectionStarted() && !canReply() && !props.replyed) && } + {(showTimeInReplyMessages || !props.replyed) && { + new Date(props.timestamp).toLocaleTimeString('en-GB', { + hour: '2-digit', + minute: '2-digit' + }) + }} + + + + )} + {computedMessageStyle == MessageStyle.BUBBLES && (() => { + const hasOnlyAttachments = props.attachments.length > 0 && props.message.trim().length === 0; + + return ( + + {(md && props.is_last_message_in_stack) && ( + 0 ? avatars[0].avatar : undefined} name={user.title} color="initials" variant={wallpaper != '' ? 'filled' : 'light'} style={{ flexShrink: 0 }}> + )} + {(md && !props.is_last_message_in_stack) && ( + + )} + + {(!props.avatar_no_render && dialog.includes("#group") && wallpaper == '') && ( + + {user.title} + {(members.length > 0 && members[0] == props.from) && ( + + )} + + )} + + {props.attachments.length > 0 && + 0 ? 4 : 0}> + + + } + {props.message.trim().length > 0 && ( + + + + )} + a.type != AttachmentType.MESSAGES) ? { + position: 'absolute', + bottom: 8, + right: 8, + backgroundColor: 'rgba(0, 0, 0, 0.3)', + padding: '3px 8px', + borderRadius: '10px', + backdropFilter: 'blur(4px)' + } : {}) + }}> + {wallpaper != '' && dialog.includes("#group") && ( + + {user.title} + + )} + {!isSelectionStarted() && <> + {props.delivered == DeliveredMessageState.DELIVERED && <> + {props.from_me && !props.readed && ( + + )} + {props.from_me && props.readed && ( + + )} + } + {(props.delivered == DeliveredMessageState.WAITING && (isMessageDeliveredByTime(props.timestamp, props.attachments.length))) && <> + + } + {(props.delivered == DeliveredMessageState.ERROR || ((!isMessageDeliveredByTime(props.timestamp, props.attachments.length)) && props.delivered != DeliveredMessageState.DELIVERED)) && ( + + )} + } + {(isSelectionStarted() && !props.replyed && canReply()) && <> + {isMessageSelected(messageReply) ? + + : + + } + } + {(isSelectionStarted() && !canReply() && !props.replyed) && } + {(showTimeInReplyMessages || !props.replyed) && + {new Date(props.timestamp).toLocaleTimeString('en-GB', { + hour: '2-digit', + minute: '2-digit' + })} + } + + + + + ); + })()} + + ); +} \ No newline at end of file diff --git a/app/components/Messages/Messages.tsx b/app/components/Messages/Messages.tsx new file mode 100644 index 0000000..44b1a6c --- /dev/null +++ b/app/components/Messages/Messages.tsx @@ -0,0 +1,286 @@ +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Message, MessageSystem } from "./Message"; +import React, { useCallback, useEffect, useRef, useState } from "react"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { MessageSkeleton } from "../MessageSkeleton/MessageSkeleton"; +import { ScrollArea } from "@mantine/core"; +import { MESSAGE_AVATAR_NO_RENDER_TIME_DIFF_S, SCROLL_TOP_IN_MESSAGES_TO_VIEW_AFFIX } from "@/app/constants"; +import { DialogAffix } from "../DialogAffix/DialogAffix"; +import { useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; +import { useSetting } from "@/app/providers/SettingsProvider/useSetting"; + +export function Messages() { + const colors = useRosettaColors(); + const publicKey = usePublicKey(); + const { messages, dialog, loadMessagesToTop, loading } = useDialog(); + const { replyMessages, isSelectionStarted } = useReplyMessages(); + + const viewportRef = useRef(null); + const lastMessageRef = useRef(null); + const contentRef = useRef(null); + const shouldAutoScrollRef = useRef(true); + const isFirstRenderRef = useRef(true); + const previousScrollHeightRef = useRef(0); + + const [affix, setAffix] = useState(false); + const [wallpaper] = useSetting + ('wallpaper', ''); + + + const scrollToBottom = useCallback((smooth: boolean = false) => { + if (!viewportRef.current) return; + + requestAnimationFrame(() => { + if (!viewportRef.current) return; + + viewportRef.current.scrollTo({ + top: viewportRef.current.scrollHeight, + behavior: smooth ? 'smooth' : 'auto' + }); + }); + }, []); + + // Сброс состояния при смене диалога + useEffect(() => { + isFirstRenderRef.current = true; + shouldAutoScrollRef.current = true; + previousScrollHeightRef.current = 0; + setAffix(false); + }, [dialog]); + + // IntersectionObserver - отслеживаем видимость последнего сообщения + useEffect(() => { + if (!lastMessageRef.current || !viewportRef.current || loading) return; + + const observer = new IntersectionObserver( + (entries) => { + const entry = entries[0]; + //console.info("IntersectionObserver triggered ", entry.isIntersecting); + //shouldAutoScrollRef.current = entry.isIntersecting; + + // Если последнее сообщение видно, скрываем кнопку "вниз" + if (entry.isIntersecting) { + setAffix(false); + } + }, + { + root: viewportRef.current, + threshold: 0.1 + } + ); + + observer.observe(lastMessageRef.current); + + return () => observer.disconnect(); + }, [messages.length, loading]); + + // MutationObserver - отслеживаем изменения контента (загрузка картинок, видео) + useEffect(() => { + if (!contentRef.current) return; + + const observer = new MutationObserver(() => { + // Скроллим только если нужен авто-скролл + if (shouldAutoScrollRef.current) { + scrollToBottom(true); + } + }); + + observer.observe(contentRef.current, { + childList: true, + subtree: true, + attributes: true, + attributeFilter: ['src', 'style', 'class'] + }); + + return () => observer.disconnect(); + }, [scrollToBottom]); + + // Первый рендер - скроллим вниз моментально + useEffect(() => { + if (loading || messages.length === 0) return; + + if (isFirstRenderRef.current) { + scrollToBottom(false); + isFirstRenderRef.current = false; + } + }, [loading, messages.length, scrollToBottom]); + + useEffect(() => { + if(affix){ + shouldAutoScrollRef.current = false; + } else { + shouldAutoScrollRef.current = true; + } + }, [affix]); + + // Новое сообщение - скроллим если пользователь внизу или это его сообщение + useEffect(() => { + if (loading || messages.length === 0 || isFirstRenderRef.current) return; + + const lastMessage = messages[messages.length - 1]; + + // Скроллим если пользователь внизу или это его собственное сообщение + if ((shouldAutoScrollRef.current || lastMessage.from_me) && !affix) { + /** + * Скролл только если пользователь не читает сейчас старую переписку + * (!affix)) + */ + //console.info("Scroll because", shouldAutoScrollRef.current); + scrollToBottom(true); + } + }, [messages.length, loading, affix, scrollToBottom]); + + // Восстановление позиции после загрузки старых сообщений + useEffect(() => { + if (!viewportRef.current || previousScrollHeightRef.current === 0) return; + + const scrollDiff = viewportRef.current.scrollHeight - previousScrollHeightRef.current; + if (scrollDiff > 0) { + viewportRef.current.scrollTop = scrollDiff; + previousScrollHeightRef.current = 0; + } + }, [messages.length]); + + // Скролл при отправке reply сообщения + useEffect(() => { + if (replyMessages.messages.length === 0 || isSelectionStarted()) return; + scrollToBottom(true); + }, [replyMessages.messages.length]); + + const loadMessagesToScrollAreaTop = async () => { + if (!viewportRef.current) return; + + previousScrollHeightRef.current = viewportRef.current.scrollHeight; + await loadMessagesToTop(); + }; + + const onAffixClick = () => { + shouldAutoScrollRef.current = true; + scrollToBottom(true); + }; + + return ( + { + if (!viewportRef.current) return; + + // Загружаем старые сообщения при достижении верха + if (scroll.y === 0 && !loading && messages.length >= 20) { + loadMessagesToScrollAreaTop(); + } + + // Показываем/скрываем кнопку "вниз" + const distanceFromBottom = + (viewportRef.current.scrollHeight - viewportRef.current.clientHeight) - scroll.y; + + setAffix(distanceFromBottom > SCROLL_TOP_IN_MESSAGES_TO_VIEW_AFFIX); + }} + > +
+ {loading && + <> + + + + + + + } + {!loading && messages.map((message, index) => { + const prevMessage = messages[index - 1]; + const currentDate = new Date(message.timestamp).toDateString(); + const prevDate = prevMessage ? new Date(prevMessage.timestamp).toDateString() : null; + const showSystem = prevDate !== currentDate; + const isLastMessage = index === messages.length - 1; + const isLastMessageInStack = isLastMessage || messages[index + 1].from_public_key !== message.from_public_key || (new Date(messages[index + 1].timestamp).toDateString() !== new Date(message.timestamp).toDateString()) || (messages[index + 1].timestamp - message.timestamp) >= (MESSAGE_AVATAR_NO_RENDER_TIME_DIFF_S * 1000) || (messages[index + 1].plain_message == "$a=Group created" || messages[index + 1].plain_message == "$a=Group joined"); + + return ( + + {showSystem && ( + { + const messageDate = new Date(message.timestamp); + const today = new Date(); + const yesterday = new Date(); + yesterday.setDate(today.getDate() - 1); + + const isToday = messageDate.toDateString() === today.toDateString(); + const isYesterday = messageDate.toDateString() === yesterday.toDateString(); + + if (isToday) return "today"; + if (isYesterday) return "yesterday"; + return messageDate.toLocaleDateString('en-EN', { + day: 'numeric', + month: 'long', + year: 'numeric' + }); + })() + } /> + )} + {index > 0 && + messages[index - 1].readed == 1 && + message.readed == 0 && + publicKey != message.from_public_key && ( + + ) + } +
+ {message.plain_message != "$a=Group created" && message.plain_message != "$a=Group joined" && ( + 0 + && messages[index - 1].from_public_key == message.from_public_key + && (new Date(messages[index - 1].timestamp).toDateString() == new Date(message.timestamp).toDateString()) + && (message.timestamp - messages[index - 1].timestamp) < (MESSAGE_AVATAR_NO_RENDER_TIME_DIFF_S * 1000) + && (messages[index - 1].plain_message != "$a=Group created" && messages[index - 1].plain_message != "$a=Group joined") + } + /> + )} + {message.plain_message == "$a=Group created" && ( + + )} + {message.plain_message == "$a=Group joined" && ( + + )} +
+
+ ); + })} +
+ +
+ ) +} \ No newline at end of file diff --git a/app/components/PopoverLockIconAvatar/PopoverLockIconAvatar.tsx b/app/components/PopoverLockIconAvatar/PopoverLockIconAvatar.tsx new file mode 100644 index 0000000..8ff3fbe --- /dev/null +++ b/app/components/PopoverLockIconAvatar/PopoverLockIconAvatar.tsx @@ -0,0 +1,20 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Popover, Text } from "@mantine/core"; +import { useDisclosure } from "@mantine/hooks"; +import { IconLock } from "@tabler/icons-react"; + +export function PopoverLockIconAvatar() { + const [opened, { close, open }] = useDisclosure(false); + const colors = useRosettaColors(); + + return ( + + + + + + This avatar is end-to-end encrypted + + + ) +} \ No newline at end of file diff --git a/app/components/PrivateView/PrivateView.tsx b/app/components/PrivateView/PrivateView.tsx new file mode 100644 index 0000000..2706e9b --- /dev/null +++ b/app/components/PrivateView/PrivateView.tsx @@ -0,0 +1,66 @@ +import { Navigate } from "react-router-dom"; +import { PacketResult, ResultCode } from "@/app/providers/ProtocolProvider/protocol/packets/packet.result"; +import { modals } from "@mantine/modals"; +import { Button, Flex, Text } from "@mantine/core"; +import { usePrivateKeyHash } from "@/app/providers/AccountProvider/usePrivateKeyHash"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; + +interface PrivateViewProps { + children: React.ReactNode; +} + +export function PrivateView(props : PrivateViewProps) { + const privateKey = usePrivateKeyHash(); + + if(privateKey.trim() == "") { + return ; + } + + const openModal = (title : string, message : string) => { + modals.open({ + title: title, + children: ( + <> + + {message} + + + + + + ), + centered: true, + withCloseButton: true, + closeOnClickOutside: true, + closeOnEscape: true + }); + }; + + usePacket(0x2, (packet : PacketResult) => { + switch (packet.getResultCode()) { + case ResultCode.SUCCESS: + break; + case ResultCode.ERROR: + openModal("Error", "Unknown error from server, please try again"); + break; + case ResultCode.USERNAME_TAKEN: + openModal("Error", "Username is already taken"); + break; + case ResultCode.INVALID: + openModal("Error", "Invalid data provided"); + break; + } + }); + + return ( + <> + {privateKey ? ( + props.children + ) : ( + + )} + + ); +} diff --git a/app/components/ProfileCard/ProfileCard.module.css b/app/components/ProfileCard/ProfileCard.module.css new file mode 100644 index 0000000..1c3d4df --- /dev/null +++ b/app/components/ProfileCard/ProfileCard.module.css @@ -0,0 +1,23 @@ +.chevron { + @mixin light { + color: var(--mantine-color-dark-light); + } + + @mixin dark { + color: var(--mantine-color-dark-3); + } +} + +.profile_card { + cursor: pointer; +} + +.profile_card:hover{ + @mixin light { + background-color: var(--mantine-color-gray-0); + } + + @mixin dark { + background-color: var(--mantine-color-gray-9); + } +} \ No newline at end of file diff --git a/app/components/ProfileCard/ProfileCard.tsx b/app/components/ProfileCard/ProfileCard.tsx new file mode 100644 index 0000000..85f9203 --- /dev/null +++ b/app/components/ProfileCard/ProfileCard.tsx @@ -0,0 +1,27 @@ +import { Flex, Paper, Text } from "@mantine/core"; +import { VerifiedBadge } from "../VerifiedBadge/VerifiedBadge"; +import { ActionAvatar } from "../ActionAvatar/ActionAvatar"; + +interface ProfileCardProps { + title: string; + publicKey: string; + username: string; + verified: number; +} + +export function ProfileCard(props : ProfileCardProps) { + return ( + + + + {props.title.trim() || props.publicKey.slice(0, 10)} + {props.verified > 0 && } + + + {props.username.trim() == "" ? "" : + "@" + props.username + " •"} {props.publicKey.slice(0, 3) + "..." + + props.publicKey.slice(-3)} + + + ); +} \ No newline at end of file diff --git a/app/components/ReplyHeader/ReplyHeader.module.css b/app/components/ReplyHeader/ReplyHeader.module.css new file mode 100644 index 0000000..d16c9e8 --- /dev/null +++ b/app/components/ReplyHeader/ReplyHeader.module.css @@ -0,0 +1,19 @@ +.short_text { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: block!important; + height: unset!important; +} + +.button_inner { + display: flex; + align-items: center; + justify-content: center; +} + +@media (max-width: 800px) { + .short_text { + max-width: 60px; + } +} \ No newline at end of file diff --git a/app/components/ReplyHeader/ReplyHeader.tsx b/app/components/ReplyHeader/ReplyHeader.tsx new file mode 100644 index 0000000..23b6c4c --- /dev/null +++ b/app/components/ReplyHeader/ReplyHeader.tsx @@ -0,0 +1,133 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; +import { Button, Flex, Modal, Text } from "@mantine/core"; +import { useDisclosure, useHotkeys } from "@mantine/hooks"; +import { IconCornerUpLeft, IconCornerUpRightDouble, IconTrash, IconX } from "@tabler/icons-react"; +import classes from "./ReplyHeader.module.css"; +import { DialogsList } from "../DialogsList/DialogsList"; +import { useNavigate } from "react-router-dom"; +import { useDialog } from "@/app/providers/DialogProvider/useDialog"; +import { modals } from "@mantine/modals"; + +export function ReplyHeader() { + const colors = useRosettaColors(); + const {replyMessages, + deselectAllMessages, + translateMessagesToDialogInput, + dialog, + isSelectionInCurrentDialog} = useReplyMessages(); + const [opened, { open, close }] = useDisclosure(false); + const navigate = useNavigate(); + const {deleteSelectedMessages} = useDialog(); + + useHotkeys([ + ['Esc', deselectAllMessages] + ], [], true); + + const onClickForward = () => { + open(); + } + + const selectDialogToForward = (publicKey: string) => { + translateMessagesToDialogInput(publicKey); + close(); + navigate(`/main/chat/${publicKey}`); + } + + const onClickReply = () => { + translateMessagesToDialogInput(dialog); + } + + const onClickDelete = async () => { + modals.openConfirmModal({ + title: 'Delete messages', + children: ( + + Are you sure you want to delete {replyMessages.messages.length} message{replyMessages.messages.length > 1 && 's'}? This action cannot be undone. + + ), + labels: { confirm: 'Delete', cancel: 'Cancel' }, + confirmProps: { color: 'red' }, + centered: true, + onConfirm: async () => { + const messageIds = replyMessages.messages.map(m => m.message_id); + await deleteSelectedMessages(messageIds); + deselectAllMessages(); + }, + }); + } + + const onCancel = () => { + deselectAllMessages(); + close(); + } + + return ( + <> + + + Select to forward + + + + + + + + + + {replyMessages.messages.length} message{replyMessages.messages.length > 1 ? "s" : ""} selected + + + + + {isSelectionInCurrentDialog() && + + } + {isSelectionInCurrentDialog() && + + } + + + + + ); +} \ No newline at end of file diff --git a/app/components/ReplyedMessage/ReplyedMessage.tsx b/app/components/ReplyedMessage/ReplyedMessage.tsx new file mode 100644 index 0000000..21a5c60 --- /dev/null +++ b/app/components/ReplyedMessage/ReplyedMessage.tsx @@ -0,0 +1,25 @@ +import { MessageReply } from "@/app/providers/DialogProvider/useReplyMessages"; +import { Message, MessageProps } from "../Messages/Message"; + +interface ReplyedMessageProps { + messageReply: MessageReply; + chacha_key_plain: string; + parent: MessageProps; +} + +export function ReplyedMessage(props : ReplyedMessageProps) { + return ( + + ) +} \ No newline at end of file diff --git a/app/components/RequestsButton/RequestsButton.module.css b/app/components/RequestsButton/RequestsButton.module.css new file mode 100644 index 0000000..6833da5 --- /dev/null +++ b/app/components/RequestsButton/RequestsButton.module.css @@ -0,0 +1,3 @@ +.btn { + cursor: pointer; +} \ No newline at end of file diff --git a/app/components/RequestsButton/RequestsButton.tsx b/app/components/RequestsButton/RequestsButton.tsx new file mode 100644 index 0000000..989be26 --- /dev/null +++ b/app/components/RequestsButton/RequestsButton.tsx @@ -0,0 +1,40 @@ +import { Box, Flex, Text } from "@mantine/core"; +import { IconChevronLeft, IconChevronRight } from "@tabler/icons-react"; +import classes from './RequestsButton.module.css' + +interface RequestsButtonProps { + count: number; + onClick?: () => void; + mode: 'all' | 'requests'; +} + +export function RequestsButton(props : RequestsButtonProps) { + return ( + <> + {props.mode == 'all' && <> + + {}}> + + Requests +{props.count} + + + + + + + } + {props.mode == 'requests' && <> + + {}}> + + Back to all chats + + + + + + + } + + ) +} \ No newline at end of file diff --git a/app/components/RichTextInput/RichTextInput.tsx b/app/components/RichTextInput/RichTextInput.tsx new file mode 100644 index 0000000..8cc1f38 --- /dev/null +++ b/app/components/RichTextInput/RichTextInput.tsx @@ -0,0 +1,223 @@ +import { forwardRef, useEffect, useImperativeHandle, useRef } from "react"; + +export interface RichTextInputProps { + style?: React.CSSProperties; + onChange?: (value: string) => void; + onKeyDown?: (event: React.KeyboardEvent) => void; + onPaste?: (event: React.ClipboardEvent) => void; + placeholder?: string; + autoFocus?: boolean; +} + + +export const RichTextInput = forwardRef((props : any, ref) => { + const editableDivRef = useRef(null); + + useImperativeHandle(ref, () => ({ + getValue, + insertHTML, + focus, + clear, + insertHTMLInCurrentCarretPosition + })); + + useEffect(() => { + if(props.autoFocus && editableDivRef.current){ + focusEditableElement(editableDivRef.current); + } + }, [props.autoFocus]); + + const focus = () => { + if(editableDivRef.current){ + focusEditableElement(editableDivRef.current); + } + } + + const insertHTMLInCurrentCarretPosition = (html: string) => { + if(!editableDivRef.current){ + return; + } + if(document.activeElement !== editableDivRef.current){ + focusEditableElement(editableDivRef.current); + } + document.execCommand('insertHTML', false, html); + } + + const clear = () => { + if(editableDivRef.current){ + editableDivRef.current.innerHTML = ""; + } + if(props.onChange){ + props.onChange(""); + } + } + + const focusEditableElement = (element: HTMLElement) => { + /** + * Focus to the end of the contenteditable element + */ + const range = document.createRange(); + const sel = window.getSelection(); + range.selectNodeContents(element); + range.collapse(false); + sel?.removeAllRanges(); + sel?.addRange(range); + element.focus(); + } + + const insertHTML = (html: string) => { + if(!editableDivRef.current) return; + let div = document.createElement("div"); + div.innerHTML = html; + if(props.style && props.style.fontSize){ + /** + * Prepare all elements to have the same font size as the editable div + */ + div.querySelectorAll('*').forEach(el => { + el.setAttribute('style', ` + font-size: ${props.style?.fontSize}px; + vertical-align: sub; + display: inline-block; + margin-left: 1px; + margin-right: 1px; + user-select: none; + `); + el.setAttribute('width', '17'); + el.setAttribute('height', '17'); + }); + } + let preparedHtml = div.innerHTML; + //let carret = saveCarretPosition(editableDivRef.current); + editableDivRef.current.innerHTML += preparedHtml; + //editableDivRef.current.focus(); + //insertHtmlAtCarretPosition(preparedHtml); + if(props.onChange){ + props.onChange(getValue()); + } + //focusEditableElement(editableDivRef.current, carret); + } + + const getValue = () : string => { + if(!editableDivRef.current) return ""; + editableDivRef.current.querySelectorAll('*').forEach(el => { + if(el.tagName === 'BR'){ + el.textContent = '\n'; + return; + } + if(!el.hasAttribute("data")){ + el.textContent = ''; + return; + } + let text = el.getAttribute("data") || ''; + el.textContent = text; + }); + let content = editableDivRef.current.textContent || ""; + if(content.endsWith('\n') && content.length == 1){ + /** + * Remove trailing new line added by contenteditable div + * (bug in some browsers includes electron) + */ + content = content.slice(0, -1); + } + return content || ""; + } + + + // const onCopy = (event : React.ClipboardEvent) => { + // //event.preventDefault(); + // //console.info("COPY EVENT", event); + // //let value = getValue(); + // //console.info("COPY VALUE", value); + // //event.clipboardData.setData('text/plain', value); + // } + + const onPaste = (event: React.ClipboardEvent) => { + event.preventDefault(); + let text = event.clipboardData.getData('text/plain'); + if(text.trim() != '' && editableDivRef.current){ + const html = text + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'") + .replace(/\n/g, "
"); + document.execCommand('insertHTML', false, html); + if(props.onChange){ + props.onChange(getValue()); + } + event.preventDefault(); + return; + } + if(event.clipboardData.items[0].kind !== 'string'){ + event.preventDefault(); + } + if(props.onPaste){ + props.onPaste(event); + } + } + + const onKeyPress = (event : React.KeyboardEvent) => { + if (event.keyCode == 13 && event.shiftKey == true) { + //event.preventDefault(); + //addLineBreak(); + //return; + } + requestAnimationFrame(() => { + if(editableDivRef.current?.innerHTML.trim() == '
'){ + editableDivRef.current.innerHTML = ''; + } + if(props.onChange){ + props.onChange(getValue()); + } + }); + if(props.onKeyDown){ + props.onKeyDown(event); + } + } + + return ( +
+
e.preventDefault()} + onPaste={onPaste} + //onCopy={onCopy} + onKeyDown={onKeyPress} + ref={editableDivRef} + contentEditable={true} + suppressContentEditableWarning + style={{ + overflowX: 'hidden', + maxHeight: 150, + maxWidth: '100%', + overflowY: 'auto', + wordWrap: 'break-word', + whiteSpace: 'pre-wrap', + verticalAlign: 'middle', + boxSizing: 'border-box', + outline: 'none', + ...props.style, + width: '100%', + }} + >
+ {getValue() == "" && props.placeholder && ( +
+ {props.placeholder} +
+ )} +
+ ) +}); \ No newline at end of file diff --git a/app/components/RosettaPower/RosettaPower.tsx b/app/components/RosettaPower/RosettaPower.tsx new file mode 100644 index 0000000..8d3d602 --- /dev/null +++ b/app/components/RosettaPower/RosettaPower.tsx @@ -0,0 +1,17 @@ +import { Flex, MantineSize, Text } from "@mantine/core"; +import { SvgR } from "../SvgR/SvgR"; + +interface RosettaPowerProps { + mt?: number | string | MantineSize; +} + +export function RosettaPower(props: RosettaPowerProps) { + return ( + + + rosetta - powering freedom + + ); +} \ No newline at end of file diff --git a/app/components/SearchRow/SearchRow.module.css b/app/components/SearchRow/SearchRow.module.css new file mode 100644 index 0000000..96c81ed --- /dev/null +++ b/app/components/SearchRow/SearchRow.module.css @@ -0,0 +1,7 @@ +.search_item { + cursor: pointer; + border-radius: var(--mantine-radius-md); + @mixin hover { + background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-8)); + } +} \ No newline at end of file diff --git a/app/components/SearchRow/SearchRow.tsx b/app/components/SearchRow/SearchRow.tsx new file mode 100644 index 0000000..7b59400 --- /dev/null +++ b/app/components/SearchRow/SearchRow.tsx @@ -0,0 +1,31 @@ +import { PacketSearchUser } from "@/app/providers/ProtocolProvider/protocol/packets/packet.search"; +import { Avatar, Flex, Text } from "@mantine/core"; +import classes from './SearchRow.module.css' +import { VerifiedBadge } from "../VerifiedBadge/VerifiedBadge"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; + +interface SearchRowProps { + user: PacketSearchUser; + onDialogClick: (publicKey: string) => void; +} + +export function SearchRow(props: SearchRowProps) { + const avatars = useAvatars(props.user.publicKey, false); + return ( + props.onDialogClick(props.user.publicKey)} onClick={() => props.onDialogClick(props.user.publicKey)} className={classes.search_item} p={'sm'} direction={'row'} gap={'sm'}> + 0 ? avatars[0].avatar : undefined} + > + + + {props.user.title || props.user.publicKey.slice(0, 10)} + {props.user.verified > 0 && } + + @{props.user.username || props.user.publicKey.slice(0, 10) + "..."} + + + ) +} \ No newline at end of file diff --git a/app/components/SettingsAlert/SettingsAlert.tsx b/app/components/SettingsAlert/SettingsAlert.tsx new file mode 100644 index 0000000..6e254a7 --- /dev/null +++ b/app/components/SettingsAlert/SettingsAlert.tsx @@ -0,0 +1,35 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Flex, Paper, Text, useMantineTheme } from "@mantine/core"; +import { IconAlertTriangleFilled } from "@tabler/icons-react"; + +interface SettingsAlertProps { + text: string; + type? : 'info' | 'warning' | 'error'; +} + +export function SettingsAlert(props : SettingsAlertProps) { + const theme = useMantineTheme(); + const type = props.type || 'warning'; + const colors = useRosettaColors(); + return ( + + + {type == 'warning' && <> + + } + {type == 'error' && <> + + } + {type == 'info' && <> + + } + {props.text} + + + ); +} \ No newline at end of file diff --git a/app/components/SettingsIcon/SettingsIcon.tsx b/app/components/SettingsIcon/SettingsIcon.tsx new file mode 100644 index 0000000..e44c730 --- /dev/null +++ b/app/components/SettingsIcon/SettingsIcon.tsx @@ -0,0 +1,17 @@ +import { Flex, MantineColor } from "@mantine/core"; + +interface SettingsIconProps { + bg: MantineColor; + icon: React.ElementType; +} + +export function SettingsIcon(props : SettingsIconProps) { + + return ( + + + + ); +} \ No newline at end of file diff --git a/app/components/SettingsInput/SettingsInput.module.css b/app/components/SettingsInput/SettingsInput.module.css new file mode 100644 index 0000000..f9e20a5 --- /dev/null +++ b/app/components/SettingsInput/SettingsInput.module.css @@ -0,0 +1,14 @@ +.input{ + cursor: pointer!important; + @mixin light { + color: var(--mantine-color-dark-3); + text-align: right; + } + @mixin dark { + color: #CCC; + text-align: right; + } + &[data-disabled] { + background-color: transparent!important; + } +} diff --git a/app/components/SettingsInput/SettingsInput.tsx b/app/components/SettingsInput/SettingsInput.tsx new file mode 100644 index 0000000..e4231d0 --- /dev/null +++ b/app/components/SettingsInput/SettingsInput.tsx @@ -0,0 +1,339 @@ +import { Box, DefaultMantineColor, Flex, Input, MantineSpacing, Paper, Select, StyleProp, Switch, Text } from "@mantine/core" +import classes from './SettingsInput.module.css' +import { Children, cloneElement, HTMLInputTypeAttribute, isValidElement, MouseEvent, ReactNode, useEffect, useRef, useState } from "react"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useClipboard } from "@mantine/hooks"; +import { IconChevronRight } from "@tabler/icons-react"; + + +export function SettingsInput() {} +export interface SettingsInputCopy { + hit: string; + placeholder?: string; + value?: string; + style?: any; + mt?: StyleProp; +} +export interface SettingsInputDefaultProps { + hit: string; + placeholder?: string; + value?: string; + disabled?: boolean; + onChange?: (event : any) => void; + style?: any; + mt?: StyleProp; + rightSection?: ReactNode; + type?: HTMLInputTypeAttribute; +} +export interface SettingsInputGroupProps { + mt?: StyleProp; + children: any; +} +export interface SettingsInputClickableProps { + onClick: () => void; + hit: string; + placeholder?: string; + style?: any; + mt?: StyleProp; + value?: string; + rightSection?: ReactNode; + c?: StyleProp; + rightChevronHide?: boolean; + settingsIcon?: React.ReactNode; +} +export interface SettingsInputSelectProps { + hit: string; + variants: string[]; + mt?: StyleProp; + style?: any; + leftSection?: ReactNode; + onChange?: (value: string|undefined) => void; + width?: number; + defaultValue?: string; +} + +export interface SettingsInputSwitch { + hit: string; + mt?: StyleProp; + style?: any; + onChange?: (value: boolean) => void; + defaultValue: boolean; +} + +SettingsInput.Copy = SettingsInputCopy; +SettingsInput.Clickable = SettingsInputClickable; +SettingsInput.Default = SettingsInputDefault; +SettingsInput.Group = SettingsInputGroup; +SettingsInput.Select = SettingsInputSelect; +SettingsInput.Switch = SettingsInputSwitch; + +function SettingsInputSwitch(props: SettingsInputSwitch) { + const colors = useRosettaColors(); + const [checked, setChecked] = useState(props.defaultValue); + + useEffect(() => { + setChecked(props.defaultValue); + }, [props.defaultValue]); + + const onSwitch = (checked: boolean) => { + if(props.onChange){ + props.onChange(checked); + } + setChecked(checked); + } + + return ( + + + {props.hit} +
+ onSwitch(event.currentTarget.checked)} + size="sm" + /> +
+
+
+ ); +} + +function SettingsInputSelect(props: SettingsInputSelectProps) { + const colors = useRosettaColors(); + const [value, setValue] = useState(props.defaultValue); + + const onChange = (selectValue : any) => { + if(selectValue != value && selectValue != null){ + props.onChange!(selectValue); + setValue(selectValue); + } + } + + return ( + + + {props.hit} +
+ +
+
+
+ ); +} + +function SettingsInputCopy(props : SettingsInputCopy) { + const colors = useRosettaColors(); + const {copied, copy} = useClipboard({ + timeout: 1500 + }); + const onClick = (e : MouseEvent) => { + e.stopPropagation(); + copy(props.value); + } + return ( + + + {props.hit} +
+ {!copied && ( + )} + {copied && ( + + )} +
+
+
+ ); +} + +function SettingsInputClickable( + props : SettingsInputClickableProps +) { + const colors = useRosettaColors(); + const onClick = (e : MouseEvent) => { + e.stopPropagation(); + props.onClick(); + } + return ( + + + + {props.settingsIcon} + {props.hit} + +
+ {props.rightSection && ( + + )} + {!props.rightSection && ( + ) + } + {!props.rightChevronHide && ()} +
+
+
+ ); +} + +function SettingsInputDefault(props : SettingsInputDefaultProps) { + const colors = useRosettaColors(); + const input = useRef(undefined); + + const onClick = (e : MouseEvent) => { + e.stopPropagation(); + if(!props.disabled){ + input.current.focus(); + return; + } + } + return (<> + + + {props.hit} +
+ {props.rightSection && ( + + )} + {!props.rightSection && ( + { + onClick(e) + }} onChange={props.onChange} variant={'unstyled'} spellCheck={false} color="gray" classNames={{ + input: classes.input + }} placeholder={props.placeholder}>) + } +
+
+
+ ) +} + + +function SettingsInputGroup(props : SettingsInputGroupProps) { + const colors = useRosettaColors(); + + const childrenArray = Children.toArray(props.children).filter( + (child): child is React.ReactElement<{ style?: React.CSSProperties }> => + isValidElement(child) + ); + return ( + + {childrenArray.map((child, index) => { + const isFirst = index === 0; + const isLast = index === childrenArray.length - 1; + return cloneElement(child, { + style: { + borderRadius: isFirst + ? "var(--mantine-radius-default) var(--mantine-radius-default) 0 0" + : isLast + ? "0 0 var(--mantine-radius-default) var(--mantine-radius-default)" + : "0", + borderTop: isLast ? 'unset' : '1px solid ' + colors.borderColor, + borderBottom: isFirst ? '1px solid ' + colors.borderColor : '1px solid ' + colors.borderColor, + ...(child.props.style || {}), + }, + }); + })} + + ); +} \ No newline at end of file diff --git a/app/components/SettingsPaper/SettingsPaper.tsx b/app/components/SettingsPaper/SettingsPaper.tsx new file mode 100644 index 0000000..c5bcd07 --- /dev/null +++ b/app/components/SettingsPaper/SettingsPaper.tsx @@ -0,0 +1,27 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { MantineSize, Paper } from "@mantine/core"; + +export interface SettingsPaperProps { + children: React.ReactNode; + mt?: MantineSize; + style?: React.CSSProperties; + p?: MantineSize; +} + +export function SettingsPaper(props: SettingsPaperProps) { + const colors = useRosettaColors(); + + return ( + + {props.children} + + ); +} \ No newline at end of file diff --git a/app/components/SettingsText/SettingsText.tsx b/app/components/SettingsText/SettingsText.tsx new file mode 100644 index 0000000..035d5f5 --- /dev/null +++ b/app/components/SettingsText/SettingsText.tsx @@ -0,0 +1,9 @@ +import { Text } from "@mantine/core"; + +export interface SettingsTextProps { + children: React.ReactNode; +} + +export function SettingsText(props: SettingsTextProps) { + return ({props.children}); +} \ No newline at end of file diff --git a/app/components/SettingsTitle/SettingsTitle.tsx b/app/components/SettingsTitle/SettingsTitle.tsx new file mode 100644 index 0000000..f6eaf7f --- /dev/null +++ b/app/components/SettingsTitle/SettingsTitle.tsx @@ -0,0 +1,13 @@ +import { MantineColor, MantineSize, Text } from "@mantine/core"; + +export interface SettingsTitleProps { + children: React.ReactNode; + mt?: MantineSize; + c?: MantineColor; +} + +export function SettingsTitle(props: SettingsTitleProps) { + return ({props.children}); +} \ No newline at end of file diff --git a/app/components/SparkText/SparkText.tsx b/app/components/SparkText/SparkText.tsx new file mode 100644 index 0000000..6a3c660 --- /dev/null +++ b/app/components/SparkText/SparkText.tsx @@ -0,0 +1,32 @@ +import React from 'react'; + +interface SparkTextProps { + text: string; +} + +const sparkTextStyle: React.CSSProperties = { + textShadow: '0 0 5px rgba(255, 255, 255, 0.5), 0 0 10px rgba(255, 255, 255, 0.5), 0 0 15px rgba(255, 255, 255, 0.5)', + animation: 'sparkle 1s infinite' +}; + +const SparkText: React.FC = ({ text }) => { + return ( + <> + + {text} + + ); +}; + +export default SparkText; \ No newline at end of file diff --git a/app/components/SvgR/SvgR.tsx b/app/components/SvgR/SvgR.tsx new file mode 100644 index 0000000..87e8290 --- /dev/null +++ b/app/components/SvgR/SvgR.tsx @@ -0,0 +1,10 @@ +interface SvgRProps { + width?: number; + height?: number; + fill?: string; +} + +export function SvgR(props: SvgRProps) { + return ( + ) +} \ No newline at end of file diff --git a/app/components/TextChain/TextChain.module.css b/app/components/TextChain/TextChain.module.css new file mode 100644 index 0000000..ad97395 --- /dev/null +++ b/app/components/TextChain/TextChain.module.css @@ -0,0 +1,43 @@ +.displayArea { + padding: 16px; + border: 2px dashed light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4)); + border-radius: 8px; + background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6)); + min-height: 250px; + max-height: 250px; + height: 250px; + min-width: 360px; + max-width: 360px; + width: 360px; +} + +.wordBox { + display: flex; + align-items: center; + gap: 2px; + padding: 8px 12px; + border-radius: 6px; + background: light-dark(var(--mantine-color-white), var(--mantine-color-dark-5)); + border: 1px solid light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-4)); + width: 100%; + height: 36px; + transition: all 0.2s ease; +} + +.wordBox:hover { + border-color: light-dark(var(--mantine-color-gray-4), var(--mantine-color-dark-3)); + background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-4)); +} + +.wrapper{ + display: flex; + gap: 10px; + flex-wrap: wrap; + justify-content: center; +} + +.pill { + padding: 5px 8px; + background-color: var(--mantine-color-blue-light); + border-radius: var(--mantine-radius-sm); +} \ No newline at end of file diff --git a/app/components/TextChain/TextChain.tsx b/app/components/TextChain/TextChain.tsx new file mode 100644 index 0000000..55a9e72 --- /dev/null +++ b/app/components/TextChain/TextChain.tsx @@ -0,0 +1,56 @@ +import { Box, MantineSize, Text, SimpleGrid } from "@mantine/core"; +import classes from './TextChain.module.css' +import { useState, useEffect } from "react"; + +interface TextChainProps { + text: string; + mt?: MantineSize; +} + +export function TextChain(props : TextChainProps) { + const text = props.text; + const [mounted, setMounted] = useState([]); + + useEffect(() => { + const words = text.split(" "); + setMounted(new Array(words.length).fill(false)); + + words.forEach((_, index) => { + setTimeout(() => { + setMounted(prev => { + const newMounted = [...prev]; + newMounted[index] = true; + return newMounted; + }); + }, index * 50); + }); + }, [text]); + + return ( + + + + Your seed phrase: + + + {text.split(" ").map((v, i) => { + return ( + + {i + 1}. + {v} + + ); + })} + + + + ) +} \ No newline at end of file diff --git a/app/components/TextParser/TextParser.tsx b/app/components/TextParser/TextParser.tsx new file mode 100644 index 0000000..0573144 --- /dev/null +++ b/app/components/TextParser/TextParser.tsx @@ -0,0 +1,222 @@ +import { Anchor, Text, useComputedColorScheme, useMantineTheme } from "@mantine/core"; +import React from "react"; +import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +import dark from 'react-syntax-highlighter/dist/esm/styles/prism/one-dark'; +import light from 'react-syntax-highlighter/dist/esm/styles/prism/one-light'; +import { UserMention } from "../UserMention/UserMention"; +import { Emoji } from "../Emoji/Emoji"; +import { GroupInviteMessage } from "../GroupInviteMessage/GroupInviteMessage"; +import { ALLOWED_DOMAINS_ZONES } from "@/app/constants"; + +interface TextParserProps { + text: string; + /** + * If true, the parsed entities will be rendered without hydration (static rendering). + */ + noHydrate?: boolean; + /** + * If the text (excluding emojis) is smaller than this value, render emojis in oversize (40px). + */ + oversizeIfTextSmallerThan?: number; + /** + * Limits the number of parsed entities (like links, mentions, emojis, etc.) in the text. + * If the limit is reached, the remaining text will be rendered as plain text. + */ + performanceEntityLimit?: number; + /** + * Flags to enable other effects + */ + __reserved_1?: boolean; + __reserved_2?: boolean; + __reserved_3?: boolean; +} + +interface FormatRule { + pattern: RegExp[]; + render: (match: string) => React.ReactNode; + flush: (match: string) => React.ReactNode; +} + +export function TextParser(props: TextParserProps) { + const computedTheme = useComputedColorScheme(); + const theme = useMantineTheme(); + let entityCount = 0; + + const formatRules : FormatRule[] = [ + { + pattern: [ + /(https?:\/\/[^\s]+)/g, + /\b(?:https?:\/\/)?(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(?:\/[^\s]*)?/g + ], + render: (match: string) => { + let domainZone = match.split('.').pop() || ''; + domainZone = domainZone.split('/')[0]; + if(!ALLOWED_DOMAINS_ZONES.includes(domainZone)) { + return <>{match}; + } + return {match}; + }, + flush: (match: string) => { + return <>{match}; + } + }, + { + pattern: [/\*\*(.+?)\*\*/], + render: (match: string) => { + const boldText = match.replace(/^\*\*(.+)\*\*$/, '$1'); + return {boldText}; + }, + flush: (match: string) => { + const boldText = match.replace(/^\*\*(.+)\*\*$/, '$1'); + return <>{boldText}; + } + }, + { + // language```code``` + pattern: [/([a-zA-Z0-9]+)```([\s\S]*?)```/], + render: (match: string) => { + const langMatch = match.match(/^([a-zA-Z0-9]+)```([\s\S]*?)```$/); + const language = langMatch ? langMatch[1] : "plaintext"; + const codeContent = langMatch ? langMatch[2] : match; + return ( + + {codeContent.trim()} + + ); + }, + flush: (match: string) => { + const langMatch = match.match(/^([a-zA-Z0-9]+)```([\s\S]*?)```$/); + const codeContent = langMatch ? langMatch[2] : match; + return <>{codeContent}; + } + }, + { + // @username + pattern: [/@([a-zA-Z0-9_]+)/], + render: (match: string) => { + return ; + }, + flush: (match: string) => { + return <>{match}; + } + }, + { + // :emoji_code: + pattern: [/:emoji_([a-zA-Z0-9_-]+):/], + render: (match: string) => { + const emojiCode = match.slice(1, -1); + let textWithoutEmojis = props.text.replace(/:emoji_[a-zA-Z0-9_-]+:/g, ''); + if(textWithoutEmojis.length <= (props.oversizeIfTextSmallerThan ?? 0)) { + return ; + } + return ; + }, + flush: (match: string) => { + const emojiCode = match.slice(1, -1); + return ; + } + }, + { + // $a=Attachment text + pattern: [/^\$a=(.+)$/], + render: (match: string) => { + const attachmentText = match.replace(/^\$a=(.+)$/, '$1'); + return <>{attachmentText}; + }, + flush: (match: string) => { + const attachmentText = match.replace(/^\$a=(.+)$/, '$1'); + return {attachmentText}; + } + }, + { + //#group:stringbase64 + pattern: [/^#group:([A-Za-z0-9+/=:]+)$/], + render: (match: string) => { + const groupString = match.replace(/^#group:([A-Za-z0-9+/=]+)$/, '$1'); + return ; + }, + flush: () => { + return Group Invite Code; + } + } + ]; + + function parseText(text: string): React.ReactNode[] { + let result: React.ReactNode[] = []; + let remainingText = text; + let index = 0; + + while (remainingText.length > 0) { + let earliestMatch: {start: number, end: number, rule: FormatRule, match: string} | null = null; + + for (const rule of formatRules) { + for (const pattern of rule.pattern) { + pattern.lastIndex = 0; // Reset regex state for global patterns + const match = pattern.exec(remainingText); + if (match && (earliestMatch === null || match.index < earliestMatch.start)) { + earliestMatch = { + start: match.index, + end: match.index + match[0].length, + rule, + match: match[0] + }; + } + } + } + if (earliestMatch) { + // Performance limit check + if (props.performanceEntityLimit !== undefined && entityCount >= props.performanceEntityLimit) { + result.push( + + {remainingText} + + ); + break; + } + entityCount += 1; + + if (earliestMatch.start > 0) { + result.push( + + {remainingText.slice(0, earliestMatch.start)} + + ); + } + result.push( + + {props.noHydrate ? earliestMatch.rule.flush(earliestMatch.match) : earliestMatch.rule.render(earliestMatch.match)} + + ); + remainingText = remainingText.slice(earliestMatch.end); + } else { + result.push( + + {remainingText} + + ); + break; + } + } + return result; + } + + return <>{parseText(props.text)}; +} \ No newline at end of file diff --git a/app/components/TextVariator/TextVariator.module.css b/app/components/TextVariator/TextVariator.module.css new file mode 100644 index 0000000..06f75b9 --- /dev/null +++ b/app/components/TextVariator/TextVariator.module.css @@ -0,0 +1,3 @@ +.slide { + animation: slide 1s ease-in-out infinite; +} \ No newline at end of file diff --git a/app/components/TextVariator/TextVariator.tsx b/app/components/TextVariator/TextVariator.tsx new file mode 100644 index 0000000..d79c5da --- /dev/null +++ b/app/components/TextVariator/TextVariator.tsx @@ -0,0 +1,43 @@ +import { Text } from "@mantine/core"; +import { useEffect, useState } from "react"; +import { motion, AnimatePresence } from "framer-motion"; +import classes from "./TextVariator.module.css"; + +interface TextVariatorProps { + variants: string[]; + seconds?: number; +} + +export function TextVariator(props: TextVariatorProps) { + const { variants } = props; + const [currentVariant, setCurrentVariant] = useState(variants[0]); + + useEffect(() => { + const interval = setInterval(() => { + setCurrentVariant((prev) => { + const currentIndex = variants.indexOf(prev); + const nextIndex = (currentIndex + 1) % variants.length; + return variants[nextIndex]; + }); + }, props.seconds ? props.seconds : 2 * 1000); // Change variant every 2 seconds if interval not passed + + return () => clearInterval(interval); + }, [variants]); + + return ( + + + + {currentVariant} + + + + ); +} \ No newline at end of file diff --git a/app/components/Topbar/Topbar.module.css b/app/components/Topbar/Topbar.module.css new file mode 100644 index 0000000..2404961 --- /dev/null +++ b/app/components/Topbar/Topbar.module.css @@ -0,0 +1,3 @@ +.drag { + app-region: drag; +} \ No newline at end of file diff --git a/app/components/Topbar/Topbar.tsx b/app/components/Topbar/Topbar.tsx new file mode 100644 index 0000000..75fe699 --- /dev/null +++ b/app/components/Topbar/Topbar.tsx @@ -0,0 +1,43 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Box, Flex, Loader, Text } from "@mantine/core"; +import classes from './Topbar.module.css' +import { useProtocolState } from "@/app/providers/ProtocolProvider/useProtocolState"; +import { ProtocolState } from "@/app/providers/ProtocolProvider/ProtocolProvider"; +import { WindowsFrameButtons } from "../WindowsFrameButtons/WindowsFrameButtons"; +import { MacFrameButtons } from "../MacFrameButtons/MacFrameButtons"; + +export function Topbar() { + const colors = useRosettaColors(); + const protocolState = useProtocolState(); + + + return ( + + {window.platform == 'win32' && } + {window.platform == 'darwin' && } + {window.platform == 'linux' && } + {(protocolState == ProtocolState.CONNECTED || !window.location.hash.includes("main")) && + + + Rosetta Messenger + + + } + {(protocolState != ProtocolState.CONNECTED && protocolState != ProtocolState.DEVICE_VERIFICATION_REQUIRED && window.location.hash.includes("main")) && + + + + Connecting... + + + } + {(protocolState == ProtocolState.DEVICE_VERIFICATION_REQUIRED && window.location.hash.includes("main")) && + + + Device verification required + + + } + + ) +} \ No newline at end of file diff --git a/app/components/UpdateAlert/UpdateAlert.tsx b/app/components/UpdateAlert/UpdateAlert.tsx new file mode 100644 index 0000000..56e2e05 --- /dev/null +++ b/app/components/UpdateAlert/UpdateAlert.tsx @@ -0,0 +1,65 @@ +import { Button, MantineRadius } from "@mantine/core"; +import { IconRefresh } from "@tabler/icons-react"; +import { AnimatedRoundedProgress } from "../AnimatedRoundedProgress/AnimatedRoundedProgress"; +import { UpdateStatus, useUpdater } from "@/app/hooks/useUpdater"; + +interface UpdateAlertProps { + radius?: MantineRadius; +} + +export function UpdateAlert(props : UpdateAlertProps) { + const radius = props.radius || 0; + const { + appUpdateUrl, + kernelUpdateUrl, + downloadProgress, + updateStatus, + kernelOutdatedForNextAppUpdates, + downloadLastApplicationUpdate, + restartAppForUpdateApply, + } = useUpdater(); + + + return ( + <> + {updateStatus == UpdateStatus.IDLE && <> + {kernelOutdatedForNextAppUpdates && <> + + } + {!kernelOutdatedForNextAppUpdates && appUpdateUrl != "" && <> + + } + } + {updateStatus == UpdateStatus.DOWNLOADING && <> + + } + {updateStatus == UpdateStatus.COMPILE && <> + + } + {updateStatus == UpdateStatus.READY_FOR_RESTART && <> + + } + + ); + +} diff --git a/app/components/UserAccountSelect/UserAccountSelect.tsx b/app/components/UserAccountSelect/UserAccountSelect.tsx new file mode 100644 index 0000000..19ad64a --- /dev/null +++ b/app/components/UserAccountSelect/UserAccountSelect.tsx @@ -0,0 +1,36 @@ +import { AccountBase } from "@/app/providers/AccountProvider/AccountProvider"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { useUserCache } from "@/app/providers/InformationProvider/useUserCache"; +import { Avatar, Flex, Text } from "@mantine/core"; + +interface UserAccountSelectProps { + accountBase: AccountBase; + selected?: boolean; + onClick?: () => void; +} + +export function UserAccountSelect(props : UserAccountSelectProps) { + const userInfo = useUserCache(props.accountBase.publicKey); + const avatars = useAvatars(props.accountBase.publicKey); + + return ( + + {userInfo && ( + + 0 ? avatars[0].avatar : undefined} size={20} color={'initials'} name={userInfo.title}> + + {userInfo.title} + + + )} + + ); +} \ No newline at end of file diff --git a/app/components/UserButton/UserButton.module.css b/app/components/UserButton/UserButton.module.css new file mode 100644 index 0000000..b771452 --- /dev/null +++ b/app/components/UserButton/UserButton.module.css @@ -0,0 +1,9 @@ +.user { + display: block; + width: 100%; + padding: var(--mantine-spacing-md); + color: light-dark(var(--mantine-color-black), var(--mantine-color-dark-0)); + @mixin hover { + background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-8)); + } + } \ No newline at end of file diff --git a/app/components/UserButton/UserButton.tsx b/app/components/UserButton/UserButton.tsx new file mode 100644 index 0000000..ca9da08 --- /dev/null +++ b/app/components/UserButton/UserButton.tsx @@ -0,0 +1,57 @@ +import { IconChevronRight } from '@tabler/icons-react'; +import { Avatar, Group, Skeleton, Text, UnstyledButton } from '@mantine/core'; +import classes from './UserButton.module.css'; +import { useNavigate } from 'react-router-dom'; +import { useUserInformation } from '@/app/providers/InformationProvider/useUserInformation'; +import { usePublicKey } from '@/app/providers/AccountProvider/usePublicKey'; +import { useAvatars } from '@/app/providers/AvatarProvider/useAvatars'; + +export function UserButton() { + const navigate = useNavigate(); + const publicKey = usePublicKey(); + const [userInfo] = useUserInformation(publicKey); + const avatars = useAvatars(publicKey); + + const loading = userInfo.publicKey !== publicKey; + + return ( + navigate("/main/profile/me")}> + + {!loading && ( + <> + 0 ? avatars[0].avatar : undefined} + /> + +
+ + {userInfo.title} + + + {userInfo.username && ( + + @{userInfo.username} + + )} +
+ + + + )} + {loading && ( + <> + +
+ + +
+ + + )} +
+
+ ); +} \ No newline at end of file diff --git a/app/components/UserMention/UserMention.module.css b/app/components/UserMention/UserMention.module.css new file mode 100644 index 0000000..8e00537 --- /dev/null +++ b/app/components/UserMention/UserMention.module.css @@ -0,0 +1,36 @@ +@keyframes failVibrate { + 0%, 100% { + left: 0px; + } + 20%, 60% { + left: -2px; + } + 40%, 80% { + left: 2px; + } +} + +@keyframes skeletonPulse { + 0% { + color: var(--mantine-primary-color-0); + } + 50% { + color: var(--mantine-primary-color-2); + } + 100% { + color: var(--mantine-primary-color-0); + } +} + +.mention { + user-select: auto; +} + +.skeleton { + animation: skeletonPulse 1.5s infinite; +} + +.fail_vibrate { + position: relative; + animation: failVibrate 0.3s linear; +} \ No newline at end of file diff --git a/app/components/UserMention/UserMention.tsx b/app/components/UserMention/UserMention.tsx new file mode 100644 index 0000000..ea3052e --- /dev/null +++ b/app/components/UserMention/UserMention.tsx @@ -0,0 +1,86 @@ +import { usePrivateKeyHash } from "@/app/providers/AccountProvider/usePrivateKeyHash"; +import { PacketSearch, PacketSearchUser } from "@/app/providers/ProtocolProvider/protocol/packets/packet.search"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; +import { useSender } from "@/app/providers/ProtocolProvider/useSender"; +import { Anchor } from "@mantine/core"; +import { useState } from "react"; +import classes from './UserMention.module.css'; +import { cx } from "@/app/utils/style"; +import { useNavigate } from "react-router-dom"; + +export interface UserMentionProps { + username: string; + color?: string; +} + +export function UserMention(props : UserMentionProps) { + const send = useSender(); + const privateKey = usePrivateKeyHash(); + const [loading, setLoading] = useState(false); + const [fail, setFail] = useState(false); + const [vibrate, setVibrate] = useState(false); + const navigate = useNavigate(); + + usePacket(0x03, (packet: PacketSearch) => { + if(!loading){ + return; + } + if(fail){ + vibrateCall(); + return; + } + setLoading(false); + let users = packet.getUsers(); + if(users.length <= 0){ + vibrateCall(); + setFail(true); + return; + } + const user = findMatchuser(users); + if(!user){ + vibrateCall(); + setFail(true); + return; + } + navigate(`/main/chat/${user.publicKey}`); + }, [props.username, loading, fail]); + + const findMatchuser = (users: PacketSearchUser[]) => { + for(let user of users){ + if(user.username === props.username.replace('@', '')){ + return user; + } + } + return null; + } + + const onClick = () => { + if(fail){ + vibrateCall(); + return; + } + let packet = new PacketSearch(); + packet.setSearch(props.username.replace('@', '')); + packet.setPrivateKey(privateKey); + send(packet); + setLoading(true); + } + + const vibrateCall = () => { + if(vibrate){ + return; + } + setVibrate(true); + setTimeout(() => { + setVibrate(false); + }, 300); + } + + return ( + {props.username} + ); +} \ No newline at end of file diff --git a/app/components/UserRow/UserRow.tsx b/app/components/UserRow/UserRow.tsx new file mode 100644 index 0000000..dec80b8 --- /dev/null +++ b/app/components/UserRow/UserRow.tsx @@ -0,0 +1,70 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; +import { Avatar, Flex, MantineColor, Text } from "@mantine/core"; +import { VerifiedBadge } from "../VerifiedBadge/VerifiedBadge"; +import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; +import { UserInformation } from "@/app/providers/InformationProvider/InformationProvider"; + +export enum AdditionalType { + ONLINE, + USERNAME +} + +export interface UserRowProps { + publicKey: string; + rightSection?: (publicKey: string) => React.ReactNode; + onClick?: (userInfo: UserInformation) => void; + renderCondition?: (userInfo: UserInformation) => boolean; + additionalType?: AdditionalType; + bg?: MantineColor; +} + +export function UserRow(props: UserRowProps) { + const [userInfo] = useUserInformation(props.publicKey); + const avatars = useAvatars(props.publicKey, false); + const colors = useRosettaColors(); + + if(props.renderCondition && !props.renderCondition(userInfo)) { + return null; + } + + return ( + + + 0 ? avatars[0].avatar : undefined} + /> + + + {userInfo.title} + + + {!props.additionalType && ( + {userInfo.online == OnlineState.ONLINE ? 'online' : 'offline'} + )} + {props.additionalType === AdditionalType.ONLINE && ( + {userInfo.online == OnlineState.ONLINE ? 'online' : 'offline'} + )} + {props.additionalType === AdditionalType.USERNAME && ( + @{userInfo.username} + )} + + + {props.rightSection && ( + + {props.rightSection(props.publicKey)} + + )} + + ); +} \ No newline at end of file diff --git a/app/components/UsersTable/UsersTable.tsx b/app/components/UsersTable/UsersTable.tsx new file mode 100644 index 0000000..f968d75 --- /dev/null +++ b/app/components/UsersTable/UsersTable.tsx @@ -0,0 +1,22 @@ +import { Flex, MantineSize } from "@mantine/core"; +import { UserRow } from "../UserRow/UserRow"; +import { SettingsPaper } from "../SettingsPaper/SettingsPaper"; + +interface GroupMembersProps { + usersPublicKeys: string[]; + mt?: MantineSize; + rightSection?: (publicKey: string) => React.ReactNode; + style?: React.CSSProperties; +} + +export function UsersTable(props: GroupMembersProps) { + return ( + + + {props.usersPublicKeys.map((pk) => ( + + ))} + + + ); +} \ No newline at end of file diff --git a/app/components/VerifiedBadge/VerifiedBadge.tsx b/app/components/VerifiedBadge/VerifiedBadge.tsx new file mode 100644 index 0000000..630ebc1 --- /dev/null +++ b/app/components/VerifiedBadge/VerifiedBadge.tsx @@ -0,0 +1,56 @@ +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Popover, Text } from "@mantine/core"; +import { useDisclosure } from "@mantine/hooks"; +import { IconArrowBadgeDownFilled, IconRosetteDiscountCheckFilled, IconShieldCheckFilled } from "@tabler/icons-react"; + +interface VerifiedBadgeProps { + verified: number; + size?: number; + hideTooltip?: boolean; + color?: string; +} + +export function VerifiedBadge(props : VerifiedBadgeProps) { + const colors = useRosettaColors(); + const [opened, { close, open }] = useDisclosure(false); + return ( + <> + {props.verified == 1 && <> + + + + + + + This is an official account belonging to a public figure, brand, or organization. + + + + } + {props.verified == 2 && <> + + + + + + + This is official account belonging to administration of Rosetta. + + + + } + {props.verified == 3 && <> + + + + + + + This user is administrator of this group. + + + + } + + ) +} \ No newline at end of file diff --git a/app/components/WindowsFrameButtons/WindowsFrameButtons.module.css b/app/components/WindowsFrameButtons/WindowsFrameButtons.module.css new file mode 100644 index 0000000..f6703e2 --- /dev/null +++ b/app/components/WindowsFrameButtons/WindowsFrameButtons.module.css @@ -0,0 +1,16 @@ +.close_btn:hover{ + color: var(--mantine-color-red-5); +} + +.maximize_btn:hover { + color: var(--mantine-color-green-5); +} + +.minimize_btn:hover { + color: var(--mantine-color-orange-5); +} + +.disabled { + color: var(--mantine-color-gray-5); + pointer-events: none; +} diff --git a/app/components/WindowsFrameButtons/WindowsFrameButtons.tsx b/app/components/WindowsFrameButtons/WindowsFrameButtons.tsx new file mode 100644 index 0000000..fa6ebb2 --- /dev/null +++ b/app/components/WindowsFrameButtons/WindowsFrameButtons.tsx @@ -0,0 +1,45 @@ +import { Flex } from "@mantine/core"; +import { IconMinus, IconRectangle, IconX } from "@tabler/icons-react"; +import classes from './WindowsFrameButtons.module.css' +import { useWindowActions } from "@/app/hooks/useWindowActions"; +import { cx } from "@/app/utils/style"; +import { useWindowState } from "@/app/hooks/useWindowState"; +import { useWindowFocus } from "@/app/hooks/useWindowFocus"; + +export function WindowsFrameButtons() { + const {close, minimize, toggle} = useWindowActions(); + const windowState = useWindowState(); + const focus = useWindowFocus(); + + return (<> + + + + + + + + + + + + ); + +} \ No newline at end of file diff --git a/app/constants.ts b/app/constants.ts new file mode 100644 index 0000000..31484fa --- /dev/null +++ b/app/constants.ts @@ -0,0 +1,65 @@ +import { AttachmentType } from "./providers/ProtocolProvider/protocol/packets/packet.message"; + +export const CORE_VERSION = window.version || "1.0.0"; + +/** + * Application directives + */ +export const APPLICATION_PLATFROM = window.platform || "unknown"; +export const APPLICATION_ARCH = window.arch || "unknown"; +export const APP_PATH = window.appPath || "."; +export const SIZE_LOGIN_WIDTH_PX = 300; +export const DEVTOOLS_CHEATCODE = "rosettadev1"; +export const AVATAR_PASSWORD_TO_ENCODE = "rosetta-a"; +/** + * Connection + */ +export const RECONNECTING_INTERVAL = 5; +export const RECONNECTING_TRYINGS_BEFORE_ALERT = 5; + +/** + * Messages + */ +export const MAX_MESSAGES_LOAD = 20; +export const MESSAGE_MAX_TIME_TO_DELEVERED_S = 80; // in seconds +export const MESSAGE_MAX_LOADED = 40; +export const SCROLL_TOP_IN_MESSAGES_TO_VIEW_AFFIX = 200; +export const TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD = 20; +export const MAX_ATTACHMENTS_IN_MESSAGE = 5; +export const MAX_UPLOAD_FILESIZE_MB = 1024; +export const ENTITY_LIMITS_TO_PARSE_IN_MESSAGE = 50; +export const ATTACHMENTS_NOT_ALLOWED_TO_REPLY = [ + AttachmentType.AVATAR, + AttachmentType.MESSAGES +]; +export const DIALOG_DROP_TO_REQUESTS_IF_NO_MESSAGES_FROM_ME_COUNT = 30; +/** + * Если предыдущие сообщение было отправлено менее чем 300 секунд назад, + * то не отображаем аватар отправителя + */ +export const MESSAGE_AVATAR_NO_RENDER_TIME_DIFF_S = 300; // 5 minutes +/** + * Разрешенные доменные зоны + */ +export const ALLOWED_DOMAINS_ZONES = [ + 'com', + 'ru', + 'ua', + 'org', + 'net', + 'edu', + 'gov', + 'io', + 'tech', + 'info', + 'biz', + 'me', + 'online', + 'site', + 'app', + 'dev', + 'chat', + 'gg', + 'fm', + 'tv' +]; \ No newline at end of file diff --git a/app/crypto/crypto.ts b/app/crypto/crypto.ts new file mode 100644 index 0000000..f7913bf --- /dev/null +++ b/app/crypto/crypto.ts @@ -0,0 +1,115 @@ +import { sha256, md5 } from "node-forge"; +import { generateRandomKey } from "../utils/utils"; +import * as secp256k1 from '@noble/secp256k1'; + +const worker = new Worker(new URL('./crypto.worker.ts', import.meta.url), { type: 'module' }); + +export const encodeWithPassword = async (password : string, data : any) : Promise => { + let task = generateRandomKey(16); + return new Promise((resolve, _) => { + worker.addEventListener('message', (event: MessageEvent) => { + if (event.data.action === 'encodeWithPasswordResult' && event.data.task === task) { + resolve(event.data.result); + } + }); + worker.postMessage({ action: 'encodeWithPassword', data: { password, payload: data, task } }); + }); +} + +export const decodeWithPassword = (password : string, data : any) : Promise => { + let task = generateRandomKey(16); + return new Promise((resolve, reject) => { + worker.addEventListener('message', (event: MessageEvent) => { + if (event.data.action === 'decodeWithPasswordResult' && event.data.task === task) { + if(event.data.result === null){ + reject("Decryption failed"); + return; + } + resolve(event.data.result); + } + }); + worker.postMessage({ action: 'decodeWithPassword', data: { password, payload: data, task } }); + }); +} + +export const generateKeyPairFromSeed = async (seed : string) => { + //generate key pair using secp256k1 includes privatekey from seed + const privateKey = sha256.create().update(seed).digest().toHex().toString(); + const publicKey = secp256k1.getPublicKey(Buffer.from(privateKey, "hex"), true); + return { + privateKey: privateKey, + publicKey: Buffer.from(publicKey).toString('hex'), + }; + +} + +export const encrypt = async (data : string, publicKey : string) : Promise => { + let task = generateRandomKey(16); + return new Promise((resolve, _) => { + worker.addEventListener('message', (event: MessageEvent) => { + if (event.data.action === 'encryptResult' && event.data.task === task) { + resolve(event.data.result); + } + }); + worker.postMessage({ action: 'encrypt', data: { publicKey, payload: data, task } }); + }); +} + +export const decrypt = async (data : string, privateKey : string) : Promise => { + let task = generateRandomKey(16); + return new Promise((resolve, reject) => { + worker.addEventListener('message', (event: MessageEvent) => { + if (event.data.action === 'decryptResult' && event.data.task === task) { + if(event.data.result === null){ + reject("Decryption failed"); + return; + } + resolve(event.data.result); + } + }); + worker.postMessage({ action: 'decrypt', data: { privateKey, payload: data, task } }); + }); +} + +export const chacha20Encrypt = async (data : string) => { + let task = generateRandomKey(16); + return new Promise((resolve, _) => { + worker.addEventListener('message', (event: MessageEvent) => { + if (event.data.action === 'chacha20EncryptResult' && event.data.task === task) { + resolve(event.data.result); + } + }); + worker.postMessage({ action: 'chacha20Encrypt', data: { payload: data, task } }); + }); +} + +export const chacha20Decrypt = async (ciphertext : string, nonce : string, key : string) => { + let task = generateRandomKey(16); + return new Promise((resolve, _) => { + worker.addEventListener('message', (event: MessageEvent) => { + if (event.data.action === 'chacha20DecryptResult' && event.data.task === task) { + resolve(event.data.result); + } + }); + worker.postMessage({ action: 'chacha20Decrypt', data: { ciphertext, nonce, key, task } }); + }); +} + +export const generateMd5 = async (data : string) => { + const hash = md5.create(); + hash.update(data); + return hash.digest().toHex(); +} + +export const generateHashFromPrivateKey = async (privateKey : string) => { + return sha256.create().update(privateKey + "rosetta").digest().toHex().toString(); +} + +export const isEncodedWithPassword = (data : string) => { + try{ + atob(data).split(":"); + return true; + } catch(e) { + return false; + } +} diff --git a/app/crypto/crypto.worker.ts b/app/crypto/crypto.worker.ts new file mode 100644 index 0000000..ed5b8aa --- /dev/null +++ b/app/crypto/crypto.worker.ts @@ -0,0 +1,316 @@ +import crypto from 'crypto-js'; +import pako from 'pako'; +import { randomBytes } from "@noble/ciphers/webcrypto"; +import { xchacha20poly1305 } from '@noble/ciphers/chacha'; +import * as secp256k1 from '@noble/secp256k1'; + + +self.onmessage = async (event: MessageEvent) => { + const { action, data } = event.data; + + switch (action) { + case 'encodeWithPassword': { + const { password, payload, task } = data; + const result = await encodeWithPassword(password, payload); + self.postMessage({ action: 'encodeWithPasswordResult', result, task }); + break; + } + case 'chacha20Encrypt': { + const { payload, task } = data; + const result = await chacha20Encrypt(payload); + self.postMessage({ action: 'chacha20EncryptResult', result, task }); + break; + } + case 'chacha20Decrypt': { + const { ciphertext, nonce, key, task } = data; + const result = await chacha20Decrypt(ciphertext, nonce, key); + self.postMessage({ action: 'chacha20DecryptResult', result, task }); + break; + } + case 'decodeWithPassword': { + const { password, payload, task } = data; + try{ + const result = await decodeWithPassword(password, payload); + self.postMessage({ action: 'decodeWithPasswordResult', result, task }); + return; + }catch(e){ + const result = null; + self.postMessage({ action: 'decodeWithPasswordResult', result, task }); + } + break; + } + case 'decrypt': { + const { payload: encryptedData, privateKey, task } = data; + const result = await decrypt(encryptedData, privateKey); + self.postMessage({ action: 'decryptResult', result, task }); + break; + } + case 'encrypt': { + const { payload: plainData, publicKey, task } = data; + const result = await encrypt(plainData, publicKey); + self.postMessage({ action: 'encryptResult', result, task }); + break; + } + default: + console.error(`Unknown action: ${action}`); + } +}; + + +export const encrypt = async (data: string, publicKey: string) => { + // Generate ephemeral key pair + const ephemeralPrivateKey = secp256k1.utils.randomSecretKey() + + // Parse recipient's public key + const recipientPublicKey = Buffer.from(publicKey, 'hex'); + + // Compute shared secret using ECDH + const sharedPoint = secp256k1.getSharedSecret(ephemeralPrivateKey, recipientPublicKey, false); + const sharedKey = Buffer.from(sharedPoint.slice(1, 33)).toString('hex'); // Use x-coordinate + + // Encrypt data + const iv = crypto.lib.WordArray.random(16); + const keyBytes = crypto.enc.Hex.parse(sharedKey); + const encrypted = crypto.AES.encrypt(data, keyBytes, { iv }); + + return btoa(iv.toString(crypto.enc.Hex) + ':' + + encrypted.ciphertext.toString(crypto.enc.Hex) + ':' + + Buffer.from(ephemeralPrivateKey).toString('hex')); +} + +export const decrypt = async (data: string, privateKey: string) => { + const [ivHex, encryptedHex, ephemeralPrivateKeyHex] = atob(data).split(":"); + + // Parse keys + const ephemeralPrivateKey = Buffer.from(ephemeralPrivateKeyHex, 'hex'); + const privateKeyBytes = Buffer.from(privateKey, 'hex'); + + // Compute ephemeral public key + const ephemeralPublicKey = secp256k1.getPublicKey(ephemeralPrivateKey, false); + + // Compute shared secret using ECDH + const sharedPoint = secp256k1.getSharedSecret(privateKeyBytes, ephemeralPublicKey, false); + const sharedKey = Buffer.from(sharedPoint.slice(1, 33)).toString('hex'); // Use x-coordinate + + // Decrypt data + const iv = crypto.enc.Hex.parse(ivHex); + const keyBytes = crypto.enc.Hex.parse(sharedKey); + + const decrypted = crypto.AES.decrypt(crypto.lib.CipherParams.create({ + ciphertext: crypto.enc.Hex.parse(encryptedHex) + }), keyBytes, { iv }); + + let decryptedText = ""; + try { + decryptedText = decrypted.toString(crypto.enc.Utf8); + } catch(e) { + console.info("pass: ", privateKey); + console.info("data: ", data); + console.error("Decryption error: ", e); + } + + if (!decryptedText) { + console.info("pass: ", privateKey); + console.info("data: ", data); + throw new Error("Decryption failed or resulted in an empty string."); + } + + return decryptedText; +} + +export const chacha20Encrypt = async (data : string) => { + const key = randomBytes(32); + const nonce = randomBytes(24); + const cipher = xchacha20poly1305(key, nonce); + const ciphertext = cipher.encrypt(Buffer.from(data)); + return { + ciphertext: Buffer.from(ciphertext).toString("hex"), + nonce: Buffer.from(nonce).toString("hex"), + key: Buffer.from(key).toString("hex"), + } +} + +export const chacha20Decrypt = async (ciphertext : string, nonce : string, key : string) => { + const cipher = xchacha20poly1305(Buffer.from(key, "hex"), Buffer.from(nonce, "hex")); + const decrypted = cipher.decrypt(Buffer.from(ciphertext, "hex")); + return Buffer.from(decrypted).toString("utf-8"); +} + + +// Utility to check if data is old format (base64 + ":") +function isOldFormat(data: string): boolean { + try { + const decoded = atob(data); + return decoded.includes(':'); + } catch { + return false; + } +} + +// Helper: chunk Uint8Array +function chunkArrayBuffer(buffer: Uint8Array, chunkSize: number): Uint8Array[] { + const chunks: Uint8Array[] = []; + for (let i = 0; i < buffer.length; i += chunkSize) { + chunks.push(buffer.subarray(i, Math.min(i + chunkSize, buffer.length))); + } + return chunks; +} + +// Helper: join base64 chunks with a marker +function joinChunksBase64(chunks: string[]): string { + // Use "::" as a separator, and prefix with "CHNK:" to indicate chunked + return 'CHNK:' + chunks.join('::'); +} + +// Helper: split chunked base64 string +function splitChunksBase64(data: string): string[] { + // Remove "CHNK:" prefix and split by "::" + return data.slice(5).split('::'); +} + +// New: compress, encrypt, base64 encode (not hex), with chunking for large payloads +export const encodeWithPassword = async (password: string, payload: any) => { + // Convert payload to string and compress + const input = typeof payload === 'string' ? payload : JSON.stringify(payload); + const compressed = pako.deflate(input); + + // If compressed > 10MB, chunk it + const CHUNK_SIZE = 10 * 1024 * 1024; // 10MB + if (compressed.length > CHUNK_SIZE) { + const chunks = chunkArrayBuffer(compressed, CHUNK_SIZE); + const encryptedChunks: string[] = []; + for (const chunk of chunks) { + const key = crypto.PBKDF2(password, 'rosetta', { + keySize: 256 / 32, + iterations: 1000 + }); + const iv = crypto.lib.WordArray.random(16); + const wordArray = crypto.lib.WordArray.create(chunk as any); + const encrypted = crypto.AES.encrypt(wordArray, key, { iv }); + // iv:ciphertext base64 + const ivBase64 = crypto.enc.Base64.stringify(iv); + const ctBase64 = crypto.enc.Base64.stringify(encrypted.ciphertext); + encryptedChunks.push(ivBase64 + ':' + ctBase64); + } + return joinChunksBase64(encryptedChunks); + } else { + // Single chunk (as before) + const key = crypto.PBKDF2(password, 'rosetta', { + keySize: 256 / 32, + iterations: 1000 + }); + const iv = crypto.lib.WordArray.random(16); + const wordArray = crypto.lib.WordArray.create(compressed as any); + const encrypted = crypto.AES.encrypt(wordArray, key, { iv }); + const ivBase64 = crypto.enc.Base64.stringify(iv); + const ctBase64 = crypto.enc.Base64.stringify(encrypted.ciphertext); + return ivBase64 + ':' + ctBase64; + } +}; + +export const decodeWithPassword = async (password: string, data: any) => { + // Handle old format (base64-encoded "iv:ciphertext") + if (isOldFormat(data)) { + const [ivHex, encryptedHex] = atob(data).split(':'); + const iv = crypto.enc.Hex.parse(ivHex); + const key = crypto.PBKDF2(password, crypto.enc.Utf8.parse('rosetta'), { + keySize: 256 / 32, + iterations: 1000 + }); + const decrypted = crypto.AES.decrypt( + crypto.lib.CipherParams.create({ + ciphertext: crypto.enc.Hex.parse(encryptedHex) + }), + key, + { iv } + ); + const decryptedUtf8 = decrypted.toString(crypto.enc.Utf8); + if (!decryptedUtf8) throw new Error('Decryption failed or resulted in an empty string.'); + return decryptedUtf8; + } + + // Check for chunked format + if (typeof data === 'string' && data.startsWith('CHNK:')) { + const chunkBase64s = splitChunksBase64(data); + const decompressedParts: Uint8Array[] = []; + for (const chunkBase64 of chunkBase64s) { + const [ivBase64, ctBase64] = chunkBase64.split(':'); + if (!ivBase64 || !ctBase64) throw new Error('Invalid encrypted chunk format.'); + const iv = crypto.enc.Base64.parse(ivBase64); + const key = crypto.PBKDF2(password, 'rosetta', { + keySize: 256 / 32, + iterations: 1000 + }); + const decrypted = crypto.AES.decrypt( + crypto.lib.CipherParams.create({ + ciphertext: crypto.enc.Base64.parse(ctBase64) + }), + key, + { iv } + ); + // Convert decrypted to Uint8Array + const decryptedWords = decrypted.words; + const decryptedSigBytes = decrypted.sigBytes; + const bytes = new Uint8Array(decryptedSigBytes); + for (let i = 0; i < decryptedSigBytes; ++i) { + bytes[i] = (decryptedWords[(i / 4) | 0] >> (24 - 8 * (i % 4))) & 0xff; + } + decompressedParts.push(bytes); + } + // Concatenate all parts + const totalLength = decompressedParts.reduce((sum, arr) => sum + arr.length, 0); + const allBytes = new Uint8Array(totalLength); + let offset = 0; + for (const arr of decompressedParts) { + allBytes.set(arr, offset); + offset += arr.length; + } + let decompressed: string; + try { + decompressed = new TextDecoder().decode(pako.inflate(allBytes)); + } catch { + throw new Error('Failed to decompress decrypted data.'); + } + if (!decompressed) throw new Error('Decryption failed or resulted in an empty string.'); + return decompressed; + } + + // New format: base64 "iv:ciphertext" + const [ivBase64, ctBase64] = data.split(':'); + if (!ivBase64 || !ctBase64) throw new Error('Invalid encrypted data format.'); + + const iv = crypto.enc.Base64.parse(ivBase64); + const key = crypto.PBKDF2(password, 'rosetta', { + keySize: 256 / 32, + iterations: 1000 + }); + + const decrypted = crypto.AES.decrypt( + crypto.lib.CipherParams.create({ + ciphertext: crypto.enc.Base64.parse(ctBase64) + }), + key, + { iv } + ); + + // Decompress + const decryptedWords = decrypted.words; + const decryptedSigBytes = decrypted.sigBytes; + const decryptedBytes = new Uint8Array(decryptedSigBytes); + for (let i = 0; i < decryptedSigBytes; ++i) { + decryptedBytes[i] = (decryptedWords[(i / 4) | 0] >> (24 - 8 * (i % 4))) & 0xff; + } + + let decompressed: string; + try { + decompressed = new TextDecoder().decode(pako.inflate(decryptedBytes)); + } catch { + throw new Error('Failed to decompress decrypted data.'); + } + + if (!decompressed) { + throw new Error('Decryption failed or resulted in an empty string.'); + } + + return decompressed; +}; diff --git a/app/dev.html b/app/dev.html new file mode 100644 index 0000000..969a459 --- /dev/null +++ b/app/dev.html @@ -0,0 +1,11 @@ + + + + + Rosetta Messenger + + +
+ + + diff --git a/app/global.d.ts b/app/global.d.ts new file mode 100644 index 0000000..722752a --- /dev/null +++ b/app/global.d.ts @@ -0,0 +1,4 @@ +declare module '*.css' { + const content: { [className: string]: string }; + export default content; +} \ No newline at end of file diff --git a/app/hooks/useAuth.ts b/app/hooks/useAuth.ts new file mode 100644 index 0000000..cc27e74 --- /dev/null +++ b/app/hooks/useAuth.ts @@ -0,0 +1,14 @@ +import { useState, useEffect } from 'react'; + +function useAuth() { + const [isAuthenticated, setIsAuthenticated] = useState(false); + + useEffect(() => { + const authStatus = localStorage.getItem('auth_key'); + setIsAuthenticated(authStatus !== ''); + }, []); + + return isAuthenticated; +} + +export default useAuth; \ No newline at end of file diff --git a/app/hooks/useConsoleLogger.ts b/app/hooks/useConsoleLogger.ts new file mode 100644 index 0000000..f2f6f11 --- /dev/null +++ b/app/hooks/useConsoleLogger.ts @@ -0,0 +1,70 @@ +import { usePrivateKeyHash } from "../providers/AccountProvider/usePrivateKeyHash"; +import { usePrivatePlain } from "../providers/AccountProvider/usePrivatePlain"; +import { usePublicKey } from "../providers/AccountProvider/usePublicKey"; + +export enum ConsoleLogLevel { + INFO = "INFO", + ERROR = "ERROR", + WARN = "WARN" +} + +export function useConsoleLogger(component: string) { + const privatePlain = usePrivatePlain(); + const publicKey = usePublicKey(); + const privateKey = usePrivateKeyHash(); + + const constructTechnicalDetails = () => { + let time = new Date().toISOString(); + //console.groupCollapsed('Details'); + console.log('%cPublic Key: %c%s', 'color: orange; font-weight: bold;', 'color: white;', publicKey.trim() != "" ? publicKey : '[EMPTY]'); + console.log('%cPrivate Key Hash: %c%s', 'color: orange; font-weight: bold;', 'color: white;', privateKey.trim() != "" ? privateKey : '[EMPTY]'); + console.log('%cPrivate Plain: %c%s', 'color: orange; font-weight: bold;', 'color: white;', privatePlain.trim() != "" ? privatePlain : '[EMPTY]'); + //console.groupEnd(); + //console.groupCollapsed('Trace'); + console.info('%cTime: %c%s', 'color: green; font-weight: bold;', 'color: white;', time); + console.info('%cComponent:%c %s', 'color: red; font-weight: bold;', 'color: #7CFC00; font-weight: bold;', component); + console.trace('%cStack trace:', 'color: purple; font-weight: bold;'); + //console.groupEnd(); + } + + const constructLogLevelColor = (logLevel : ConsoleLogLevel) => { + switch(logLevel){ + case ConsoleLogLevel.INFO: + return 'color: white; background-color: #00B5FF;'; + case ConsoleLogLevel.ERROR: + return 'color: white; background-color: red;'; + case ConsoleLogLevel.WARN: + return 'color: black; background-color: yellow;'; + default: + return 'color: black; background-color: white;'; + } + } + + const constructMessageDetails = (message: string, logLevel : ConsoleLogLevel) => { + return [ + `%c ${logLevel} %c ${message}`, + constructLogLevelColor(logLevel), + 'color: #fefefe; font-weight: normal;' + ]; + } + + const error = (message : string) => { + console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.ERROR)); + constructTechnicalDetails(); + console.groupEnd(); + } + + const info = (message : string) => { + console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.INFO)); + constructTechnicalDetails(); + console.groupEnd(); + } + + const warn = (message : string) => { + console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.WARN)); + constructTechnicalDetails(); + console.groupEnd(); + } + + return {error, info, warn}; +} \ No newline at end of file diff --git a/app/hooks/useDialogContextMenu.tsx b/app/hooks/useDialogContextMenu.tsx new file mode 100644 index 0000000..855002d --- /dev/null +++ b/app/hooks/useDialogContextMenu.tsx @@ -0,0 +1,60 @@ +import { IconBell, IconBellOff, IconPin, IconPinnedOff } from "@tabler/icons-react"; +import { useContextMenu } from "../providers/ContextMenuProvider/useContextMenu" +import { useRosettaColors } from "./useRosettaColors"; +import { useDialogState } from "../providers/DialogStateProvider.tsx/useDialogState"; + +export function useDialogContextMenu() : { + openContextMenu: (dialog_id: string) => void; +} { + const openContext = useContextMenu(); + const colors = useRosettaColors(); + const {muted, pinned, muteToggle, pinToggle} = useDialogState(); + + const openContextMenu = (dialog_id: string) => { + openContext([ + { + label: 'Unmute', + action: () => { + muteToggle(dialog_id); + }, + icon: , + cond: async () => { + return muted.includes(dialog_id) === true; + } + }, + { + label: 'Mute', + action: () => { + muteToggle(dialog_id); + }, + icon: , + cond: async () => { + return muted.includes(dialog_id) === false; + } + }, + { + label: 'Pin', + action: () => { + pinToggle(dialog_id); + }, + icon: , + cond: async () => { + return pinned.includes(dialog_id) === false; + } + }, + { + label: 'Unpin', + action: () => { + pinToggle(dialog_id); + }, + icon: , + cond: async () => { + return pinned.includes(dialog_id) === true; + } + } + ], true, true); + } + return { + openContextMenu + } +} \ No newline at end of file diff --git a/app/hooks/useFileStorage.ts b/app/hooks/useFileStorage.ts new file mode 100644 index 0000000..762addc --- /dev/null +++ b/app/hooks/useFileStorage.ts @@ -0,0 +1,13 @@ +export function useFileStorage() { + const writeFile = async (file: string, data : string | Buffer, inWorkingDir : boolean = true) => { + const result = await window.electron.ipcRenderer.invoke('fileStorage:writeFile', file, data, inWorkingDir); + return result; + } + + const readFile = async (file : string, inWorkingDir : boolean = true) => { + const result = await window.electron.ipcRenderer.invoke('fileStorage:readFile', file, inWorkingDir); + return result; + } + + return {writeFile, readFile}; +} \ No newline at end of file diff --git a/app/hooks/useLogger.ts b/app/hooks/useLogger.ts new file mode 100644 index 0000000..6d010ff --- /dev/null +++ b/app/hooks/useLogger.ts @@ -0,0 +1,15 @@ +import { usePublicKey } from "../providers/AccountProvider/usePublicKey"; +import { useUserCache } from "../providers/InformationProvider/useUserCache"; + +export function useLogger(view : string = 'general') { + const publicKey = usePublicKey(); + const userInfo = useUserCache(publicKey); + + const logFunction = (message : string) => { + const publicTrimmed = publicKey.substring(0, 10) + '...' + publicKey.substring(publicKey.length - 10); + const logString = `${userInfo ? `[${userInfo.title}]` : `[unknown]`} [${publicTrimmed}] [${view}] [${new Date().toISOString()}] ${message}`; + window.electron.ipcRenderer.invoke('logger:log', logString); + } + + return logFunction; +} \ No newline at end of file diff --git a/app/hooks/useMainColor.ts b/app/hooks/useMainColor.ts new file mode 100644 index 0000000..cca745d --- /dev/null +++ b/app/hooks/useMainColor.ts @@ -0,0 +1,8 @@ +import { useMantineTheme } from "@mantine/core"; +import { useColorScheme } from "@mantine/hooks"; + +export function useMainColor () { + const colorScheme = useColorScheme(); + const theme = useMantineTheme(); + return colorScheme == "light" ? theme.colors.gray[1] : theme.colors.dark[8]; +} \ No newline at end of file diff --git a/app/hooks/useNotification.ts b/app/hooks/useNotification.ts new file mode 100644 index 0000000..3c0d271 --- /dev/null +++ b/app/hooks/useNotification.ts @@ -0,0 +1,7 @@ +export function useNotification() { + const show = (title : string, body : string) => { + window.electron.ipcRenderer.invoke('notification:show', title, body); + } + + return show; +} \ No newline at end of file diff --git a/app/hooks/useQueue.ts b/app/hooks/useQueue.ts new file mode 100644 index 0000000..a38f14a --- /dev/null +++ b/app/hooks/useQueue.ts @@ -0,0 +1,27 @@ +import { useRef } from "react"; + +/** + * Нужно, чтобы избежать состояния гонки + */ +export function useQueue() { + const queue = useRef([]); + + const inProcess = (task: T): boolean => { + return queue.current.includes(task); + } + + const addToQueue = (task: T) => { + queue.current.push(task); + } + + const removeFromQueue = (task: T) => { + queue.current = queue.current.filter(t => t !== task); + } + + return { + inProcess, + addToQueue, + removeFromQueue, + queue + } +} \ No newline at end of file diff --git a/app/hooks/useRosettaBreakpoints.ts b/app/hooks/useRosettaBreakpoints.ts new file mode 100644 index 0000000..782aa37 --- /dev/null +++ b/app/hooks/useRosettaBreakpoints.ts @@ -0,0 +1,8 @@ +import { useMediaQuery } from "@mantine/hooks"; + +export function useRosettaBreakpoints() { + return { + lg: useMediaQuery('(min-width: 775px)'), + md: useMediaQuery('(min-width: 490px)') + } +} \ No newline at end of file diff --git a/app/hooks/useRosettaColors.ts b/app/hooks/useRosettaColors.ts new file mode 100644 index 0000000..ecb12ac --- /dev/null +++ b/app/hooks/useRosettaColors.ts @@ -0,0 +1,20 @@ +import { useComputedColorScheme, useMantineTheme } from "@mantine/core"; + +export function useRosettaColors () { + const colorScheme = useComputedColorScheme(); + const theme = useMantineTheme(); + + return { + boxColor: colorScheme == 'light' ? theme.white : theme.colors.dark[7], + mainColor: colorScheme == 'light' ? theme.colors.gray[1] : theme.colors.dark[8], + borderColor: colorScheme == 'light' ? theme.colors.gray[2] : theme.colors.dark[6], + chevrons: { + active: colorScheme == 'light' ? theme.colors.gray[6] : theme.colors.dark[2], + disabled: colorScheme == 'light' ? theme.colors.gray[3] : theme.colors.dark[6] + }, + success: theme.colors.green[5], + error: theme.colors.red[5], + brandColor: theme.colors.blue[6], + warning: theme.colors.orange[5] + }; +} \ No newline at end of file diff --git a/app/hooks/useSetup.ts b/app/hooks/useSetup.ts new file mode 100644 index 0000000..e69de29 diff --git a/app/hooks/useUpdater.ts b/app/hooks/useUpdater.ts new file mode 100644 index 0000000..8d95d0f --- /dev/null +++ b/app/hooks/useUpdater.ts @@ -0,0 +1,124 @@ +import { useEffect, useState } from "react"; +import { PacketRequestUpdate } from "../providers/ProtocolProvider/protocol/packets/packet.requestupdate"; +import { APPLICATION_ARCH, APPLICATION_PLATFROM, CORE_VERSION } from "../constants"; +import { PacketKernelUpdate } from "../providers/ProtocolProvider/protocol/packets/packet.kernelupdate"; +import { usePacket } from "../providers/ProtocolProvider/usePacket"; +import { PacketAppUpdate } from "../providers/ProtocolProvider/protocol/packets/packet.appupdate"; +import { compareVersions } from "../utils/update"; +import { useSender } from "../providers/ProtocolProvider/useSender"; +import { useConsoleLogger } from "./useConsoleLogger"; +import { useFileStorage } from "./useFileStorage"; +import { APP_VERSION } from "../version"; +import { useMemory } from "../providers/MemoryProvider/useMemory"; + +export enum UpdateStatus { + IDLE, + DOWNLOADING, + COMPILE, + READY_FOR_RESTART +} + +export function useUpdater() { + const send = useSender(); + const [kernelOutdatedForNextAppUpdates, + setKernelOutdatedForNextAppUpdates] = useState(false); + const [kernelUpdateUrl, setKernelUpdateUrl] = useState(""); + const [appUpdateUrl, setAppUpdateUrl] = useState(""); + const [appActualVersion, setAppActualVersion] = useState(""); + const [kernelActualVersion, setKernelActualVersion] = useState(""); + const [downloadProgress, setDownloadProgress] = useMemory("dp", 0, true); + const [updateStatus, setUpdateStatus] = useMemory("us", UpdateStatus.IDLE, true); + const {error, info} = useConsoleLogger('useUpdater'); + const {writeFile} = useFileStorage(); + + useEffect(() => { + let packet = new PacketRequestUpdate(); + packet.setAppVersion(APP_VERSION); + packet.setKernelVersion(CORE_VERSION); + packet.setArch(APPLICATION_ARCH); + packet.setPlatform(APPLICATION_PLATFROM); + send(packet); + }, []); + + usePacket(0x0D, (packet : PacketKernelUpdate) => { + let url = packet.getUrl(); + let version = packet.getVersion(); + setKernelActualVersion(version); + setKernelUpdateUrl(url); + console.info("Kernel update available: ", version, url); + }, []); + + usePacket(0x0E, (packet : PacketAppUpdate) => { + let url = packet.getUrl(); + let version = packet.getVersion(); + let kernelVersionRequired = packet.getKernelVersionRequired(); + if(compareVersions(CORE_VERSION, kernelVersionRequired) < 0){ + error("Kernel version is outdated. Cannot update app."); + setKernelOutdatedForNextAppUpdates(true); + return; + } + setAppActualVersion(version); + setAppUpdateUrl(url); + }, []); + + const downloadLastApplicationUpdate = () => { + if(appUpdateUrl == ""){ + return; + } + if(updateStatus != UpdateStatus.IDLE){ + return; + } + setUpdateStatus(UpdateStatus.DOWNLOADING); + const xhr = new XMLHttpRequest(); + xhr.open("GET", appUpdateUrl, true); + xhr.responseType = "blob"; + + xhr.onprogress = (event) => { + if (event.lengthComputable) { + const percentComplete = (event.loaded / event.total) * 100; + setDownloadProgress(Math.round(percentComplete)); + } + }; + + xhr.onload = async () => { + if (xhr.status === 200) { + setUpdateStatus(UpdateStatus.COMPILE); + const blob : Blob = xhr.response; + let bundleName = `bundle ${appActualVersion}.zip`; + await writeFile(bundleName, Buffer.from(await blob.arrayBuffer())); + info("Update downloaded, starting compiler..."); + await window.electron.ipcRenderer.invoke('update:installServiceUpdate', bundleName); + info("Update compiled successfully."); + setTimeout(() => { + setUpdateStatus(UpdateStatus.READY_FOR_RESTART); + }, 10000); + } + } + + xhr.onerror = () => { + error("Error downloading update"); + setUpdateStatus(UpdateStatus.IDLE); + } + + xhr.send(); + } + + const restartAppForUpdateApply = () => { + if(updateStatus != UpdateStatus.READY_FOR_RESTART){ + return; + } + window.electron.ipcRenderer.invoke('update:restartApp'); + } + + return { + appUpdateUrl, + kernelUpdateUrl, + appActualVersion, + kernelActualVersion, + kernelOutdatedForNextAppUpdates, + downloadProgress, + updateStatus, + downloadLastApplicationUpdate, + restartAppForUpdateApply + } +} \ No newline at end of file diff --git a/app/hooks/useViewPanelsState.ts b/app/hooks/useViewPanelsState.ts new file mode 100644 index 0000000..fe607da --- /dev/null +++ b/app/hooks/useViewPanelsState.ts @@ -0,0 +1,13 @@ +import { useMemory } from "../providers/MemoryProvider/useMemory"; + +export enum ViewPanelsState { + DIALOGS_PANEL_HIDE, + DIALOGS_PANEL_SHOW, + DIALOGS_PANEL_ONLY, + DIALOGS_PANEL_HIDE_VIEW_RIGHT_PANEL +} + +export function useViewPanelsState() : [ViewPanelsState, (state: ViewPanelsState) => void] { + const [viewState, setViewState] = useMemory('view_panels_state', ViewPanelsState.DIALOGS_PANEL_SHOW, true); + return [viewState, setViewState]; +} \ No newline at end of file diff --git a/app/hooks/useWindow.ts b/app/hooks/useWindow.ts new file mode 100644 index 0000000..ea5d28f --- /dev/null +++ b/app/hooks/useWindow.ts @@ -0,0 +1,30 @@ +// Desc: Custom hook to handle window resizing + +export enum ElectronTheme { + SYSTEM = 'system', + DARK = 'dark', + LIGHT = 'light' +} + +const useWindow = () => { + + const setSize = (width : number, height : number) => { + window.api.send('window-resize', { width: width, height: height }); + } + + const setResizeble = (isResizeble : boolean) => { + window.api.send('window-resizeble', isResizeble); + } + + const setTheme = (theme : ElectronTheme) => { + window.api.send('window-theme', theme); + } + + return { + setSize, + setResizeble, + setTheme + } +} + +export default useWindow; \ No newline at end of file diff --git a/app/hooks/useWindowActions.ts b/app/hooks/useWindowActions.ts new file mode 100644 index 0000000..d96e225 --- /dev/null +++ b/app/hooks/useWindowActions.ts @@ -0,0 +1,22 @@ +export function useWindowActions() { + const toggle = () => { + console.info("TOGGLE"); + window.electron.ipcRenderer.invoke('window-toggle'); + } + + const close = () => { + console.info("CLOSE"); + window.electron.ipcRenderer.invoke('window-close'); + } + + const minimize = () => { + console.info("MINIMIZE"); + window.electron.ipcRenderer.invoke('window-minimize'); + } + + return { + toggle, + minimize, + close + } +} \ No newline at end of file diff --git a/app/hooks/useWindowFocus.ts b/app/hooks/useWindowFocus.ts new file mode 100644 index 0000000..4371ce5 --- /dev/null +++ b/app/hooks/useWindowFocus.ts @@ -0,0 +1,25 @@ +import { useEffect, useState } from "react"; + +export function useWindowFocus() { + const [isFocused, setIsFocused] = useState(document.hasFocus()); + + function handleFocus() { + setIsFocused(true); + } + + function handleBlur() { + setIsFocused(false); + } + + useEffect(() => { + window.addEventListener('focus', handleFocus); + window.addEventListener('blur', handleBlur); + + return () => { + window.removeEventListener('focus', handleFocus); + window.removeEventListener('blur', handleBlur); + }; + }, []); + + return isFocused; +} \ No newline at end of file diff --git a/app/hooks/useWindowState.ts b/app/hooks/useWindowState.ts new file mode 100644 index 0000000..1bc156f --- /dev/null +++ b/app/hooks/useWindowState.ts @@ -0,0 +1,39 @@ +import { useEffect, useState } from "react"; + +interface WindowState { + isMinimized: boolean; + isMaximized: boolean; + isFullScreen: boolean; + isVisible: boolean; + isFocused: boolean; + isResizable: boolean; + isClosable: boolean; + isDestroyed: boolean; + bounds: any; +} + +export function useWindowState() : WindowState { + const [windowState, setWindowState] = useState({ + isMinimized: false, + isMaximized: false, + isFullScreen: false, + isVisible: false, + isFocused: false, + isResizable: false, + isClosable: false, + isDestroyed: false, + bounds: {} + }); + useEffect(() => { + window.electron.ipcRenderer.on('window-state-changed', () => { + window.electron.ipcRenderer.invoke('window-state').then((state) => { + setWindowState(state); + }); + }); + window.electron.ipcRenderer.invoke('window-state').then((state) => { + setWindowState(state); + }); + }, []); + + return windowState; +} \ No newline at end of file diff --git a/app/index.d.ts b/app/index.d.ts new file mode 100644 index 0000000..b481fe0 --- /dev/null +++ b/app/index.d.ts @@ -0,0 +1,30 @@ +/// + +declare module '*.css' { + const content: { [className: string]: string }; + export default content; +} +declare module '*.png' { + const content: string + export default content +} + +declare module '*.jpg' { + const content: string + export default content +} + +declare module '*.jpeg' { + const content: string + export default content +} + +declare module '*.svg' { + const content: string + export default content +} + +declare module '*.web' { + const content: string + export default content +} diff --git a/app/providers/.DS_Store b/app/providers/.DS_Store new file mode 100644 index 0000000..f1ef3b0 Binary files /dev/null and b/app/providers/.DS_Store differ diff --git a/app/providers/AccountProvider/AccountProvider.tsx b/app/providers/AccountProvider/AccountProvider.tsx new file mode 100644 index 0000000..d8e4aff --- /dev/null +++ b/app/providers/AccountProvider/AccountProvider.tsx @@ -0,0 +1,148 @@ +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { createContext, useEffect, useState } from "react"; + +export interface AccountBase { + publicKey: string; + privateKey: string; + seedPhraseEncrypted: string; +} + +export interface Account extends AccountBase { + privatePlain: string; + privateHash: string; +} + +export interface AccountContextValue { + allAccounts: AccountBase[]; + loginedAccount: Account; + loginAccount: (account : Account) => void; + createAccount: (account : Account) => void; + loginDiceAccount: AccountBase; + accountProviderLoaded: boolean; + removeAccountFromLoginDice: () => void; + removeAccountsFromArrayOfAccounts: (accountBase : AccountBase) => void; + selectAccountToLoginDice: (accountBase : AccountBase) => void; + setAccounts: (accounts: AccountBase[]) => void; +} + +export const AccountContext = createContext({}); + +interface AccountProviderProps { + children: React.ReactNode; +} + +export function AccountProvder(props : AccountProviderProps){ + const {allQuery, runQuery} = useDatabase(); + const [accounts, setAccounts] = useState([]); + const [loginDice, setLoginDice] = useState({ + publicKey: "", + privateKey: "", + seedPhraseEncrypted: "" + }); + const [account, setAccount] = useState({ + publicKey: "", + privatePlain: "", + privateKey: "", + privateHash: "", + seedPhraseEncrypted: "" + }); + const [loaded, setLoaded] = useState(false); + const {info} = useConsoleLogger("AccountProvider"); + + useEffect(() => { + loadAllAccountFromDb(); + }, []); + + useEffect(() => { + if(!loaded){ + return; + } + loadLastLoginDice(); + }, [accounts, loaded]); + + const loadLastLoginDice = () => { + console.info("2"); + let publicKey = localStorage.getItem("last_logined_account"); + if(!publicKey && accounts.length <= 0){ + console.info("1"); + return; + } + if(!publicKey && accounts.length > 0){ + console.info(accounts); + setLoginDice(accounts[0]); + return; + } + for(let i = 0; i < accounts.length; i++){ + let accountBase = accounts[i]; + if(accountBase.publicKey == publicKey){ + setLoginDice(accountBase); + return; + } + } + /** + * Если last_logined_account плохой - то убираем этот аккаунт + */ + removeAccountFromLoginDice(); + } + + const removeAccountsFromArrayOfAccounts = (accountBase : AccountBase) => { + setAccounts((prev) => prev.filter((v) => v.publicKey !== accountBase.publicKey)); + } + + const loadAllAccountFromDb = async () => { + const result = await allQuery("SELECT * FROM `accounts`"); + let resultSet : AccountBase[] = []; + for(let i = 0; i < result.length; i++){ + let acc = result[i]; + resultSet.push({ + publicKey: acc.public_key, + privateKey: acc.private_key, + seedPhraseEncrypted: acc.sfen + }); + } + setAccounts(resultSet); + setLoaded(true); + } + + const loginAccount = (account : Account) => { + info("Logging in account with public key: " + account.publicKey); + setAccount(account); + } + + const createAccount = (account : Account) => { + runQuery("INSERT INTO accounts (public_key, private_key, sfen) VALUES (?, ?, ?)", [account.publicKey, account.privateKey, account.seedPhraseEncrypted]); + //maybe set state accounts + } + + const selectAccountToLoginDice = (accountBase: AccountBase) => { + setLoginDice(accountBase); + localStorage.setItem("last_logined_account", accountBase.publicKey); + } + + const removeAccountFromLoginDice = () => { + setLoginDice({ + publicKey: "", + privateKey: "", + seedPhraseEncrypted: "" + }); + localStorage.removeItem("last_logined_account"); + } + + return ( + + {loaded && (props.children)} + + ) +} \ No newline at end of file diff --git a/app/providers/AccountProvider/useAccount.ts b/app/providers/AccountProvider/useAccount.ts new file mode 100644 index 0000000..3bc8dd1 --- /dev/null +++ b/app/providers/AccountProvider/useAccount.ts @@ -0,0 +1,28 @@ +import { useContext } from "react"; +import { Account, AccountContext, AccountContextValue } from "./AccountProvider"; +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; + +export function useAccount() : [ + Account, () => void +] { + const {runQuery} = useDatabase(); + const context : AccountContextValue = useContext(AccountContext); + if(!context){ + throw new Error("useAccount must be used within a AccountProvider"); + } + + const deleteAccount = () => { + runQuery("DELETE FROM `accounts` WHERE `public_key` = ?", [context.loginedAccount.publicKey]) + context.removeAccountsFromArrayOfAccounts(context.loginedAccount); + context.loginAccount({ + privateHash: "", + privatePlain: "", + publicKey: "", + privateKey: "", + seedPhraseEncrypted: "" + }); + localStorage.removeItem("last_logined_account"); + } + + return [context.loginedAccount, deleteAccount]; +} \ No newline at end of file diff --git a/app/providers/AccountProvider/useAccountProvider.tsx b/app/providers/AccountProvider/useAccountProvider.tsx new file mode 100644 index 0000000..bd8821b --- /dev/null +++ b/app/providers/AccountProvider/useAccountProvider.tsx @@ -0,0 +1,11 @@ +import { useContext } from "react"; +import { AccountContext, AccountContextValue } from "./AccountProvider"; + +export function useAccountProvider() : AccountContextValue { + const context : AccountContextValue = useContext(AccountContext); + if(!context){ + throw new Error("useAccountProvider must be used within a AccountProvider"); + } + + return context; +} \ No newline at end of file diff --git a/app/providers/AccountProvider/useLastLoginedAccount.ts b/app/providers/AccountProvider/useLastLoginedAccount.ts new file mode 100644 index 0000000..80b6625 --- /dev/null +++ b/app/providers/AccountProvider/useLastLoginedAccount.ts @@ -0,0 +1,25 @@ +import { useEffect, useState } from "react"; + +export function useLastLoginedAccount() : [ + string, + (publicKey: string) => void +] { + const [lastLoginedAccount, setLastLogginedAccount] = + useState(""); + + useEffect(() => { + let publicKey = + localStorage.getItem("last_logined_account"); + if(!publicKey){ + return; + } + setLastLogginedAccount(publicKey); + }, []); + + const setLastLogin = (publicKey: string) => { + localStorage.setItem("last_logined_account", publicKey); + setLastLogginedAccount(publicKey); + } + + return [lastLoginedAccount, setLastLogin]; +} \ No newline at end of file diff --git a/app/providers/AccountProvider/useLogout.ts b/app/providers/AccountProvider/useLogout.ts new file mode 100644 index 0000000..331a414 --- /dev/null +++ b/app/providers/AccountProvider/useLogout.ts @@ -0,0 +1,29 @@ +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { useMemoryClean } from "../MemoryProvider/useMemoryClean"; +import { useAccountProvider } from "./useAccountProvider"; +import { useDialogsList } from "../DialogListProvider/useDialogsList"; +import { useProtocol } from "../ProtocolProvider/useProtocol"; + +export function useLogout() { + const {loginAccount} = useAccountProvider(); + const {info} = useConsoleLogger('useLogout'); + const memClean = useMemoryClean(); + const {setDialogs} = useDialogsList(); + const {protocol} = useProtocol(); + + const logout = () => { + info("Logging out from account"); + memClean(); + loginAccount({ + publicKey: "", + privateKey: "", + seedPhraseEncrypted: "", + privatePlain: "", + privateHash: "" + }); + setDialogs([]); + protocol.close(); + } + + return logout; +} \ No newline at end of file diff --git a/app/providers/AccountProvider/usePrivateKeyHash.ts b/app/providers/AccountProvider/usePrivateKeyHash.ts new file mode 100644 index 0000000..72903e9 --- /dev/null +++ b/app/providers/AccountProvider/usePrivateKeyHash.ts @@ -0,0 +1,13 @@ +import { useContext } from "react"; +import { AccountContext, AccountContextValue } from "./AccountProvider"; + +export function usePrivateKeyHash() { + const context : AccountContextValue = useContext(AccountContext); + if(!context){ + throw new Error("useAccount must be used within a AccountProvider"); + } + if(!context.loginedAccount){ + return ""; + } + return context.loginedAccount.privateHash; +} \ No newline at end of file diff --git a/app/providers/AccountProvider/usePrivatePlain.ts b/app/providers/AccountProvider/usePrivatePlain.ts new file mode 100644 index 0000000..f6c49f6 --- /dev/null +++ b/app/providers/AccountProvider/usePrivatePlain.ts @@ -0,0 +1,19 @@ +import { useContext } from "react"; +import { AccountContext, AccountContextValue } from "./AccountProvider"; + +/** + * This hook provides access to the private plain text of the logged-in account. + * Needs only for decrypting messages or attachments. + * Not send to server. + * @returns Private plain text for the logged-in account + */ +export function usePrivatePlain() { + const context : AccountContextValue = useContext(AccountContext); + if(!context){ + throw new Error("useAccount must be used within a AccountProvider"); + } + if(!context.loginedAccount){ + return ""; + } + return context.loginedAccount.privatePlain; +} \ No newline at end of file diff --git a/app/providers/AccountProvider/usePublicKey.ts b/app/providers/AccountProvider/usePublicKey.ts new file mode 100644 index 0000000..77c213c --- /dev/null +++ b/app/providers/AccountProvider/usePublicKey.ts @@ -0,0 +1,13 @@ +import { useContext } from "react"; +import { AccountContext, AccountContextValue } from "./AccountProvider"; + +export function usePublicKey() { + const context : AccountContextValue = useContext(AccountContext); + if(!context){ + throw new Error("useAccount must be used within a AccountProvider"); + } + if(!context.loginedAccount){ + return ""; + } + return context.loginedAccount.publicKey; +} \ No newline at end of file diff --git a/app/providers/AttachmentProvider/useAttachment.ts b/app/providers/AttachmentProvider/useAttachment.ts new file mode 100644 index 0000000..fe25a0a --- /dev/null +++ b/app/providers/AttachmentProvider/useAttachment.ts @@ -0,0 +1,198 @@ +import { useContext, useEffect, useState } from "react"; +import { useDownloadStatus } from "../TransportProvider/useDownloadStatus"; +import { useUploadStatus } from "../TransportProvider/useUploadStatus"; +import { useFileStorage } from "../../hooks/useFileStorage"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { usePrivatePlain } from "../AccountProvider/usePrivatePlain"; +import { decodeWithPassword, encodeWithPassword, generateMd5 } from "../../crypto/crypto"; +import { useTransport } from "../TransportProvider/useTransport"; +import { useDialogsCache } from "../DialogProvider/useDialogsCache"; +import { useConsoleLogger } from "../../hooks/useConsoleLogger"; +import { Attachment, AttachmentType } from "../ProtocolProvider/protocol/packets/packet.message"; +import { useMemory } from "../MemoryProvider/useMemory"; +import { DialogContext } from "../DialogProvider/DialogProvider"; +import { useSaveAvatar } from "../AvatarProvider/useSaveAvatar"; +import { AVATAR_PASSWORD_TO_ENCODE } from "@/app/constants"; +import { useDialog } from "../DialogProvider/useDialog"; + +export enum DownloadStatus { + DOWNLOADED, + NOT_DOWNLOADED, + PENDING, + DECRYPTING, + DOWNLOADING, + ERROR +} + +export function useAttachment(attachment: Attachment, keyPlain: string) { + const uuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/; + const uploadedPercentage = useUploadStatus(attachment.id); + const downloadPercentage = useDownloadStatus(attachment.id); + const [downloadStatus, setDownloadStatus] = useMemory("attachment-downloaded-status-" + attachment.id, DownloadStatus.PENDING, true); + const [downloadTag, setDownloadTag] = useState(""); + const {readFile, writeFile} = useFileStorage(); + const { downloadFile } = useTransport(); + const publicKey = usePublicKey(); + const privatePlain = usePrivatePlain(); + const {updateAttachmentInDialogCache} = useDialogsCache(); + const {info} = useConsoleLogger('useAttachment'); + const {updateAttachmentsInMessagesByAttachmentId} = useDialog(); + + + const context = useContext(DialogContext); + if(!context) { + throw new Error("useAttachment must be used within a DialogProvider"); + } + const {dialog} = context; + const saveAvatar = useSaveAvatar(); + + useEffect(() => { + calcDownloadStatus(); + }, []); + + const getPreview = () => { + if(attachment.preview.split("::")[0].match(uuidRegex)){ + /** + * Это тег загрузки + */ + return attachment.preview.split("::").splice(1).join("::"); + } + return attachment.preview; + } + + const calcDownloadStatus = async () => { + if(attachment.preview.split("::")[0].match(uuidRegex)){ + /** + * Это тег загрузки + */ + setDownloadTag(attachment.preview.split("::")[0]); + } + if(!attachment.preview.split("::")[0].match(uuidRegex)){ + /** + * Там не тег загрузки, значит это наш файл + */ + setDownloadStatus(DownloadStatus.DOWNLOADED); + return; + } + if (downloadStatus == DownloadStatus.DOWNLOADED) { + return; + } + if(attachment.type == AttachmentType.FILE){ + /** + * Если это файл, то он хранится не в папке медиа, + * а в загрузках + */ + const preview = getPreview(); + const filename = preview.split("::")[1]; + let pathInDownloads = window.downloadsPath + "/Rosetta Downloads/" + filename; + const fileData = await readFile(pathInDownloads, false); + if(fileData){ + setDownloadStatus(DownloadStatus.DOWNLOADED); + return; + } + setDownloadStatus(DownloadStatus.NOT_DOWNLOADED); + return; + } + if(attachment.type == AttachmentType.AVATAR){ + /** + * Если это аватар, то он хранится не в папке медиа, + * а в папке аватарок + */ + const fileData = await readFile(`a/${await generateMd5(attachment.id + publicKey)}`); + if(fileData){ + setDownloadStatus(DownloadStatus.DOWNLOADED); + return; + } + setDownloadStatus(DownloadStatus.NOT_DOWNLOADED); + return; + } + + const fileData = await readFile(`m/${await generateMd5(attachment.id + publicKey)}`); + if(fileData){ + setDownloadStatus(DownloadStatus.DOWNLOADED); + return; + } + setDownloadStatus(DownloadStatus.NOT_DOWNLOADED); + } + + const getBlob = async () => { + if(attachment.blob && attachment.blob != ""){ + return attachment.blob; + } + const folder = (attachment.type == AttachmentType.AVATAR) ? "a" : "m"; + const fileData = await readFile(`${folder}/${await generateMd5(attachment.id + publicKey)}`); + if (!fileData) { + return ""; + } + const password = (attachment.type == AttachmentType.AVATAR) ? AVATAR_PASSWORD_TO_ENCODE : privatePlain; + const decryptedData = await decodeWithPassword(password, Buffer.from(fileData, 'binary').toString()); + return decryptedData; + } + + const download = async () => { + if(downloadStatus == DownloadStatus.DOWNLOADED){ + return; + } + if (downloadTag == "") { + return; + } + setDownloadStatus(DownloadStatus.DOWNLOADING); + info("Downloading attachment: " + downloadTag); + let downloadedBlob = ''; + try { + downloadedBlob = await downloadFile(attachment.id, + downloadTag); + } catch (e) { + console.info(e); + info("Error downloading attachment: " + attachment.id); + setDownloadStatus(DownloadStatus.ERROR); + return; + } + setDownloadStatus(DownloadStatus.DECRYPTING); + //console.info("Decrypted attachment ", Buffer.from(keyPlain, 'binary').toString('hex')); + const decrypted = await decodeWithPassword(keyPlain, downloadedBlob); + setDownloadTag(""); + if(attachment.type == AttachmentType.FILE) { + /** + * Если это файл то шифрованную копию не пишем, + * пишем его сразу в загрузки + */ + const preview = getPreview(); + const filename = preview.split("::")[1]; + let buffer = Buffer.from(decrypted.split(",")[1], 'base64'); + let pathInDownloads = window.downloadsPath + "/Rosetta Downloads/" + filename; + await writeFile(pathInDownloads, buffer, false); + setDownloadStatus(DownloadStatus.DOWNLOADED); + return; + } + if(attachment.type == AttachmentType.AVATAR) { + /** + * Аватарки, пишем их в папку аватарок + */ + const avatarPath = `a/${await generateMd5(attachment.id + publicKey)}`; + await writeFile(avatarPath, + Buffer.from(await encodeWithPassword(AVATAR_PASSWORD_TO_ENCODE, decrypted))); + setDownloadStatus(DownloadStatus.DOWNLOADED); + saveAvatar(dialog, avatarPath, decrypted); + return; + } + /** + * Если это не файл, то обновляем состояние кэша, + * и пишем шифрованную копию + */ + updateAttachmentInDialogCache(attachment.id, decrypted); + updateAttachmentsInMessagesByAttachmentId(attachment.id, decrypted); + await writeFile(`m/${await generateMd5(attachment.id + publicKey)}`, + Buffer.from(await encodeWithPassword(privatePlain, decrypted)).toString('binary')); + setDownloadStatus(DownloadStatus.DOWNLOADED); + } + + return { + uploadedPercentage, + downloadPercentage, + downloadStatus, + getPreview, + getBlob, + download + }; +} \ No newline at end of file diff --git a/app/providers/AvatarProvider/AvatarProvider.tsx b/app/providers/AvatarProvider/AvatarProvider.tsx new file mode 100644 index 0000000..de3e3de --- /dev/null +++ b/app/providers/AvatarProvider/AvatarProvider.tsx @@ -0,0 +1,223 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { createContext, useEffect, useRef, useState } from "react"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { useFileStorage } from "@/app/hooks/useFileStorage"; +import { decodeWithPassword, encodeWithPassword, generateMd5 } from "@/app/crypto/crypto"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { useSystemAccounts } from "../SystemAccountsProvider/useSystemAccounts"; +import { AVATAR_PASSWORD_TO_ENCODE } from "@/app/constants"; + +export const AvatarContext = createContext({}); + +interface AvatarProviderProps { + children: React.ReactNode; +} + +export interface AvatarInformation { + avatar: string; + timestamp: number; +} + +interface AvatarCacheEntry { + publicKey: string; + avatars: AvatarInformation[]; +} + +export function AvatarProvider(props : AvatarProviderProps) { + const {runQuery, allQuery} = useDatabase(); + const publicKey = usePublicKey(); + const [deliveredAvatars, setDeliveredAvatars] = + useState([]); + const {readFile, writeFile} = useFileStorage(); + const loadCacheRunningRef = useRef([]); + const { error } = useConsoleLogger("AvatarProvider"); + const systemAccounts = useSystemAccounts(); + /** + * Дополнительный кэширующий слой для декодированных аватарок, + * чтобы не декодировать их каждый раз из базы данных. + */ + const [decodedAvatarsCache, setDecodedAvatarsCache] = useState([]); + + useEffect(() => { + loadSystemAvatars(); + }, []); + + useEffect(() => { + syncAvatarDeliveryWithLocalDb(); + }, [publicKey]); + + const saveAvatar = async (fromPublicKey: string, path : string, decryptedContent : string) => { + const timestamp = Date.now(); + await runQuery("INSERT INTO `avatar_cache` (public_key, avatar, timestamp) VALUES (?, ?, ?)", + [fromPublicKey, path, timestamp]); + setDecodedAvatarsCache((prev) => { + const existingEntry = prev.find(e => e.publicKey === fromPublicKey); + if(existingEntry){ + return prev.map(e => { + if(e.publicKey === fromPublicKey){ + return { + publicKey: fromPublicKey, + avatars: [{ + avatar: decryptedContent, + timestamp, + }, ...e.avatars] + } + } + return e; + }); + } else { + return [...prev, { + publicKey: fromPublicKey, + avatars: [{ + avatar: decryptedContent, + timestamp, + }] + }]; + } + }); + } + + const loadSystemAvatars = async () => { + let avatarCacheEntrys : AvatarCacheEntry[] = []; + for(let i = 0; i < systemAccounts.length; i++){ + let account = systemAccounts[i]; + avatarCacheEntrys.push({ + publicKey: account.publicKey, + avatars: [{ + avatar: account.avatar, + timestamp: Date.now(), + }] + }); + } + setDecodedAvatarsCache((prev) => { + return [...prev, ...avatarCacheEntrys]; + }); + } + + const syncAvatarDeliveryWithLocalDb = async () => { + const result = await allQuery("SELECT * FROM `avatar_delivery` WHERE account = ?", [publicKey]); + for(let i = 0; i < result.length; i++){ + let publicKey = result[i].public_key; + setDeliveredAvatars((prev) => [...prev, publicKey]); + } + } + + const loadAvatarsFromCacheByPublicKey = async (publicKey : string, allDecode : boolean = true) => { + if(loadCacheRunningRef.current.indexOf(publicKey) !== -1){ + return; + } + loadCacheRunningRef.current.push(publicKey); + const result = await allQuery("SELECT * FROM `avatar_cache` WHERE public_key = ? ORDER BY timestamp DESC", [publicKey]); + if(result.length == 0){ + loadCacheRunningRef.current = loadCacheRunningRef.current.filter(pk => pk !== publicKey); + return; + } + if( + decodedAvatarsCache.find(e => e.publicKey === publicKey) && + (decodedAvatarsCache.find(e => e.publicKey === publicKey)?.avatars.length == result.length || !allDecode) + ){ + loadCacheRunningRef.current = loadCacheRunningRef.current.filter(pk => pk !== publicKey); + return; + } + let avatars : AvatarInformation[] = []; + for(let i = 0; i < result.length; i++){ + let file = await readFile(result[i].avatar); + if(!file){ + error("Avatar file not found: " + result[i].avatar); + await runQuery("DELETE FROM `avatar_cache` WHERE avatar = ?", [result[i].avatar]); + continue; + } + let decodedAvatar = ""; + try{ + decodedAvatar = await decodeWithPassword(AVATAR_PASSWORD_TO_ENCODE, + Buffer.from(file, 'binary').toString() + ); + }catch(e){ + error("Failed to decode avatar from file: " + result[i].avatar); + await runQuery("DELETE FROM `avatar_cache` WHERE avatar = ?", [result[i].avatar]); + continue; + } + avatars.push({ + avatar: decodedAvatar, + timestamp: result[i].timestamp, + }); + if(!allDecode){ + break; + } + } + setDecodedAvatarsCache((prev) => { + const existingEntry = prev.find(e => e.publicKey === publicKey); + if(existingEntry){ + let nextState = prev.map(e => { + if(e.publicKey === publicKey){ + return { + publicKey: publicKey, + avatars: avatars + } + } + return e; + }); + return [...nextState]; + } else { + return [...prev, { + publicKey: publicKey, + avatars: avatars + }]; + } + }); + loadCacheRunningRef.current = loadCacheRunningRef.current.filter(pk => pk !== publicKey); + } + + /** + * Change the avatar for a specific entity + * @param base64Image The base64 encoded image + * @param entity The entity to change the avatar for (groupId or publicKey) + */ + const changeAvatar = async (base64Image : string, entity : string) => { + const timestamp = Date.now(); + const avatarPath = `a/${await generateMd5(base64Image + entity)}`; + const encodedForStorage = await encodeWithPassword(AVATAR_PASSWORD_TO_ENCODE, base64Image); + await writeFile(avatarPath, Buffer.from(encodedForStorage, 'binary')); + await runQuery("INSERT INTO `avatar_cache` (public_key, avatar, timestamp) VALUES (?, ?, ?)", + [entity, avatarPath, timestamp]); + + setDecodedAvatarsCache((prev) => { + const existingEntry = prev.find(e => e.publicKey === entity); + if(existingEntry){ + let nextState = prev.map(e => { + if(e.publicKey === entity){ + return { + publicKey: entity, + avatars: [{ + avatar: base64Image, + timestamp, + }, ...e.avatars] + } + } + return e; + }); + return [...nextState]; + } else { + return [...prev, { + publicKey: entity, + avatars: [{ + avatar: base64Image, + timestamp, + }] + }]; + } + }); + } + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/AvatarProvider/useAvatarDelivery.ts b/app/providers/AvatarProvider/useAvatarDelivery.ts new file mode 100644 index 0000000..d83ab92 --- /dev/null +++ b/app/providers/AvatarProvider/useAvatarDelivery.ts @@ -0,0 +1,10 @@ +import { useContext } from "react"; +import { AvatarContext } from "./AvatarProvider"; + +export function useAvatarDelivery(publicKey: string) { + const context : any = useContext(AvatarContext); + if (!context) { + throw new Error("useAvatarDelivery must be used within an AvatarProvider"); + } + return [context.deliveredAvatars.includes(publicKey), context.laterAvatarDelivery.bind(context), context.sendMyAvatarTo.bind(context)]; +} \ No newline at end of file diff --git a/app/providers/AvatarProvider/useAvatars.ts b/app/providers/AvatarProvider/useAvatars.ts new file mode 100644 index 0000000..3d65a41 --- /dev/null +++ b/app/providers/AvatarProvider/useAvatars.ts @@ -0,0 +1,15 @@ +import { useContext } from "react"; +import { AvatarContext, AvatarInformation } from "./AvatarProvider"; + +export function useAvatars(publicKey: string, allDecode: boolean = false) : AvatarInformation[] { + const context : any = useContext(AvatarContext); + if(!context){ + throw new Error("useAvatars must be used within an AvatarProvider"); + } + /** + * Load avatar to cache + */ + context.loadAvatarsFromCacheByPublicKey(publicKey, allDecode); + + return context.decodedAvatarsCache.find((entry: any) => entry.publicKey === publicKey)?.avatars || []; +} \ No newline at end of file diff --git a/app/providers/AvatarProvider/useChangeAvatar.ts b/app/providers/AvatarProvider/useChangeAvatar.ts new file mode 100644 index 0000000..7280df5 --- /dev/null +++ b/app/providers/AvatarProvider/useChangeAvatar.ts @@ -0,0 +1,10 @@ +import { useContext } from "react"; +import { AvatarContext } from "./AvatarProvider"; + +export function useAvatarChange() { + const context : any = useContext(AvatarContext); + if(!context){ + throw new Error("useAvatarChange must be used within an AvatarProvider"); + } + return context.changeAvatar; +} \ No newline at end of file diff --git a/app/providers/AvatarProvider/useSaveAvatar.ts b/app/providers/AvatarProvider/useSaveAvatar.ts new file mode 100644 index 0000000..b9ba0db --- /dev/null +++ b/app/providers/AvatarProvider/useSaveAvatar.ts @@ -0,0 +1,10 @@ +import { useContext } from "react"; +import { AvatarContext } from "./AvatarProvider"; + +export function useSaveAvatar() { + const context : any = useContext(AvatarContext); + if(!context){ + throw new Error("useSaveAvatar must be used within an AvatarProvider"); + } + return context.saveAvatar; +} \ No newline at end of file diff --git a/app/providers/BlacklistProvider/BlacklistProvider.tsx b/app/providers/BlacklistProvider/BlacklistProvider.tsx new file mode 100644 index 0000000..8d7d9b6 --- /dev/null +++ b/app/providers/BlacklistProvider/BlacklistProvider.tsx @@ -0,0 +1,54 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import React, { createContext, useEffect, useState } from "react"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; + +export const BlacklistContext = createContext({}); + +interface BlacklistProviderProps { + children: React.ReactNode; +} + +export function BlacklistProvider(props : BlacklistProviderProps) { + const [blocked, setBlocked] = useState([]); + const {runQuery, allQuery} = useDatabase(); + const myPublicKey = usePublicKey(); + + + useEffect(() => { + syncBlacklistWithLocalDb(); + }, [myPublicKey]); + + const syncBlacklistWithLocalDb = async () => { + const result = await allQuery("SELECT * FROM `blacklist` WHERE account = ?", [myPublicKey]); + let publicKeysBlocked : string[] = []; + for(let i = 0; i < result.length; i++){ + let publicKey = result[i].public_key; + publicKeysBlocked.push(publicKey); + } + setBlocked(publicKeysBlocked); + } + + const blockUser = (publicKey : string) => { + setBlocked((prev) => [...prev, publicKey]); + runQuery("INSERT INTO `blacklist` (public_key, account) VALUES (?, ?)", [publicKey, myPublicKey]); + } + + const unblockUser = (publicKey : string) => { + setBlocked((prev) => prev.filter(item => item != publicKey)); + runQuery("DELETE FROM `blacklist` WHERE `public_key` = ? AND `account` = ?", [publicKey, myPublicKey]); + } + + const isUserBlocked = (publicKey : string) => { + return blocked.includes(publicKey); + } + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/BlacklistProvider/useBlacklist.ts b/app/providers/BlacklistProvider/useBlacklist.ts new file mode 100644 index 0000000..a022599 --- /dev/null +++ b/app/providers/BlacklistProvider/useBlacklist.ts @@ -0,0 +1,30 @@ +import { useContext } from "react"; +import { BlacklistContext } from "./BlacklistProvider"; + +export function useBlacklist(publicKey : string) : [ + boolean, + () => void, + () => void +] { + const context = useContext(BlacklistContext); + if(!context){ + throw new Error("useBlacklist must be used within a BlacklistProvider"); + } + + const {isUserBlocked, blockUser, unblockUser} = context; + const blocked = isUserBlocked(publicKey); + + const block = () => { + blockUser(publicKey); + } + + const unblock = () => { + unblockUser(publicKey); + } + + return [ + blocked, + block, + unblock + ] +} \ No newline at end of file diff --git a/app/providers/ContextMenuProvider/ContextMenuProvider.tsx b/app/providers/ContextMenuProvider/ContextMenuProvider.tsx new file mode 100644 index 0000000..c5d4008 --- /dev/null +++ b/app/providers/ContextMenuProvider/ContextMenuProvider.tsx @@ -0,0 +1,164 @@ +import { Box, Menu } from "@mantine/core"; +import { createContext, useEffect, useState } from "react"; + +interface ContextMenuProviderContextType { + openContextMenu: ( + items : ContextMenuItem[], + noRenderStandardItems?: boolean, noRenderDisabledItems?: boolean) => void; +} + +export const ContextMenuContext = createContext(null); + +interface ContextMenuProviderProps { + children: React.ReactNode; +} + +export interface ContextMenuItem { + label: string; + action: () => void; + icon: React.ReactNode; + cond?: () => boolean | Promise; + __reserved_prerender_condition?: boolean; +} + +const standardMenuItems: ContextMenuItem[] = []; + +const animationDelay = 40; + +export function ContextMenuProvider(props : ContextMenuProviderProps) { + const [coords, setCoords] = useState({ + x: 0, + y: 0 + }); + const [open, setOpen] = useState(false); + const [items, setItems] = useState([]); + const [noRenderStandardItems, setNoRenderStandardItems] = useState(false); + const [standardItemsReady, setStandardItemsReady] = useState([]); + + + + useEffect(() => { + document.removeEventListener('contextmenu', contextMenuHandler); + document.removeEventListener('click', clickHandler); + document.addEventListener('contextmenu',contextMenuHandler); + document.addEventListener('click', clickHandler); + return () => { + document.removeEventListener('contextmenu', contextMenuHandler); + document.removeEventListener('click', clickHandler); + } + }, [open]); + + useEffect(() => { + (async () => { + setStandardItemsReady(await translateConditionsToReservedField(standardMenuItems)); + })(); + }, [open]); + + const contextMenuHandler = (event) => { + event.preventDefault(); + setOpen(true); + setCoords({ + x: event.clientX, + y: event.clientY + }); + } + + const clickHandler = () => { + if(open){ + setOpen(false); + setTimeout(() => { + /** + * Ждем завершения анимации + */ + setItems([]); + }, animationDelay); + } + } + + const translateConditionsToReservedField = async (fromItems : ContextMenuItem[], noRenderDisabledItems: boolean = false) : Promise => { + const newItems: ContextMenuItem[] = []; + for(const item of fromItems){ + if(!item.cond){ + newItems.push({ + ...item, + __reserved_prerender_condition: true + }); + continue; + } + const condResult = await item.cond(); + if(!condResult && noRenderDisabledItems){ + continue; + } + newItems.push({ + ...item, + __reserved_prerender_condition: condResult + }); + } + return newItems; + } + + const openContextMenu = async ( + items : ContextMenuItem[], + noRenderStandardItems: boolean = false, + noRenderDisabledItems: boolean = false + ) => { + setItems(await translateConditionsToReservedField(items, noRenderDisabledItems)); + setNoRenderStandardItems(noRenderStandardItems); + setOpen(true); + } + + return ( + <> + + {standardItemsReady.length > 0 || items.length > 0 && ( + window.innerHeight - (items.concat(standardMenuItems).length * 45) ? (window.innerHeight - (items.concat(standardMenuItems).length * 45)) + 'px' : coords.y + 'px', + left: coords.x > window.innerWidth - 210 ? (window.innerWidth - 210) + 'px' : coords.x + 'px', + }}> + window.innerHeight - (items.concat(standardMenuItems).length * 45) ? (window.innerHeight - (items.concat(standardMenuItems).length * 45)) + 'px' : coords.y + 'px', + left: coords.x > window.innerWidth - 210 ? (window.innerWidth - 210) + 'px' : coords.x + 'px', + } + }} + width={150}> + + {items.map((item, index) => ( + { + item.action(); + setOpen(false); + }}> + {item.label} + + ))} + {items.length > 0 && !noRenderStandardItems && standardMenuItems.length > 0 && } + {!noRenderStandardItems && standardItemsReady.map((item, index) => ( + { + item.action(); + setOpen(false); + }}> + {item.label} + + ))} + + + + )} + {props.children} + + + ); +} \ No newline at end of file diff --git a/app/providers/ContextMenuProvider/useContextMenu.ts b/app/providers/ContextMenuProvider/useContextMenu.ts new file mode 100644 index 0000000..0b95231 --- /dev/null +++ b/app/providers/ContextMenuProvider/useContextMenu.ts @@ -0,0 +1,10 @@ +import { useContext } from "react"; +import { ContextMenuContext } from "./ContextMenuProvider"; + +export function useContextMenu() { + const context = useContext(ContextMenuContext); + if (!context) { + throw new Error('useContextMenu must be used within a ContextMenuProvider'); + } + return context.openContextMenu; +} \ No newline at end of file diff --git a/app/providers/DatabaseProvider/DatabaseProvider.tsx b/app/providers/DatabaseProvider/DatabaseProvider.tsx new file mode 100644 index 0000000..28c17f5 --- /dev/null +++ b/app/providers/DatabaseProvider/DatabaseProvider.tsx @@ -0,0 +1,34 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { useEffect, useState } from "react"; +import { createContext } from "react"; +import { TABLES } from "./tables"; + +export const DatabaseContext = createContext({}); + +interface DatabaseProviderProps { + children: React.ReactNode; +} + +export function DatabaseProvider(props: DatabaseProviderProps) { + const [initialized, setInitialized] = useState(false); + const {runQuery} = useDatabase(); + + useEffect(() => { + (async () => { + await createAllTables(); + setInitialized(true); + })(); + }, []); + + const createAllTables = async () => { + for(let i = 0; i < TABLES.length; i++){ + await runQuery(TABLES[i]); + } + } + + return ( + + {initialized && props.children} + + ); +} \ No newline at end of file diff --git a/app/providers/DatabaseProvider/tables.ts b/app/providers/DatabaseProvider/tables.ts new file mode 100644 index 0000000..b5e30c9 --- /dev/null +++ b/app/providers/DatabaseProvider/tables.ts @@ -0,0 +1,77 @@ +export const TABLES = [ + `CREATE TABLE IF NOT EXISTS accounts ( + public_key TEXT PRIMARY KEY, + private_key TEXT NOT NULL, + sfen TEXT NOT NULL, + UNIQUE (public_key) + )`, + + `CREATE TABLE IF NOT EXISTS blacklist ( + id INTEGER PRIMARY KEY, + public_key TEXT NOT NULL, + account TEXT NOT NULL + )`, + + `CREATE TABLE IF NOT EXISTS avatar_delivery ( + id INTEGER PRIMARY KEY, + public_key TEXT NOT NULL, + account TEXT NOT NULL + )`, + + `CREATE TABLE IF NOT EXISTS avatar_cache ( + id INTEGER PRIMARY KEY, + public_key TEXT, + avatar TEXT NOT NULL, + timestamp INTEGER NOT NULL, + UNIQUE (id) + )`, + + `CREATE TABLE IF NOT EXISTS messages ( + id INTEGER PRIMARY KEY, + account TEXT NOT NULL, + from_public_key TEXT NOT NULL, + to_public_key BLOB NOT NULL, + content BLOB NOT NULL, + timestamp INTEGER NOT NULL, + chacha_key BLOB NOT NULL, + read INTEGER NOT NULL DEFAULT 0, + from_me INTEGER NOT NULL DEFAULT 0, + delivered INTEGER NOT NULL DEFAULT 0, + message_id TEXT NOT NULL DEFAULT '', + plain_message BLOB NOT NULL, + attachments TEXT NOT NULL DEFAULT '[]', + UNIQUE (id) + )`, + + `CREATE TABLE IF NOT EXISTS cached_users ( + public_key TEXT PRIMARY KEY, + title TEXT NOT NULL, + username TEXT NOT NULL, + verified INTEGER NOT NULL DEFAULT 0, + UNIQUE (public_key) + )`, + + `CREATE TABLE IF NOT EXISTS groups ( + id INTEGER PRIMARY KEY, + account TEXT NOT NULL, + group_id TEXT NOT NULL, + title TEXT NOT NULL, + description TEXT NOT NULL, + key TEXT NOT NULL, + UNIQUE (id) + )`, + /** + * dialog_id can be a public key for individual chats or a group ID for group chats + * last_message encoded with private key of the account + * last_message_from is the public key of the sender + */ + `CREATE TABLE IF NOT EXISTS dialogs ( + id INTEGER PRIMARY KEY, + account TEXT NOT NULL, + dialog_id TEXT NOT NULL, + last_message_id TEXT NOT NULL, + last_timestamp INTEGER NOT NULL, + is_request INTEGER NOT NULL DEFAULT 0, + UNIQUE (id) + )` +] \ No newline at end of file diff --git a/app/providers/DatabaseProvider/useDatabase.ts b/app/providers/DatabaseProvider/useDatabase.ts new file mode 100644 index 0000000..cb44f9d --- /dev/null +++ b/app/providers/DatabaseProvider/useDatabase.ts @@ -0,0 +1,38 @@ +export function useDatabase() { + + const buildDebug = (query: string, params: any[]) => { + console.info("-----------------"); + //build final query + let finalQuery = query; + params.forEach((param) => { + let value = param; + if(typeof param === 'string'){ + value = `'${param}'`; + } + finalQuery = finalQuery.replace('?', value); + }); + console.info("Final Query: ", finalQuery); + console.info("-----------------"); + } + + const runQuery = async (query: string, params: any[] = []) => { + return await window.electron.ipcRenderer.invoke('db:run', query, params); + }; + + const getQuery = async (query: string, params: any[] = []) => { + return await window.electron.ipcRenderer.invoke('db:get', query, params); + }; + + const allQuery = async (query: string, params: any[] = [], debug: boolean = false) => { + if(debug){ + buildDebug(query, params); + } + return await window.electron.ipcRenderer.invoke('db:all', query, params); + }; + + return { + runQuery, + getQuery, + allQuery, + }; +} \ No newline at end of file diff --git a/app/providers/DeviceProvider/DeviceProvider.tsx b/app/providers/DeviceProvider/DeviceProvider.tsx new file mode 100644 index 0000000..dca79c5 --- /dev/null +++ b/app/providers/DeviceProvider/DeviceProvider.tsx @@ -0,0 +1,78 @@ +import { decodeWithPassword, encodeWithPassword } from "@/app/crypto/crypto"; +import { useFileStorage } from "@/app/hooks/useFileStorage"; +import { generateRandomKey } from "@/app/utils/utils"; +import { createContext, useEffect, useState } from "react"; + +interface DeviceProviderContextValue { + deviceId: string; +} + +export const DeviceProviderContext = createContext(null); + +interface DeviceProviderProps { + children?: React.ReactNode; +} + +export function DeviceProvider(props: DeviceProviderProps) { + const [deviceId, setDeviceId] = useState(""); + const {writeFile, readFile} = useFileStorage(); + + useEffect(() => { + fetchDeviceId(); + }, []); + + const fetchDeviceId = async () => { + const device = await readFile("device"); + if(device){ + const decoded = await decodeDevice(Buffer.from(device).toString('utf-8')); + if(decoded){ + setDeviceId(decoded); + return; + } + } + await createDeviceId(); + } + + const createDeviceId = async () => { + const newDevice = generateRandomKey(128); + const encoded = await encodeDevice(newDevice); + await writeFile("device", encoded); + setDeviceId(newDevice); + } + + const decodeDevice = async (data: string) => { + const hwid = window.deviceId; + const platform = window.deviceName; + const salt = "rosetta-device-salt"; + + try { + const decoded = await decodeWithPassword(hwid + platform + salt, data); + return decoded; + } catch (e) { + console.error("Failed to decode device data:", e); + return null; + } + } + + const encodeDevice = async (data: string) => { + const hwid = window.deviceId; + const platform = window.deviceName; + const salt = "rosetta-device-salt"; + + try { + const encoded = await encodeWithPassword(hwid + platform + salt, data); + return encoded; + } catch (e) { + console.error("Failed to encode device data:", e); + return null; + } + } + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/DeviceProvider/useDeviceId.ts b/app/providers/DeviceProvider/useDeviceId.ts new file mode 100644 index 0000000..309bdc8 --- /dev/null +++ b/app/providers/DeviceProvider/useDeviceId.ts @@ -0,0 +1,11 @@ +import { useContext } from "react"; +import { DeviceProviderContext } from "./DeviceProvider"; + +export function useDeviceId(): string { + const context = useContext(DeviceProviderContext); + if(!context) { + throw new Error("useDeviceId must be used within a DeviceProvider"); + } + + return context.deviceId; +} \ No newline at end of file diff --git a/app/providers/DialogListProvider/DialogListProvider.tsx b/app/providers/DialogListProvider/DialogListProvider.tsx new file mode 100644 index 0000000..7013abc --- /dev/null +++ b/app/providers/DialogListProvider/DialogListProvider.tsx @@ -0,0 +1,210 @@ +import { createContext, useCallback, useContext, useEffect, useState } from "react"; +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { DIALOG_DROP_TO_REQUESTS_IF_NO_MESSAGES_FROM_ME_COUNT } from "@/app/constants"; +import { useQueue } from "@/app/hooks/useQueue"; +import { useSystemAccounts } from "../SystemAccountsProvider/useSystemAccounts"; +import { DialogStateContext } from "../DialogStateProvider.tsx/DialogStateProvider"; + + +interface DialogListContextValue { + dialogs: DialogRow[]; + setDialogs: (dialogs: DialogRow[]) => void; + updateDialog: (dialog_id: string) => void; + loadingDialogs: number; //if > 0 then loading +} + +export const DialogListContext = createContext(null); + +interface DialogListProviderProps { + children: React.ReactNode; +} + +export interface DialogRow { + dialog_id: string; + last_message_id: string; + last_timestamp: number; //timestamp update + last_message_timestamp: number; //message timestamp + is_request: boolean; + /** + * Закреплен ли диалог + */ + pinned?: boolean; +} + +export function DialogListProvider(props : DialogListProviderProps) { + const [dialogs, setDialogs] = useState([]); + const {info} = useConsoleLogger('DialogListProvider'); + const { allQuery, getQuery, runQuery } = useDatabase(); + const publicKey = usePublicKey(); + const { inProcess, addToQueue, removeFromQueue, queue } = useQueue(); + const systemAccounts = useSystemAccounts(); + const { pinned } = useContext(DialogStateContext)!; + const [loadingDialogs, setLoadingDialogs] = useState(0); + + useEffect(() => { + initialLoadingFromDatabase(); + }, [publicKey]); + + useEffect(() => { + //console.info(pinned); + setDialogs((prevDialogs) => { + const newDialogs = prevDialogs.map(d => { + return { + ...d, + pinned: pinned.includes(d.dialog_id) + } + }); + return newDialogs.sort((a, b) => + a.pinned === b.pinned ? + b.last_message_timestamp - a.last_message_timestamp + : (b.pinned ? 1 : 0) - (a.pinned ? 1 : 0)); + }); + }, [pinned]); + + const initialLoadingFromDatabase = async () => { + if(publicKey == ''){ + return; + } + const rows = await allQuery(`SELECT * FROM dialogs WHERE account = ? ORDER BY last_timestamp DESC`, [publicKey]); + const loadedDialogs: DialogRow[] = rows.map((row: any) => { + /** + * Если диалог системный (бот, канал и т.д.), то он не может быть запросом + */ + const isRequest = row.is_request + && !systemAccounts.some(acc => acc.publicKey === row.dialog_id); + + return { + dialog_id: row.dialog_id, + last_message_id: row.last_message_id, + last_timestamp: Date.now(), + is_request: isRequest, + last_message_timestamp: row.last_timestamp, + pinned: pinned.includes(row.dialog_id), + } + }); + const prepartedDialogsForBatching = loadedDialogs.sort((a, b) => a.pinned === b.pinned ? b.last_message_timestamp - a.last_message_timestamp : (b.pinned ? 1 : 0) - (a.pinned ? 1 : 0)); + + if(prepartedDialogsForBatching.length > 0){ + /** + * Показываем индикатор загрузки, потому что + * есть баг с отрисовкой большого количества диалогов сразу + * TODO: найти причину бага и исправить + * UI блокируется на время отрисовки большого количества диалогов + * не надо так))) + */ + setLoadingDialogs(prepartedDialogsForBatching.length); + setTimeout(() => { + setLoadingDialogs(0); + setDialogs(prepartedDialogsForBatching); + }, 100); + } + + info(`Loaded ${loadedDialogs.length} dialogs from database.`); + } + + /** + * Обновляет информацию о диалоге в общем списке диалогов + * @param dialog_id id диалога в формате public_key или #group:group_id + * @returns + */ + const updateDialog = useCallback(async (dialog_id: string) => { + if(inProcess(dialog_id)){ + info(`Dialog ${dialog_id} is already being processed, skipping update.`); + setTimeout(() => { + /** + * Попытка обновить диалог еще раз, чтобы избежать гонки + */ + updateDialog(dialog_id); + }, 100); + return; + } + addToQueue(dialog_id); + let last_message : any = null; + if(dialog_id.startsWith('#group:')){ + last_message = await getQuery(`SELECT * FROM messages + WHERE to_public_key = ? + AND account = ? + ORDER BY timestamp + DESC LIMIT 1`, [dialog_id, publicKey]); + }else{ + last_message = await getQuery(`SELECT * FROM messages + WHERE ((from_public_key = ? AND to_public_key = ?) OR (from_public_key = ? AND to_public_key = ?)) + AND account = ? + ORDER BY timestamp + DESC LIMIT 1`, [dialog_id, publicKey, publicKey, dialog_id, publicKey]); + } + let dialogsWithId = await getQuery(`SELECT COUNT(*) as count FROM dialogs WHERE dialog_id = ? AND account = ?`, [dialog_id, publicKey]); + + if(!last_message && dialogsWithId.count > 0){ + setDialogs((prevDialogs) => { + const filteredDialogs = prevDialogs.filter(d => d.dialog_id !== dialog_id); + return filteredDialogs.sort((a, b) => + a.pinned === b.pinned ? + b.last_message_timestamp - a.last_message_timestamp + : (b.pinned ? 1 : 0) - (a.pinned ? 1 : 0));; + }); + info(`Delete dialog ${dialog_id} as it has no messages.`); + await runQuery(`DELETE FROM dialogs WHERE dialog_id = ? AND account = ?`, [dialog_id, publicKey]); + removeFromQueue(dialog_id); + return; + } + + if(!last_message){ + info(`No messages found for dialog ${dialog_id}, skipping update.`); + removeFromQueue(dialog_id); + return; + } + + let messagesFromMeCount = await getQuery(`SELECT COUNT(*) as count FROM messages + WHERE ( + (from_public_key = ? AND to_public_key = ?) + OR + (from_public_key = ? AND to_public_key = ?) + ) + AND from_public_key = ? + AND account = ? ORDER BY timestamp DESC LIMIT ?`, + [dialog_id, publicKey, publicKey, dialog_id, publicKey, publicKey, DIALOG_DROP_TO_REQUESTS_IF_NO_MESSAGES_FROM_ME_COUNT]); + + const updatedDialog: DialogRow = { + dialog_id: dialog_id, + last_message_id: last_message.message_id, + last_timestamp: Date.now(), + is_request: messagesFromMeCount.count <= 0 && !systemAccounts.some(acc => acc.publicKey === dialog_id), + last_message_timestamp: last_message.timestamp, + pinned: pinned.includes(dialog_id) + }; + + + // Обновляем состояние диалога в базе + if(dialogsWithId.count > 0){ + await runQuery(`UPDATE dialogs SET last_message_id = ?, last_timestamp = ?, is_request = ? WHERE dialog_id = ? AND account = ?`, [updatedDialog.last_message_id, updatedDialog.last_message_timestamp, updatedDialog.is_request, dialog_id, publicKey]); + }else{ + await runQuery(`INSERT INTO dialogs (dialog_id, last_message_id, last_timestamp, is_request, account) VALUES (?, ?, ?, ?, ?)`, [dialog_id, updatedDialog.last_message_id, updatedDialog.last_message_timestamp, updatedDialog.is_request, publicKey]); + } + + setDialogs((prevDialogs) => { + const filteredDialogs = prevDialogs.filter(d => d.dialog_id !== dialog_id); + const newDialogs = [updatedDialog, ...filteredDialogs]; + return newDialogs.sort((a, b) => + a.pinned === b.pinned ? + b.last_message_timestamp - a.last_message_timestamp + : (b.pinned ? 1 : 0) - (a.pinned ? 1 : 0)); + }); + removeFromQueue(dialog_id); + info(`Dialog ${dialog_id} updated.`); + }, [publicKey, queue, pinned, systemAccounts]); + + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/DialogListProvider/useDialogInfo.ts b/app/providers/DialogListProvider/useDialogInfo.ts new file mode 100644 index 0000000..7684874 --- /dev/null +++ b/app/providers/DialogListProvider/useDialogInfo.ts @@ -0,0 +1,88 @@ +import { useEffect, useState } from "react"; +import { DialogRow } from "./DialogListProvider"; +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { decodeWithPassword } from "@/app/crypto/crypto"; +import { constructLastMessageTextByAttachments } from "@/app/utils/constructLastMessageTextByAttachments"; +import { usePrivatePlain } from "../AccountProvider/usePrivatePlain"; +import { DeliveredMessageState, Message } from "../DialogProvider/DialogProvider"; + +/** + * Получает информацию о последнем сообщении в диалоге и количестве непрочитанных сообщений, + * работает как с групповыми диалогами, так и с личными. + * Последнее сообщение содержит расшифрованный текст в поле plain_message. + * @param row Диалог из списка диалогов + * @returns информация о последнем сообщении и количестве непрочитанных сообщений + */ +export function useDialogInfo(row : DialogRow) : { + lastMessage: Message; + unreaded: number; + loading: boolean; +} { + const {getQuery} = useDatabase(); + const publicKey = usePublicKey(); + const privatePlain = usePrivatePlain(); + const [lastMessage, setLastMessage] = useState({ + from_public_key: '', + to_public_key: '', + content: '', + timestamp: 0, + chacha_key: '', + readed: 0, + from_me: 0, + delivered: DeliveredMessageState.WAITING, + message_id: '', + plain_message: '', + attachments: [], + }); + const [unreaded, setUnreaded] = useState(0); + + useEffect(() => { + loadLastMessageInfo(); + }, [row.last_timestamp]); + + const loadLastMessageInfo = async () => { + let message = await getQuery(`SELECT * FROM messages WHERE message_id = ? AND account = ? LIMIT 1`, [row.last_message_id, publicKey]); + if(!message){ + return; + } + + let lastMessage = ''; + try{ + lastMessage = await decodeWithPassword(privatePlain, message.plain_message); + }catch(e){ + lastMessage = constructLastMessageTextByAttachments(message.attachments); + } + + setLastMessage({ + ...message, + plain_message: lastMessage, + attachments: JSON.parse(message.attachments), + }); + let unreadedCount = { + count: 0 + }; + if(row.dialog_id.startsWith('#group:')){ + unreadedCount = await getQuery(` + SELECT COUNT(*) as count + FROM messages + WHERE read = 0 + AND to_public_key = ? + AND account = ?`, [row.dialog_id, publicKey]); + }else{ + unreadedCount = await getQuery(` + SELECT COUNT(*) as count + FROM messages + WHERE read = 0 + AND ((from_public_key = ? AND to_public_key = ?) OR (from_public_key = ? AND to_public_key = ?)) + AND account = ?`, [publicKey, row.dialog_id, row.dialog_id, publicKey, publicKey]); + } + setUnreaded(unreadedCount.count); + } + + return { + lastMessage, + unreaded, + loading: lastMessage.message_id == '', + } +} \ No newline at end of file diff --git a/app/providers/DialogListProvider/useDialogsList.ts b/app/providers/DialogListProvider/useDialogsList.ts new file mode 100644 index 0000000..4278409 --- /dev/null +++ b/app/providers/DialogListProvider/useDialogsList.ts @@ -0,0 +1,17 @@ +import { useContext } from "react"; +import { DialogListContext } from "./DialogListProvider"; + +export function useDialogsList() { + const context = useContext(DialogListContext); + if(!context){ + throw new Error("useDialogList must be call in DialogListProvider"); + } + const {dialogs, updateDialog, setDialogs, loadingDialogs} = context; + + return { + dialogs, + updateDialog, + setDialogs, + loadingDialogs + }; +} \ No newline at end of file diff --git a/app/providers/DialogProvider/DialogProvider.tsx b/app/providers/DialogProvider/DialogProvider.tsx new file mode 100644 index 0000000..ae649c8 --- /dev/null +++ b/app/providers/DialogProvider/DialogProvider.tsx @@ -0,0 +1,836 @@ +import { chacha20Decrypt, decodeWithPassword, decrypt, encodeWithPassword, generateMd5 } from '@/app/crypto/crypto'; +import { useDatabase } from '@/app/providers/DatabaseProvider/useDatabase'; +import { createContext, useEffect, useRef, useState } from 'react'; +import { Attachment, AttachmentType, PacketMessage } from '@/app/providers/ProtocolProvider/protocol/packets/packet.message'; +import { usePrivatePlain } from '../AccountProvider/usePrivatePlain'; +import { usePublicKey } from '../AccountProvider/usePublicKey'; +import { PacketRead } from '@/app/providers/ProtocolProvider/protocol/packets/packet.read'; +import { usePrivateKeyHash } from '../AccountProvider/usePrivateKeyHash'; +import { useMemory } from '../MemoryProvider/useMemory'; +import { useBlacklist } from '../BlacklistProvider/useBlacklist'; +import { useLogger } from '@/app/hooks/useLogger'; +import { useSender } from '../ProtocolProvider/useSender'; +import { usePacket } from '../ProtocolProvider/usePacket'; +import { MAX_MESSAGES_LOAD, MESSAGE_MAX_LOADED, MESSAGE_MAX_TIME_TO_DELEVERED_S, TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD } from '@/app/constants'; +import { PacketDelivery } from '@/app/providers/ProtocolProvider/protocol/packets/packet.delivery'; +import { useIdle } from '@mantine/hooks'; +import { useWindowFocus } from '@/app/hooks/useWindowFocus'; +import { useDialogsCache } from './useDialogsCache'; +import { useConsoleLogger } from '@/app/hooks/useConsoleLogger'; +import { useViewPanelsState, ViewPanelsState } from '@/app/hooks/useViewPanelsState'; +import { generateRandomKeyFormSeed } from '@/app/utils/utils'; +import { MessageReply } from './useReplyMessages'; +import { useTransport } from '../TransportProvider/useTransport'; +import { useFileStorage } from '@/app/hooks/useFileStorage'; +import { useSystemAccounts } from '../SystemAccountsProvider/useSystemAccounts'; +import { useDialogsList } from '../DialogListProvider/useDialogsList'; +import { useGroups } from './useGroups'; +import { useMentions } from '../DialogStateProvider.tsx/useMentions'; + +export interface DialogContextValue { + loading: boolean; + messages: Message[]; + setMessages: (messages: React.SetStateAction) => void; + dialog: string; + clearDialogCache: () => void; + prepareAttachmentsToSend: (password: string, attachments: Attachment[]) => Promise; + loadMessagesToTop: () => Promise; + loadMessagesToMessageId: (messageId: string) => Promise; +} + +export const DialogContext = createContext(null); + +export enum DeliveredMessageState { + WAITING, + DELIVERED, + ERROR +} + +export interface AttachmentMeta { + id: string; + type: AttachmentType; + preview: string; +} + +export interface Message { + from_public_key: string; + to_public_key: string; + content: string; + timestamp: number; + readed: number; + chacha_key: string; + from_me: number; + plain_message: string; + delivered: DeliveredMessageState; + message_id: string; + attachments: Attachment[]; +} + +interface DialogProviderProps { + children: React.ReactNode; + dialog: string; +} + +export function DialogProvider(props: DialogProviderProps) { + const [messages, setMessages] = useState([]); + const {allQuery, runQuery} = useDatabase(); + const privatePlain = usePrivatePlain(); + const publicKey = usePublicKey(); + const privateKey = usePrivateKeyHash(); + const send = useSender(); + const [__, setCurrentDialogPublicKeyView] = useMemory("current-dialog-public-key-view", "", true); + const log = useLogger('DialogProvider'); + const [blocked] = useBlacklist(props.dialog) + const lastMessageTimeRef = useRef(0); + const idle = useIdle(TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD * 1000); + const focus = useWindowFocus(); + const [loading, setLoading] = useState(false); + const {getDialogCache, addOrUpdateDialogCache, dialogsCache, setDialogsCache} = useDialogsCache(); + const {info, warn, error} = useConsoleLogger('DialogProvider'); + const [viewState] = useViewPanelsState(); + const {uploadFile} = useTransport(); + const {readFile} = useFileStorage(); + const intervalsRef = useRef(null); + const systemAccounts = useSystemAccounts(); + const {updateDialog} = useDialogsList(); + const {hasGroup, getGroupKey} = useGroups(); + const {popMention, isMentioned} = useMentions(); + + + useEffect(() => { + setCurrentDialogPublicKeyView(props.dialog); + return () => { + setCurrentDialogPublicKeyView(""); + } + }, [props.dialog]); + + useEffect(() => { + if(props.dialog == "demo"){ + return; + } + if(idle){ + return; + } + (async () => { + if(hasGroup(props.dialog)){ + await runQuery(`UPDATE messages SET read = 1 WHERE to_public_key = ? AND account = ? AND read != 1 AND from_public_key != ?`, [props.dialog, publicKey, publicKey]); + }else{ + await runQuery(`UPDATE messages SET read = 1 WHERE ((from_public_key = ? AND to_public_key = ?) OR (from_public_key = ? AND to_public_key = ?)) AND account = ? AND read != 1 AND from_me = 0`, [props.dialog, publicKey, publicKey, props.dialog, publicKey]); + } + updateDialog(props.dialog); + })(); + }, [idle, props.dialog]); + + useEffect(() => { + if(props.dialog == "demo"){ + return; + } + setMessages([]); + if(props.dialog == "" + || privatePlain == "") { + return; + } + (async () => { + let dialogCacheEntry = getDialogCache(props.dialog); + if(dialogCacheEntry.length > 0){ + const messagesToLoadFromCache = dialogCacheEntry.slice(-MESSAGE_MAX_LOADED); + setMessages(messagesToLoadFromCache); + info("Loading messages for " + props.dialog + " from cache"); + setLoading(false); + if(hasGroup(props.dialog)){ + await runQuery(`UPDATE messages SET read = 1 WHERE to_public_key = ? AND account = ? AND read != 1 AND from_public_key != ?`, [props.dialog, publicKey, publicKey]); + }else{ + await runQuery(`UPDATE messages SET read = 1 WHERE ((from_public_key = ? AND to_public_key = ?) OR (from_public_key = ? AND to_public_key = ?)) AND account = ? AND read != 1 AND from_me = 0`, [props.dialog, publicKey, publicKey, props.dialog, publicKey]); + } + if(isMentioned(props.dialog)){ + /** + * Удаляем упоминания потому что мы только что загрузили + * диалог из кэша, может быть в нем есть упоминания + */ + for(let i = 0; i < messagesToLoadFromCache.length; i++){ + const message = messagesToLoadFromCache[i]; + popMention({ + dialog_id: props.dialog, + message_id: message.message_id + }); + } + } + updateDialog(props.dialog); + return; + } + info("Loading messages for " + props.dialog + " from database"); + setLoading(true); + let result: any[] = []; + if (props.dialog != publicKey) { + if(hasGroup(props.dialog)){ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE (to_public_key = ?) AND account = ? ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [props.dialog, publicKey, MAX_MESSAGES_LOAD]); + }else{ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE (from_public_key = ? OR to_public_key = ?) AND (from_public_key = ? OR to_public_key = ?) AND account = ? ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [props.dialog, props.dialog, publicKey, publicKey, publicKey, MAX_MESSAGES_LOAD]); + } + } else { + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE from_public_key = ? AND to_public_key = ? AND account = ? ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [publicKey, publicKey, publicKey, MAX_MESSAGES_LOAD]); + } + await runQuery(`UPDATE messages SET read = 1 WHERE ((from_public_key = ? AND to_public_key = ?) OR (from_public_key = ? AND to_public_key = ?)) AND account = ? AND read != 1 AND from_me = 0`, [props.dialog, publicKey, publicKey, props.dialog, publicKey]); + const finalMessages : Message[] = []; + let readUpdated = false; + for(let i = 0; i < result.length; i++){ + const message = result[i]; + if(message.read != 1 && !readUpdated){ + readUpdated = true; + } + let decryptKey = ''; + if(message.from_me){ + /** + * Если сообщение от меня, то ключ расшифровки для вложений + * не нужен, передаем пустую строку, так как под капотом + * в MessageAttachment.tsx при расшифровке вложений используется + * локальный ключ, а не тот что в сообщении, так как файл и так находится + * у нас локально + */ + decryptKey = ''; + } + if(hasGroup(props.dialog)){ + /** + * Если это групповое сообщение, то получаем ключ группы + */ + decryptKey = await getGroupKey(props.dialog); + } + if(!message.from_me && !hasGroup(props.dialog)){ + /** + * Если сообщение не от меня и не групповое, + * расшифровываем ключ чачи своим приватным ключом + */ + console.info("Decrypting chacha key for message"); + decryptKey = Buffer.from(await decrypt(message.chacha_key, privatePlain), "binary").toString('utf-8'); + } + finalMessages.push({ + from_public_key: message.from_public_key, + to_public_key: message.to_public_key, + content: "__ENCRYPTED__", + timestamp: message.timestamp, + readed: message.read || message.from_public_key == message.to_public_key, + chacha_key: decryptKey, + from_me: message.from_me, + plain_message: await loadMessage(message.plain_message), + delivered: message.delivered, + message_id: message.message_id, + attachments: await loadAttachments(message.attachments) + }); + if(isMentioned(props.dialog)){ + /** + * Если мы были упомянуты в этом диалоге, то убираем упоминание, + * так как мы только что загрузили это сообщение + */ + popMention({ + dialog_id: props.dialog, + message_id: message.message_id + }); + } + + } + if(readUpdated){ + updateDialog(props.dialog); + } + setMessages(finalMessages); + setLoading(false); + })(); + }, [props.dialog]); + + useEffect(() => { + if(props.dialog == "demo"){ + return; + } + if(!messages || messages.length == 0){ + return; + } + addOrUpdateDialogCache(props.dialog, messages); + }, [props.dialog, messages]) + + useEffect(() => { + if(props.dialog == publicKey || messages.length == 0 + || blocked + || idle + || lastMessageTimeRef.current == messages[messages.length - 1].timestamp + || !focus){ + return; + } + if(viewState == ViewPanelsState.DIALOGS_PANEL_ONLY){ + /** + * Если мы сейчас видим только диалоги + * то сообщение мы не читаем + */ + return; + } + if(systemAccounts.find(acc => acc.publicKey == props.dialog)){ + /** + * Системные аккаунты не отмечаем как прочитанные + */ + return; + } + const readPacket = new PacketRead(); + readPacket.setFromPublicKey(publicKey); + readPacket.setToPublicKey(props.dialog); + readPacket.setPrivateKey(privateKey); + send(readPacket); + log("Send read packet to " + props.dialog); + info("Send read packet"); + lastMessageTimeRef.current = messages[messages.length - 1].timestamp; + }, [props.dialog, viewState, focus, messages, blocked, idle]); + + usePacket(0x07, async (packet : PacketRead) => { + info("Read packet received in dialog provider"); + const fromPublicKey = packet.getFromPublicKey(); + if(hasGroup(props.dialog)){ + /** + * Для групп обработка чтения есть ниже + */ + return; + } + if(fromPublicKey != props.dialog && !idle){ + return; + } + setMessages((prev) => prev.map((msg) => { + if(msg.from_public_key == publicKey && !msg.readed){ + return { + ...msg, + readed: 1 + } + } + return msg; + })); + //updateDialog(props.dialog); + }, [idle, props.dialog]); + + usePacket(0x07, async (packet : PacketRead) => { + info("Read packet received in dialog provider"); + //const fromPublicKey = packet.getFromPublicKey(); + const toPublicKey = packet.getToPublicKey(); + if(!hasGroup(props.dialog)){ + /** + * Для личных сообщений обработка чтения выше + */ + return; + } + if(toPublicKey != props.dialog && !idle){ + return; + } + setMessages((prev) => prev.map((msg) => { + if(msg.from_public_key == publicKey && !msg.readed){ + return { + ...msg, + readed: 1 + } + } + return msg; + })); + //updateDialog(props.dialog); + }, [idle, props.dialog]); + + usePacket(0x08, async (packet : PacketDelivery) => { + info("Delivery packet received in dialog provider"); + const fromPublicKey = packet.getToPublicKey(); + const messageId = packet.getMessageId(); + if(fromPublicKey != props.dialog){ + return; + } + setMessages((prev) => prev.map((msg) => { + if(msg.message_id == messageId && msg.delivered != DeliveredMessageState.DELIVERED){ + return { + ...msg, + delivered: DeliveredMessageState.DELIVERED, + timestamp: Date.now() + } + } + return msg; + })); + }, [props.dialog]); + + /** + * Обработчик для личных сообщений + */ + usePacket(0x06, async (packet: PacketMessage) => { + const fromPublicKey = packet.getFromPublicKey(); + const toPublicKey = packet.getToPublicKey(); + + if(hasGroup(props.dialog)){ + /** + * Если это групповое сообщение, то для него есть + * другой обработчик ниже + */ + return; + } + if(fromPublicKey != props.dialog || toPublicKey != publicKey){ + console.info("From " + fromPublicKey + " to " + props.dialog + " ignore"); + return; + } + if(blocked){ + warn("Message from blocked user, ignore " + fromPublicKey); + log("Message from blocked user, ignore " + fromPublicKey); + return; + } + + + const content = packet.getContent(); + const chachaKey = packet.getChachaKey(); + const timestamp = packet.getTimestamp(); + + /** + * Генерация рандомного ID сообщения по SEED нужна для того, + * чтобы сообщение записанное здесь в стек сообщений совпадало + * с тем что записывается в БД в файле useDialogFiber.ts + */ + const messageId = generateRandomKeyFormSeed(16, fromPublicKey + toPublicKey + timestamp.toString()); + const chachaDecryptedKey = Buffer.from( + await decrypt(chachaKey, privatePlain), + "binary"); + const key = chachaDecryptedKey.slice(0, 32); + const nonce = chachaDecryptedKey.slice(32); + const decryptedContent = await chacha20Decrypt(content, nonce.toString('hex'), key.toString('hex')); + + + let attachments: Attachment[] = []; + for(let i = 0; i < packet.getAttachments().length; i++) { + const attachment = packet.getAttachments()[i]; + attachments.push({ + id: attachment.id, + preview: attachment.preview, + type: attachment.type, + blob: attachment.type == AttachmentType.MESSAGES ? await decodeWithPassword(chachaDecryptedKey.toString('utf-8'), attachment.blob) : "" + }); + } + + const newMessage : Message = { + from_public_key: fromPublicKey, + to_public_key: toPublicKey, + content: content, + timestamp: timestamp, + readed: idle ? 0 : 1, + chacha_key: chachaDecryptedKey.toString('utf-8'), + from_me: fromPublicKey == publicKey ? 1 : 0, + plain_message: (decryptedContent as string), + delivered: DeliveredMessageState.DELIVERED, + message_id: messageId, + attachments: attachments + }; + + setMessages((prev) => ([...prev, newMessage])); + }, [blocked, messages, idle, props.dialog]); + + /** + * Обработчик для групповых сообщений + */ + usePacket(0x06, async (packet: PacketMessage) => { + const fromPublicKey = packet.getFromPublicKey(); + const toPublicKey = packet.getToPublicKey(); + + if(toPublicKey != props.dialog){ + /** + * Исправление кросс диалогового сообщения + */ + return; + } + + if(!hasGroup(props.dialog)){ + /** + * Если это не групповое сообщение, то для него есть + * другой обработчик выше + */ + return; + } + const content = packet.getContent(); + const timestamp = packet.getTimestamp(); + /** + * Генерация рандомного ID сообщения по SEED нужна для того, + * чтобы сообщение записанное здесь в стек сообщений совпадало + * с тем что записывается в БД в файле useDialogFiber.ts + */ + const messageId = generateRandomKeyFormSeed(16, fromPublicKey + toPublicKey + timestamp.toString()); + + const groupKey = await getGroupKey(toPublicKey); + if(!groupKey){ + log("Group key not found for group " + toPublicKey); + error("Message dropped because group key not found for group " + toPublicKey); + return; + } + info("New group message packet received from " + fromPublicKey); + + let decryptedContent = ''; + + try{ + decryptedContent = await decodeWithPassword(groupKey, content); + }catch(e) { + decryptedContent = ''; + } + + let attachments: Attachment[] = []; + for(let i = 0; i < packet.getAttachments().length; i++) { + const attachment = packet.getAttachments()[i]; + attachments.push({ + id: attachment.id, + preview: attachment.preview, + type: attachment.type, + blob: attachment.type == AttachmentType.MESSAGES ? await decodeWithPassword(groupKey, attachment.blob) : "" + }); + } + + const newMessage : Message = { + from_public_key: fromPublicKey, + to_public_key: toPublicKey, + content: content, + timestamp: timestamp, + readed: idle ? 0 : 1, + chacha_key: groupKey, + from_me: fromPublicKey == publicKey ? 1 : 0, + plain_message: decryptedContent, + delivered: DeliveredMessageState.DELIVERED, + message_id: messageId, + attachments: attachments + }; + + setMessages((prev) => ([...prev, newMessage])); + }, [messages, idle, props.dialog]); + + /** + * Расшифровывает сообщение + * @param message Зашифрованное сообщение + * @returns Расшифрованное сообщение + */ + const loadMessage = async (message : string) => { + try{ + return await decodeWithPassword(privatePlain, message); + }catch(e){ + return ""; + } + } + + /** + * Загружает часть диалога где есть определенный message_id + */ + const loadMessagesToMessageId = async (messageId: string) => { + warn("Load messages to message ID " + messageId + " for " + props.dialog); + if(props.dialog == "DELETED" + || privatePlain == "") { + return; + } + let result : any[] = []; + if(props.dialog != publicKey){ + if(hasGroup(props.dialog)){ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE (to_public_key = ?) AND account = ? AND timestamp <= (SELECT timestamp FROM messages WHERE message_id = ? AND account = ?) ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [props.dialog, publicKey, messageId, publicKey, MAX_MESSAGES_LOAD]); + }else{ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE (from_public_key = ? OR to_public_key = ?) AND (from_public_key = ? OR to_public_key = ?) AND account = ? AND timestamp <= (SELECT timestamp FROM messages WHERE message_id = ? AND account = ?) ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [props.dialog, props.dialog, publicKey, publicKey, publicKey, messageId, publicKey, MAX_MESSAGES_LOAD]); + } + }else{ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE from_public_key = ? AND to_public_key = ? AND account = ? AND timestamp <= (SELECT timestamp FROM messages WHERE message_id = ? AND account = ?) ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [publicKey, publicKey, publicKey, messageId, publicKey, MAX_MESSAGES_LOAD]); + } + const finalMessages : Message[] = []; + for(let i = 0; i < result.length; i++){ + const message = result[i]; + let decryptKey = ''; + if(message.from_me){ + /** + * Если сообщение от меня, то ключ расшифровки для вложений + * не нужен, передаем пустую строку, так как под капотом + * в MessageAttachment.tsx при расшифровке вложений используется + * локальный ключ, а не тот что в сообщении, так как файл и так находится + * у нас локально + */ + decryptKey = ''; + } + if(hasGroup(props.dialog)){ + /** + * Если это групповое сообщение, то получаем ключ группы + */ + decryptKey = await getGroupKey(props.dialog); + } + if(!message.from_me && !hasGroup(props.dialog)){ + /** + * Если сообщение не от меня и не групповое, + * расшифровываем ключ чачи своим приватным ключом + */ + decryptKey = Buffer.from(await decrypt(message.chacha_key, privatePlain), "binary").toString('utf-8'); + } + finalMessages.push({ + from_public_key: message.from_public_key, + to_public_key: message.to_public_key, + content: "__ENCRYPTED__", + timestamp: message.timestamp, + readed: message.read || message.from_public_key == message.to_public_key || !message.from_me, + chacha_key: decryptKey, + from_me: message.from_me, + plain_message: await loadMessage(message.plain_message), + delivered: message.delivered, + message_id: message.message_id, + attachments: await loadAttachments(message.attachments) + }); + + if(isMentioned(props.dialog)){ + /** + * Если мы были упомянуты в этом диалоге, то убираем упоминание, + * так как мы только что загрузили это сообщение + */ + popMention({ + dialog_id: props.dialog, + message_id: message.message_id + }); + } + } + if(finalMessages.length == 0) { + return; + } + setMessages([...finalMessages]); + } + + /** + * Загружает сообщения в верх диалога, когда пользователь + * скроллит вверх и доскроллил до конца + * @returns + */ + const loadMessagesToTop = async () => { + warn("Load messages to top for " + props.dialog); + if(props.dialog == "DELETED" + || privatePlain == "") { + return; + } + let result : any[] = []; + if(props.dialog != publicKey){ + if(hasGroup(props.dialog)){ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE (to_public_key = ?) AND account = ? AND timestamp < ? ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [props.dialog, publicKey, messages.length > 0 ? messages[0].timestamp : Math.floor(Date.now() / 1000), MAX_MESSAGES_LOAD]); + }else{ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE (from_public_key = ? OR to_public_key = ?) AND (from_public_key = ? OR to_public_key = ?) AND account = ? AND timestamp < ? ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [props.dialog, props.dialog, publicKey, publicKey, publicKey, messages.length > 0 ? messages[0].timestamp : Math.floor(Date.now() / 1000), MAX_MESSAGES_LOAD]); + } + }else{ + result = await allQuery(` + SELECT * FROM (SELECT * FROM messages WHERE from_public_key = ? AND to_public_key = ? AND account = ? AND timestamp < ? ORDER BY timestamp DESC LIMIT ?) ORDER BY timestamp ASC + `, [publicKey, publicKey, publicKey, messages.length > 0 ? messages[0].timestamp : Math.floor(Date.now() / 1000), MAX_MESSAGES_LOAD]); + } + const finalMessages : Message[] = []; + for(let i = 0; i < result.length; i++){ + const message = result[i]; + let decryptKey = ''; + if(message.from_me){ + /** + * Если сообщение от меня, то ключ расшифровки для вложений + * не нужен, передаем пустую строку, так как под капотом + * в MessageAttachment.tsx при расшифровке вложений используется + * локальный ключ, а не тот что в сообщении, так как файл и так находится + * у нас локально + */ + decryptKey = ''; + } + if(hasGroup(props.dialog)){ + /** + * Если это групповое сообщение, то получаем ключ группы + */ + decryptKey = await getGroupKey(props.dialog); + } + if(!message.from_me && !hasGroup(props.dialog)){ + /** + * Если сообщение не от меня и не групповое, + * расшифровываем ключ чачи своим приватным ключом + */ + decryptKey = Buffer.from(await decrypt(message.chacha_key, privatePlain), "binary").toString('utf-8'); + } + finalMessages.push({ + from_public_key: message.from_public_key, + to_public_key: message.to_public_key, + content: "__ENCRYPTED__", + timestamp: message.timestamp, + readed: message.read || message.from_public_key == message.to_public_key || !message.from_me, + chacha_key: decryptKey, + from_me: message.from_me, + plain_message: await loadMessage(message.plain_message), + delivered: message.delivered, + message_id: message.message_id, + attachments: await loadAttachments(message.attachments) + }); + + if(isMentioned(props.dialog)){ + /** + * Если мы были упомянуты в этом диалоге, то убираем упоминание, + * так как мы только что загрузили это сообщение + */ + popMention({ + dialog_id: props.dialog, + message_id: message.message_id + }); + } + } + if(finalMessages.length == 0) { + return; + } + setMessages([...finalMessages, ...messages]); + } + + /** + * Загружает вложения из JSON строки. + * Если вложение не было загружено (то есть его нет на диске), + * то в blob кладется пустая строка, далее в useAttachment + * это отработается (загрузится превью вложение и появится возможность скачать и тд) + * @param jsonAttachments JSON вложений AttachmentMeta формат + * @returns Вложения + */ + const loadAttachments = async (jsonAttachments : string) : Promise => { + if(jsonAttachments == "[]") { + return []; + } + try { + const attachmentsMeta : AttachmentMeta[] = JSON.parse(jsonAttachments); + const attachments : Attachment[] = []; + for(const meta of attachmentsMeta) { + if(meta.type == AttachmentType.FILE){ + /** + * Все кроме файлов декодируем заранее + */ + attachments.push({ + ...meta, + blob: "" + }); + continue; + } + const fileData = await readFile(`m/${await generateMd5(meta.id + publicKey)}`); + if(!fileData) { + attachments.push({ + ...meta, + blob: "" + }); + continue; + } + const decrypted = await decodeWithPassword(privatePlain, Buffer.from(fileData, 'binary').toString()); + attachments.push({ + id: meta.id, + blob: decrypted, + type: meta.type, + preview: meta.preview + }); + } + return attachments; + }catch(e) { + error("Failed to parse attachments"); + } + return []; + } + + /** + * Обновляет временную метку в сообщении, пока вложения отправляются, + * потому что если этого не делать, то сообщение может быть помечено как + * не доставленное из-за таймаута доставки + * @param attachments Вложения + */ + const doTimestampUpdateImMessageWhileAttachmentsSend = (attachments : Attachment[]) => { + if(intervalsRef.current){ + clearInterval(intervalsRef.current); + } + intervalsRef.current = setInterval(() => { + //update timestamp in message to keep message marked as error + updateDialog(props.dialog); + setMessages((prev) => { + return prev.map((value) => { + if(value.attachments.length <= 0){ + return value; + } + if(value.attachments[0].id != attachments[0].id){ + return value; + } + runQuery("UPDATE messages SET timestamp = ? WHERE message_id = ?", [Date.now(), value.message_id]); + return { + ...value, + timestamp: Date.now() + }; + }) + }); + }, (MESSAGE_MAX_TIME_TO_DELEVERED_S / 2) * 1000); + } + + /** + * Удаляет старый тег если вложения были подготовлены заново + * например при пересылке сообщений + */ + const removeOldTagIfAttachemtnsRePreapred = (preview : string) => { + if(preview.indexOf("::") == -1){ + return preview; + } + let parts = preview.split("::"); + return parts.slice(1).join("::"); + } + + /** + * Подготавливает вложения для отправки. Подготовка + * состоит в загрузке файлов на транспортный сервер, мы не делаем + * это через WebSocket из-за ограничений по размеру сообщений, + * а так же из-за надежности доставки файлов через HTTP + * @param attachments Attachments to prepare for sending + */ + const prepareAttachmentsToSend = async (password: string, attachments : Attachment[], rePrepared : boolean = false) : Promise => { + if(attachments.length <= 0){ + return []; + } + let prepared : Attachment[] = []; + try{ + for(let i = 0; i < attachments.length; i++){ + const attachment : Attachment = attachments[i]; + if(attachment.type == AttachmentType.MESSAGES){ + let reply : MessageReply[] = JSON.parse(attachment.blob) + for(let j = 0; j < reply.length; j++){ + reply[j].attachments = await prepareAttachmentsToSend(password, reply[j].attachments, true); + } + prepared.push({ + ...attachment, + blob: await encodeWithPassword(password, JSON.stringify(reply)) + }); + continue; + } + doTimestampUpdateImMessageWhileAttachmentsSend(attachments); + const content = await encodeWithPassword(password, attachment.blob); + const upid = attachment.id; + info(`Uploading attachment with upid: ${upid}`); + info(`Attachment content length: ${content.length}`); + let tag = await uploadFile(upid, content); + info(`Uploaded attachment with upid: ${upid}, received tag: ${tag}`); + if(intervalsRef.current != null){ + clearInterval(intervalsRef.current); + } + prepared.push({ + ...attachment, + preview: tag + "::" + (rePrepared ? removeOldTagIfAttachemtnsRePreapred(attachment.preview) : attachment.preview), + blob: "" + }); + } + return prepared; + }catch(e){ + return prepared; + } + } + + return ( + { + setDialogsCache(dialogsCache.filter((cache) => cache.publicKey != props.dialog)); + }, + dialog: props.dialog, + prepareAttachmentsToSend, + loadMessagesToTop, + loadMessagesToMessageId + }}> + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/DialogProvider/useDialog.ts b/app/providers/DialogProvider/useDialog.ts new file mode 100644 index 0000000..ea6db23 --- /dev/null +++ b/app/providers/DialogProvider/useDialog.ts @@ -0,0 +1,242 @@ +import { useContext } from "react"; +import { useDatabase } from "../DatabaseProvider/useDatabase"; +import { chacha20Encrypt, encodeWithPassword, encrypt, generateMd5} from "../../crypto/crypto"; +import { AttachmentMeta, DeliveredMessageState, DialogContext, Message } from "./DialogProvider"; +import { Attachment, AttachmentType, PacketMessage } from "@/app/providers/ProtocolProvider/protocol/packets/packet.message"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { usePrivatePlain } from "../AccountProvider/usePrivatePlain"; +import { usePrivateKeyHash } from "../AccountProvider/usePrivateKeyHash"; +import { useSender } from "../ProtocolProvider/useSender"; +import { generateRandomKey } from "@/app/utils/utils"; +import { useFileStorage } from "@/app/hooks/useFileStorage"; +import { useDialogsList } from "../DialogListProvider/useDialogsList"; +import { useProtocolState } from "../ProtocolProvider/useProtocolState"; +import { ProtocolState } from "../ProtocolProvider/ProtocolProvider"; +import { useGroups } from "./useGroups"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; + +export function useDialog() : { + messages: Message[]; + sendMessage: (message: string, attachemnts : Attachment[]) => Promise; + deleteMessages: () => Promise; + loadMessagesToTop: (count?: number) => Promise; + deleteMessageById: (messageId: string) => Promise; + loading: boolean; + deleteSelectedMessages: (messageIds: string[]) => Promise; + dialog: string; + loadMessagesToMessageId: (messageId: string) => Promise; + updateAttachmentsInMessagesByAttachmentId: (attachmentId: string, blob: string) => Promise; +} { + const {runQuery} = useDatabase(); + const send = useSender(); + const context = useContext(DialogContext); + if(!context) { + throw new Error("useDialog must be used within a DialogProvider"); + } + const {loading, + messages, + prepareAttachmentsToSend, + clearDialogCache, + setMessages, + dialog, loadMessagesToTop, loadMessagesToMessageId} = context; + const {updateDialog} = useDialogsList(); + const publicKey = usePublicKey(); + const privateKey = usePrivateKeyHash(); + const privatePlain = usePrivatePlain(); + const {writeFile} = useFileStorage(); + const protocolState = useProtocolState(); + const {hasGroup, getGroupKey} = useGroups(); + const {warn} = useConsoleLogger('useDialog'); + + /** + * Отправка сообщения в диалог + * @param message Сообщение + * @param attachemnts Вложения + */ + const sendMessage = async (message: string, attachemnts : Attachment[]) => { + const messageId = generateRandomKey(16); + + let cahchaEncrypted = {ciphertext: "", key: "", nonce: ""} as any; + let key = Buffer.from(""); + let encryptedKey = ""; + let plainMessage = ""; + let content = ""; + + if(!hasGroup(dialog)){ + cahchaEncrypted = (await chacha20Encrypt(message.trim()) as any); + key = Buffer.concat([ + Buffer.from(cahchaEncrypted.key, "hex"), + Buffer.from(cahchaEncrypted.nonce, "hex")]); + encryptedKey = await encrypt(key.toString('binary'), dialog); + plainMessage = await encodeWithPassword(privatePlain, message.trim()); + content = cahchaEncrypted.ciphertext; + }else{ + /** + * Это группа, там шифрование устроено иначе + * для групп используется один общий ключ, который + * есть только у участников группы, сам ключ при этом никак + * не отправляется по сети (ведь ID у группы общий и у каждого + * и так есть этот ключ) + */ + const groupKey = await getGroupKey(dialog); + if(!groupKey){ + warn("Group key not found for dialog " + dialog); + return; + } + content = await encodeWithPassword(groupKey, message.trim()); + plainMessage = await encodeWithPassword(privatePlain, message.trim()); + encryptedKey = ""; // В группах не нужен зашифрованный ключ + key = Buffer.from(groupKey); + } + + /** + * Нужно зашифровать ключ еще и нашим ключом, + * чтобы в последствии мы могли расшифровать этот ключ у своих + * же сообщений (смотреть problem_sync.md) + */ + const aesChachaKey = await encodeWithPassword(privatePlain, key.toString('binary')); + + setMessages((prev : Message[]) => ([...prev, { + from_public_key: publicKey, + to_public_key: dialog, + content: content, + timestamp: Date.now(), + readed: publicKey == dialog ? 1 : 0, + chacha_key: "", + from_me: 1, + plain_message: message, + delivered: publicKey == dialog ? DeliveredMessageState.DELIVERED : DeliveredMessageState.WAITING, + message_id: messageId, + attachments: attachemnts + }])); + + + let attachmentsMeta : AttachmentMeta[] = []; + for(let i = 0; i < attachemnts.length; i++) { + const attachment = attachemnts[i]; + attachmentsMeta.push({ + id: attachment.id, + type: attachment.type, + preview: attachment.preview + }); + if(attachment.type == AttachmentType.FILE){ + /** + * Обычно вложения дублируются на диск. Так происходит со всем. + * Кроме файлов. Если дублировать файл весом в 2гб на диск отправка будет + * занимать очень много времени. + * К тому же, это приведет к созданию ненужной копии у отправителя + */ + continue; + } + writeFile(`m/${await generateMd5(attachment.id + publicKey)}`, Buffer.from(await encodeWithPassword(privatePlain, attachment.blob)).toString('binary')); + } + + await runQuery(` + INSERT INTO messages + (from_public_key, to_public_key, content, timestamp, read, chacha_key, from_me, plain_message, account, message_id, delivered, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [publicKey, dialog, content, Date.now(), publicKey == dialog ? 1 : 0, encryptedKey, 1, plainMessage, publicKey, messageId, publicKey == dialog ? DeliveredMessageState.DELIVERED : ( + protocolState != ProtocolState.CONNECTED ? DeliveredMessageState.ERROR : DeliveredMessageState.WAITING + ), JSON.stringify(attachmentsMeta)]); + updateDialog(dialog); + if(publicKey == "" + || dialog == "" + || publicKey == dialog) { + return; + } + + //98acbbc68f4b2449daf0a39d1b3eab9a3056da5d45b811bbc903e214c21d39643394980231e1a89c811830d870f3354184319665327ca8bd + console.info("Sending key for message ", key.toString('hex')); + let preparedToNetworkSendAttachements : Attachment[] = await prepareAttachmentsToSend(key.toString('utf-8'), attachemnts); + if(attachemnts.length <= 0 && message.trim() == ""){ + runQuery("UPDATE messages SET delivered = ? WHERE message_id = ?", [DeliveredMessageState.ERROR, messageId]); + updateDialog(dialog); + return; + } + const packet = new PacketMessage(); + packet.setFromPublicKey(publicKey); + packet.setToPublicKey(dialog); + packet.setContent(content); + packet.setChachaKey(encryptedKey); + packet.setPrivateKey(privateKey); + packet.setMessageId(messageId); + packet.setTimestamp(Date.now()); + packet.setAttachments(preparedToNetworkSendAttachements); + packet.setAesChachaKey(aesChachaKey); + send(packet); + } + + const deleteMessages = async () => { + if(!hasGroup(dialog)){ + await runQuery(` + DELETE FROM messages WHERE ((from_public_key = ? AND to_public_key = ?) OR (from_public_key = ? AND to_public_key = ?)) AND account = ? + `, [dialog, publicKey, publicKey, dialog, publicKey]); + }else{ + await runQuery(` + DELETE FROM messages WHERE to_public_key = ? AND account = ? + `, [dialog, publicKey]); + } + setMessages([]); + updateDialog(dialog); + clearDialogCache(); + } + + const deleteMessageById = async (messageId: string) => { + await runQuery(` + DELETE FROM messages WHERE message_id = ? AND account = ? + `, [messageId, publicKey]); + setMessages((prev) => prev.filter((msg) => msg.message_id !== messageId)); + updateDialog(dialog); + } + + const deleteSelectedMessages = async (messageIds: string[]) => { + if(messageIds.length == 0){ + return; + } + /** + * Old messages support, ignore empty IDs + * @since 0.1.7 all messages have IDs + */ + let idsNotEmpty = messageIds.filter(v => v.trim() != ""); + if(idsNotEmpty.length == 0){ + return; + } + + const placeholders = idsNotEmpty.map(() => '?').join(','); + await runQuery(` + DELETE FROM messages WHERE message_id IN (` +placeholders+ `) AND account = ? + `, [...idsNotEmpty, publicKey]); + setMessages((prev) => prev.filter((msg) => !messageIds.includes(msg.message_id))); + updateDialog(dialog); + } + + const updateAttachmentsInMessagesByAttachmentId = async (attachmentId: string, blob: string) => { + setMessages((prevMessages) => { + return prevMessages.map((msg) => { + let updated = false; + const updatedAttachments = msg.attachments.map((attachment) => { + if (attachment.id === attachmentId) { + updated = true; + return { + ...attachment, + blob: blob + }; + } + return attachment; + }); + if (updated) { + return { + ...msg, + attachments: updatedAttachments, + }; + } + return msg; + }); + }); + } + + return { + messages, + sendMessage, updateAttachmentsInMessagesByAttachmentId, deleteMessages, loadMessagesToTop, loadMessagesToMessageId, deleteMessageById, loading, deleteSelectedMessages, + dialog, + }; +} \ No newline at end of file diff --git a/app/providers/DialogProvider/useDialogFiber.ts b/app/providers/DialogProvider/useDialogFiber.ts new file mode 100644 index 0000000..c1da8a6 --- /dev/null +++ b/app/providers/DialogProvider/useDialogFiber.ts @@ -0,0 +1,499 @@ +import { useContext, useEffect } from "react"; +import { Attachment, AttachmentType, PacketMessage } from "../ProtocolProvider/protocol/packets/packet.message"; +import { usePacket } from "../ProtocolProvider/usePacket"; +import { BlacklistContext } from "../BlacklistProvider/BlacklistProvider"; +import { useLogger } from "@/app/hooks/useLogger"; +import { useMemory } from "../MemoryProvider/useMemory"; +import { useIdle } from "@mantine/hooks"; +import { useNotification } from "@/app/hooks/useNotification"; +import { useWindowFocus } from "@/app/hooks/useWindowFocus"; +import { MESSAGE_MAX_LOADED, TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD } from "@/app/constants"; +import { useDialogsCache } from "./useDialogsCache"; +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { usePrivatePlain } from "../AccountProvider/usePrivatePlain"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { chacha20Decrypt, decodeWithPassword, decrypt, encodeWithPassword, generateMd5 } from "@/app/crypto/crypto"; +import { DeliveredMessageState, Message } from "./DialogProvider"; +import { PacketRead } from "../ProtocolProvider/protocol/packets/packet.read"; +import { PacketDelivery } from "../ProtocolProvider/protocol/packets/packet.delivery"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { useViewPanelsState, ViewPanelsState } from "@/app/hooks/useViewPanelsState"; +import { generateRandomKeyFormSeed } from "@/app/utils/utils"; +import { useFileStorage } from "@/app/hooks/useFileStorage"; +import { useDialogsList } from "../DialogListProvider/useDialogsList"; +import { useGroups } from "./useGroups"; +import { useDialogState } from "../DialogStateProvider.tsx/useDialogState"; +import { useUserInformation } from "../InformationProvider/useUserInformation"; +import { useMentions } from "../DialogStateProvider.tsx/useMentions"; + +/** + * При вызове будет запущен "фоновый" обработчик + * входящих пакетов сообщений, который будет обрабатывать их и сохранять + * в базу данных в кэше или в базе данных + */ +export function useDialogFiber() { + const { blocked } = useContext(BlacklistContext); + const { runQuery } = useDatabase(); + const privatePlain = usePrivatePlain(); + const publicKey = usePublicKey(); + const log = useLogger('useDialogFiber'); + const [currentDialogPublicKeyView, _] = useMemory("current-dialog-public-key-view", "", true); + const idle = useIdle(TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD * 1000); + const notify = useNotification(); + const focused = useWindowFocus(); + const { getDialogCache, addOrUpdateDialogCache } = useDialogsCache(); + const {info, error} = useConsoleLogger('useDialogFiber'); + const [viewState] = useViewPanelsState(); + const {writeFile} = useFileStorage(); + const {updateDialog} = useDialogsList(); + const {hasGroup, getGroupKey, normalize} = useGroups(); + const {muted} = useDialogState(); + const [userInfo] = useUserInformation(publicKey); + const {pushMention} = useMentions(); + + /** + * Лог + */ + useEffect(() => { + info("Starting passive fiber for dialog packets"); + }, []); + + + /** + * Нам приходят сообщения от себя самих же при синхронизации + * нужно обрабатывать их особым образом соотвественно + */ + usePacket(0x06, async (packet: PacketMessage) => { + const fromPublicKey = packet.getFromPublicKey(); + const toPublicKey = packet.getToPublicKey(); + const aesChachaKey = packet.getAesChachaKey(); + const content = packet.getContent(); + const timestamp = packet.getTimestamp(); + const messageId = packet.getMessageId(); + + + if(fromPublicKey != publicKey){ + /** + * Игнорируем если это не сообщение от нас + */ + return; + } + + const chachaDecryptedKey = Buffer.from(await decodeWithPassword(privatePlain, aesChachaKey), "binary"); + const key = chachaDecryptedKey.slice(0, 32); + const nonce = chachaDecryptedKey.slice(32); + const decryptedContent = await chacha20Decrypt(content, nonce.toString('hex'), key.toString('hex')); + + let attachmentsMeta: any[] = []; + let messageAttachments: Attachment[] = []; + for (let i = 0; i < packet.getAttachments().length; i++) { + const attachment = packet.getAttachments()[i]; + log("Attachment received id " + attachment.id + " type " + attachment.type); + + let nextLength = messageAttachments.push({ + ...attachment, + blob: "" + }); + + if(attachment.type == AttachmentType.MESSAGES){ + /** + * Этот тип вложения приходит сразу в blob и не нуждается + * в последующем скачивании + */ + const decryptedBlob = await decodeWithPassword(chachaDecryptedKey.toString('utf-8'), attachment.blob); + writeFile(`m/${await generateMd5(attachment.id + publicKey)}`, + Buffer.from(await encodeWithPassword(privatePlain, decryptedBlob)).toString('binary')); + messageAttachments[nextLength - 1].blob = decryptedBlob; + } + + attachmentsMeta.push({ + id: attachment.id, + type: attachment.type, + preview: attachment.preview + }); + } + + const newMessage: Message = { + from_public_key: fromPublicKey, + to_public_key: toPublicKey, + content: content, + timestamp: timestamp, + readed: idle ? 0 : 1, + chacha_key: chachaDecryptedKey.toString('utf-8'), + from_me: fromPublicKey == publicKey ? 1 : 0, + plain_message: (decryptedContent as string), + delivered: DeliveredMessageState.DELIVERED, + message_id: messageId, + attachments: messageAttachments + }; + + await runQuery(` + INSERT INTO messages + (from_public_key, to_public_key, content, timestamp, read, chacha_key, from_me, plain_message, account, message_id, delivered, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [fromPublicKey, + toPublicKey, + content, + timestamp, + (currentDialogPublicKeyView == fromPublicKey && !idle && viewState != ViewPanelsState.DIALOGS_PANEL_ONLY) ? 1 : 0, + '', + 0, + await encodeWithPassword(privatePlain, decryptedContent), + publicKey, + messageId, + DeliveredMessageState.DELIVERED, + JSON.stringify(attachmentsMeta)]); + + updateDialog(fromPublicKey); + + }); + + /** + * Обработчик сообщений для группы + */ + usePacket(0x06, async (packet: PacketMessage) => { + const fromPublicKey = packet.getFromPublicKey(); + const toPublicKey = packet.getToPublicKey(); + const content = packet.getContent(); + const timestamp = packet.getTimestamp(); + const messageId = packet.getMessageId(); + if(!hasGroup(toPublicKey)){ + /** + * Если это личное сообщение, то игнорируем его здесь + * для него есть отдельный слушатель usePacket (снизу) + */ + return; + } + if(fromPublicKey == publicKey){ + /** + * Игнорируем свои же сообщения, + * такое получается при пакете синхронизации + */ + return; + } + const groupKey = await getGroupKey(toPublicKey); + if(!groupKey){ + log("Group key not found for group " + toPublicKey); + error("Message dropped because group key not found for group " + toPublicKey); + return; + } + info("New group message packet received from " + fromPublicKey); + + let decryptedContent = ''; + + try{ + decryptedContent = await decodeWithPassword(groupKey, content); + }catch(e) { + decryptedContent = ''; + } + + let attachmentsMeta: any[] = []; + let messageAttachments: Attachment[] = []; + for (let i = 0; i < packet.getAttachments().length; i++) { + const attachment = packet.getAttachments()[i]; + log("Attachment received id " + attachment.id + " type " + attachment.type); + + let nextLength = messageAttachments.push({ + ...attachment, + blob: "" + }); + + if(attachment.type == AttachmentType.MESSAGES){ + /** + * Этот тип вложения приходит сразу в blob и не нуждается + * в последующем скачивании + */ + const decryptedBlob = await decodeWithPassword(groupKey, attachment.blob); + writeFile(`m/${await generateMd5(attachment.id + publicKey)}`, + Buffer.from(await encodeWithPassword(privatePlain, decryptedBlob)).toString('binary')); + messageAttachments[nextLength - 1].blob = decryptedBlob; + } + + attachmentsMeta.push({ + id: attachment.id, + type: attachment.type, + preview: attachment.preview + }); + } + + const newMessage: Message = { + from_public_key: fromPublicKey, + to_public_key: toPublicKey, + content: content, + timestamp: timestamp, + readed: idle ? 0 : 1, + chacha_key: groupKey, + from_me: fromPublicKey == publicKey ? 1 : 0, + plain_message: decryptedContent, + delivered: DeliveredMessageState.DELIVERED, + message_id: messageId, + attachments: messageAttachments + }; + + await runQuery(` + INSERT INTO messages + (from_public_key, to_public_key, content, timestamp, read, chacha_key, from_me, plain_message, account, message_id, delivered, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [fromPublicKey, + toPublicKey, + content, + timestamp, + /**если текущий открытый диалог == беседе (которая приходит в toPublicKey) */ + (currentDialogPublicKeyView == toPublicKey && !idle && viewState != ViewPanelsState.DIALOGS_PANEL_ONLY) ? 1 : 0, + '', + 0, + await encodeWithPassword(privatePlain, decryptedContent), + publicKey, + messageId, + DeliveredMessageState.DELIVERED, + JSON.stringify(attachmentsMeta)]); + + /** + * Так как у нас в toPublicKey приходит ID группы, + * то обновляем диалог по этому ID, а не по fromPublicKey + * как это сделано в личных сообщениях + */ + updateDialog(toPublicKey); + + if (((normalize(currentDialogPublicKeyView) !== normalize(toPublicKey) || viewState == ViewPanelsState.DIALOGS_PANEL_ONLY) && + (timestamp + TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD) > (Date.now() / 1000)) || !focused) { + /** + * Условие со временем нужно для того, + * чтобы когда приходит пачка сообщений с сервера в момент того как + * пользователь был неактивен, не слать уведомления по всем этим сообщениям + */ + let mentionFlag = false; + if((newMessage.from_public_key != publicKey) && (decryptedContent.includes(`@${userInfo.username}`) || decryptedContent.includes(`@all`))){ + /** + * Если в сообщении есть упоминание текущего пользователя или @all, + * при этом сообщение отправляли не мы, + * то добавляем упоминание в состояние диалога. + * + * TODO: сделать чтобы all работал только для админов группы + */ + mentionFlag = true; + } + + if(!muted.includes(toPublicKey) || mentionFlag){ + /** + * Если группа не в мутие или есть упоминание - отправляем уведомление + */ + notify("New message", "You have a new message"); + } + if(mentionFlag){ + /** + * Если в сообщении есть упоминание текущего пользователя или @all, + * то добавляем упоминание в состояние диалога + * + * TODO: сделать чтобы all работал только для админов группы + */ + pushMention({ + dialog_id: toPublicKey, + message_id: messageId + }); + } + } + let dialogCache = getDialogCache(toPublicKey); + if (currentDialogPublicKeyView !== toPublicKey && dialogCache.length > 0) { + addOrUpdateDialogCache(toPublicKey, [...dialogCache, newMessage].slice(-MESSAGE_MAX_LOADED)); + } + }, [blocked, muted, updateDialog, focused, currentDialogPublicKeyView, viewState, idle]); + /** + * Обработчик личных сообщений + */ + usePacket(0x06, async (packet: PacketMessage) => { + const fromPublicKey = packet.getFromPublicKey(); + if(fromPublicKey == publicKey){ + /** + * Игнорируем свои же сообщения, + * такое получается при пакете синхронизации + */ + return; + } + const toPublicKey = packet.getToPublicKey(); + const content = packet.getContent(); + const chachaKey = packet.getChachaKey(); + const timestamp = packet.getTimestamp(); + const messageId = generateRandomKeyFormSeed(16, fromPublicKey + toPublicKey + timestamp.toString()); + if(hasGroup(toPublicKey)){ + /** + * Если это групповое сообщение, то игнорируем его здесь + * для него есть отдельный слушатель usePacket + */ + return; + } + info("New message packet received from " + fromPublicKey); + if (blocked.includes(fromPublicKey)) { + /** + * Если пользователь заблокирован и это не групповое сообщение, + * то игнорируем сообщение + */ + log("Message from blocked user, ignore " + fromPublicKey); + return; + } + + if (privatePlain == "") { + return; + } + + const chachaDecryptedKey = Buffer.from(await decrypt(chachaKey, privatePlain), "binary"); + const key = chachaDecryptedKey.slice(0, 32); + const nonce = chachaDecryptedKey.slice(32); + const decryptedContent = await chacha20Decrypt(content, nonce.toString('hex'), key.toString('hex')); + + let attachmentsMeta: any[] = []; + let messageAttachments: Attachment[] = []; + for (let i = 0; i < packet.getAttachments().length; i++) { + const attachment = packet.getAttachments()[i]; + log("Attachment received id " + attachment.id + " type " + attachment.type); + + let nextLength = messageAttachments.push({ + ...attachment, + blob: "" + }); + + if(attachment.type == AttachmentType.MESSAGES){ + /** + * Этот тип вложения приходит сразу в blob и не нуждается + * в последующем скачивании + */ + const decryptedBlob = await decodeWithPassword(chachaDecryptedKey.toString('utf-8'), attachment.blob); + writeFile(`m/${await generateMd5(attachment.id + publicKey)}`, + Buffer.from(await encodeWithPassword(privatePlain, decryptedBlob)).toString('binary')); + messageAttachments[nextLength - 1].blob = decryptedBlob; + } + + attachmentsMeta.push({ + id: attachment.id, + type: attachment.type, + preview: attachment.preview + }); + } + + const newMessage: Message = { + from_public_key: fromPublicKey, + to_public_key: toPublicKey, + content: content, + timestamp: timestamp, + readed: idle ? 0 : 1, + chacha_key: chachaDecryptedKey.toString('utf-8'), + from_me: fromPublicKey == publicKey ? 1 : 0, + plain_message: (decryptedContent as string), + delivered: DeliveredMessageState.DELIVERED, + message_id: messageId, + attachments: messageAttachments + }; + + + await runQuery(` + INSERT INTO messages + (from_public_key, to_public_key, content, timestamp, read, chacha_key, from_me, plain_message, account, message_id, delivered, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [fromPublicKey, + toPublicKey, + content, + timestamp, + (currentDialogPublicKeyView == fromPublicKey && !idle && viewState != ViewPanelsState.DIALOGS_PANEL_ONLY) ? 1 : 0, + chachaKey, + 0, + await encodeWithPassword(privatePlain, decryptedContent), + publicKey, + messageId, + DeliveredMessageState.DELIVERED, + JSON.stringify(attachmentsMeta)]); + + log("New message received from " + fromPublicKey); + + updateDialog(fromPublicKey); + if (((currentDialogPublicKeyView !== fromPublicKey || viewState == ViewPanelsState.DIALOGS_PANEL_ONLY) && + (timestamp + TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD) > (Date.now() / 1000)) || !focused) { + /** + * Условие со временем нужно для того, + * чтобы когда приходит пачка сообщений с сервера в момент того как + * пользователь был неактивен, не слать уведомления по всем этим сообщениям + */ + if(!muted.includes(fromPublicKey)){ + /** + * Если пользователь в муте - не отправляем уведомление + */ + notify("New message", "You have a new message"); + } + } + let dialogCache = getDialogCache(fromPublicKey); + if (currentDialogPublicKeyView !== fromPublicKey && dialogCache.length > 0) { + addOrUpdateDialogCache(fromPublicKey, [...dialogCache, newMessage].slice(-MESSAGE_MAX_LOADED)); + } + }, [blocked, muted, updateDialog, focused, currentDialogPublicKeyView, viewState, idle]); + + /** + * Обработчик прочтения личных сообщений + */ + usePacket(0x07, async (packet: PacketRead) => { + if(hasGroup(packet.getToPublicKey())){ + /** + * Если это относится к группам, то игнорируем здесь, + * для этого есть отдельный слушатель usePacket ниже + */ + return; + } + const fromPublicKey = packet.getFromPublicKey(); + const toPublicKey = packet.getToPublicKey(); + await runQuery(`UPDATE messages SET read = 1 WHERE from_public_key = ? AND to_public_key = ? AND account = ?`, [toPublicKey, fromPublicKey, publicKey]); + updateDialog(fromPublicKey); + log("Read packet received from " + fromPublicKey + " for " + toPublicKey); + addOrUpdateDialogCache(fromPublicKey, getDialogCache(fromPublicKey).map((message) => { + if (message.from_public_key == toPublicKey && !message.readed) { + console.info("Marking message as read in cache for dialog with " + fromPublicKey); + console.info({fromPublicKey, toPublicKey}); + return { + ...message, + readed: 1 + } + } + return message; + })); + }, [updateDialog]); + /** + * Обработчик прочтения групповых сообщений + */ + usePacket(0x07, async (packet: PacketRead) => { + if(!hasGroup(packet.getToPublicKey())){ + /** + * Если это не относится к группам, то игнорируем здесь, + * для этого есть отдельный слушатель usePacket выше + */ + return; + } + const fromPublicKey = packet.getFromPublicKey(); + const toPublicKey = packet.getToPublicKey(); + await runQuery(`UPDATE messages SET read = 1 WHERE to_public_key = ? AND from_public_key = ? AND account = ?`, [toPublicKey, publicKey, publicKey]); + updateDialog(toPublicKey); + addOrUpdateDialogCache(toPublicKey, getDialogCache(toPublicKey).map((message) => { + if (!message.readed) { + console.info("Marking message as read in cache for dialog with " + fromPublicKey); + console.info({fromPublicKey, toPublicKey}); + return { + ...message, + readed: 1 + } + } + return message; + })); + }, [updateDialog]); + /** + * Обработчик доставки сообщений + */ + usePacket(0x08, async (packet: PacketDelivery) => { + const messageId = packet.getMessageId(); + await runQuery(`UPDATE messages SET delivered = ?, timestamp = ? WHERE message_id = ? AND account = ?`, [DeliveredMessageState.DELIVERED, Date.now(), messageId, publicKey]); + updateDialog(packet.getToPublicKey()); + log("Delivery packet received msg id " + messageId); + addOrUpdateDialogCache(packet.getToPublicKey(), getDialogCache(packet.getToPublicKey()).map((message) => { + if (message.message_id == messageId) { + return { + ...message, + delivered: DeliveredMessageState.DELIVERED, + timestamp: Date.now() + } + } + return message; + })); + }, [updateDialog]); +} \ No newline at end of file diff --git a/app/providers/DialogProvider/useDialogsCache.ts b/app/providers/DialogProvider/useDialogsCache.ts new file mode 100644 index 0000000..030c601 --- /dev/null +++ b/app/providers/DialogProvider/useDialogsCache.ts @@ -0,0 +1,69 @@ +import { useMemory } from "../MemoryProvider/useMemory"; +import { Message } from "./DialogProvider"; + +export interface DialogCache { + publicKey: string; + messages: Message[]; +} + +export function useDialogsCache() { + const [dialogsCache, setDialogsCache] = useMemory("dialogs-cache", [], true); + + const getDialogCache = (publicKey: string) => { + const found = dialogsCache.find((cache) => cache.publicKey == publicKey); + if(!found){ + return []; + } + return found.messages; + } + + const addOrUpdateDialogCache = (publicKey: string, messages: Message[]) => { + const existingIndex = dialogsCache.findIndex((cache) => cache.publicKey == publicKey); + let newCache = [...dialogsCache]; + if(existingIndex !== -1){ + newCache[existingIndex].messages = messages; + }else{ + newCache.push({publicKey, messages}); + } + setDialogsCache(newCache); + } + + const updateAttachmentInDialogCache = (attachment_id: string, blob: string) => { + /** + * TODO: Optimize this function to avoid full map if possible + */ + let newCache = dialogsCache.map((cache) => { + let newMessages = cache.messages.map((message) => { + if(message.attachments){ + let newAttachments = message.attachments.map((attachment) => { + if(attachment.id == attachment_id){ + return { + ...attachment, + blob: blob + } + } + return attachment; + }); + return { + ...message, + attachments: newAttachments + } + } + return message; + }); + return { + ...cache, + messages: newMessages + } + }); + setDialogsCache(newCache); + } + + return { + getDialogCache, + addOrUpdateDialogCache, + dialogsCache, + updateAttachmentInDialogCache, + setDialogsCache + } +} \ No newline at end of file diff --git a/app/providers/DialogProvider/useDrafts.ts b/app/providers/DialogProvider/useDrafts.ts new file mode 100644 index 0000000..14d3946 --- /dev/null +++ b/app/providers/DialogProvider/useDrafts.ts @@ -0,0 +1,32 @@ +import { useMemory } from "../MemoryProvider/useMemory"; + +export interface Draft { + dialog: string; + message: string; +} + +export function useDrafts(dialog: string) { + const [drafts, setDrafts] = useMemory("drafts", [], true); + + const getDraft = (): string => { + const draft = drafts.find(d => d.dialog === dialog); + return draft ? draft.message : ""; + }; + + const saveDraft = (message: string) => { + setDrafts(prevDrafts => { + const otherDrafts = prevDrafts.filter(d => d.dialog !== dialog); + return [...otherDrafts, { dialog, message }]; + }); + }; + + const deleteDraft = () => { + setDrafts(prevDrafts => prevDrafts.filter(d => d.dialog !== dialog)); + }; + + return { + getDraft, + saveDraft, + deleteDraft, + }; +} \ No newline at end of file diff --git a/app/providers/DialogProvider/useGroupInviteStatus.ts b/app/providers/DialogProvider/useGroupInviteStatus.ts new file mode 100644 index 0000000..fef1fa9 --- /dev/null +++ b/app/providers/DialogProvider/useGroupInviteStatus.ts @@ -0,0 +1,57 @@ +import { useEffect } from "react"; +import { GroupStatus, PacketGroupInviteInfo } from "../ProtocolProvider/protocol/packets/packet.group.invite.info"; +import { useSender } from "../ProtocolProvider/useSender"; +import { usePacket } from "../ProtocolProvider/usePacket"; +import { useMemory } from "../MemoryProvider/useMemory"; + + +export function useGroupInviteStatus(groupId: string) : { + inviteStatus: GroupStatus; + setInviteStatus: (status: GroupStatus) => void; + setInviteStatusByGroupId: (groupIdParam: string, status: GroupStatus) => void; +} { + const [invitesCache, setInvitesCache] = useMemory("groups_invites_cache", [], true); + + const send = useSender(); + + useEffect(() => { + (async () => { + if(groupId == ''){ + return; + } + const packet = new PacketGroupInviteInfo(); + packet.setGroupId(groupId); + send(packet); + })(); + }, [groupId]); + + usePacket(0x13, (packet: PacketGroupInviteInfo) => { + if(packet.getGroupId() != groupId){ + return; + } + setInvitesCache((prev) => ({ + ...prev, + [groupId]: packet.getGroupStatus(), + })); + }, [groupId]); + + const setInviteStatus = (status: GroupStatus) => { + setInvitesCache((prev) => ({ + ...prev, + [groupId]: status, + })); + } + + const setInviteStatusByGroupId = (groupIdParam: string, status: GroupStatus) => { + setInvitesCache((prev) => ({ + ...prev, + [groupIdParam]: status, + })); + } + + return { + inviteStatus: invitesCache[groupId] ?? GroupStatus.NOT_JOINED, + setInviteStatus, + setInviteStatusByGroupId, + }; +} \ No newline at end of file diff --git a/app/providers/DialogProvider/useGroups.ts b/app/providers/DialogProvider/useGroups.ts new file mode 100644 index 0000000..6f70dc8 --- /dev/null +++ b/app/providers/DialogProvider/useGroups.ts @@ -0,0 +1,278 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { usePrivatePlain } from "../AccountProvider/usePrivatePlain"; +import { decodeWithPassword, encodeWithPassword } from "@/app/crypto/crypto"; +import { generateRandomKey } from "@/app/utils/utils"; +import { useDialogsList } from "../DialogListProvider/useDialogsList"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { DeliveredMessageState } from "./DialogProvider"; +import { useSender } from "../ProtocolProvider/useSender"; +import { useState } from "react"; +import { PacketCreateGroup } from "../ProtocolProvider/protocol/packets/packet.create.group"; +import { useProtocol } from "../ProtocolProvider/useProtocol"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { GroupStatus, PacketGroupJoin } from "../ProtocolProvider/protocol/packets/packet.group.join"; +import { useGroupInviteStatus } from "./useGroupInviteStatus"; +import { useNavigate } from "react-router-dom"; +import { useUpdateGroupInformation } from "../InformationProvider/useUpdateGroupInformation"; +import { PacketGroupLeave } from "../ProtocolProvider/protocol/packets/packet.group.leave"; +import { PacketGroupBan } from "../ProtocolProvider/protocol/packets/packet.group.ban"; + +export function useGroups() : { + /** + * Получаем ключ шифрования из базы данных по ид группы + * @param groupId ид группы + * @returns ключ шифрования + */ + getGroupKey: (groupId: string) => Promise; + /** + * Получает строку для приглашения в группу + * @param groupId ид группы + * @param title заголовок + * @param encryptKey ключ шифрования + * @param description описание + * @returns строка, которая нужна для приглашения в группу + */ + constructGroupString: (groupId: string, title: string, encryptKey: string, description?: string) => Promise; + /** + * Функция, обратная constructGroupString, парсит строку приглашения в группу + * @param groupString строка приглашения в группу + * @returns объект с информацией о группе или null, если строка некорректна + */ + parseGroupString: (groupString: string) => Promise<{ + groupId: string; + title: string; + encryptKey: string; + description: string; + } | null>; + /** + * Проверяет, является ли диалог группой + * @param dialog ид диалога + * @returns вернет true, если это группа и false если это пользователь + */ + hasGroup: (dialog: string) => boolean; + /** + * Возвращает подготовленный для роута groupId + * @param groupId подготавливает groupId для роута + * @returns заменяет символы которые может не обрабатывать роутер + */ + prepareForRoute: (groupId: string) => string; + /** + * Создает группу + * @param title заголовок + * @param description описание + * @returns + */ + createGroup: (title: string, description: string) => Promise; + /** + * Зайдет в группу по строке приглашения + * @param groupString строка приглашение + * @returns + */ + joinGroup: (groupString: string) => Promise; + /** + * Покидает группу + * @param groupId ид группы + * @returns + */ + leaveGroup: (groupId: string) => Promise; + /** + * + * @param str + * @returns + */ + normalize: (str: string) => string; + banUserOnGroup: (userPublicKey: string, groupId: string) => void; + getPrefix: () => string; + loading: boolean; +} { + const {allQuery, runQuery} = useDatabase(); + const privatePlain = usePrivatePlain(); + const {updateDialog} = useDialogsList(); + const publicKey = usePublicKey(); + const [loading, setLoading] = useState(false); + const send = useSender(); + const {protocol} = useProtocol(); + const {info} = useConsoleLogger('useGroups'); + const {setInviteStatusByGroupId} = useGroupInviteStatus(''); + const navigate = useNavigate(); + const updateGroupInformation = useUpdateGroupInformation(); + + const constructGroupString = async (groupId: string, title: string, encryptKey: string, description?: string) => { + let groupString = `${groupId}:${title}:${encryptKey}`; + if (description && description.trim().length > 0) { + groupString += `:${description}`; + } + let encodedPayload = await encodeWithPassword('rosetta_group', groupString); + return `#group:${encodedPayload}`; + } + + const hasGroup = (dialog: string) => { + return dialog.startsWith('#group:'); + } + + const getPrefix = () => { + return '#group:'; + } + + const parseGroupString = async (groupString: string) => { + try{ + if (!groupString.startsWith('#group:')) { + return null; + } + let encodedPayload = groupString.substring(7); + let decodedPayload = await decodeWithPassword('rosetta_group', encodedPayload); + let parts = decodedPayload.split(':'); + return { + groupId: parts[0], + title: parts[1], + encryptKey: parts[2], + description: parts[3] || '' + } + }catch(e) { + return null; + } + } + + const getGroupKey = async (groupId: string) => { + const query = `SELECT key FROM groups WHERE group_id = ? AND account = ? LIMIT 1`; + const result = await allQuery(query, [normalize(groupId), publicKey]); + if(result.length > 0) { + let key = result[0].key; + return await decodeWithPassword(privatePlain, key); + } + return ""; + }; + + const prepareForRoute = (groupId: string) => { + return `#group:${groupId}`.replace('#', '%23'); + } + + const normalize = (str: string) => { + return str.replace('#group:', '').trim(); + } + + const createGroup = async (title: string, description: string) => { + if(title.trim().length === 0){ + return; + } + setLoading(true); + const packet = new PacketCreateGroup(); + send(packet); + protocol.waitPacketOnce(0x11, async (packet : PacketCreateGroup) => { + const groupId = packet.getGroupId(); + info(`Creating group with id ${groupId}`); + const encryptKey = generateRandomKey(64); + const secureKey = await encodeWithPassword(privatePlain, encryptKey); + let content = await encodeWithPassword(encryptKey, `$a=Group created`); + let plainMessage = await encodeWithPassword(privatePlain, `$a=Group created`); + await runQuery(` + INSERT INTO groups (account, group_id, title, description, key) VALUES (?, ?, ?, ?, ?) + `, [publicKey, groupId, title, description, secureKey]); + await runQuery(` + INSERT INTO messages + (from_public_key, to_public_key, content, timestamp, read, chacha_key, from_me, plain_message, account, message_id, delivered, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [publicKey, "#group:" + groupId, content, Date.now(), 1, "", 1, plainMessage, publicKey, generateRandomKey(16), + DeliveredMessageState.DELIVERED + , '[]']); + updateDialog("#group:" + groupId); + updateGroupInformation({ + groupId: groupId, + title: title, + description: description + }); + setLoading(false); + navigate(`/main/chat/${prepareForRoute(groupId)}`); + }); + } + + const banUserOnGroup = (userPublicKey: string, groupId: string) => { + const packet = new PacketGroupBan(); + packet.setGroupId(groupId); + packet.setPublicKey(userPublicKey); + send(packet); + } + + const joinGroup = async (groupString: string) => { + const parsed = await parseGroupString(groupString); + if (!parsed) { + return; + } + const encryptKey = parsed.encryptKey; + const groupId = parsed.groupId; + const title = parsed.title; + const description = parsed.description; + + const packet = new PacketGroupJoin(); + packet.setGroupId(parsed.groupId); + send(packet); + setLoading(true); + + protocol.waitPacketOnce(0x14, async (packet: PacketGroupJoin) => { + console.info(`Received group join response for group ${parsed.groupId}`); + const groupStatus = packet.getGroupStatus(); + if(groupStatus != GroupStatus.JOINED){ + info(`Cannot join group ${parsed.groupId}, banned`); + setInviteStatusByGroupId(parsed.groupId, groupStatus); + setLoading(false); + return; + } + const secureKey = await encodeWithPassword(privatePlain, encryptKey); + let content = await encodeWithPassword(encryptKey, `$a=Group joined`); + let plainMessage = await encodeWithPassword(privatePlain, `$a=Group joined`); + await runQuery(` + INSERT INTO groups (account, group_id, title, description, key) VALUES (?, ?, ?, ?, ?) + `, [publicKey, groupId, title, description, secureKey]); + await runQuery(` + INSERT INTO messages + (from_public_key, to_public_key, content, timestamp, read, chacha_key, from_me, plain_message, account, message_id, delivered, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [publicKey, "#group:" + groupId, content, Date.now(), 1, "", 1, plainMessage, publicKey, generateRandomKey(16), + DeliveredMessageState.DELIVERED + , '[]']); + updateDialog("#group:" + groupId); + setInviteStatusByGroupId(groupId, GroupStatus.JOINED); + setLoading(false); + updateGroupInformation({ + groupId: groupId, + title: title, + description: description + }); + navigate(`/main/chat/${prepareForRoute(groupId)}`); + }); + } + + const leaveGroup = async (groupId: string) => { + const packet = new PacketGroupLeave(); + packet.setGroupId(groupId); + send(packet); + setLoading(true); + protocol.waitPacketOnce(0x15, async (packet: PacketGroupLeave) => { + if(packet.getGroupId() != groupId){ + return; + } + await runQuery(` + DELETE FROM groups WHERE group_id = ? AND account = ? + `, [groupId, publicKey]); + await runQuery(` + DELETE FROM messages WHERE to_public_key = ? AND account = ? + `, ["#group:" + normalize(groupId), publicKey]); + updateDialog("#group:" + normalize(groupId)); + setLoading(false); + navigate(`/main`); + }); + } + + return { + getGroupKey, + constructGroupString, + parseGroupString, + hasGroup, + prepareForRoute, + createGroup, + joinGroup, + leaveGroup, + getPrefix, + banUserOnGroup, + normalize, + loading + } +} \ No newline at end of file diff --git a/app/providers/DialogProvider/useReplyMessages.ts b/app/providers/DialogProvider/useReplyMessages.ts new file mode 100644 index 0000000..4475286 --- /dev/null +++ b/app/providers/DialogProvider/useReplyMessages.ts @@ -0,0 +1,128 @@ +import { useContext, useEffect } from "react"; +import { useMemory } from "../MemoryProvider/useMemory"; +import { Attachment } from "../ProtocolProvider/protocol/packets/packet.message"; +import { DialogContext } from "./DialogProvider"; + +export interface Reply { + publicKey: string; + messages: MessageReply[]; + /** + * Флаг, указывающи, что выбранные сообщения уже перемещены в + * поле ввода диалога + */ + inDialogInput?: string; +} + +export interface MessageReply { + timestamp: number; + publicKey: string; + message: string; + attachments: Attachment[]; + message_id: string; +} + +export function useReplyMessages() { + const [replyMessages, setReplyMessages] = useMemory("replyMessages", { + publicKey: "", + messages: [], + inDialogInput: "" + }, true); + const context = useContext(DialogContext); + if(!context){ + throw new Error("useReplyMessages must be used within a DialogProvider"); + } + + const {dialog} = context; + + const selectMessage = (message : MessageReply) => { + console.info(message); + if(replyMessages.publicKey != dialog){ + /** + * Сброс выбора сообщений из другого диалога + */ + setReplyMessages({ + publicKey: dialog, + messages: [message] + }); + return; + } + if(replyMessages.messages.find(m => m.timestamp == message.timestamp)){ + /** + * Уже выбранное сообщение + */ + return; + } + replyMessages.messages.push(message); + const sortedByTime = replyMessages.messages.sort((a, b) => a.timestamp - b.timestamp); + + setReplyMessages({ + publicKey: dialog, + messages: sortedByTime + }); + } + + const deselectMessage = (message : MessageReply) => { + const filtered = replyMessages.messages.filter(m => m.timestamp != message.timestamp); + setReplyMessages({ + publicKey: dialog, + messages: filtered + }); + } + + const deselectAllMessages = () => { + setReplyMessages({ + publicKey: "", + messages: [] + }); + } + + const isSelectionStarted = () => { + if(replyMessages.inDialogInput){ + return false; + } + return replyMessages.publicKey == dialog && replyMessages.messages.length > 0; + } + + const isSelectionInCurrentDialog = () => { + if(replyMessages.inDialogInput){ + return false; + } + return replyMessages.publicKey == dialog; + } + + const isMessageSelected = (message : MessageReply) => { + if(replyMessages.publicKey != dialog || + replyMessages.inDialogInput + ){ + return false; + } + return replyMessages.messages.find(m => m.timestamp == message.timestamp) != undefined; + } + + const translateMessagesToDialogInput = (publicKey: string) => { + setReplyMessages((prev) => ({ + ...prev, + inDialogInput: publicKey + })); + } + + useEffect(() => { + if(replyMessages.publicKey != dialog + && replyMessages.inDialogInput != dialog){ + /** + * Сброс выбора сообщений при смене диалога + */ + deselectAllMessages(); + } + }, [dialog]); + + return {replyMessages, + translateMessagesToDialogInput, + isSelectionInCurrentDialog, + isSelectionStarted, + selectMessage, + deselectMessage, + dialog, + deselectAllMessages, + isMessageSelected} +} \ No newline at end of file diff --git a/app/providers/DialogStateProvider.tsx/DialogStateProvider.tsx b/app/providers/DialogStateProvider.tsx/DialogStateProvider.tsx new file mode 100644 index 0000000..a2aa1e1 --- /dev/null +++ b/app/providers/DialogStateProvider.tsx/DialogStateProvider.tsx @@ -0,0 +1,122 @@ +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import React, { createContext, useEffect, useState } from "react"; + +export interface DialogStateContextValue { + muted: string[]; + pinned: string[]; + muteToggle: (dialogId: string) => void; + pinToggle: (dialogId: string) => void; + mentions: DialogMention[]; + pushMention: (dialogMention : DialogMention) => void; + popMention: (DialogMention: DialogMention) => void; + isMentioned: (dialogId: string) => boolean; + getLastMention: (dialogId: string) => DialogMention; +} + +export const DialogStateContext = createContext(null); + +export interface DialogStateProviderProps { + children: React.ReactNode; +} + +export interface DialogMention { + dialog_id: string; + message_id: string; +} + +/** + * Этот провайдер нужен для того, чтобы быстро определить состояние диалога, + * например, закреплен ли он или нет, или отключены ли в нем уведомления. + * + * ВАЖНО! При отключенных уведомлениях все равно + * будут доставляться сообщния с упоминаниями. + */ +export function DialogStateProvider(props : DialogStateProviderProps) { + const [muted, setMuted] = useState([]); + const [pinned, setPinned] = useState([]); + const [mentions, setDialogMentions] = useState([]); + const {info} = useConsoleLogger('DialogStateProvider'); + + useEffect(() => { + let muted = localStorage.getItem("mutedDialogs"); + let pinned = localStorage.getItem("pinnedDialogs"); + let mentions = localStorage.getItem("dialogMentions"); + + if (mentions) { + setDialogMentions(JSON.parse(mentions)); + } + if (muted) { + setMuted(JSON.parse(muted)); + } + if (pinned) { + setPinned(JSON.parse(pinned)); + } + + info("Initial dialog states is loaded"); + }, []); + + useEffect(() => { + localStorage.setItem("mutedDialogs", JSON.stringify(muted)); + }, [muted]); + + useEffect(() => { + localStorage.setItem("pinnedDialogs", JSON.stringify(pinned)); + }, [pinned]); + + useEffect(() => { + localStorage.setItem("dialogMentions", JSON.stringify(mentions)); + }, [mentions]); + + const muteToggle = (dialogId: string) => { + setMuted(prev => { + if (prev.includes(dialogId)) { + return prev.filter(id => id !== dialogId); + } else { + return [...prev, dialogId]; + } + }); + } + + const pinToggle = (dialogId: string) => { + setPinned(prev => { + if (prev.includes(dialogId)) { + return prev.filter(id => id !== dialogId); + } else { + return [...prev, dialogId]; + } + }); + } + + const pushMention = (dialogMention: DialogMention) => { + setDialogMentions((prev) => [...prev, dialogMention]); + } + + const popMention = (dialogMention: DialogMention) => { + setDialogMentions((prev) => prev.filter(m => !(m.dialog_id === dialogMention.dialog_id && m.message_id === dialogMention.message_id))); + } + + const isMentioned = (dialogId: string) => { + return mentions.some(m => m.dialog_id === dialogId); + } + + const getLastMention = (dialogId: string) : DialogMention => { + const dialogMentions = mentions.filter(m => m.dialog_id === dialogId); + return dialogMentions[dialogMentions.length - 1]; + } + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/DialogStateProvider.tsx/useDialogMute.ts b/app/providers/DialogStateProvider.tsx/useDialogMute.ts new file mode 100644 index 0000000..1d7435a --- /dev/null +++ b/app/providers/DialogStateProvider.tsx/useDialogMute.ts @@ -0,0 +1,15 @@ +import { useContext } from "react"; +import { DialogStateContext } from "./DialogStateProvider"; + +export function useDialogMute(dialog_id: string) { + const context = useContext(DialogStateContext); + if(!context){ + throw new Error("useDialogState must be used within a DialogStateProvider"); + } + + const isMuted = context.muted.includes(dialog_id); + return { + isMuted, + muteToggle: context.muteToggle + } +} \ No newline at end of file diff --git a/app/providers/DialogStateProvider.tsx/useDialogPin.ts b/app/providers/DialogStateProvider.tsx/useDialogPin.ts new file mode 100644 index 0000000..e779ad0 --- /dev/null +++ b/app/providers/DialogStateProvider.tsx/useDialogPin.ts @@ -0,0 +1,16 @@ +import { useContext } from "react"; +import { DialogStateContext } from "./DialogStateProvider"; + +export function useDialogPin(dialog_id: string){ + const context = useContext(DialogStateContext); + if(!context){ + throw new Error("useDialogState must be used within a DialogStateProvider"); + } + + const isPinned = context.pinned.includes(dialog_id); + + return { + isPinned, + pinToggle: context.pinToggle + } +} \ No newline at end of file diff --git a/app/providers/DialogStateProvider.tsx/useDialogState.ts b/app/providers/DialogStateProvider.tsx/useDialogState.ts new file mode 100644 index 0000000..ec6ff4e --- /dev/null +++ b/app/providers/DialogStateProvider.tsx/useDialogState.ts @@ -0,0 +1,11 @@ +import { useContext } from "react"; +import { DialogStateContext, DialogStateContextValue } from "./DialogStateProvider"; + +export function useDialogState() : DialogStateContextValue { + const context = useContext(DialogStateContext); + if(!context){ + throw new Error("useDialogState must be used within a DialogStateProvider"); + } + + return context; +} \ No newline at end of file diff --git a/app/providers/DialogStateProvider.tsx/useMentions.ts b/app/providers/DialogStateProvider.tsx/useMentions.ts new file mode 100644 index 0000000..887cffb --- /dev/null +++ b/app/providers/DialogStateProvider.tsx/useMentions.ts @@ -0,0 +1,16 @@ +import { useContext } from "react"; +import { DialogStateContext } from "./DialogStateProvider"; + +export function useMentions() { + const context = useContext(DialogStateContext); + if (!context) { + throw new Error("useMentions must be used within a DialogStateProvider"); + } + return { + pushMention: context.pushMention, + popMention: context.popMention, + isMentioned: context.isMentioned, + mentions: context.mentions, + getLastMention: context.getLastMention + }; +} \ No newline at end of file diff --git a/app/providers/ErrorBoundaryProvider/ErrorBoundaryProvider.tsx b/app/providers/ErrorBoundaryProvider/ErrorBoundaryProvider.tsx new file mode 100644 index 0000000..9fff00b --- /dev/null +++ b/app/providers/ErrorBoundaryProvider/ErrorBoundaryProvider.tsx @@ -0,0 +1,43 @@ +import React from "react"; +import { createContext } from "react"; + +interface ErrorBoundaryContextValue { + error: boolean; + message: string; +} + +export const ErrorBoundaryContext = createContext(null); + +interface ErrorBoundaryProviderProps { + children: React.ReactNode; + fallback?: React.ReactNode; +} + +interface ErrorBoundaryProviderState { + hasError: boolean; + error: Error | null; +} + +export class ErrorBoundaryProvider extends React.Component { + constructor(props: ErrorBoundaryProviderProps) { + super(props); + this.state = { hasError: false, error: null }; + } + + static getDerivedStateFromError(error: Error): ErrorBoundaryProviderState { + return { hasError: true, error: error }; + } + + render() { + return + {this.state.hasError ? ( + this.props.fallback ? this.props.fallback :
An error occurred: {this.state.error?.toString()}
+ ) : ( + this.props.children + )} +
; + } +} \ No newline at end of file diff --git a/app/providers/ImageViewerProvider/ImageViewer.tsx b/app/providers/ImageViewerProvider/ImageViewer.tsx new file mode 100644 index 0000000..fe8f30a --- /dev/null +++ b/app/providers/ImageViewerProvider/ImageViewer.tsx @@ -0,0 +1,173 @@ +import { Flex, Overlay, Text } from "@mantine/core"; +import { ImageToView } from "./ImageViewerProvider"; +import { useState } from "react"; +import { IconChevronLeft, IconChevronRight, IconImageInPicture, IconX } from "@tabler/icons-react"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { useEffect } from "react"; +import { useContextMenu } from "../ContextMenuProvider/useContextMenu"; +import { convertJpegBlobToPngBlob, createBlobFromBase64Image } from "@/app/utils/utils"; + +interface ImageViewerProps { + images: ImageToView[]; + initialSlide: number; + onClose: () => void; +} + +export function ImageViewer(props : ImageViewerProps) { + const [slide, setSlide] = useState(props.initialSlide); + const imageToRender = props.images[slide]; + const colors = useRosettaColors(); + const openContextMenu = useContextMenu(); + const [pos, setPos] = useState({ x: 0, y: 0, scale: 1 }); + const [isDragging, setIsDragging] = useState(false); + const [wasDragging, setWasDragging] = useState(false); + const [dragStart, setDragStart] = useState<{x: number, y: number} | null>(null); + + const isNextSlideAvailable = slide + 1 <= props.images.length - 1; + const isPrevSlideAvailable = slide - 1 >= 0; + + useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === "ArrowLeft" && isPrevSlideAvailable) { + prevSlide(e); + } + if (e.key === "ArrowRight" && isNextSlideAvailable) { + nextSlide(e); + } + if (e.key === "Escape") { + props.onClose(); + } + }; + + window.addEventListener("keydown", handleKeyDown); + return () => { + window.removeEventListener("keydown", handleKeyDown); + }; + }, [slide, isPrevSlideAvailable, isNextSlideAvailable, props.onClose]); + + useEffect(() => { + setPos({ x: 0, y: 0, scale: 1 }); + }, [slide]); + + const nextSlide = (e : any) => { + e.stopPropagation(); + if(slide + 1 > props.images.length - 1) { + return; + } + setSlide(slide + 1); + } + + const prevSlide = (e : any) => { + e.stopPropagation(); + if(slide - 1 < 0) { + return; + } + setSlide(slide - 1); + } + + const onContextMenuImg = async () => { + let blob = await convertJpegBlobToPngBlob( + createBlobFromBase64Image(imageToRender.src) + ); + openContextMenu([ + { + label: 'Copy Image', + action: async () => { + await navigator.clipboard.write([ + new ClipboardItem({ + [blob.type]: blob + }) + ]); + }, + icon: + } + ]); + } + + // Wheel zoom (zoom to cursor) + const onWheel = (e: React.WheelEvent) => { + //e.preventDefault(); + const rect = e.currentTarget.getBoundingClientRect(); + const mouseX = e.clientX - rect.left; + const mouseY = e.clientY - rect.top; + const prevScale = pos.scale; + let newScale = prevScale - e.deltaY * 0.004; // ускоренное увеличение + newScale = Math.max(0.2, Math.min(5, newScale)); + const offsetX = mouseX - pos.x; + const offsetY = mouseY - pos.y; + const newX = mouseX - (offsetX * newScale) / prevScale; + const newY = mouseY - (offsetY * newScale) / prevScale; + setPos({ ...pos, scale: newScale, x: newX, y: newY }); + }; + + // Drag logic + const onMouseDown = (e: React.MouseEvent) => { + if (e.button !== 0) return; + e.preventDefault(); + e.stopPropagation(); + setIsDragging(true); + setWasDragging(false); + setDragStart({ x: e.clientX - pos.x, y: e.clientY - pos.y }); + }; + const onMouseMove = (e: React.MouseEvent) => { + if (!isDragging || !dragStart) return; + setPos({ ...pos, x: e.clientX - dragStart.x, y: e.clientY - dragStart.y }); + setWasDragging(true); + }; + const onMouseUp = (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + setIsDragging(false); + setDragStart(null); + }; + + return ( + { + if (!isDragging && !wasDragging) props.onClose(); + }} + onMouseDown={onMouseDown} + onMouseMove={onMouseMove} + onMouseUp={onMouseUp} + backgroundOpacity={0.7} + > + + + + + + + + onContextMenuImg()} + src={imageToRender.src} + style={{ + maxWidth: '70vw', + maxHeight: '70vh', + borderRadius: 8, + userSelect: 'none', + cursor: isDragging ? 'grabbing' : 'grab', + transformOrigin: '0 0', + transform: `translate(${pos.x}px, ${pos.y}px) scale(${pos.scale})`, + }} + onWheel={onWheel} + onMouseDown={onMouseDown} + onMouseMove={onMouseMove} + onMouseUp={onMouseUp} + onMouseLeave={onMouseUp} + draggable={false} + /> + + + + + {slide + 1} of {props.images.length} + + {imageToRender.timestamp && + {new Date(imageToRender.timestamp).toLocaleString()} + } + + + + ); +} \ No newline at end of file diff --git a/app/providers/ImageViewerProvider/ImageViewerProvider.tsx b/app/providers/ImageViewerProvider/ImageViewerProvider.tsx new file mode 100644 index 0000000..16fc5fd --- /dev/null +++ b/app/providers/ImageViewerProvider/ImageViewerProvider.tsx @@ -0,0 +1,51 @@ +import { createContext, useState } from "react"; +import { ImageViewer } from "./ImageViewer"; + +interface ImageViewerProviderProps { + children: React.ReactNode; +} + +export interface ImageToView { + src: string; + caption?: string; + timestamp?: number; +} + +export interface ImageViewerContextType { + open: (images: ImageToView[], startIndex: number) => void; + close: () => void; +} + +export const ImageViewerContext = createContext(null); + +export function ImageViwerProvider(props : ImageViewerProviderProps) { + + const [imagesToView, setImagesToView] = useState([]); + const [currentSlide, setCurrentSlide] = useState(0); + + const open = (images: ImageToView[], startIndex: number) => { + setImagesToView(images); + setCurrentSlide(startIndex); + }; + + const close = () => { + setImagesToView([]); + setCurrentSlide(0); + }; + + return ( + + {props.children} + {imagesToView.length > 0 && + + } + + ); +} \ No newline at end of file diff --git a/app/providers/ImageViewerProvider/useImageViewer.ts b/app/providers/ImageViewerProvider/useImageViewer.ts new file mode 100644 index 0000000..72ba3d0 --- /dev/null +++ b/app/providers/ImageViewerProvider/useImageViewer.ts @@ -0,0 +1,11 @@ +import { useContext } from "react"; +import { ImageViewerContext } from "./ImageViewerProvider"; + +export function useImageViewer() { + const context = useContext(ImageViewerContext); + if(!context){ + throw new Error("useImageViewer must be used within a ImageViewerProvider"); + } + + return context; +} \ No newline at end of file diff --git a/app/providers/InformationProvider/InformationProvider.tsx b/app/providers/InformationProvider/InformationProvider.tsx new file mode 100644 index 0000000..a5538f9 --- /dev/null +++ b/app/providers/InformationProvider/InformationProvider.tsx @@ -0,0 +1,171 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { OnlineState, PacketOnlineState, PublicKeyOnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; +import { createContext, useEffect, useState } from "react"; +import { usePacket } from "../ProtocolProvider/usePacket"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { useSystemAccounts } from "../SystemAccountsProvider/useSystemAccounts"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; + +export const InformationContext = createContext({}); + +interface InformationProviderProps { + children: React.ReactNode; +} + +export interface UserInformation { + publicKey: string; + verified: number; + title: string; + username: string; + online: OnlineState; +} + +export interface GroupInformation { + groupId: string; + title: string; + description: string; +} + +export function InformationProvider(props: InformationProviderProps) { + const [cachedUsers, setCachedUsers] = useState([]); + const [cachedGroups, setCachedGroups] = useState([]); + const {allQuery, getQuery, runQuery} = useDatabase(); + const {info} = useConsoleLogger("InformationProvider"); + const systemAccounts = useSystemAccounts(); + const publicKey = usePublicKey(); + + useEffect(() => { + loadCachedUsers(); + loadCachedGroups(); + }, [publicKey]); + + usePacket(0x5, (state: PacketOnlineState) => { + const keys = state.getPublicKeysState(); + keys.map((value : PublicKeyOnlineState) => { + const cachedUser = cachedUsers.find((userInfo) => userInfo.publicKey == value.publicKey); + if(!cachedUser) { + info(`No cached user found for public key: ${value.publicKey}, info not updated`); + return; + } + updateUserInformation({ + ...cachedUser, + online: value.state + }); + }) + }); + + const loadCachedGroups = () => { + if(publicKey == ''){ + return; + } + const result = allQuery("SELECT * FROM groups WHERE account = ?", [publicKey]); + result.then((rows) => { + const infos : GroupInformation[] = []; + for(let i = 0; i < rows.length; i++) { + infos.push({ + groupId: rows[i].group_id, + title: rows[i].title, + description: rows[i].description, + }); + } + setCachedGroups(infos); + }); + } + + const loadCachedUsers = () => { + const result = allQuery("SELECT * FROM cached_users", []); + result.then((rows) => { + const infos : UserInformation[] = []; + for(let i = 0; i < rows.length; i++) { + infos.push({ + publicKey: rows[i].public_key, + verified: rows[i].verified, + title: rows[i].title, + username: rows[i].username, + online: publicKey == rows[i].public_key ? OnlineState.ONLINE : OnlineState.OFFLINE + }); + } + infos.push(...systemAccounts); + setCachedUsers(infos); + }); + } + + const updateGroupInformation = async (groupInfo : GroupInformation) => { + const result = await getQuery("SELECT COUNT(*) as count FROM groups WHERE account = ? AND group_id = ?", [publicKey, groupInfo.groupId]); + if(result.count > 0){ + /** + * Обрабатываем только событие если строка в базе уже есть, + * потому что добавление строки мы отрабатываем в другом месте + */ + await runQuery(`UPDATE groups SET title = ?, description = ? WHERE account = ? AND group_id = ?`, + [groupInfo.title, groupInfo.description, publicKey, groupInfo.groupId]); + } + + if(cachedGroups.find((v) => v.groupId == groupInfo.groupId)){ + setCachedGroups((prev) => prev.map((group) => { + if (group.groupId == groupInfo.groupId) { + return { + ...group, + title: groupInfo.title, + description: groupInfo.description + } + } + return group; + })); + }else{ + setCachedGroups((prev) => ([ + ...prev, + { + groupId: groupInfo.groupId, + title: groupInfo.title, + description: groupInfo.description + } + ])); + } + } + + const updateUserInformation = async (userInfo : UserInformation) => { + const result = await getQuery("SELECT COUNT(*) as count FROM cached_users WHERE public_key = ?", [userInfo.publicKey]); + if (result.count > 0) { + await runQuery(`UPDATE cached_users SET title = ?, username = ?, verified = ? WHERE public_key = ?`, [userInfo.title, userInfo.username, userInfo.verified, userInfo.publicKey]); + setCachedUsers((prev) => prev.map((user) => { + if (user.publicKey == userInfo.publicKey) { + return { + ...user, + verified: userInfo.verified, + title: userInfo.title, + username: userInfo.username, + online: userInfo.online, + } + } + return user; + })); + } else { + await runQuery(`INSERT INTO cached_users (public_key, title, username, verified) VALUES (?, ?, ?, ?)`, + [userInfo.publicKey, userInfo.title, userInfo.username, userInfo.verified]); + setCachedUsers((prev) => ([ + ...prev, + { + publicKey: userInfo.publicKey, + title: userInfo.title, + username: userInfo.username, + online: OnlineState.OFFLINE, + verified: userInfo.verified + } + ])); + } + } + + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/InformationProvider/useGroupInformation.ts b/app/providers/InformationProvider/useGroupInformation.ts new file mode 100644 index 0000000..381ba29 --- /dev/null +++ b/app/providers/InformationProvider/useGroupInformation.ts @@ -0,0 +1,38 @@ +import { useContext } from "react"; +import { GroupInformation, InformationContext } from "./InformationProvider"; + +export function useGroupInformation(groupId: string) : { + groupInfo: GroupInformation, + markAsDeleted: () => void, + updateGroupInformation: (groupInfo: GroupInformation) => void +} { + const context = useContext(InformationContext); + const {cachedGroups, updateGroupInformation} = context; + const group : GroupInformation = cachedGroups.find((group: GroupInformation) => group.groupId == groupId.replace("#group:", "")); + + if(!context || !context.cachedGroups) { + throw new Error("useGroupInformation must be used within a InformationProvider"); + } + + if(groupId.trim() == ""){ + throw new Error("Empty string passed to groupId with useGroupInformation hook"); + } + + const markAsDeleted = () => { + updateGroupInformation({ + groupId: groupId, + title: "DELETED", + description: "No description available." + }); + } + + return { + groupInfo: { + groupId: groupId, + title: group ? group.title : "DELETED", + description: group ? group.description : "No description available." + }, + markAsDeleted, + updateGroupInformation + }; +} \ No newline at end of file diff --git a/app/providers/InformationProvider/useGroupMembers.ts b/app/providers/InformationProvider/useGroupMembers.ts new file mode 100644 index 0000000..d01d4dc --- /dev/null +++ b/app/providers/InformationProvider/useGroupMembers.ts @@ -0,0 +1,69 @@ +import { useEffect, useState } from "react"; +import { useGroupInformation } from "./useGroupInformation"; +import { PacketGroupInfo } from "../ProtocolProvider/protocol/packets/packet.group.info"; +import { usePacket } from "../ProtocolProvider/usePacket"; +import { useSender } from "../ProtocolProvider/useSender"; +import { useGroups } from "../DialogProvider/useGroups"; +import { useMemory } from "../MemoryProvider/useMemory"; + +/** + * Хук для получения участников группы + * @param groupId ид группы + * @param force принудительное обновление, если true, то будет + * отправлен запрос на сервер и получен актуальный список участников, + * если false, то будет возвращено значение из памяти + * @returns + */ +export function useGroupMembers(groupId: string, force?: boolean) : { + members: string[]; + loading: boolean; +} { + const send = useSender(); + const {normalize, hasGroup} = useGroups(); + const {markAsDeleted} = useGroupInformation(normalize(groupId)); + const [members, setMembers] = useMemory("members_group_" + groupId, [], true); + const [loading, setLoading] = useState(false); + + useEffect(() => { + updateGroupMembers(); + }, [groupId]); + + const updateGroupMembers = () => { + if((!hasGroup(groupId) && groupId.length > 16) + || (members.length > 0 && !force) + ){ + /** + * Не ID группы, пропускаем. Если ид группы больше 16 символов + * и не начинается с #group:, то это не группа. + * Однако если ID меньше 16 символов, то это и не + * публичный ключ. Значит скорее всего это ID группы. + * + * Это условие нужно для оптимизации запросов на сервер. + */ + return; + } + setLoading(true); + let packet = new PacketGroupInfo(); + packet.setGroupId(normalize(groupId)); + send(packet); + } + + usePacket(0x12, (packet: PacketGroupInfo) => { + if(packet.getGroupId() != normalize(groupId)){ + return; + } + const members = packet.getMembers(); + if(members.length <= 0){ + setLoading(false); + markAsDeleted(); + return; + } + setLoading(false); + setMembers(members); + }, [groupId]); + + return { + members, + loading + }; +} \ No newline at end of file diff --git a/app/providers/InformationProvider/useSearch.ts b/app/providers/InformationProvider/useSearch.ts new file mode 100644 index 0000000..9945fff --- /dev/null +++ b/app/providers/InformationProvider/useSearch.ts @@ -0,0 +1,31 @@ +import { useState } from "react"; +import { useProtocol } from "../ProtocolProvider/useProtocol"; +import { PacketSearch, PacketSearchUser } from "../ProtocolProvider/protocol/packets/packet.search"; +import { usePrivateKeyHash } from "../AccountProvider/usePrivateKeyHash"; + +export function useSearch() : [ + PacketSearchUser[], + (username : string) => void, + React.Dispatch> +] { + const {protocol} = useProtocol(); + const [searchResults, setSearchResults] = useState([]); + const privateKeyHash = usePrivateKeyHash(); + + protocol.waitPacketOnce(0x03, (packet : PacketSearch) => { + setSearchResults(packet.getUsers()); + }); + + const search = (username : string) => { + let packet = new PacketSearch(); + packet.setSearch(username); + packet.setPrivateKey(privateKeyHash); + protocol.sendPacket(packet); + } + + return [ + searchResults, + search, + setSearchResults + ]; +} \ No newline at end of file diff --git a/app/providers/InformationProvider/useUpdateGroupInformation.ts b/app/providers/InformationProvider/useUpdateGroupInformation.ts new file mode 100644 index 0000000..43951a8 --- /dev/null +++ b/app/providers/InformationProvider/useUpdateGroupInformation.ts @@ -0,0 +1,13 @@ +import { useContext } from "react"; +import { GroupInformation, InformationContext } from "./InformationProvider"; + +export function useUpdateGroupInformation() : (groupInfo: GroupInformation) => void { + const context = useContext(InformationContext); + const {updateGroupInformation} = context; + + if(!context || !context.cachedGroups) { + throw new Error("useUpdateGroupInformation must be used within a InformationProvider"); + } + + return updateGroupInformation; +} \ No newline at end of file diff --git a/app/providers/InformationProvider/useUserCache.ts b/app/providers/InformationProvider/useUserCache.ts new file mode 100644 index 0000000..28fd93e --- /dev/null +++ b/app/providers/InformationProvider/useUserCache.ts @@ -0,0 +1,36 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { useEffect, useState } from "react"; +import { UserInformation } from "./InformationProvider"; +import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; + +/** + * Информация запрашивается только из кэша, и в отличии от вызова + * хука useUserInformation не использует подгрузку с сервера, + * то есть если в кэше информации нет то вернет пустое значение + * @param publicKey публичный ключ + */ +export function useUserCache(publicKey : string) { + const {getQuery} = useDatabase(); + const [userInfo, setUserInfo] = + useState(undefined); + + useEffect(() => { + loadFromCacheDatabase(); + }, [publicKey]); + + const loadFromCacheDatabase = async () => { + const result = await getQuery("SELECT * FROM `cached_users` WHERE `public_key` = ?", [publicKey]); + if(!result){ + return; + } + setUserInfo({ + publicKey: result.public_key, + verified: result.verified, + title: result.title, + username: result.username, + online: OnlineState.OFFLINE + }); + } + + return userInfo; +} \ No newline at end of file diff --git a/app/providers/InformationProvider/useUserCacheFunc.ts b/app/providers/InformationProvider/useUserCacheFunc.ts new file mode 100644 index 0000000..9e1b1bf --- /dev/null +++ b/app/providers/InformationProvider/useUserCacheFunc.ts @@ -0,0 +1,23 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { UserInformation } from "./InformationProvider"; +import { OnlineState } from "../ProtocolProvider/protocol/packets/packet.onlinestate"; + +export function useUserCacheFunc() { + const {getQuery} = useDatabase(); + + const getUserInformation = async (publicKey: string): Promise => { + const result = await getQuery("SELECT * FROM `cached_users` WHERE `public_key` = ?", [publicKey]); + if(!result){ + return null; + } + return { + publicKey: result.public_key, + verified: result.verified, + title: result.title, + username: result.username, + online: OnlineState.OFFLINE + }; + } + + return getUserInformation; +} \ No newline at end of file diff --git a/app/providers/InformationProvider/useUserInformation.ts b/app/providers/InformationProvider/useUserInformation.ts new file mode 100644 index 0000000..bc568e5 --- /dev/null +++ b/app/providers/InformationProvider/useUserInformation.ts @@ -0,0 +1,132 @@ +import { useContext, useEffect, useState } from "react"; +import { InformationContext, UserInformation } from "./InformationProvider"; +import { PacketOnlineSubscribe } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinesubscribe"; +import { useMemory } from "../MemoryProvider/useMemory"; +import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; +import { PacketSearch } from "@/app/providers/ProtocolProvider/protocol/packets/packet.search"; +import { usePrivateKeyHash } from "../AccountProvider/usePrivateKeyHash"; +import { useSender } from "../ProtocolProvider/useSender"; +import { usePacket } from "../ProtocolProvider/usePacket"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { useBlacklist } from "../BlacklistProvider/useBlacklist"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; +import { useSystemAccounts } from "../SystemAccountsProvider/useSystemAccounts"; + +export function useUserInformation(publicKey: string) : [ + UserInformation, + (userInfo: UserInformation) => Promise, + () => void, + boolean +] { + const context = useContext(InformationContext); + const send = useSender(); + const privateKey = usePrivateKeyHash(); + const [onlineSubscribes, setOnlineSubscribes] = useMemory("online_subscribes", [], true); + const {cachedUsers, updateUserInformation} = context; + const user : UserInformation = cachedUsers.find((user: UserInformation) => user.publicKey == publicKey); + const [loading, setLoading] = useState(false); + const ownPublicKey = usePublicKey(); + const [blocked] = useBlacklist(publicKey); + const {info, warn} = useConsoleLogger('useUserInformation'); + const systemAccounts = useSystemAccounts(); + + if(!context || !context.cachedUsers) { + throw new Error("useUserInformation must be used within a InformationProvider"); + } + + const forceUpdateUserInformation = () => { + if(publicKey.indexOf("#group:") !== -1){ + /** + * This is group, only users can be force updated + */ + info("Force update skipped for group " + publicKey); + return; + } + if(systemAccounts.find((acc) => acc.publicKey == publicKey)){ + /** + * System account has no updates, its hardcoded display + * name and user name + */ + info("System account not need force update"); + return; + } + if(blocked){ + warn("User is blocked, no force update " + publicKey); + return; + } + warn("Force update " + publicKey); + let packetSearch = new PacketSearch(); + packetSearch.setSearch(publicKey); + packetSearch.setPrivateKey(privateKey); + send(packetSearch); + } + + useEffect(() => { + /** + * Подписываемся на статус пользователя онлайн или не онлайн + * если еще не подписаны + */ + if(onlineSubscribes.indexOf(publicKey) !== -1 + || publicKey.indexOf("#group:") !== -1 + || publicKey == ownPublicKey + || publicKey.trim() == '' + || blocked){ + /** + * Уже подписаны на онлайн статус этого пользователя или это группа + */ + return; + } + let subscribePacket = new PacketOnlineSubscribe(); + subscribePacket.setPrivateKey(privateKey); + subscribePacket.addPublicKey(publicKey); + send(subscribePacket); + setOnlineSubscribes((prev) => [...prev, publicKey]); + }, [blocked]); + + useEffect(() => { + if(user || publicKey.trim() == ''){ + return; + } + setLoading(true); + let packetSearch = new PacketSearch(); + packetSearch.setSearch(publicKey); + packetSearch.setPrivateKey(privateKey); + send(packetSearch); + }, [publicKey, privateKey, user]); + + usePacket(0x03, (packet : PacketSearch) => { + const users = packet.getUsers(); + if (users.length > 0 && users[0].publicKey == publicKey) { + if( user && + user.username == users[0].username && + user.verified == users[0].verified && + user.title == users[0].title + ){ + /** + * No update readed from server, stop rerender + */ + return; + } + setLoading(false); + updateUserInformation({ + publicKey: users[0].publicKey, + avatar: "", // No avatar in search packet + username: users[0].username, + title: users[0].title, + online: users[0].online, + verified: users[0].verified + }); + } + }, [publicKey, privateKey]); + + return [ + { + title: user ? user.title : "DELETED", + username: user ? user.username : "", + publicKey: user ? user.publicKey : "", + online: user ? user.online : OnlineState.OFFLINE, + verified: user ? user.verified : 0 + }, updateUserInformation, forceUpdateUserInformation, loading + ] + +} \ No newline at end of file diff --git a/app/providers/MemoryProvider/MemoryProvider.tsx b/app/providers/MemoryProvider/MemoryProvider.tsx new file mode 100644 index 0000000..1fe0a46 --- /dev/null +++ b/app/providers/MemoryProvider/MemoryProvider.tsx @@ -0,0 +1,11 @@ +import { createContext, useState } from 'react'; +export const MemoryContext = createContext({}); + +export function MemoryProvider({children}) { + const [memory, setMemory] = useState({}); + return ( + + {children} + + ) +} \ No newline at end of file diff --git a/app/providers/MemoryProvider/useMemory.ts b/app/providers/MemoryProvider/useMemory.ts new file mode 100644 index 0000000..81485c3 --- /dev/null +++ b/app/providers/MemoryProvider/useMemory.ts @@ -0,0 +1,27 @@ +import { useContext } from "react"; +import { MemoryContext } from "./MemoryProvider"; + +export function useMemory(selector : string, def : T, writable : boolean = true) : [T, (value: T | ((prevValue: T) => T)) => void] { + const {memory, setMemory} = useContext(MemoryContext); + const value = () => { + if(memory[selector] == undefined){ + return def; + } + return memory[selector]; + }; + const setValue = (value: T | ((prevValue: T) => T)) => { + if (!writable && memory[selector] == undefined) { + return; + } + const newValue = typeof value === "function" ? + (value as (prevValue: T) => T)(memory[selector] ?? def) + : value; + setMemory((prev : any) => ({ + ...prev, + [selector]: typeof value === "function" + ? (value as (prevValue: T) => T)(prev[selector] ?? def) + : newValue, + })); + } + return [value(), setValue]; +} \ No newline at end of file diff --git a/app/providers/MemoryProvider/useMemoryClean.ts b/app/providers/MemoryProvider/useMemoryClean.ts new file mode 100644 index 0000000..9798789 --- /dev/null +++ b/app/providers/MemoryProvider/useMemoryClean.ts @@ -0,0 +1,12 @@ +import { useContext } from "react"; +import { MemoryContext } from "./MemoryProvider"; + +export function useMemoryClean() { + const {setMemory} = useContext(MemoryContext); + + const clean = () => { + setMemory({}); + } + + return clean; +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/.DS_Store b/app/providers/ProtocolProvider/.DS_Store new file mode 100644 index 0000000..a5fb6bb Binary files /dev/null and b/app/providers/ProtocolProvider/.DS_Store differ diff --git a/app/providers/ProtocolProvider/ProtocolProvider.tsx b/app/providers/ProtocolProvider/ProtocolProvider.tsx new file mode 100644 index 0000000..6fce06a --- /dev/null +++ b/app/providers/ProtocolProvider/ProtocolProvider.tsx @@ -0,0 +1,80 @@ +import Protocol from "@/app/providers/ProtocolProvider/protocol/protocol"; +import { createContext, useEffect, useMemo, useState } from "react"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { usePrivateKeyHash } from "../AccountProvider/usePrivateKeyHash"; +import { useLogger } from "@/app/hooks/useLogger"; +import { useMemory } from "../MemoryProvider/useMemory"; +import { useDeviceId } from "../DeviceProvider/useDeviceId"; +import { useNavigate } from "react-router-dom"; + +export enum ProtocolState { + CONNECTED, + HANDSHAKE_EXCHANGE, + DISCONNECTED, + RECONNECTING, + DEVICE_VERIFICATION_REQUIRED +} + +export const ProtocolContext = createContext<[Protocol|null, ProtocolState]>([null, ProtocolState.DISCONNECTED]); + +interface ProtocolProviderProps { + children: React.ReactNode; + serverAddress : string; +} + +export function ProtocolProvider(props : ProtocolProviderProps) { + const publicKey = usePublicKey(); + const privateKey = usePrivateKeyHash(); + const protocol = useMemo(() => { + return new Protocol(props.serverAddress) + }, [props.serverAddress, publicKey, privateKey]); + const log = useLogger('ProtocolProvider'); + const [connect, setConnect] = useState(ProtocolState.DISCONNECTED); + const [_, setOnlineSubscribes] = useMemory("online_subscribes", [], true); + const deviceId = useDeviceId(); + const navigate = useNavigate(); + + useEffect(() => { + if(publicKey.trim() == "" + || privateKey.trim() == "" || deviceId == "") { + return; + } + const device = { + deviceId: deviceId, + deviceName: window.deviceName || "Unknown Device" + } + protocol.startHandshakeExchange(publicKey, privateKey, device); + protocol.on('connect', () => { + protocol.startHandshakeExchange(publicKey, privateKey, device); + /** + * Сбрасываем подписки на онлайн статусы пользователей + * так как при переподключении они слетают + */ + setOnlineSubscribes([]); + }); + protocol.on('reconnect', () => { + log("Connection lost, reconnecting and starting handshake exchange"); + setConnect(ProtocolState.RECONNECTING); + }); + protocol.on('handshake_start', () => { + log("Handshake exchange started"); + setConnect(ProtocolState.HANDSHAKE_EXCHANGE); + }); + protocol.on('handshake_complete', () => { + log("Handshake exchange complete"); + setConnect(ProtocolState.CONNECTED); + }); + protocol.on('handshake_need_device_verification', () => { + log("Handshake exchange needs device verification"); + setConnect(ProtocolState.DEVICE_VERIFICATION_REQUIRED); + navigate('/deviceconfirm'); + }); + }, [publicKey, privateKey, deviceId]); + + return ( + + {props.children} + + ); + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/.DS_Store b/app/providers/ProtocolProvider/protocol/.DS_Store new file mode 100644 index 0000000..42271c7 Binary files /dev/null and b/app/providers/ProtocolProvider/protocol/.DS_Store differ diff --git a/app/providers/ProtocolProvider/protocol/packet.ts b/app/providers/ProtocolProvider/protocol/packet.ts new file mode 100644 index 0000000..b31b992 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packet.ts @@ -0,0 +1,28 @@ +import Stream from "./stream"; + +/** + * Packet abstract class + */ +export default abstract class Packet { + + /** + * Get the packet ID + * @returns packet ID + */ + public abstract getPacketId(): number; + /** + * Use the stream to read the packet and fill structure + * @param stream stream + */ + public abstract _receive(stream: Stream): void; + /** + * Use the stream to write the packet and return the stream + * @returns stream + */ + public abstract _send(): Promise | Stream; + + public clone(): Packet { + return new (this as any).constructor(); + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.appupdate.ts b/app/providers/ProtocolProvider/protocol/packets/packet.appupdate.ts new file mode 100644 index 0000000..82f66f4 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.appupdate.ts @@ -0,0 +1,54 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketAppUpdate extends Packet { + + private url: string = ""; + private version: string = ""; + private kernelVersionRequired: string = ""; + + public getPacketId(): number { + return 0x0E; + } + + public _receive(stream: Stream): void { + this.url = stream.readString(); + this.version = stream.readString(); + this.kernelVersionRequired = stream.readString(); + } + + + public _send(): Promise | Stream { + let stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.url); + stream.writeString(this.version); + stream.writeString(this.kernelVersionRequired); + return stream; + } + + public getUrl(): string { + return this.url; + } + + public setUrl(url: string): void { + this.url = url; + } + + public getVersion(): string { + return this.version; + } + + public setVersion(version: string): void { + this.version = version; + } + + public getKernelVersionRequired(): string { + return this.kernelVersionRequired; + } + + public setKernelVersionRequired(kernelVersionRequired: string): void { + this.kernelVersionRequired = kernelVersionRequired; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.avatar.ts b/app/providers/ProtocolProvider/protocol/packets/packet.avatar.ts new file mode 100644 index 0000000..cdbeae3 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.avatar.ts @@ -0,0 +1,77 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketAvatar extends Packet { + + private privateKey : string = ""; + private fromPublicKey: string = ""; + private toPublicKey: string = ""; + private blob: string = ""; + + private chachaKey: string = ""; + + + public getPacketId(): number { + return 0x0C; + } + + public _receive(stream: Stream): void { + this.privateKey = stream.readString(); + this.fromPublicKey = stream.readString(); + this.toPublicKey = stream.readString(); + this.chachaKey = stream.readString(); + this.blob = stream.readString(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.privateKey); + stream.writeString(this.fromPublicKey); + stream.writeString(this.toPublicKey); + stream.writeString(this.chachaKey); + stream.writeString(this.blob); + return stream; + } + + public setFromPublicKey(fromPublicKey: string): void { + this.fromPublicKey = fromPublicKey; + } + + public setToPublicKey(toPublicKey: string): void { + this.toPublicKey = toPublicKey; + } + + public getFromPublicKey(): string { + return this.fromPublicKey; + } + + public getToPublicKey(): string { + return this.toPublicKey; + } + + public setPrivateKey(hash: string): void { + this.privateKey = hash; + } + + public getPrivateKey(): string { + return this.privateKey; + } + + public setBlob(blob: string): void { + this.blob = blob; + } + + public getBlob(): string { + return this.blob; + } + + public setChachaKey(key: string): void { + this.chachaKey = key; + } + + public getChachaKey(): string { + return this.chachaKey; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.create.group.ts b/app/providers/ProtocolProvider/protocol/packets/packet.create.group.ts new file mode 100644 index 0000000..ddf10bb --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.create.group.ts @@ -0,0 +1,31 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketCreateGroup extends Packet { + + private groupId: string = ""; + + public getPacketId(): number { + return 0x11; + } + + public _receive(stream: Stream): void { + this.groupId = stream.readString(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.groupId); + return stream; + } + + public setGroupId(groupId: string) { + this.groupId = groupId; + } + + public getGroupId(): string { + return this.groupId; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.delivery.ts b/app/providers/ProtocolProvider/protocol/packets/packet.delivery.ts new file mode 100644 index 0000000..a32ef49 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.delivery.ts @@ -0,0 +1,42 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketDelivery extends Packet { + + private messageId: string = ""; + private toPublicKey: string = ""; + + public getPacketId(): number { + return 0x08; + } + + public _receive(stream: Stream): void { + this.toPublicKey = stream.readString(); + this.messageId = stream.readString(); + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.toPublicKey); + stream.writeString(this.messageId); + return stream; + } + + public setMessageId(messageId: string) { + this.messageId = messageId; + } + + public getMessageId(): string { + return this.messageId; + } + + public setToPublicKey(toPublicKey: string) { + this.toPublicKey = toPublicKey; + } + + public getToPublicKey(): string { + return this.toPublicKey; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.group.ban.ts b/app/providers/ProtocolProvider/protocol/packets/packet.group.ban.ts new file mode 100644 index 0000000..f7cb3f9 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.group.ban.ts @@ -0,0 +1,42 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketGroupBan extends Packet { + + private groupId: string = ""; + private publicKey: string = ""; + + public getPacketId(): number { + return 0x16; + } + + public _receive(stream: Stream): void { + this.groupId = stream.readString(); + this.publicKey = stream.readString(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.groupId); + stream.writeString(this.publicKey); + return stream; + } + + public getGroupId(): string { + return this.groupId; + } + + public getPublicKey(): string { + return this.publicKey; + } + + public setGroupId(groupId: string): void { + this.groupId = groupId; + } + + public setPublicKey(publicKey: string): void { + this.publicKey = publicKey; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.group.info.ts b/app/providers/ProtocolProvider/protocol/packets/packet.group.info.ts new file mode 100644 index 0000000..3d2da47 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.group.info.ts @@ -0,0 +1,50 @@ +import Packet from "../packet"; +import Stream from "../stream"; + + +export class PacketGroupInfo extends Packet { + + private groupId: string = ""; + private members: string[] = []; + + public getPacketId(): number { + return 0x12; + } + + public _receive(stream: Stream): void { + this.groupId = stream.readString(); + const membersCount = stream.readInt16(); + this.members = []; + for(let i = 0; i < membersCount; i++) { + this.members.push(stream.readString()); + } + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.groupId); + stream.writeInt16(this.members.length); + this.members.forEach((member) => { + stream.writeString(member); + }); + return stream; + } + + public getGroupId(): string { + return this.groupId; + } + + public setGroupId(groupId: string): void { + this.groupId = groupId; + } + + public setMembers(members: string[]): void { + this.members = members; + } + + public getMembers(): string[] { + return this.members; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.group.invite.info.ts b/app/providers/ProtocolProvider/protocol/packets/packet.group.invite.info.ts new file mode 100644 index 0000000..470c3c6 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.group.invite.info.ts @@ -0,0 +1,60 @@ +import Packet from "../packet" +import Stream from "../stream"; + +export enum GroupStatus { + JOINED = 0, + INVALID = 1, + NOT_JOINED = 2, + BANNED = 3 +} + +export class PacketGroupInviteInfo extends Packet { + + private groupId: string = ""; + private membersCount = 0; + private groupStatus: GroupStatus = GroupStatus.NOT_JOINED; + + public getPacketId(): number { + return 0x13; + } + + public _receive(stream: Stream): void { + this.groupId = stream.readString(); + this.membersCount = stream.readInt16(); + this.groupStatus = stream.readInt8(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.groupId); + stream.writeInt16(this.membersCount); + stream.writeInt8(this.groupStatus); + return stream; + } + + public setGroupId(groupId: string) { + this.groupId = groupId; + } + + public getGroupId(): string { + return this.groupId; + } + + public setMembersCount(count: number) { + this.membersCount = count; + } + + public getMembersCount(): number { + return this.membersCount; + } + + public setGroupStatus(status: GroupStatus) { + this.groupStatus = status; + } + + public getGroupStatus(): GroupStatus { + return this.groupStatus; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.group.join.ts b/app/providers/ProtocolProvider/protocol/packets/packet.group.join.ts new file mode 100644 index 0000000..89c271c --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.group.join.ts @@ -0,0 +1,49 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export enum GroupStatus { + JOINED = 0, + INVALID = 1, + NOT_JOINED = 2, + BANNED = 3 +} + +export class PacketGroupJoin extends Packet { + + private groupId: string = ""; + private groupStatus: GroupStatus = GroupStatus.NOT_JOINED; + + public getPacketId(): number { + return 0x14; + } + + public _receive(stream: Stream): void { + this.groupId = stream.readString(); + this.groupStatus = stream.readInt8(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.groupId); + stream.writeInt8(this.groupStatus); + return stream; + } + + public setGroupId(groupId: string) { + this.groupId = groupId; + } + + public getGroupId(): string { + return this.groupId; + } + + public setGroupStatus(groupStatus: GroupStatus) { + this.groupStatus = groupStatus; + } + + public getGroupStatus(): GroupStatus { + return this.groupStatus; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.group.leave.ts b/app/providers/ProtocolProvider/protocol/packets/packet.group.leave.ts new file mode 100644 index 0000000..98f44d0 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.group.leave.ts @@ -0,0 +1,31 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketGroupLeave extends Packet { + + private groupId: string = ""; + + public getPacketId(): number { + return 0x15; + } + + public _receive(stream: Stream): void { + this.groupId = stream.readString(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.groupId); + return stream; + } + + public setGroupId(groupId: string) { + this.groupId = groupId; + } + + public getGroupId(): string { + return this.groupId; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.handshake.ts b/app/providers/ProtocolProvider/protocol/packets/packet.handshake.ts new file mode 100644 index 0000000..5b26075 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.handshake.ts @@ -0,0 +1,113 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export enum HandshakeState { + COMPLETED, + NEED_DEVICE_VERIFICATION +} + +export interface Device { + deviceId: string; + deviceName: string; +} + +/** + * Hadshake packet + * ID: 0x00 + * + * The handshake packet is the first packet sent by the client to the server. + * It contains the hash of the client's public key and the public key itself. + */ +export default class PacketHandshake extends Packet { + private privateKey: string = ""; + private publicKey: string = ""; + private protocolVersion: number = 1; + /** + * Interval seconds + */ + private heartbeatInterval : number = 15; + private device: Device = { + deviceId: "", + deviceName: "" + }; + private handshakeState: + HandshakeState = HandshakeState.NEED_DEVICE_VERIFICATION; + + public getPacketId(): number { + return 0x00; + } + + public _receive(stream: Stream): void { + this.privateKey = stream.readString(); + this.publicKey = stream.readString(); + this.protocolVersion = stream.readInt8(); + this.heartbeatInterval = stream.readInt8(); + this.device = { + deviceId: stream.readString(), + deviceName: stream.readString() + } + this.handshakeState = stream.readInt8(); + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.privateKey); + stream.writeString(this.publicKey); + stream.writeInt8(this.protocolVersion); + stream.writeInt8(this.heartbeatInterval); + stream.writeString(this.device.deviceId); + stream.writeString(this.device.deviceName); + stream.writeInt8(this.handshakeState); + return stream; + } + + public getPrivateKey(): string { + return this.privateKey; + } + + public getPublicKey(): string { + return this.publicKey; + } + + public setPrivateKey(privateKey: string): void { + this.privateKey = privateKey; + } + + public setPublicKey(publicKey: string): void { + this.publicKey = publicKey; + } + + public getProtocolVersion(): number { + return this.protocolVersion; + } + + public setProtocolVersion(protocolVersion: number): void { + this.protocolVersion = protocolVersion; + } + + public getHeartbeatInterval(): number { + return this.heartbeatInterval; + } + + public setHeartbeatInterval(heartbeatInterval: number): void { + this.heartbeatInterval = heartbeatInterval; + } + + public getDevice(): Device { + return this.device; + } + + public setDevice(device: Device): void { + this.device = device; + } + + public getHandshakeState(): HandshakeState { + return this.handshakeState; + } + + public setHandshakeState(handshakeState: HandshakeState): void { + this.handshakeState = handshakeState; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.kernelupdate.ts b/app/providers/ProtocolProvider/protocol/packets/packet.kernelupdate.ts new file mode 100644 index 0000000..3ba2486 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.kernelupdate.ts @@ -0,0 +1,43 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketKernelUpdate extends Packet { + + private url: string = ""; + private version: string = ""; + + + public getPacketId(): number { + return 0x0D; + } + + public _receive(stream: Stream): void { + this.url = stream.readString(); + this.version = stream.readString(); + } + + public _send(): Promise | Stream { + let stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.url); + stream.writeString(this.version); + return stream; + } + + public getUrl(): string { + return this.url; + } + + public setUrl(url: string): void { + this.url = url; + } + + public getVersion(): string { + return this.version; + } + + public setVersion(version: string): void { + this.version = version; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.message.ts b/app/providers/ProtocolProvider/protocol/packets/packet.message.ts new file mode 100644 index 0000000..ae61f1f --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.message.ts @@ -0,0 +1,150 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export enum AttachmentType { + IMAGE = 0, + MESSAGES = 1, + FILE = 2, + AVATAR = 3 +} + +export interface Attachment { + id: string; + blob: string; + type: AttachmentType; + preview: string; +} + +export class PacketMessage extends Packet { + + private fromPublicKey: string = ""; + private toPublicKey: string = ""; + private content: string = ""; + private chachaKey: string = ""; + private timestamp: number = 0; + private privateKey: string = ""; + private messageId: string = ""; + /** + * Закодированный с помощью AES ключ chacha, нужен + * для последующей синхронизации своих же сообщений + */ + private aesChachaKey: string = ""; + + private attachments: Attachment[] = []; + + public getPacketId(): number { + return 0x06; + } + + public _receive(stream: Stream): void { + this.fromPublicKey = stream.readString(); + this.toPublicKey = stream.readString(); + this.content = stream.readString(); + this.chachaKey = stream.readString(); + this.timestamp = stream.readInt64(); + this.privateKey = stream.readString(); + this.messageId = stream.readString(); + let attachmentsCount = stream.readInt8(); + for(let i = 0; i < attachmentsCount; i++){ + let id = stream.readString(); + let preview = stream.readString(); + let blob = stream.readString(); + let type = stream.readInt8() as AttachmentType; + this.attachments.push({id, preview, type, blob}); + } + this.aesChachaKey = stream.readString(); + } + + public async _send(): Promise { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.fromPublicKey); + stream.writeString(this.toPublicKey); + stream.writeString(this.content); + stream.writeString(this.chachaKey); + stream.writeInt64(this.timestamp); + stream.writeString(this.privateKey); + stream.writeString(this.messageId); + stream.writeInt8(this.attachments.length); + for(let i = 0; i < this.attachments.length; i++){ + stream.writeString(this.attachments[i].id); + stream.writeString(this.attachments[i].preview); + stream.writeString(this.attachments[i].blob); + stream.writeInt8(this.attachments[i].type); + } + stream.writeString(this.aesChachaKey); + return stream; + } + + public setAttachments(attachments: Attachment[]): void { + this.attachments = attachments; + } + + public getAttachments(): Attachment[] { + return this.attachments; + } + + public setMessageId(messageId: string): void { + this.messageId = messageId; + } + + public getMessageId(): string { + return this.messageId; + } + + public setTimestamp(timestamp: number): void { + this.timestamp = timestamp; + } + + public getTimestamp() : number { + return this.timestamp; + } + + public getFromPublicKey(): string { + return this.fromPublicKey; + } + + public getToPublicKey(): string { + return this.toPublicKey; + } + + public getContent(): string { + return this.content; + } + + public getChachaKey(): string { + return this.chachaKey; + } + + public setFromPublicKey(fromPublicKey: string): void { + this.fromPublicKey = fromPublicKey; + } + + public setToPublicKey(toPublicKey: string): void { + this.toPublicKey = toPublicKey; + } + + public setContent(content: string): void { + this.content = content; + } + + public setChachaKey(chachaKey: string): void { + this.chachaKey = chachaKey; + } + + public setPrivateKey(privateKey: string): void { + this.privateKey = privateKey; + } + + public getPrivateKey(): string { + return this.privateKey; + } + + public getAesChachaKey() : string { + return this.aesChachaKey; + } + + public setAesChachaKey(aesChachaKey: string) { + this.aesChachaKey = aesChachaKey; + } +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate.ts b/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate.ts new file mode 100644 index 0000000..ac3325c --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate.ts @@ -0,0 +1,58 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export enum OnlineState { + ONLINE, + OFFLINE +} + +export interface PublicKeyOnlineState { + publicKey: string; + state: OnlineState; +} + +export class PacketOnlineState extends Packet { + + private publicKeysState: PublicKeyOnlineState[] = []; + + + public getPacketId(): number { + return 0x05; + } + + public _receive(stream: Stream): void { + const publicKeyCount = stream.readInt8(); + for (let i = 0; i < publicKeyCount; i++) { + const publicKey = stream.readString(); + const state = stream.readBoolean() ? OnlineState.ONLINE : OnlineState.OFFLINE; + this.publicKeysState.push({ publicKey, state }); + } + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeInt8(this.publicKeysState.length); + for (const publicKeyState of this.publicKeysState) { + stream.writeString(publicKeyState.publicKey); + stream.writeBoolean(publicKeyState.state === OnlineState.ONLINE); + } + return stream; + } + + public addPublicKeyState(publicKey: string, state: OnlineState): void { + this.publicKeysState.push({ publicKey, state }); + } + + public getPublicKeysState(): PublicKeyOnlineState[] { + return this.publicKeysState; + } + + public setPublicKeysState(publicKeysState: PublicKeyOnlineState[]): void { + this.publicKeysState = publicKeysState; + } + + + + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.onlinesubscribe.ts b/app/providers/ProtocolProvider/protocol/packets/packet.onlinesubscribe.ts new file mode 100644 index 0000000..b574aa8 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.onlinesubscribe.ts @@ -0,0 +1,59 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketOnlineSubscribe extends Packet { + + private privateKey : string = ""; + private publicKeys: string[] = []; + + public getPacketId(): number { + return 0x04; + } + + public _receive(stream: Stream): void { + this.privateKey = stream.readString(); + const keysCount = stream.readInt16(); + for (let i = 0; i < keysCount; i++) { + this.publicKeys.push(stream.readString()); + } + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.privateKey); + stream.writeInt16(this.publicKeys.length); + for (const key of this.publicKeys) { + stream.writeString(key); + } + return stream; + } + + public getPrivateKey(): string { + return this.privateKey; + } + + public setPrivateKey(privateKey: string): void { + this.privateKey = privateKey; + } + + public getPublicKeys(): string[] { + return this.publicKeys; + } + + public setPublicKeys(publicKeys: string[]): void { + this.publicKeys = publicKeys; + } + + public addPublicKey(publicKey: string): void { + this.publicKeys.push(publicKey); + } + + public removePublicKey(publicKey: string): void { + const index = this.publicKeys.indexOf(publicKey); + if (index > -1) { + this.publicKeys.splice(index, 1); + } + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.push.notification.ts b/app/providers/ProtocolProvider/protocol/packets/packet.push.notification.ts new file mode 100644 index 0000000..09b7f64 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.push.notification.ts @@ -0,0 +1,60 @@ +import Packet from "../packet"; +import Stream from "../stream"; + + +/** + * Push Notification actions + * SUBSCRIBE - подписаться на push-уведомления + * UNSUBSCRIBE - отписаться от push-уведомлений + */ +export enum PushNotificationAction { + SUBSCRIBE = 0, + UNSUBSCRIBE = 1, +} + +/** + * Push Notification packet + * ID: 0x10 + * + * Этот пакет отправляется клиентом для подписки на push-уведомления. + * Отправлять можно только в том случае, если пользователь уже прошел + * рукопожатие и установил соединение. + */ +export class PacketPushNotification extends Packet { + private notificationsToken: string = ""; + private action: PushNotificationAction = PushNotificationAction.SUBSCRIBE; + + + public getPacketId(): number { + return 0x10; + } + + public _receive(stream: Stream): void { + this.notificationsToken = stream.readString(); + this.action = stream.readInt8(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.notificationsToken); + stream.writeInt8(this.action); + return stream; + } + + public getNotificationsToken(): string { + return this.notificationsToken; + } + + public setNotificationsToken(notificationsToken: string): void { + this.notificationsToken = notificationsToken; + } + + public getAction(): PushNotificationAction { + return this.action; + } + + public setAction(action: PushNotificationAction): void { + this.action = action; + } +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.read.ts b/app/providers/ProtocolProvider/protocol/packets/packet.read.ts new file mode 100644 index 0000000..d188789 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.read.ts @@ -0,0 +1,52 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketRead extends Packet { + + private privateKey : string = ""; + private fromPublicKey: string = ""; + private toPublicKey: string = ""; + + public getPacketId(): number { + return 0x07; + } + + public _receive(stream: Stream): void { + this.privateKey = stream.readString(); + this.fromPublicKey = stream.readString(); + this.toPublicKey = stream.readString(); + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.privateKey); + stream.writeString(this.fromPublicKey); + stream.writeString(this.toPublicKey); + return stream; + } + + public setFromPublicKey(fromPublicKey: string): void { + this.fromPublicKey = fromPublicKey; + } + + public setToPublicKey(toPublicKey: string): void { + this.toPublicKey = toPublicKey; + } + + public getFromPublicKey(): string { + return this.fromPublicKey; + } + + public getToPublicKey(): string { + return this.toPublicKey; + } + + public setPrivateKey(privateKey: string): void { + this.privateKey = privateKey; + } + + public getPrivateKey(): string { + return this.privateKey; + } +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.requesttransport.ts b/app/providers/ProtocolProvider/protocol/packets/packet.requesttransport.ts new file mode 100644 index 0000000..ae293fa --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.requesttransport.ts @@ -0,0 +1,32 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketRequestTransport extends Packet { + + private transportServer: string = ""; + + public getPacketId(): number { + return 0x0F; + } + + public _receive(stream: Stream): void { + this.transportServer = stream.readString(); + } + + public _send(): Promise | Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.transportServer); + return stream; + } + + public getTransportServer(): string { + return this.transportServer; + } + + public setTransportServer(transportServer: string): void { + this.transportServer = transportServer; + } + + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.requestupdate.ts b/app/providers/ProtocolProvider/protocol/packets/packet.requestupdate.ts new file mode 100644 index 0000000..89c9ce6 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.requestupdate.ts @@ -0,0 +1,65 @@ +import Packet from "../packet"; +import Stream from "../stream"; + + +export class PacketRequestUpdate extends Packet { + + private kernelVersion: string = ""; + private appVersion: string = ""; + private arch: string = ""; + private platform: string = ""; + + public getPacketId(): number { + return 0xA; + } + + public _receive(stream: Stream): void { + this.kernelVersion = stream.readString(); + this.appVersion = stream.readString(); + this.arch = stream.readString(); + this.platform = stream.readString(); + } + + public _send(): Promise | Stream { + let stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.kernelVersion); + stream.writeString(this.appVersion); + stream.writeString(this.arch); + stream.writeString(this.platform); + return stream; + } + + public setKernelVersion(version: string): void { + this.kernelVersion = version; + } + + public getKernelVersion(): string { + return this.kernelVersion; + } + + public setAppVersion(version: string): void { + this.appVersion = version; + } + + public getAppVersion(): string { + return this.appVersion; + } + + public setArch(arch: string): void { + this.arch = arch; + } + + public getArch(): string { + return this.arch; + } + + public setPlatform(platform: string): void { + this.platform = platform; + } + + public getPlatform(): string { + return this.platform; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.result.ts b/app/providers/ProtocolProvider/protocol/packets/packet.result.ts new file mode 100644 index 0000000..172008d --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.result.ts @@ -0,0 +1,38 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export enum ResultCode { + SUCCESS = 0, + ERROR = 1, + INVALID = 2, + USERNAME_TAKEN = 3, +} + +export class PacketResult extends Packet { + + private resultCode: ResultCode = 0; + + public getPacketId(): number { + return 0x02; + } + + public _receive(stream: Stream): void { + this.resultCode = stream.readInt16(); + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeInt16(this.resultCode); + return stream; + } + + public getResultCode(): ResultCode { + return this.resultCode; + } + + public setResultCode(resultCode: ResultCode): void { + this.resultCode = resultCode; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.search.ts b/app/providers/ProtocolProvider/protocol/packets/packet.search.ts new file mode 100644 index 0000000..8f21533 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.search.ts @@ -0,0 +1,77 @@ +import Packet from "../packet"; +import Stream from "../stream"; +import { OnlineState } from "./packet.onlinestate"; + +export interface PacketSearchUser { + username: string; + title: string; + publicKey: string; + verified: number; + online: OnlineState; +} + +export class PacketSearch extends Packet { + + private privateKey : string = ""; + private search : string = ""; + private users : PacketSearchUser[] = []; + + + public getPacketId(): number { + return 0x03; + } + + public _receive(stream: Stream): void { + this.privateKey = stream.readString(); + this.search = stream.readString(); + const userCount = stream.readInt16(); + for (let i = 0; i < userCount; i++) { + const username = stream.readString(); + const title = stream.readString(); + const publicKey = stream.readString(); + const verified = stream.readInt8(); + const online = stream.readInt8(); + this.users.push({ username, title, publicKey, online, verified }); + } + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.privateKey); + stream.writeString(this.search); + stream.writeInt16(this.users.length); + for (const user of this.users) { + stream.writeString(user.username); + stream.writeString(user.title); + stream.writeString(user.publicKey); + stream.writeInt8(user.verified); + stream.writeInt8(user.online); + } + return stream; + } + + public getPrivateKey(): string { + return this.privateKey; + } + + public setPrivateKey(privateKey: string): void { + this.privateKey = privateKey; + } + + public getSearch(): string { + return this.search; + } + + public setSearch(search: string): void { + this.search = search; + } + + public addUser(searchUser: PacketSearchUser): void { + this.users.push(searchUser); + } + + public getUsers(): PacketSearchUser[] { + return this.users; + } +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.typeing.ts b/app/providers/ProtocolProvider/protocol/packets/packet.typeing.ts new file mode 100644 index 0000000..22e8822 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.typeing.ts @@ -0,0 +1,53 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketTyping extends Packet { + + private privateKey: string = ""; + private fromPublicKey: string = ""; + private toPublicKey: string = ""; + + public getPacketId(): number { + return 0x0B; + } + + public _receive(stream: Stream): void { + this.privateKey = stream.readString(); + this.fromPublicKey = stream.readString(); + this.toPublicKey = stream.readString(); + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.privateKey); + stream.writeString(this.fromPublicKey); + stream.writeString(this.toPublicKey); + return stream; + } + + public setFromPublicKey(fromPublicKey: string): void { + this.fromPublicKey = fromPublicKey; + } + + public setToPublicKey(toPublicKey: string): void { + this.toPublicKey = toPublicKey; + } + + public getFromPublicKey(): string { + return this.fromPublicKey; + } + + public getToPublicKey(): string { + return this.toPublicKey; + } + + public setPrivateKey(privateKey: string): void { + this.privateKey = privateKey; + } + + public getPrivateKey(): string { + return this.privateKey; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/packets/packet.userinfo.ts b/app/providers/ProtocolProvider/protocol/packets/packet.userinfo.ts new file mode 100644 index 0000000..7dc6856 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/packets/packet.userinfo.ts @@ -0,0 +1,51 @@ +import Packet from "../packet"; +import Stream from "../stream"; + +export class PacketUserInfo extends Packet { + private privateKey : string = ""; + private username: string = ""; + private title: string = ""; + + public getPacketId(): number { + return 0x01; + } + + public _receive(stream: Stream): void { + this.username = stream.readString(); + this.title = stream.readString(); + this.privateKey = stream.readString(); + } + + public _send(): Stream { + const stream = new Stream(); + stream.writeInt16(this.getPacketId()); + stream.writeString(this.username); + stream.writeString(this.title); + stream.writeString(this.privateKey); + return stream; + } + + public getUsername(): string { + return this.username; + } + + public setUsername(username: string): void { + this.username = username; + } + + public getTitle(): string { + return this.title; + } + + public setTitle(title: string): void { + this.title = title; + } + + public setPrivateKey(privateKey: string): void { + this.privateKey = privateKey; + } + + public getPrivateKey(): string { + return this.privateKey; + } +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/protocol/protocol.ts b/app/providers/ProtocolProvider/protocol/protocol.ts new file mode 100644 index 0000000..0b983c5 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/protocol.ts @@ -0,0 +1,269 @@ +import { EventEmitter } from "events"; +import Packet from "./packet"; +import PacketHandshake, { Device, HandshakeState } from "./packets/packet.handshake"; +import { PacketMessage } from "./packets/packet.message"; +import { PacketOnlineState } from "./packets/packet.onlinestate"; +import { PacketOnlineSubscribe } from "./packets/packet.onlinesubscribe"; +import { PacketRead } from "./packets/packet.read"; +import { PacketResult } from "./packets/packet.result"; +import { PacketSearch } from "./packets/packet.search"; +import { PacketUserInfo } from "./packets/packet.userinfo"; +import Stream from "./stream"; +import { PacketDelivery } from "./packets/packet.delivery"; +import { PacketRequestUpdate } from "./packets/packet.requestupdate"; +import { RECONNECTING_INTERVAL } from "@/app/constants"; +import { PacketTyping } from "./packets/packet.typeing"; +import { PacketAvatar } from "./packets/packet.avatar"; +import { PacketKernelUpdate } from "./packets/packet.kernelupdate"; +import { PacketAppUpdate } from "./packets/packet.appupdate"; +import { PacketRequestTransport } from "./packets/packet.requesttransport"; +import { PacketPushNotification } from "./packets/packet.push.notification"; +import { PacketCreateGroup } from "./packets/packet.create.group"; +import { PacketGroupInfo } from "./packets/packet.group.info"; +import { PacketGroupInviteInfo } from "./packets/packet.group.invite.info"; +import { PacketGroupJoin } from "./packets/packet.group.join"; +import { PacketGroupLeave } from "./packets/packet.group.leave"; +import { PacketGroupBan } from "./packets/packet.group.ban"; + +export default class Protocol extends EventEmitter { + private serverAddress: string; + private socket: WebSocket | null = null; + private reconnectInterval: number = RECONNECTING_INTERVAL * 1000; + private isManuallyClosed: boolean = false; + private _supportedPackets: Map = new Map(); + private _packetWaiters: Map void)[]> = new Map(); + private _packetQueue: Packet[] = []; // Очередь для пакетов + private handshakeExchangeComplete : boolean = false; + private heartbeatIntervalTimer : NodeJS.Timeout | null = null; + + constructor(serverAddress: string) { + super(); + this.serverAddress = serverAddress; + this.loadAllSupportedPackets(); + this.connect(); + + let _this = this; + this.waitPacket(0x00, (packet : PacketHandshake) => { + if(packet.getHandshakeState() == HandshakeState.COMPLETED) { + console.info('[protocol] %chandshake exchange complete', 'color: #12c456;'); + _this.emit('handshake_complete'); + _this.handshakeExchangeComplete = true; + _this._flushPacketQueue(); + this.startHeartbeat(packet.getHeartbeatInterval()); + } + if(packet.getHandshakeState() == HandshakeState.NEED_DEVICE_VERIFICATION) { + console.info('[protocol] %chandshake exchange need device verification', 'color: orange;'); + _this.emit('handshake_need_device_verification'); + _this._packetQueue = []; + this.startHeartbeat(packet.getHeartbeatInterval()); + } + }); + + } + + public startHeartbeat(intervalS : number) { + const heartbeat = () => { + if(this.socket && this.socket.readyState === WebSocket.OPEN){ + this.socket?.send('heartbeat'); + } + } + if(this.heartbeatIntervalTimer){ + clearInterval(this.heartbeatIntervalTimer); + } + console.info(`[protocol] %cstarting heartbeat with interval: %c${intervalS} seconds`, 'color: #12c456;', 'color: orange;'); + heartbeat(); + this.heartbeatIntervalTimer = setInterval(() => { + heartbeat(); + }, ((intervalS * 1000) / 2)); + } + + public startHandshakeExchange(publicKey: string, privateKey: string, + device: Device + ) { + console.info( + `[protocol] %cstarting handshake exchange with server, public key: %c${publicKey}%c, private key hash: %c${privateKey}`, + 'color: #deadcd;', + 'color: #12c456;', + 'color: #deadcd;', + 'color: #12c456;' + ); + let handshake = new PacketHandshake(); + handshake.setPublicKey(publicKey); + handshake.setPrivateKey(privateKey); + handshake.setDevice(device); + this.sendPacket(handshake); + this.emit('handshake_start'); + } + + private loadAllSupportedPackets() { + this._supportedPackets.set(0x00, new PacketHandshake()); + this._supportedPackets.set(0x01, new PacketUserInfo()); + this._supportedPackets.set(0x02, new PacketResult()); + this._supportedPackets.set(0x03, new PacketSearch()); + this._supportedPackets.set(0x04, new PacketOnlineSubscribe()); + this._supportedPackets.set(0x05, new PacketOnlineState()); + this._supportedPackets.set(0x06, new PacketMessage()); + this._supportedPackets.set(0x07, new PacketRead()); + this._supportedPackets.set(0x08, new PacketDelivery()); + //TODO: 0x09 + this._supportedPackets.set(0x0A, new PacketRequestUpdate()); + this._supportedPackets.set(0x0B, new PacketTyping()); + this._supportedPackets.set(0x0C, new PacketAvatar()); + this._supportedPackets.set(0x0D, new PacketKernelUpdate()); + this._supportedPackets.set(0x0E, new PacketAppUpdate()); + this._supportedPackets.set(0x0F, new PacketRequestTransport()); + this._supportedPackets.set(0x10, new PacketPushNotification()); + this._supportedPackets.set(0x11, new PacketCreateGroup()); + this._supportedPackets.set(0x12, new PacketGroupInfo()); + this._supportedPackets.set(0x13, new PacketGroupInviteInfo()); + this._supportedPackets.set(0x14, new PacketGroupJoin()); + this._supportedPackets.set(0x15, new PacketGroupLeave()); + this._supportedPackets.set(0x16, new PacketGroupBan()); + } + + private _findWaiters(packetId: number): ((packet: Packet) => void)[] { + if (!this._packetWaiters.has(packetId)) { + return []; + } + return this._packetWaiters.get(packetId)!; + } + + private connect() { + this.socket = new WebSocket(this.serverAddress); + + this.socket.addEventListener('open', () => { + //this.reconnectTryings = 0; + this.emit('connect'); + this._flushPacketQueue(); // Отправляем все пакеты из очереди + }); + + this.socket.addEventListener('message', async (event: MessageEvent) => { + let stream = new Stream(); + const data = await event.data.arrayBuffer(); + const numbers = Array.from(new Uint8Array(data)); + stream.setStream(numbers); + const packetId = stream.readInt16(); + this._supportedPackets.get(packetId); + if (!this._supportedPackets.get(packetId)) { + console.error(`Unsupported packet ID: ${packetId}`); + return; + } + //чек безопасность + const packet = this._supportedPackets.get(packetId)!.clone(); + packet._receive(stream); + const waiters = this._findWaiters(packetId); + if (waiters.length === 0) { + console.error(`No waiters found for packet ID: ${packetId}`); + return; + } + for (const waiter of waiters) { + waiter(packet); + } + }); + + this.socket.addEventListener('close', (e: CloseEvent) => { + console.log(`Connection reset by peer`, e.code); + this.handshakeExchangeComplete = false; + if (!this.isManuallyClosed) { + console.log(`Attempting to reconnect...`); + this.emit('reconnect'); + setTimeout(() => { + this.connect(); + if(this.socket?.readyState == WebSocket.OPEN){ + return; + } + }, this.reconnectInterval); + } + }); + } + + private _flushPacketQueue() { + if (this.socket && this.socket.readyState === WebSocket.OPEN) { + for(let i = this._packetQueue.length - 1; i >= 0; i--){ + let packet : Packet = this._packetQueue[i]; + if(!this.handshakeExchangeComplete && packet.getPacketId() != 0x00){ + /** + * Если рукопожатие еще не выполнено и текущий пакет для отправки из очереди - + * не рукопожатие то пропускаем, отправим в следующее очищение очереди + */ + continue; + } + this.sendPacket(packet); + this._packetQueue.splice(i, 1); + } + } + } + + public async sendPacket(packet: Packet) { + if(!this.socket){ + this.addPacketToQueue(packet); + return; + } + if(this.socket.readyState !== WebSocket.OPEN){ + this.addPacketToQueue(packet); + return; + } + if(!this.handshakeExchangeComplete && packet.getPacketId() != 0x00){ + this.addPacketToQueue(packet); + return; + } + const stream = await packet._send(); + const packetName = packet.constructor.name; + + const pIdHex = packet.getPacketId().toString(16).toLocaleUpperCase(); + const pIdHexPadded = pIdHex.length === 1 ? '0' + pIdHex : pIdHex; + + console.info(`[protocol] %csending packet: %c${packetName} (ID: 0x${pIdHexPadded})`, 'color: #deadcd;', 'color: orange;'); + + /** + * Если пакет больше максимально допустимого размера, то разбиваем его на чанки + * и отправляем по частям + */ + this.socket.send(Buffer.from(stream.getStream())); + } + + public addPacketToQueue(packet : Packet) { + this._packetQueue.push(packet); + } + + public close() { + this.isManuallyClosed = true; + if (this.socket) { + this.socket.close(); + } + } + + public unwaitPacket(packet: number, callback: (packet: T) => void) { + if (!this._packetWaiters.has(packet)) { + return; + } + const waiters = this._packetWaiters.get(packet)!; + const index = waiters.indexOf(callback); + if (index !== -1) { + waiters.splice(index, 1); + } + if (waiters.length === 0) { + this._packetWaiters.delete(packet); + } + } + + public waitPacket(packet: number, callback: (packet: T) => void) : number { + if (!this._packetWaiters.has(packet)) { + this._packetWaiters.set(packet, []); + } + return this._packetWaiters.get(packet)!.push(callback); + } + + /** + * Wait for a single packet to be received. + * @param packet packet number to wait + * @param callback callback to execute once the packet is received + */ + public waitPacketOnce(packet: number, callback: (packet: T) => void) { + let wrapper = (receivedPacket: T) => { + callback(receivedPacket); + this.unwaitPacket(packet, wrapper); + }; + this.waitPacket(packet, wrapper); + } +} diff --git a/app/providers/ProtocolProvider/protocol/stream.ts b/app/providers/ProtocolProvider/protocol/stream.ts new file mode 100644 index 0000000..a290476 --- /dev/null +++ b/app/providers/ProtocolProvider/protocol/stream.ts @@ -0,0 +1,143 @@ +export default class Stream { + + private _stream: number[]; + private _readPoiner: number = 0; + private _writePointer: number = 0; + + constructor(stream : number[] = []) { + this._stream = stream; + } + + public getStream(): number[] { + return this._stream; + } + + public setStream(stream: number[]) { + this._stream = stream; + } + + public writeInt8(value: number) { + const negationBit = value < 0 ? 1 : 0; + const int8Value = Math.abs(value) & 0xFF; + this._stream[this._writePointer >> 3] |= negationBit << (7 - (this._writePointer & 7)); + this._writePointer++; + for (let i = 0; i < 8; i++) { + const bit = (int8Value >> (7 - i)) & 1; + this._stream[this._writePointer >> 3] |= bit << (7 - (this._writePointer & 7)); + this._writePointer++; + } + } + + public readInt8(): number { + let value = 0; + const negationBit = (this._stream[this._readPoiner >> 3] >> (7 - (this._readPoiner & 7))) & 1; + this._readPoiner++; + for (let i = 0; i < 8; i++) { + const bit = (this._stream[this._readPoiner >> 3] >> (7 - (this._readPoiner & 7))) & 1; + value |= bit << (7 - i); + this._readPoiner++; + } + return negationBit ? -value : value; + } + + public writeBit(value: number) { + const bit = value & 1; + this._stream[this._writePointer >> 3] |= bit << (7 - (this._writePointer & 7)); + this._writePointer++; + } + + public readBit(): number { + const bit = (this._stream[this._readPoiner >> 3] >> (7 - (this._readPoiner & 7))) & 1; + this._readPoiner++; + return bit; + } + + public writeBoolean(value: boolean) { + this.writeBit(value ? 1 : 0); + } + + public readBoolean(): boolean { + return this.readBit() === 1; + } + + public writeInt16(value: number) { + this.writeInt8(value >> 8); + this.writeInt8(value & 0xFF); + } + + public readInt16(): number { + const value = this.readInt8() << 8; + return value | this.readInt8(); + } + + public writeInt32(value: number) { + this.writeInt16(value >> 16); + this.writeInt16(value & 0xFFFF); + } + + public readInt32(): number { + const value = this.readInt16() << 16; + return value | this.readInt16(); + } + + public writeFloat32(value: number) { + const buffer = new ArrayBuffer(4); + new DataView(buffer).setFloat32(0, value, true); + const float32Value = new Uint32Array(buffer)[0]; + this.writeInt32(float32Value); + } + + public readFloat32(): number { + const float32Value = this.readInt32(); + const buffer = new ArrayBuffer(4); + new Uint32Array(buffer)[0] = float32Value; + return new DataView(buffer).getFloat32(0, true); + } + + public writeInt64(value: number) { + const high = Math.floor(value / 0x100000000); + const low = value >>> 0; + this.writeInt32(high); + this.writeInt32(low); + } + + public readInt64(): number { + const high = this.readInt32(); + const low = this.readInt32() >>> 0; + return high * 0x100000000 + low; + } + + public writeString(value: string) { + let length = value.length; + this.writeInt32(length); + for (let i = 0; i < value.length; i++) { + this.writeInt16(value.charCodeAt(i)); + } + } + + public readString(): string { + let length = this.readInt32(); + let value = ""; + for (let i = 0; i < length; i++) { + value += String.fromCharCode(this.readInt16()); + } + return value; + } + + public writeBytes(value: number[]) { + this.writeInt32(value.length); + for (let i = 0; i < value.length; i++) { + this.writeInt8(value[i]); + } + } + + public readBytes(): number[] { + let length = this.readInt32(); + let value : any = []; + for (let i = 0; i < length; i++) { + value.push(this.readInt8()); + } + return value; + } + +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/usePacket.ts b/app/providers/ProtocolProvider/usePacket.ts new file mode 100644 index 0000000..452353f --- /dev/null +++ b/app/providers/ProtocolProvider/usePacket.ts @@ -0,0 +1,26 @@ +import { useEffect } from "react"; +import { useProtocol } from "./useProtocol"; +import Packet from "@/app/providers/ProtocolProvider/protocol/packet"; + +export const usePacket = (packetId : number, callback: (packet : any) => void, deps?: any[]) => { + const {protocol} = useProtocol(); + + const waitPacket = (packetId: number, callback: (packet: Packet) => void) : number => { + return protocol.waitPacket(packetId, callback); + }; + + const unwaitPacket = (packetId: number, callback: (packet: Packet) => void) => { + protocol.unwaitPacket(packetId, callback); + }; + + useEffect(() => { + let unwait = (receivedPacket: Packet) => { + callback(receivedPacket); + }; + waitPacket(packetId, unwait); + return () => { + // Cleanup function to remove the packet listener + unwaitPacket(packetId, unwait); + }; + }, deps); +} \ No newline at end of file diff --git a/app/providers/ProtocolProvider/useProtocol.ts b/app/providers/ProtocolProvider/useProtocol.ts new file mode 100644 index 0000000..d53592b --- /dev/null +++ b/app/providers/ProtocolProvider/useProtocol.ts @@ -0,0 +1,14 @@ +import { useContext } from "react"; +import { ProtocolContext } from "./ProtocolProvider"; + +export const useProtocol = () => { + const [context, connect] = useContext(ProtocolContext); + + if(!context){ + throw new Error("useProtocol must be used within a ProtocolProvider"); + } + + const protocol = context; + + return {protocol, protocolState: connect }; +}; \ No newline at end of file diff --git a/app/providers/ProtocolProvider/useProtocolState.ts b/app/providers/ProtocolProvider/useProtocolState.ts new file mode 100644 index 0000000..4d22f59 --- /dev/null +++ b/app/providers/ProtocolProvider/useProtocolState.ts @@ -0,0 +1,12 @@ +import { useContext } from "react"; +import { ProtocolContext } from "./ProtocolProvider"; + +export const useProtocolState = () => { + const [context, connect] = useContext(ProtocolContext); + + if(!context){ + throw new Error("useProtocol must be used within a ProtocolProvider"); + } + + return connect; +}; \ No newline at end of file diff --git a/app/providers/ProtocolProvider/useSender.ts b/app/providers/ProtocolProvider/useSender.ts new file mode 100644 index 0000000..52f1dae --- /dev/null +++ b/app/providers/ProtocolProvider/useSender.ts @@ -0,0 +1,12 @@ +import Packet from "@/app/providers/ProtocolProvider/protocol/packet"; +import { useProtocol } from "./useProtocol"; + +export const useSender = () => { + const {protocol} = useProtocol(); + + const send = (packet: Packet) => { + protocol.sendPacket(packet); + } + + return send; +} \ No newline at end of file diff --git a/app/providers/SettingsProvider/SettingsProvider.tsx b/app/providers/SettingsProvider/SettingsProvider.tsx new file mode 100644 index 0000000..0ebef58 --- /dev/null +++ b/app/providers/SettingsProvider/SettingsProvider.tsx @@ -0,0 +1,57 @@ +import { useFileStorage } from "@/app/hooks/useFileStorage"; +import { useLogger } from "@/app/hooks/useLogger"; +import { createContext, useEffect, useState } from "react"; + +export interface SettingsContextValue { + getSetting: (key: string, def?: any) => any; + setSetting: (key: string, value: any) => void; +} + +export const SettingsProviderContext = createContext(null); + +interface SettingsProviderProps { + children?: React.ReactNode; +} + +export function SettingsProvider(props: SettingsProviderProps) { + const [settings, setSettings] = useState({}); + const {readFile, writeFile} = useFileStorage(); + const log = useLogger('SettingsProvider'); + + + useEffect(() => { + const loadSettings = async () => { + const data = await readFile("settings.json"); + if(data){ + try { + const parsedSettings = JSON.parse(Buffer.from(data).toString()); + setSettings(parsedSettings); + } catch (e) { + log("Failed to parse settings.json"); + } + } + } + loadSettings(); + }, []); + + const getSetting = (key: string, def? : any) => { + if(settings[key] === undefined){ + return def; + } + return settings[key]; + } + + const setSetting = (key: string, value: any) => { + setSettings((prevSettings: any) => { + const newSettings = {...prevSettings, [key]: value}; + writeFile("settings.json", JSON.stringify(newSettings)); + return newSettings; + }); + } + + return ( + + {props.children} + + ); +} \ No newline at end of file diff --git a/app/providers/SettingsProvider/useSetting.ts b/app/providers/SettingsProvider/useSetting.ts new file mode 100644 index 0000000..5f89449 --- /dev/null +++ b/app/providers/SettingsProvider/useSetting.ts @@ -0,0 +1,14 @@ +import { useContext } from "react"; +import { SettingsProviderContext } from "./SettingsProvider"; + +export function useSetting(key: string, def?: any): [T, (value: T) => void] { + const context = useContext(SettingsProviderContext); + if(!context){ + throw new Error("useSetting must be used within a SettingsProvider"); + } + + return [ + context.getSetting(key, def), + (value: any) => context.setSetting(key, value) + ] +} \ No newline at end of file diff --git a/app/providers/SystemAccountsProvider/.DS_Store b/app/providers/SystemAccountsProvider/.DS_Store new file mode 100644 index 0000000..815bcd1 Binary files /dev/null and b/app/providers/SystemAccountsProvider/.DS_Store differ diff --git a/app/providers/SystemAccountsProvider/SystemAccountsProvider.tsx b/app/providers/SystemAccountsProvider/SystemAccountsProvider.tsx new file mode 100644 index 0000000..9166882 --- /dev/null +++ b/app/providers/SystemAccountsProvider/SystemAccountsProvider.tsx @@ -0,0 +1,72 @@ +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { createContext, useEffect } from "react"; +import { useSystemAccount } from "./useSystemAccount"; +import { usePublicKey } from "../AccountProvider/usePublicKey"; +import { usePrivatePlain } from "../AccountProvider/usePrivatePlain"; +import { APP_VERSION, RELEASE_NOTICE } from "@/app/version"; +import { chacha20Encrypt, encodeWithPassword, encrypt } from "@/app/crypto/crypto"; +import { generateRandomKey } from "@/app/utils/utils"; +import { DeliveredMessageState } from "../DialogProvider/DialogProvider"; +import { UserInformation } from "../InformationProvider/InformationProvider"; +import { useNotification } from "@/app/hooks/useNotification"; +import { useDialogsList } from "../DialogListProvider/useDialogsList"; + +export const SystemAccountContext = createContext(null); + +export interface SystemUserInformation extends UserInformation { + avatar: string; +} + +interface SystemAccountProviderProps { + children: React.ReactNode; +} + +export function SystemAccountProvider(props : SystemAccountProviderProps) { + const {runQuery} = useDatabase(); + const lastNoticeVersion = localStorage.getItem("lastNoticeVersion") || "0.0.0"; + const updateAccount = useSystemAccount("updates"); + const publicKey = usePublicKey(); + const privatePlain = usePrivatePlain(); + const {updateDialog} = useDialogsList(); + const notify = useNotification(); + + useEffect(() => { + if(publicKey == ""){ + return; + } + if(lastNoticeVersion !== APP_VERSION){ + sendReleaseNoticeFromUpdatesAccount(); + localStorage.setItem("lastNoticeVersion", APP_VERSION); + } + }, [lastNoticeVersion, publicKey]); + + const sendReleaseNoticeFromUpdatesAccount = async () => { + const message = RELEASE_NOTICE; + if(message.trim() == ""){ + return; + } + const cahchaEncrypted = await chacha20Encrypt(message.trim()); + const key = Buffer.concat([ + Buffer.from(cahchaEncrypted.key, "hex"), + Buffer.from(cahchaEncrypted.nonce, "hex")]); + const encryptedKey = await encrypt(key.toString('binary'), publicKey); + const messageId = generateRandomKey(16); + const plainMessage = await encodeWithPassword(privatePlain, message.trim()); + + + + await runQuery(` + INSERT INTO messages + (from_public_key, to_public_key, content, timestamp, read, chacha_key, from_me, plain_message, account, message_id, delivered, attachments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + `, [updateAccount!.publicKey, publicKey, cahchaEncrypted.ciphertext, Date.now(), 0, encryptedKey, 0, plainMessage, publicKey, messageId, DeliveredMessageState.DELIVERED, JSON.stringify([])]); + updateDialog(updateAccount!.publicKey); + notify("New message", "You have a new message"); + } + + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/SystemAccountsProvider/avatars/updates.png b/app/providers/SystemAccountsProvider/avatars/updates.png new file mode 100644 index 0000000..98647a1 Binary files /dev/null and b/app/providers/SystemAccountsProvider/avatars/updates.png differ diff --git a/app/providers/SystemAccountsProvider/useSystemAccount.ts b/app/providers/SystemAccountsProvider/useSystemAccount.ts new file mode 100644 index 0000000..fd250ad --- /dev/null +++ b/app/providers/SystemAccountsProvider/useSystemAccount.ts @@ -0,0 +1,8 @@ + +import { SystemUserInformation } from "./SystemAccountsProvider"; +import { useSystemAccounts } from "./useSystemAccounts"; + +export function useSystemAccount(username: string) : SystemUserInformation | undefined { + const systemAccounts = useSystemAccounts(); + return systemAccounts.find((v) => v.username == username); +} \ No newline at end of file diff --git a/app/providers/SystemAccountsProvider/useSystemAccounts.ts b/app/providers/SystemAccountsProvider/useSystemAccounts.ts new file mode 100644 index 0000000..80baa1d --- /dev/null +++ b/app/providers/SystemAccountsProvider/useSystemAccounts.ts @@ -0,0 +1,18 @@ +import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; +import { SystemUserInformation } from "./SystemAccountsProvider"; +import updates from './avatars/updates.png'; + +export function useSystemAccounts() : SystemUserInformation[] { + const accounts : SystemUserInformation[] = [ + { + publicKey: "0x000000000000000000000000000000000000000001", + verified: 1, + title: "Rosetta Updates", + username: "updates", + online: OnlineState.OFFLINE, + avatar: updates + } + ]; + + return accounts; +} \ No newline at end of file diff --git a/app/providers/TransportProvider/TransportProvider.tsx b/app/providers/TransportProvider/TransportProvider.tsx new file mode 100644 index 0000000..ef411dc --- /dev/null +++ b/app/providers/TransportProvider/TransportProvider.tsx @@ -0,0 +1,140 @@ +import { createContext, useEffect, useRef, useState } from "react"; +import { PacketRequestTransport } from "../ProtocolProvider/protocol/packets/packet.requesttransport"; +import { useSender } from "../ProtocolProvider/useSender"; +import { usePacket } from "../ProtocolProvider/usePacket"; +import { useConsoleLogger } from "@/app/hooks/useConsoleLogger"; + +interface TransportContextValue { + transportServer: string | null; + uploadFile: (id: string, content: string) => Promise; + downloadFile: (id: string, tag: string) => Promise; + uploading: TransportState[]; + downloading: TransportState[]; +} + +export const TransportContext = createContext(null); + +interface TransportProviderProps { + children: React.ReactNode; +} + +export interface TransportState { + id: string; + progress: number; +} + +/** + * Этот провайдер занимается тем, что передает + * файлы на сервер и получает их с сервера + */ +export function TransportProvider(props: TransportProviderProps) { + const transportServerRef = useRef(null); + const [uploading, setUploading] = useState([]); + const [downloading, setDownloading] = useState([]); + const send = useSender(); + const { info } = useConsoleLogger('TransportProvider'); + + useEffect(() => { + let packet = new PacketRequestTransport(); + send(packet); + }, []); + + usePacket(0x0F, (packet: PacketRequestTransport) => { + transportServerRef.current = packet.getTransportServer(); + info(`Transport server ${transportServerRef.current}`); + }); + + const uploadFile = async (id: string, content: string) => { + return new Promise((resolve, reject) => { + if (!transportServerRef.current) { + throw new Error("Transport server is not set"); + } + setUploading(prev => [...prev, { id: id, progress: 0 }]); + const formData = new FormData(); + formData.append('file', new Blob([content]), id); + + const xhr = new XMLHttpRequest(); + xhr.open('POST', `${transportServerRef.current}/u`); + + xhr.upload.onprogress = (event) => { + if (event.lengthComputable) { + const progress = Math.round((event.loaded / event.total) * 100); + setUploading(prev => + prev.map(u => + u.id === id ? { ...u, progress } : u + ) + ); + } + }; + + xhr.onload = () => { + resolve(JSON.parse(xhr.responseText).t); + setUploading(prev => prev.filter(u => u.id !== id)); + }; + + xhr.onerror = () => { + reject(); + setUploading(prev => prev.filter(u => u.id !== id)); + }; + + xhr.send(formData); + }); + } + + /** + * Скачивает файл с транспортного сервера + * @param tag тег файла + * @param chachaDecryptedKey ключ для расшифровки файла + */ + const downloadFile = (id: string, tag : string) : Promise => { + return new Promise((resolve, reject) => { + if (!transportServerRef.current) { + throw new Error("Transport server is not set"); + } + setDownloading(prev => [...prev, { id: id, progress: 0 }]); + const xhr = new XMLHttpRequest(); + xhr.open('GET', `${transportServerRef.current}/d/${tag}`); + xhr.responseType = 'text'; + + xhr.onprogress = (event) => { + if (event.lengthComputable) { + const progress = Math.round((event.loaded / event.total) * 100); + setDownloading(prev => + prev.map(u => + u.id === id ? { ...u, progress } : u + ) + ); + } + }; + + xhr.onload = async () => { + if(xhr.status != 200){ + reject(); + return; + } + setDownloading(prev => prev.filter(u => u.id !== tag)); + let blob = xhr.responseText; + resolve(blob); + }; + + xhr.onerror = () => { + setDownloading(prev => prev.filter(u => u.id !== tag)); + reject(); + }; + + xhr.send(); + }); + } + + return ( + + {props.children} + + ) +} \ No newline at end of file diff --git a/app/providers/TransportProvider/useDownloadStatus.ts b/app/providers/TransportProvider/useDownloadStatus.ts new file mode 100644 index 0000000..793b202 --- /dev/null +++ b/app/providers/TransportProvider/useDownloadStatus.ts @@ -0,0 +1,13 @@ +import { useContext } from "react"; +import { TransportContext } from "./TransportProvider"; + +export function useDownloadStatus(tag: string) { + const context = useContext(TransportContext); + if (!context) { + throw new Error("useDownloadStatus must be used within a TransportProvider"); + } + const { downloading } = context; + let downloadState = downloading.find(u => u.id === tag); + + return downloadState ? downloadState.progress : 0; +} \ No newline at end of file diff --git a/app/providers/TransportProvider/useTransport.ts b/app/providers/TransportProvider/useTransport.ts new file mode 100644 index 0000000..74d0753 --- /dev/null +++ b/app/providers/TransportProvider/useTransport.ts @@ -0,0 +1,13 @@ +import { useContext } from "react"; +import { TransportContext } from "./TransportProvider"; + + +export function useTransport() { + const context = useContext(TransportContext); + if(!context){ + throw new Error("useTransport must be used within a TransportProvider"); + } + const { uploadFile, downloadFile } = context; + + return { downloadFile, uploadFile }; +} \ No newline at end of file diff --git a/app/providers/TransportProvider/useUploadStatus.ts b/app/providers/TransportProvider/useUploadStatus.ts new file mode 100644 index 0000000..0af1a90 --- /dev/null +++ b/app/providers/TransportProvider/useUploadStatus.ts @@ -0,0 +1,17 @@ +import { useContext } from "react"; +import { TransportContext } from "./TransportProvider"; + +/** + * Хук для получения статуса загрузки файла по его upid + * @returns Функцию для получения статуса загрузки файла по его upid + */ +export function useUploadStatus(upid: string) { + const context = useContext(TransportContext); + if (!context) { + throw new Error("useUploadStatus must be used within a TransportProvider"); + } + const { uploading } = context; + let uploadState = uploading.find(u => u.id === upid); + + return uploadState ? uploadState.progress : 0; +} \ No newline at end of file diff --git a/app/renderer.tsx b/app/renderer.tsx new file mode 100644 index 0000000..7171e70 --- /dev/null +++ b/app/renderer.tsx @@ -0,0 +1,38 @@ +import { createRoot } from 'react-dom/client' +import App from './App' +import '@mantine/core/styles.css'; +import '@mantine/dropzone/styles.css'; +import { createTheme, MantineProvider } from '@mantine/core'; +import { ModalsProvider } from '@mantine/modals'; +import { MemoryProvider } from './providers/MemoryProvider/MemoryProvider'; +import { AccountProvder } from './providers/AccountProvider/AccountProvider'; +import { DatabaseProvider } from './providers/DatabaseProvider/DatabaseProvider'; +import { ProtocolProvider } from './providers/ProtocolProvider/ProtocolProvider'; +import { selectServer } from './servers'; +import { DeviceProvider } from './providers/DeviceProvider/DeviceProvider'; +import { HashRouter } from 'react-router-dom'; + +const theme = createTheme({ + defaultRadius: 8 +}); + +createRoot(document.getElementById('app') as HTMLElement).render( + + + + + + + + + + + + + + + + + +) + \ No newline at end of file diff --git a/app/servers.ts b/app/servers.ts new file mode 100644 index 0000000..406c14d --- /dev/null +++ b/app/servers.ts @@ -0,0 +1,9 @@ +export const SERVERS = [ + //'wss://cdn.rosetta-im.com', + 'ws://10.211.55.2:3000' +]; + +export function selectServer(): string { + const idx = Math.floor(Math.random() * SERVERS.length); + return SERVERS[idx]; +} \ No newline at end of file diff --git a/app/style.css b/app/style.css new file mode 100644 index 0000000..89c6769 --- /dev/null +++ b/app/style.css @@ -0,0 +1,17 @@ +input, button, textarea, :focus { + outline: none; +} + +img { + user-select: none; +} + +html{ + overflow: hidden; + height: 100%; +} + +body { + height: 100%; +} + diff --git a/app/utils/constructLastMessageTextByAttachments.ts b/app/utils/constructLastMessageTextByAttachments.ts new file mode 100644 index 0000000..6d0faac --- /dev/null +++ b/app/utils/constructLastMessageTextByAttachments.ts @@ -0,0 +1,21 @@ +import { Attachment, AttachmentType } from "../providers/ProtocolProvider/protocol/packets/packet.message"; + +export const constructLastMessageTextByAttachments = (attachment: string) => { + let attachmentArray : Attachment[] = JSON.parse(attachment); + if(attachmentArray.length <= 0) { + return "[Unsupported message]"; + } + let attach = attachmentArray[0]; + switch(attach.type) { + case AttachmentType.IMAGE: + return "$a=Photo"; + case AttachmentType.MESSAGES: + return "$a=Forwarded messages"; + case AttachmentType.FILE: + return "$a=File"; + case AttachmentType.AVATAR: + return "$a=Avatar"; + default: + return "[Unsupported attachment]"; + } +} \ No newline at end of file diff --git a/app/utils/runMicrotaskInIdlePhase.ts b/app/utils/runMicrotaskInIdlePhase.ts new file mode 100644 index 0000000..83beceb --- /dev/null +++ b/app/utils/runMicrotaskInIdlePhase.ts @@ -0,0 +1,8 @@ +/** + * Это планирует вызов func настолько быстро, + * насколько это возможно, но планировщик будет вызывать + * функцию только после завершения выполнения текущего кода. + */ +export const runMicrotaskInIdlePhase = (func : Function, ...args: any[]) => { + Promise.resolve().then(() => func(...args)); +} \ No newline at end of file diff --git a/app/utils/style.ts b/app/utils/style.ts new file mode 100644 index 0000000..343da63 --- /dev/null +++ b/app/utils/style.ts @@ -0,0 +1,3 @@ +export function cx(...classNames: (string | false | null | undefined)[]) { + return classNames.filter(Boolean).join(' '); +} \ No newline at end of file diff --git a/app/utils/update.ts b/app/utils/update.ts new file mode 100644 index 0000000..4f3e591 --- /dev/null +++ b/app/utils/update.ts @@ -0,0 +1,14 @@ +export function compareVersions(v1: string, v2: string): number { + const v1Parts = v1.split('.').map(Number); + const v2Parts = v2.split('.').map(Number); + + for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) { + const part1 = v1Parts[i] || 0; + const part2 = v2Parts[i] || 0; + + if (part1 > part2) return 1; + if (part1 < part2) return -1; + } + + return 0; +} \ No newline at end of file diff --git a/app/utils/utils.ts b/app/utils/utils.ts new file mode 100644 index 0000000..f82ae7b --- /dev/null +++ b/app/utils/utils.ts @@ -0,0 +1,303 @@ +import { MantineColor } from "@mantine/core"; +import { MESSAGE_MAX_TIME_TO_DELEVERED_S } from "../constants"; +import { decode, encode } from "blurhash"; + +export function generateRandomKey(length: number): string { + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let result = ''; + const charactersLength = characters.length; + for (let i = 0; i < length; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + } + return result; +} + +export function murmurHash3_32_gc(key: string, seed: number = 0): number { + let remainder = key.length & 3; + let bytes = key.length - remainder; + let h1 = seed; + let c1 = 0xcc9e2d51; + let c2 = 0x1b873593; + let i = 0; + + while (i < bytes) { + let k1 = + ((key.charCodeAt(i) & 0xff)) | + ((key.charCodeAt(++i) & 0xff) << 8) | + ((key.charCodeAt(++i) & 0xff) << 16) | + ((key.charCodeAt(++i) & 0xff) << 24); + ++i; + + k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff; + + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + let h1b = (((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16)) & 0xffffffff; + h1 = ((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16); + } + + let k1 = 0; + + switch (remainder) { + case 3: + k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16; + case 2: + k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8; + case 1: + k1 ^= (key.charCodeAt(i) & 0xff); + + k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff; + h1 ^= k1; + } + + h1 ^= key.length; + + h1 ^= h1 >>> 16; + h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff; + h1 ^= h1 >>> 13; + h1 = (((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16)) & 0xffffffff; + h1 ^= h1 >>> 16; + + return h1 >>> 0; +} + +export function generateRandomKeyFormSeed(length: number, seed: string): string { + const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + let result = ''; + const charactersLength = characters.length; + let seedHash = murmurHash3_32_gc(seed, 1028); + let state = Math.abs(seedHash); + for (let i = 0; i < length; i++) { + state = (state * 1664525 + 1013904223) % 4294967296; + const randomIndex = state % charactersLength; + result += characters.charAt(randomIndex); + } + return result; +} + +function hashCode(input: string) { + let hash = 0; + for (let i = 0; i < input.length; i += 1) { + const char = input.charCodeAt(i); + hash = (hash << 5) - hash + char; + hash |= 0; + } + return hash; +} + +const defaultColors: MantineColor[] = [ + 'blue', + 'cyan', + 'grape', + 'green', + 'indigo', + 'lime', + 'orange', + 'pink', + 'red', + 'teal', + 'violet', +]; + +export function getInitialsColor(name: string, colors: MantineColor[] = defaultColors) { + const hash = hashCode(name); + const index = Math.abs(hash) % colors.length; + return colors[index]; +} + +export function isMessageDeliveredByTime(messageTime: number, attachmentsCount: number): boolean { + let maxMessageDeliveredTime = MESSAGE_MAX_TIME_TO_DELEVERED_S * 1000;; + //((props.time && (Date.now() - props.time * 1000 > ((MESSAGE_MAX_TIME_TO_DELEVERED * 1000) * props.attachmentsCount || 1)) + if (attachmentsCount == 0) { + let t = Date.now() - messageTime < maxMessageDeliveredTime; + return t; + } + return Date.now() - messageTime < (maxMessageDeliveredTime * attachmentsCount); +} + +export function filePrapareForNetworkTransfer(file : File){ + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => { + if(!reader.result){ + reject(); + return; + } + resolve(reader.result.toString()); + } + reader.readAsDataURL(file); + }) +} + +export function humanFilesize(size: number) { + const suffixes = ['B', 'KB', 'MB', 'GB']; + if(size >= (1024 * 1024 * 1024)){ + return Math.floor(size / (1024 * 1024 * 1024)) + suffixes[3]; + } + if(size >= (1024 * 1024)){ + return Math.floor(size / (1024 * 1024)) + suffixes[2]; + } + if(size >= 1024){ + return Math.floor(size / 1024) + suffixes[1]; + } + return size + suffixes[0]; +} + +export function imagePrepareForNetworkTransfer(file: File) { + /** + * Нужно приводить все изображения к одному формату (png) чтобы избежать проблем с отображением + * в разных платформах (ios, android, web) + */ + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = async () => { + if (!reader.result) { + reject(); + return; + } + let base64 = reader.result.toString(); + if (file.type === 'image/png') { + resolve(base64); + return; + } + try { + const jpegBlob = file; + const pngBlob = await convertJpegBlobToPngBlob(jpegBlob); + const pngBase64 = await blobToBase64(pngBlob); + resolve(pngBase64); + } catch (error) { + reject(error); + } + }; + reader.readAsDataURL(file); + }); +} + +export function blobToBase64(blob: Blob): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onloadend = () => { + if (reader.result && typeof reader.result === "string") { + resolve(reader.result); + } else { + reject("Failed to convert blob to base64"); + } + }; + reader.onerror = reject; + reader.readAsDataURL(blob); + }); +} + +export function createBlobFromBase64Image(base64Image: string): Blob { + // Split the data URL to get the MIME type and the base64 data + const parts = base64Image.split(';'); + const mimeType = parts[0].split(':')[1]; + const base64 = parts[1].split(',')[1]; + + // Decode the base64 string + const byteCharacters = atob(base64); + const byteNumbers = new Array(byteCharacters.length); + + // Convert to a Uint8Array + for (let i = 0; i < byteCharacters.length; i++) { + byteNumbers[i] = byteCharacters.charCodeAt(i); + } + const byteArray = new Uint8Array(byteNumbers); + + // Create the Blob + const blob = new Blob([byteArray], { type: mimeType }); + return blob; +} + +export function convertJpegBlobToPngBlob(jpegBlob: Blob): Promise { + return new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => { + const canvas = document.createElement('canvas'); + canvas.width = img.width; + canvas.height = img.height; + const ctx = canvas.getContext('2d'); + ctx?.drawImage(img, 0, 0); + + // Convert the canvas content to a PNG Blob + canvas.toBlob((pngBlob) => { + if (pngBlob) { + resolve(pngBlob); + } else { + reject(new Error('Failed to create PNG blob.')); + } + }, 'image/png', 1); + }; + img.onerror = (error) => reject(error); + img.src = URL.createObjectURL(jpegBlob); + }); +} + +export function dotMessageIfNeeded(message: string, maxLength: number): string { + if (message.length <= maxLength) { + return message; + } + return message.substring(0, maxLength).trim() + '...'; +} + +export function dotCenterIfNeeded(message: string, maxLength : number, viewSymbols : number = 3) { + if(message.length <= maxLength){ + return message; + } + return message.slice(0, viewSymbols) + "..." + message.slice(-viewSymbols) +} + +export function isImage(blob : string) : boolean { + if(!blob){ + return false; + } + return blob.startsWith('data:image/'); +} + +export function blurhashToBase64Image(blurhash: string, width: number, height: number): string { + const pixels = decode(blurhash, width, height); + const canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + const ctx = canvas.getContext('2d'); + const imageData = ctx?.createImageData(width, height); + if (imageData) { + imageData.data.set(pixels); + ctx?.putImageData(imageData, 0, 0); + return canvas.toDataURL(); + } + return ''; +} + +export function base64ImageToBlurhash(base64Image: string): Promise { + const img = new Image(); + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + + return new Promise((resolve, reject) => { + img.onload = () => { + canvas.width = img.width; + canvas.height = img.height; + ctx?.drawImage(img, 0, 0); + const imageData = ctx?.getImageData(0, 0, canvas.width, canvas.height); + if (imageData) { + const blurhash = encode( + imageData.data, + imageData.width, + imageData.height, + 4, + 4 + ); + resolve(blurhash); + } else { + reject('Failed to get image data from canvas.'); + } + }; + img.onerror = (error) => reject(error); + img.src = base64Image; + }); +} \ No newline at end of file diff --git a/app/version.ts b/app/version.ts new file mode 100644 index 0000000..a471640 --- /dev/null +++ b/app/version.ts @@ -0,0 +1,8 @@ +export const APP_VERSION = "0.6.0"; +export const CORE_MIN_REQUIRED_VERSION = "1.4.6"; + +export const RELEASE_NOTICE = ` +**Update v0.6.1** :emoji_1f631: + +- Fix login select account +`; \ No newline at end of file diff --git a/app/views/.DS_Store b/app/views/.DS_Store new file mode 100644 index 0000000..be881da Binary files /dev/null and b/app/views/.DS_Store differ diff --git a/app/views/Backup/Backup.tsx b/app/views/Backup/Backup.tsx new file mode 100644 index 0000000..29a30cf --- /dev/null +++ b/app/views/Backup/Backup.tsx @@ -0,0 +1,53 @@ +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { SettingsAlert } from "@/app/components/SettingsAlert/SettingsAlert"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { TextChain } from "@/app/components/TextChain/TextChain"; +import { decodeWithPassword } from "@/app/crypto/crypto"; +import { useAccount } from "@/app/providers/AccountProvider/useAccount"; +import { Paper, Text } from "@mantine/core"; +import { useState } from "react"; + +export function Backup() { + const [show, setShow] = useState(""); + const [account] = useAccount(); + + const onChange = async (v : string) => { + try{ + const decodedPhrase = await decodeWithPassword(v, account.seedPhraseEncrypted); + setShow(decodedPhrase); + }catch(e){ + + } + } + + return ( + <> + + + + onChange(e.target.value)} placeholder="Enter confirmation"> + + To view your recovery phrase, enter the password you specified when creating your account or restoring from a seed phrase. + + {show.trim() !== "" && ( + <> + + + + + Please don't share your seed phrase! The administration will never ask you for it. + + + )} + + + ) +} \ No newline at end of file diff --git a/app/views/Chat/Chat.tsx b/app/views/Chat/Chat.tsx new file mode 100644 index 0000000..5196d8e --- /dev/null +++ b/app/views/Chat/Chat.tsx @@ -0,0 +1,42 @@ +import { ChatHeader } from "@/app/components/ChatHeader/ChatHeader"; +import { DialogInput } from "@/app/components/DialogInput/DialogInput"; +import { Messages } from "@/app/components/Messages/Messages"; +import { DialogProvider } from "@/app/providers/DialogProvider/DialogProvider"; +import { Flex } from "@mantine/core"; +import { useParams } from "react-router-dom"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { useEffect } from "react"; +import { useViewPanelsState, ViewPanelsState } from "@/app/hooks/useViewPanelsState"; +import { GroupHeader } from "@/app/components/GroupHeader/GroupHeader"; +import { useGroups } from "@/app/providers/DialogProvider/useGroups"; + +export function Chat() { + const params = useParams(); + const dialog = params.id || "DELETED"; + const {lg} = useRosettaBreakpoints(); + const [__, setViewState] = useViewPanelsState(); + const {hasGroup} = useGroups(); + + useEffect(() => { + if(!lg){ + setViewState(ViewPanelsState.DIALOGS_PANEL_HIDE); + return; + } + if(lg){ + setViewState(ViewPanelsState.DIALOGS_PANEL_SHOW); + } + }, [lg]); + + return (<> + + + {/* Group Header */} + {hasGroup(dialog) && } + {/* Dialog peer to peer Header */} + {!hasGroup(dialog) && } + + + + + ); +} \ No newline at end of file diff --git a/app/views/ConfirmSeed/ConfirmSeed.tsx b/app/views/ConfirmSeed/ConfirmSeed.tsx new file mode 100644 index 0000000..b88e596 --- /dev/null +++ b/app/views/ConfirmSeed/ConfirmSeed.tsx @@ -0,0 +1,59 @@ +import { Button, Flex, Group, Text, Transition } from "@mantine/core"; +import { useNavigate } from "react-router-dom"; +import { InputChainHidden } from "@/app/components/InputChainHidden/InputChainHidden"; +import { useMemory } from "@/app/providers/MemoryProvider/useMemory"; +import { AuthFlowBreadcrumbs } from "@/app/components/AuthFlowBreadcrumbs/AuthFlowBreadcrumbs"; +import { useEffect, useState } from "react"; + +export function ConfirmSeed() { + const navigate = useNavigate(); + const [phrase, _] = useMemory("seed-phrase", "", true); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + if(phrase.trim() == ''){ + navigate('/create-seed'); + } + setTimeout(() => setMounted(true), 100); + }, [phrase]); + + + const onPassed = () => { + navigate('/set-password'); + }; + + return ( + + + + Skip + } title="Confirm phrase"> + + + {(styles) => ( + + + To confirm that you have saved your seed phrase, please enter the missing words. + + + )} + + + + + + + + {(styles) => ( + + {/* Button section */} + + )} + + + + + + ); +} \ No newline at end of file diff --git a/app/views/CreateGroup/CreateGroup.tsx b/app/views/CreateGroup/CreateGroup.tsx new file mode 100644 index 0000000..1e8670a --- /dev/null +++ b/app/views/CreateGroup/CreateGroup.tsx @@ -0,0 +1,59 @@ +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { Flex, Text } from "@mantine/core"; +import { IconChevronRight } from "@tabler/icons-react"; +import { useState } from "react"; +import animationData from './users.json'; +import Lottie from "lottie-react"; +import { AnimatedButton } from "@/app/components/AnimatedButton/AnimatedButton"; +import { useGroups } from "@/app/providers/DialogProvider/useGroups"; + +export function CreateGroup() { + const [title, setTitle] = useState(""); + const [description, setDescription] = useState(""); + const {createGroup, loading} = useGroups(); + + return ( + <> + + + + + + Create group chat + + + setTitle(e.target.value)} + > + + Group title, e.g., "Family Chat", helps members identify the group easily. Title cannot be changed after creation. + + setDescription(e.target.value)} + > + + Group description, e.g., "A group for family members", helps members understand the purpose of the group. Not required. + + + } mt={'lg'} fullWidth animated={[ + '#0078ff', + '#2ea6ff' + ]} onClick={() => createGroup(title, description)} loading={loading}>Create + + + ); +} \ No newline at end of file diff --git a/app/views/CreateGroup/users.json b/app/views/CreateGroup/users.json new file mode 100644 index 0000000..19065d2 --- /dev/null +++ b/app/views/CreateGroup/users.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"NULL SCALE","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[256,249,0]},"s":{"a":0,"k":[93,93,100]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":3,"nm":"NULL FACE","parent":13,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[-3.333,-14,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[-3.333,10,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[-3.333,-14,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[-3.333,12,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[-3.333,-14,0]}]},"a":{"a":0,"k":[50,50,0]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Wrist Front","parent":7,"sr":1,"ks":{"p":{"a":0,"k":[-113.604,10.142,0]},"a":{"a":0,"k":[-113.604,10.142,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-78,19.896],[-75.86,19.386]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":65,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-79.25,33.146],[-77.11,32.636]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-85.831,18.104],[-84.228,18.033]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-85.831,18.104],[-84.228,18.033]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-79.25,33.146],[-77.11,32.636]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-78,19.896],[-75.86,19.386]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-122.77,30.71],[-118.831,29.522]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":65,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-124.842,34.371],[-120.759,33.861]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-123.701,19.632],[-121.696,19.418]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-123.701,19.632],[-121.696,19.418]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-124.842,34.371],[-120.759,33.861]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-122.77,30.71],[-118.831,29.522]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-96.639,24.738],[-92.181,23.352]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":65,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-102.493,36.729],[-97.827,36.861]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-102.622,19.89],[-99.977,19.753]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-102.622,19.89],[-99.977,19.753]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-102.493,36.729],[-97.827,36.861]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-96.639,24.738],[-92.181,23.352]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[-3.326,-5.477],[-5.431,-2.897],[-0.02,8.029],[7.427,10.515],[7.145,2.045]],"o":[[0,0],[3.326,5.477],[11.123,5.934],[0.01,-4.12],[-1.948,-2.758],[-3.412,-0.976]],"v":[[-123.674,17.633],[-110.72,28.646],[-96.232,54.95],[-73.23,46.971],[-87.427,18.235],[-103.645,7.455]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":65,"s":[{"i":[[0,0],[-0.511,-6.388],[-3.551,-5.029],[-1.389,3.878],[0.335,6.823],[3.598,4.647]],"o":[[0,0],[0.511,6.388],[7.271,10.298],[1.389,-3.878],[-0.166,-3.373],[-2.173,-2.806]],"v":[[-118.363,16.92],[-114.755,31.901],[-117.356,78.224],[-98.134,78.4],[-90.834,33.397],[-95.567,18.951]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[0,0],[-1.888,-6.748],[-1.982,-3.214],[-2.814,4.819],[-0.26,7.146],[2.551,4.255]],"o":[[0,0],[0.797,2.847],[3.528,5.72],[1.083,-1.855],[0.056,-1.539],[-1.147,-1.913]],"v":[[-119.32,9.696],[-114.541,18.509],[-116.583,38.058],[-99.448,39.654],[-92.819,19.189],[-96.363,9.227]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[0,0],[-1.888,-6.748],[-1.982,-3.214],[-2.814,4.819],[-0.26,7.146],[2.551,4.255]],"o":[[0,0],[0.797,2.847],[3.528,5.72],[1.083,-1.855],[0.056,-1.539],[-1.147,-1.913]],"v":[[-119.32,9.696],[-114.541,18.509],[-116.583,38.058],[-99.448,39.654],[-92.819,19.189],[-96.363,9.227]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[-0.511,-6.388],[-3.551,-5.029],[-1.389,3.878],[0.335,6.823],[3.598,4.647]],"o":[[0,0],[0.511,6.388],[7.271,10.298],[1.389,-3.878],[-0.166,-3.373],[-2.173,-2.806]],"v":[[-118.363,16.92],[-114.755,31.901],[-117.356,78.224],[-98.134,78.4],[-90.834,33.397],[-95.567,18.951]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[-3.326,-5.477],[-5.431,-2.897],[-0.02,8.029],[7.427,10.515],[7.145,2.045]],"o":[[0,0],[3.326,5.477],[11.123,5.934],[0.01,-4.12],[-1.948,-2.758],[-3.412,-0.976]],"v":[[-123.674,17.633],[-110.72,28.646],[-96.232,54.95],[-73.23,46.971],[-87.427,18.235],[-103.645,7.455]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[-3.139,-2.803],[-2.503,12.461],[6.926,5.043],[6.647,-1.308]],"o":[[3.139,2.803],[1.379,-6.866],[-3.886,-2.829],[-2.341,0.461]],"v":[[-75.025,50.619],[-56.559,43.317],[-72.287,13.135],[-97.902,8.911]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":65,"s":[{"i":[[-0.197,-4.204],[-10.648,6.939],[1.25,8.476],[5.589,3.829]],"o":[[0.197,4.204],[5.867,-3.823],[-0.701,-4.755],[-1.968,-1.349]],"v":[[-98.538,68.418],[-82.828,72.221],[-70.799,31.386],[-85.722,10.142]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[-0.179,-1.911],[-9.793,7.254],[1.135,3.854],[13.043,1.205]],"o":[[0.179,1.911],[4.358,-3.229],[-0.637,-2.162],[-1.906,-0.176]],"v":[[-98.241,33.888],[-83.506,36.822],[-77.12,18.503],[-90.668,9.044]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[-0.179,-1.911],[-9.793,7.254],[1.135,3.854],[13.043,1.205]],"o":[[0.179,1.911],[4.358,-3.229],[-0.637,-2.162],[-1.906,-0.176]],"v":[[-98.241,33.888],[-83.506,36.822],[-77.12,18.503],[-90.668,9.044]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[-0.197,-4.204],[-10.648,6.939],[1.25,8.476],[5.589,3.829]],"o":[[0.197,4.204],[5.867,-3.823],[-0.701,-4.755],[-1.968,-1.349]],"v":[[-98.538,68.418],[-82.828,72.221],[-70.799,31.386],[-85.722,10.142]],"c":false}]},{"t":129,"s":[{"i":[[-3.139,-2.803],[-2.503,12.461],[6.926,5.043],[6.647,-1.308]],"o":[[3.139,2.803],[1.379,-6.866],[-3.886,-2.829],[-2.341,0.461]],"v":[[-75.025,50.619],[-56.559,43.317],[-72.287,13.135],[-97.902,8.911]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[-2.108,-2.548],[-3.223,-2.84],[-0.698,4.664],[13.838,8.43]],"o":[[0,0],[3.255,3.934],[14.687,12.94],[0.698,-4.664],[-5.106,-3.11]],"v":[[-146.83,24.999],[-140.969,34.367],[-129.437,50.56],[-102.665,48.054],[-120.838,19.32]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":65,"s":[{"i":[[0,0],[-1.022,-3.951],[-2.627,-4.27],[-2.366,5.124],[1.515,3.288]],"o":[[0,0],[1.578,6.1],[8.328,13.539],[2.366,-5.124],[-2.995,-6.5]],"v":[[-139.2,20.642],[-135.855,34.289],[-135.07,66.019],[-113.55,66.923],[-111.234,23.171]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[0,0],[-2.554,-4.907],[-2.044,-2.228],[-2.149,2.33],[1.376,1.495]],"o":[[0,0],[1.442,2.77],[8.231,8.969],[2.149,-2.33],[-2.72,-2.956]],"v":[[-137.877,13.2],[-133.702,19.595],[-131.74,34.011],[-113.447,34.435],[-111.344,14.539]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[0,0],[-2.554,-4.907],[-2.044,-2.228],[-2.149,2.33],[1.376,1.495]],"o":[[0,0],[1.442,2.77],[8.231,8.969],[2.149,-2.33],[-2.72,-2.956]],"v":[[-137.877,13.2],[-133.702,19.595],[-131.74,34.011],[-113.447,34.435],[-111.344,14.539]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[-1.022,-3.951],[-2.627,-4.27],[-2.366,5.124],[1.515,3.288]],"o":[[0,0],[1.578,6.1],[8.328,13.539],[2.366,-5.124],[-2.995,-6.5]],"v":[[-139.2,20.642],[-135.855,34.289],[-135.07,66.019],[-113.55,66.923],[-111.234,23.171]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[-2.108,-2.548],[-3.223,-2.84],[-0.698,4.664],[13.838,8.43]],"o":[[0,0],[3.255,3.934],[14.687,12.94],[0.698,-4.664],[-5.106,-3.11]],"v":[[-146.83,24.999],[-140.969,34.367],[-129.437,50.56],[-102.665,48.054],[-120.838,19.32]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[-1.416,-2.604],[0.04,10.099],[2.187,1.839]],"o":[[4.798,10.046],[6.208,11.418],[-0.025,-6.202],[-2.187,-1.839]],"v":[[-163.298,33.204],[-153.89,50.862],[-131.04,46.151],[-130.984,26.989]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":65,"s":[{"i":[[0,0],[-1.416,-2.604],[-0.841,6.145],[2.187,1.839]],"o":[[5.922,7.06],[6.208,11.418],[0.841,-6.145],[-2.187,-1.839]],"v":[[-156.548,29.954],[-150.39,54.112],[-130.04,49.151],[-130.984,26.989]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[0,0],[-0.399,-1.606],[-0.764,2.794],[1.986,0.836]],"o":[[2.104,1.344],[2.924,11.762],[0.764,-2.794],[-1.986,-0.836]],"v":[[-148.875,25.146],[-146.462,27.496],[-130.739,31.417],[-128.574,18.083]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[0,0],[-0.399,-1.606],[-0.764,2.794],[1.986,0.836]],"o":[[2.104,1.344],[2.924,11.762],[0.764,-2.794],[-1.986,-0.836]],"v":[[-148.875,25.146],[-146.462,27.496],[-130.739,31.417],[-128.574,18.083]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[-1.416,-2.604],[-0.841,6.145],[2.187,1.839]],"o":[[5.922,7.06],[6.208,11.418],[0.841,-6.145],[-2.187,-1.839]],"v":[[-156.548,29.954],[-150.39,54.112],[-130.04,49.151],[-130.984,26.989]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[-1.416,-2.604],[0.04,10.099],[2.187,1.839]],"o":[[4.798,10.046],[6.208,11.418],[-0.025,-6.202],[-2.187,-1.839]],"v":[[-163.298,33.204],[-153.89,50.862],[-131.04,46.151],[-130.984,26.989]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 7","bm":0,"hd":false}],"ip":54,"op":129,"st":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Laptop","parent":1,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":9,"s":[0]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":16,"s":[0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":23,"s":[-0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":29,"s":[0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":35.42,"s":[-0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":41.709,"s":[0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":48,"s":[-0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":58,"s":[0]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":131.291,"s":[0]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":139,"s":[0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":145,"s":[0]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":151,"s":[0.5]},{"i":{"x":[0.5],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":157.711,"s":[-0.5]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.5],"y":[0]},"t":164,"s":[0.5]},{"t":179,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":12,"s":[-0.099,235.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":19,"s":[-0.099,238.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":26,"s":[-0.099,235.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[-0.099,238.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[-0.099,234.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":45,"s":[-0.099,237.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[-0.099,235.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":128,"s":[-0.099,235.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":135,"s":[-0.099,237.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":142,"s":[-0.099,234.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[-0.099,238.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":155,"s":[-0.099,234.508,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":161,"s":[-0.099,238.508,0],"to":[0,0,0],"ti":[0,0,0]},{"t":168,"s":[-0.099,235.508,0]}]},"a":{"a":0,"k":[-0.099,235.508,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":13,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13]],"o":[[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":20,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03]],"o":[[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":27,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13]],"o":[[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":33,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03]],"o":[[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13]],"o":[[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":46,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03]],"o":[[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13]],"o":[[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":64,"s":[{"i":[[0,0],[6.365,0],[0,0],[0,0],[-0.416,-5.99]],"o":[[0.416,-5.99],[0,0],[0,0],[-6.365,0],[0,0]],"v":[[172.866,49.833],[161.878,38.768],[-0.171,38.768],[-162.17,38.768],[-173.158,49.833]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[0.783,-5.755]],"o":[[-0.119,-5.65],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[158.057,33.87],[146.321,23.513],[-0.14,23.549],[-147.425,23.567],[-158.698,34.133]],"c":false}]},{"i":{"x":0.191,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[3.891,-2.207]],"o":[[-1.487,-1.844],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[134.883,88.161],[120.183,85.026],[-0.14,85.151],[-123.577,85.212],[-136.602,89.065]],"c":false}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":96,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[5.367,-0.598]],"o":[[-2.136,-0.153],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[123.886,120.549],[107.78,120.598],[-0.14,120.752],[-112.26,120.826],[-126.117,121.657]],"c":false}]},{"i":{"x":0.434,"y":0.761},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[5.367,-0.598]],"o":[[-2.136,-0.153],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[123.886,120.549],[107.78,120.598],[-0.14,120.752],[-112.26,120.826],[-126.117,121.657]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.07},"t":122,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[0.783,-5.755]],"o":[[-0.119,-5.65],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[158.057,33.87],[146.321,23.513],[-0.14,23.549],[-147.425,23.567],[-158.698,34.133]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":131,"s":[{"i":[[0,0],[6.365,0],[0,0],[0,0],[-0.416,-5.99]],"o":[[0.416,-5.99],[0,0],[0,0],[-6.365,0],[0,0]],"v":[[172.866,49.833],[161.878,38.768],[-0.171,38.768],[-162.17,38.768],[-173.158,49.833]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13]],"o":[[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":147,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03]],"o":[[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":153,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13]],"o":[[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03]],"o":[[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628]],"c":false}]},{"t":168,"s":[{"i":[[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13]],"o":[[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0]],"v":[[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.784313738346,0.780392169952,0.78823530674,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":13,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13],[0,0]],"o":[[0,0],[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.122],[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":20,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03],[0,0]],"o":[[0,0],[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.301],[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":27,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13],[0,0]],"o":[[0,0],[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.122],[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":33,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03],[0,0]],"o":[[0,0],[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.301],[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13],[0,0]],"o":[[0,0],[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.122],[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":46,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03],[0,0]],"o":[[0,0],[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.301],[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13],[0,0]],"o":[[0,0],[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.122],[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":64,"s":[{"i":[[0,0],[0,0],[6.365,0],[0,0],[0,0],[-0.416,-5.99],[0,0]],"o":[[0,0],[0.416,-5.99],[0,0],[0,0],[-6.365,0],[0,0],[0,0]],"v":[[154.983,227.371],[172.866,49.833],[161.878,38.768],[-0.171,38.768],[-162.17,38.768],[-173.158,49.833],[-155.214,227.371]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.448],[0,0]],"o":[[0,0],[0.402,-6.448],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,226.559],[160.726,35.438],[150.12,23.528],[-0.14,23.549],[-150.453,23.555],[-161.059,35.465],[-155.214,226.559]],"c":false}]},{"i":{"x":0.191,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-4.596],[0,0]],"o":[[0,0],[0.402,-4.596],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,229.845],[144.558,93.567],[133.952,85.078],[-0.14,85.151],[-134.555,85.171],[-145.161,93.66],[-155.214,229.845]],"c":false}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":96,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-3.525],[0,0]],"o":[[0,0],[0.402,-3.525],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,231.745],[136.886,127.174],[126.28,120.663],[-0.14,120.752],[-127.01,120.777],[-137.617,127.288],[-155.214,231.745]],"c":false}]},{"i":{"x":0.434,"y":0.761},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-3.525],[0,0]],"o":[[0,0],[0.402,-3.525],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,231.745],[136.886,127.174],[126.28,120.663],[-0.14,120.752],[-127.01,120.777],[-137.617,127.288],[-155.214,231.745]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.07},"t":122,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.448],[0,0]],"o":[[0,0],[0.402,-6.448],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,226.559],[160.726,35.438],[150.12,23.528],[-0.14,23.549],[-150.453,23.555],[-161.059,35.465],[-155.214,226.559]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":131,"s":[{"i":[[0,0],[0,0],[6.365,0],[0,0],[0,0],[-0.416,-5.99],[0,0]],"o":[[0,0],[0.416,-5.99],[0,0],[0,0],[-6.365,0],[0,0],[0,0]],"v":[[154.983,227.371],[172.866,49.833],[161.878,38.768],[-0.171,38.768],[-162.17,38.768],[-173.158,49.833],[-155.214,227.371]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13],[0,0]],"o":[[0,0],[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.122],[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":147,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03],[0,0]],"o":[[0,0],[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.301],[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":153,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13],[0,0]],"o":[[0,0],[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.122],[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.03],[0,0]],"o":[[0,0],[0.402,-6.03],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.301],[170.886,48.559],[160.28,37.421],[-0.14,37.456],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301]],"c":false}]},{"t":168,"s":[{"i":[[0,0],[0,0],[6.143,0],[0,0],[0,0],[-0.402,-6.13],[0,0]],"o":[[0,0],[0.402,-6.13],[0,0],[0,0],[-6.143,0],[0,0],[0,0]],"v":[[154.983,227.122],[166.886,45.432],[156.28,34.108],[-0.14,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.454901963472,0.443137258291,0.466666668653,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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":13,"s":[{"i":[[2.11,-19.43],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5],[0,0],[0,0]],"v":[[166.89,45.43],[154,233],[-60.53,233.98],[106.67,34.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":20,"s":[{"i":[[2.11,-19.111],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,4.918],[0,0],[0,0]],"v":[[170.89,48.557],[154,233.082],[-60.53,234.046],[110.67,37.423]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":27,"s":[{"i":[[2.11,-19.43],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5],[0,0],[0,0]],"v":[[166.89,45.43],[154,233],[-60.53,233.98],[106.67,34.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":33,"s":[{"i":[[2.11,-19.111],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,4.918],[0,0],[0,0]],"v":[[170.89,48.557],[154,233.082],[-60.53,234.046],[110.67,37.423]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[2.11,-19.43],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5],[0,0],[0,0]],"v":[[166.89,45.43],[154,233],[-60.53,233.98],[106.67,34.11]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":46,"s":[{"i":[[2.11,-19.111],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,4.918],[0,0],[0,0]],"v":[[170.89,48.557],[154,233.082],[-60.53,234.046],[110.67,37.423]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[{"i":[[2.11,-19.43],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5],[0,0],[0,0]],"v":[[166.89,45.43],[154,233],[-60.53,233.98],[106.67,34.11]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":64,"s":[{"i":[[2.186,-18.986],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,4.886],[0,0],[0,0]],"v":[[172.87,49.831],[154,233.114],[-60.53,234.072],[110.483,38.77]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[2.11,-20.436],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5.259],[0,0],[0,0]],"v":[[160.73,35.436],[154,232.741],[-77.88,233.787],[92.811,23.569]],"c":true}]},{"i":{"x":0.191,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[2.11,-14.566],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,3.748],[0,0],[0,0]],"v":[[144.562,93.566],[154,234.252],[-123.42,235.039],[56.433,85.213]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":96,"s":[{"i":[[2.11,-11.173],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,2.875],[0,0],[0,0]],"v":[[136.89,127.173],[154,235.125],[-145.03,235.753],[39.17,120.827]],"c":true}]},{"i":{"x":0.434,"y":0.761},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[2.11,-11.173],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,2.875],[0,0],[0,0]],"v":[[136.89,127.173],[154,235.125],[-145.03,235.753],[39.17,120.827]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.07},"t":122,"s":[{"i":[[2.11,-20.436],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5.259],[0,0],[0,0]],"v":[[160.73,35.436],[154,232.741],[-77.88,233.787],[92.811,23.569]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":131,"s":[{"i":[[2.186,-18.986],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,4.886],[0,0],[0,0]],"v":[[172.87,49.831],[154,233.114],[-60.53,234.072],[110.483,38.77]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[2.11,-19.43],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5],[0,0],[0,0]],"v":[[166.89,45.43],[154,233],[-60.53,233.98],[106.67,34.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":147,"s":[{"i":[[2.11,-19.111],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,4.918],[0,0],[0,0]],"v":[[170.89,48.557],[154,233.082],[-60.53,234.046],[110.67,37.423]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":153,"s":[{"i":[[2.11,-19.43],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5],[0,0],[0,0]],"v":[[166.89,45.43],[154,233],[-60.53,233.98],[106.67,34.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[{"i":[[2.11,-19.111],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,4.918],[0,0],[0,0]],"v":[[170.89,48.557],[154,233.082],[-60.53,234.046],[110.67,37.423]],"c":true}]},{"t":168,"s":[{"i":[[2.11,-19.43],[0,0],[0,0],[0,0]],"o":[[0,0],[-3,5],[0,0],[0,0]],"v":[[166.89,45.43],[154,233],[-60.53,233.98],[106.67,34.11]],"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.098,1,1,1,0.649,1,1,1,0.999,1,1,1,0.098,0,0.649,0.5,0.999,1]}},"s":{"a":0,"k":[58,216]},"e":{"a":0,"k":[45.671,35.178]},"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":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":13,"s":[{"i":[[1.651,-8.391],[1.421,-1.215],[2.139,1.038],[4.041,2.578],[-1.673,1.409],[-0.807,1.808],[2.731,-1.446],[4.723,1.27],[-0.562,1.224],[-7.661,2.54],[-0.437,-3.931]],"o":[[-0.459,1.511],[-2.339,1.585],[-4.3,-2.281],[-2.902,-2.04],[2.332,-1.725],[0.274,-2.234],[-3.657,1.817],[-2.243,-0.538],[0.618,-2.68],[2.635,-0.603],[-1.362,8.428]],"v":[[15.156,158.075],[13.513,162.609],[5.792,161.339],[-7.035,154.366],[-3.837,149.072],[7.835,139.624],[-9.722,147.505],[-20.418,150.268],[-29.618,146.68],[10.759,132.921],[20.071,132.921]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":20,"s":[{"i":[[1.651,-8.253],[1.421,-1.195],[2.139,1.021],[4.041,2.535],[-1.673,1.386],[-0.807,1.778],[2.731,-1.423],[4.723,1.249],[-0.562,1.204],[-7.661,2.499],[-0.437,-3.867]],"o":[[-0.459,1.486],[-2.339,1.559],[-4.3,-2.243],[-2.902,-2.006],[2.332,-1.696],[0.274,-2.198],[-3.657,1.787],[-2.243,-0.529],[0.618,-2.636],[2.635,-0.593],[-1.362,8.29]],"v":[[15.156,159.387],[13.513,163.847],[5.792,162.597],[-7.035,155.739],[-3.837,150.532],[7.835,141.239],[-9.722,148.991],[-20.418,151.709],[-29.618,148.179],[10.759,134.646],[20.071,134.646]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":27,"s":[{"i":[[1.651,-8.391],[1.421,-1.215],[2.139,1.038],[4.041,2.578],[-1.673,1.409],[-0.807,1.808],[2.731,-1.446],[4.723,1.27],[-0.562,1.224],[-7.661,2.54],[-0.437,-3.931]],"o":[[-0.459,1.511],[-2.339,1.585],[-4.3,-2.281],[-2.902,-2.04],[2.332,-1.725],[0.274,-2.234],[-3.657,1.817],[-2.243,-0.538],[0.618,-2.68],[2.635,-0.603],[-1.362,8.428]],"v":[[15.156,158.075],[13.513,162.609],[5.792,161.339],[-7.035,154.366],[-3.837,149.072],[7.835,139.624],[-9.722,147.505],[-20.418,150.268],[-29.618,146.68],[10.759,132.921],[20.071,132.921]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":33,"s":[{"i":[[1.651,-8.253],[1.421,-1.195],[2.139,1.021],[4.041,2.535],[-1.673,1.386],[-0.807,1.778],[2.731,-1.423],[4.723,1.249],[-0.562,1.204],[-7.661,2.499],[-0.437,-3.867]],"o":[[-0.459,1.486],[-2.339,1.559],[-4.3,-2.243],[-2.902,-2.006],[2.332,-1.696],[0.274,-2.198],[-3.657,1.787],[-2.243,-0.529],[0.618,-2.636],[2.635,-0.593],[-1.362,8.29]],"v":[[15.156,159.387],[13.513,163.847],[5.792,162.597],[-7.035,155.739],[-3.837,150.532],[7.835,141.239],[-9.722,148.991],[-20.418,151.709],[-29.618,148.179],[10.759,134.646],[20.071,134.646]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[1.651,-8.391],[1.421,-1.215],[2.139,1.038],[4.041,2.578],[-1.673,1.409],[-0.807,1.808],[2.731,-1.446],[4.723,1.27],[-0.562,1.224],[-7.661,2.54],[-0.437,-3.931]],"o":[[-0.459,1.511],[-2.339,1.585],[-4.3,-2.281],[-2.902,-2.04],[2.332,-1.725],[0.274,-2.234],[-3.657,1.817],[-2.243,-0.538],[0.618,-2.68],[2.635,-0.603],[-1.362,8.428]],"v":[[15.156,158.075],[13.513,162.609],[5.792,161.339],[-7.035,154.366],[-3.837,149.072],[7.835,139.624],[-9.722,147.505],[-20.418,150.268],[-29.618,146.68],[10.759,132.921],[20.071,132.921]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":46,"s":[{"i":[[1.651,-8.253],[1.421,-1.195],[2.139,1.021],[4.041,2.535],[-1.673,1.386],[-0.807,1.778],[2.731,-1.423],[4.723,1.249],[-0.562,1.204],[-7.661,2.499],[-0.437,-3.867]],"o":[[-0.459,1.486],[-2.339,1.559],[-4.3,-2.243],[-2.902,-2.006],[2.332,-1.696],[0.274,-2.198],[-3.657,1.787],[-2.243,-0.529],[0.618,-2.636],[2.635,-0.593],[-1.362,8.29]],"v":[[15.156,159.387],[13.513,163.847],[5.792,162.597],[-7.035,155.739],[-3.837,150.532],[7.835,141.239],[-9.722,148.991],[-20.418,151.709],[-29.618,148.179],[10.759,134.646],[20.071,134.646]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[{"i":[[1.651,-8.391],[1.421,-1.215],[2.139,1.038],[4.041,2.578],[-1.673,1.409],[-0.807,1.808],[2.731,-1.446],[4.723,1.27],[-0.562,1.224],[-7.661,2.54],[-0.437,-3.931]],"o":[[-0.459,1.511],[-2.339,1.585],[-4.3,-2.281],[-2.902,-2.04],[2.332,-1.725],[0.274,-2.234],[-3.657,1.817],[-2.243,-0.538],[0.618,-2.68],[2.635,-0.603],[-1.362,8.428]],"v":[[15.156,158.075],[13.513,162.609],[5.792,161.339],[-7.035,154.366],[-3.837,149.072],[7.835,139.624],[-9.722,147.505],[-20.418,150.268],[-29.618,146.68],[10.759,132.921],[20.071,132.921]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":64,"s":[{"i":[[1.651,-8.199],[1.421,-1.187],[2.139,1.015],[4.041,2.519],[-1.673,1.377],[-0.807,1.767],[2.731,-1.413],[4.723,1.241],[-0.562,1.196],[-7.661,2.482],[-0.437,-3.841]],"o":[[-0.459,1.477],[-2.339,1.549],[-4.3,-2.229],[-2.902,-1.993],[2.332,-1.685],[0.274,-2.183],[-3.657,1.776],[-2.243,-0.526],[0.618,-2.619],[2.635,-0.589],[-1.362,8.235]],"v":[[15.156,159.902],[13.513,164.332],[5.792,163.091],[-7.035,156.278],[-3.837,151.104],[7.835,141.872],[-9.722,149.573],[-20.418,152.273],[-29.618,148.767],[10.759,135.322],[20.071,135.322]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[1.651,-9.635],[1.421,-1.395],[2.139,1.192],[4.041,2.96],[-1.673,1.618],[-0.807,2.076],[2.733,-1.65],[4.723,1.441],[-0.562,1.405],[-7.661,2.917],[-0.437,-4.514]],"o":[[-0.459,1.735],[-2.339,1.82],[-4.3,-2.619],[-2.902,-2.342],[2.332,-1.98],[0.274,-2.566],[-3.657,2.087],[-2.243,-0.618],[0.618,-3.077],[2.635,-0.692],[-1.362,9.677]],"v":[[15.147,150.788],[13.504,155.994],[5.783,154.535],[-7.044,146.529],[-3.846,140.45],[7.826,129.602],[-9.731,138.651],[-20.427,141.824],[-29.627,137.703],[10.75,121.905],[20.062,121.905]],"c":true}]},{"i":{"x":0.191,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[1.651,-5.681],[1.421,-0.822],[2.139,0.703],[4.041,1.745],[-1.673,0.954],[-0.807,1.224],[2.743,-0.923],[4.732,0.768],[-0.562,0.829],[-7.661,1.72],[-0.437,-2.662]],"o":[[-0.459,1.023],[-2.339,1.073],[-4.3,-1.544],[-2.902,-1.381],[2.332,-1.168],[0.274,-1.513],[-3.657,1.23],[-2.243,-0.364],[0.618,-1.815],[2.635,-0.408],[-1.362,5.707]],"v":[[15.123,161.971],[13.48,165.041],[5.76,164.181],[-7.068,159.46],[-3.87,155.875],[7.803,149.478],[-9.755,154.814],[-20.45,156.685],[-29.651,154.255],[10.727,144.939],[20.038,144.939]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":96,"s":[{"i":[[1.651,-3.393],[1.421,-0.491],[2.139,0.42],[4.041,1.042],[-1.673,0.57],[-0.807,0.731],[2.737,-0.55],[4.727,0.458],[-0.562,0.495],[-7.661,1.027],[-0.437,-1.59]],"o":[[-0.459,0.611],[-2.339,0.641],[-4.3,-0.922],[-2.902,-0.825],[2.332,-0.697],[0.274,-0.904],[-3.657,0.735],[-2.243,-0.217],[0.618,-1.084],[2.635,-0.244],[-1.362,3.408]],"v":[[15.112,169.189],[13.469,171.023],[5.749,170.509],[-7.079,167.69],[-3.881,165.548],[7.792,161.728],[-9.766,164.915],[-20.462,166.032],[-29.662,164.581],[10.715,159.017],[20.027,159.017]],"c":true}]},{"i":{"x":0.434,"y":0.761},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[1.651,-3.393],[1.421,-0.491],[2.139,0.42],[4.041,1.042],[-1.673,0.57],[-0.807,0.731],[2.737,-0.55],[4.727,0.458],[-0.562,0.495],[-7.661,1.027],[-0.437,-1.59]],"o":[[-0.459,0.611],[-2.339,0.641],[-4.3,-0.922],[-2.902,-0.825],[2.332,-0.697],[0.274,-0.904],[-3.657,0.735],[-2.243,-0.217],[0.618,-1.084],[2.635,-0.244],[-1.362,3.408]],"v":[[15.112,169.189],[13.469,171.023],[5.749,170.509],[-7.079,167.69],[-3.881,165.548],[7.792,161.728],[-9.766,164.915],[-20.462,166.032],[-29.662,164.581],[10.715,159.017],[20.027,159.017]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.07},"t":122,"s":[{"i":[[1.651,-9.635],[1.421,-1.395],[2.139,1.192],[4.041,2.96],[-1.673,1.618],[-0.807,2.076],[2.733,-1.65],[4.723,1.441],[-0.562,1.405],[-7.661,2.917],[-0.437,-4.514]],"o":[[-0.459,1.735],[-2.339,1.82],[-4.3,-2.619],[-2.902,-2.342],[2.332,-1.98],[0.274,-2.566],[-3.657,2.087],[-2.243,-0.618],[0.618,-3.077],[2.635,-0.692],[-1.362,9.677]],"v":[[15.147,150.788],[13.504,155.994],[5.783,154.535],[-7.044,146.529],[-3.846,140.45],[7.826,129.602],[-9.731,138.651],[-20.427,141.824],[-29.627,137.703],[10.75,121.905],[20.062,121.905]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":131,"s":[{"i":[[1.651,-8.199],[1.421,-1.187],[2.139,1.015],[4.041,2.519],[-1.673,1.377],[-0.807,1.767],[2.731,-1.413],[4.723,1.241],[-0.562,1.196],[-7.661,2.482],[-0.437,-3.841]],"o":[[-0.459,1.477],[-2.339,1.549],[-4.3,-2.229],[-2.902,-1.993],[2.332,-1.685],[0.274,-2.183],[-3.657,1.776],[-2.243,-0.526],[0.618,-2.619],[2.635,-0.589],[-1.362,8.235]],"v":[[15.156,159.902],[13.513,164.332],[5.792,163.091],[-7.035,156.278],[-3.837,151.104],[7.835,141.872],[-9.722,149.573],[-20.418,152.273],[-29.618,148.767],[10.759,135.322],[20.071,135.322]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[1.651,-8.391],[1.421,-1.215],[2.139,1.038],[4.041,2.578],[-1.673,1.409],[-0.807,1.808],[2.731,-1.446],[4.723,1.27],[-0.562,1.224],[-7.661,2.54],[-0.437,-3.931]],"o":[[-0.459,1.511],[-2.339,1.585],[-4.3,-2.281],[-2.902,-2.04],[2.332,-1.725],[0.274,-2.234],[-3.657,1.817],[-2.243,-0.538],[0.618,-2.68],[2.635,-0.603],[-1.362,8.428]],"v":[[15.156,158.075],[13.513,162.609],[5.792,161.339],[-7.035,154.366],[-3.837,149.072],[7.835,139.624],[-9.722,147.505],[-20.418,150.268],[-29.618,146.68],[10.759,132.921],[20.071,132.921]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":147,"s":[{"i":[[1.651,-8.253],[1.421,-1.195],[2.139,1.021],[4.041,2.535],[-1.673,1.386],[-0.807,1.778],[2.731,-1.423],[4.723,1.249],[-0.562,1.204],[-7.661,2.499],[-0.437,-3.867]],"o":[[-0.459,1.486],[-2.339,1.559],[-4.3,-2.243],[-2.902,-2.006],[2.332,-1.696],[0.274,-2.198],[-3.657,1.787],[-2.243,-0.529],[0.618,-2.636],[2.635,-0.593],[-1.362,8.29]],"v":[[15.156,159.387],[13.513,163.847],[5.792,162.597],[-7.035,155.739],[-3.837,150.532],[7.835,141.239],[-9.722,148.991],[-20.418,151.709],[-29.618,148.179],[10.759,134.646],[20.071,134.646]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":153,"s":[{"i":[[1.651,-8.391],[1.421,-1.215],[2.139,1.038],[4.041,2.578],[-1.673,1.409],[-0.807,1.808],[2.731,-1.446],[4.723,1.27],[-0.562,1.224],[-7.661,2.54],[-0.437,-3.931]],"o":[[-0.459,1.511],[-2.339,1.585],[-4.3,-2.281],[-2.902,-2.04],[2.332,-1.725],[0.274,-2.234],[-3.657,1.817],[-2.243,-0.538],[0.618,-2.68],[2.635,-0.603],[-1.362,8.428]],"v":[[15.156,158.075],[13.513,162.609],[5.792,161.339],[-7.035,154.366],[-3.837,149.072],[7.835,139.624],[-9.722,147.505],[-20.418,150.268],[-29.618,146.68],[10.759,132.921],[20.071,132.921]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[{"i":[[1.651,-8.253],[1.421,-1.195],[2.139,1.021],[4.041,2.535],[-1.673,1.386],[-0.807,1.778],[2.731,-1.423],[4.723,1.249],[-0.562,1.204],[-7.661,2.499],[-0.437,-3.867]],"o":[[-0.459,1.486],[-2.339,1.559],[-4.3,-2.243],[-2.902,-2.006],[2.332,-1.696],[0.274,-2.198],[-3.657,1.787],[-2.243,-0.529],[0.618,-2.636],[2.635,-0.593],[-1.362,8.29]],"v":[[15.156,159.387],[13.513,163.847],[5.792,162.597],[-7.035,155.739],[-3.837,150.532],[7.835,141.239],[-9.722,148.991],[-20.418,151.709],[-29.618,148.179],[10.759,134.646],[20.071,134.646]],"c":true}]},{"t":168,"s":[{"i":[[1.651,-8.391],[1.421,-1.215],[2.139,1.038],[4.041,2.578],[-1.673,1.409],[-0.807,1.808],[2.731,-1.446],[4.723,1.27],[-0.562,1.224],[-7.661,2.54],[-0.437,-3.931]],"o":[[-0.459,1.511],[-2.339,1.585],[-4.3,-2.281],[-2.902,-2.04],[2.332,-1.725],[0.274,-2.234],[-3.657,1.817],[-2.243,-0.538],[0.618,-2.68],[2.635,-0.603],[-1.362,8.428]],"v":[[15.156,158.075],[13.513,162.609],[5.792,161.339],[-7.035,154.366],[-3.837,149.072],[7.835,139.624],[-9.722,147.505],[-20.418,150.268],[-29.618,146.68],[10.759,132.921],[20.071,132.921]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":13,"s":[{"i":[[20.216,0],[0,-15.824],[-20.216,0],[0,15.824]],"o":[[-20.216,0],[0,15.824],[20.216,0],[0,-15.824]],"v":[[-0.611,116],[-37.221,144.655],[-0.611,173.3],[36,144.655]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":20,"s":[{"i":[[20.216,0],[0,-15.564],[-20.216,0],[0,15.564]],"o":[[-20.216,0],[0,15.564],[20.216,0],[0,-15.564]],"v":[[-0.611,118.003],[-37.221,146.188],[-0.611,174.362],[36,146.188]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":27,"s":[{"i":[[20.216,0],[0,-15.824],[-20.216,0],[0,15.824]],"o":[[-20.216,0],[0,15.824],[20.216,0],[0,-15.824]],"v":[[-0.611,116],[-37.221,144.655],[-0.611,173.3],[36,144.655]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":33,"s":[{"i":[[20.216,0],[0,-15.564],[-20.216,0],[0,15.564]],"o":[[-20.216,0],[0,15.564],[20.216,0],[0,-15.564]],"v":[[-0.611,118.003],[-37.221,146.188],[-0.611,174.362],[36,146.188]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[20.216,0],[0,-15.824],[-20.216,0],[0,15.824]],"o":[[-20.216,0],[0,15.824],[20.216,0],[0,-15.824]],"v":[[-0.611,116],[-37.221,144.655],[-0.611,173.3],[36,144.655]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":46,"s":[{"i":[[20.216,0],[0,-15.564],[-20.216,0],[0,15.564]],"o":[[-20.216,0],[0,15.564],[20.216,0],[0,-15.564]],"v":[[-0.611,118.003],[-37.221,146.188],[-0.611,174.362],[36,146.188]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[{"i":[[20.216,0],[0,-15.824],[-20.216,0],[0,15.824]],"o":[[-20.216,0],[0,15.824],[20.216,0],[0,-15.824]],"v":[[-0.611,116],[-37.221,144.655],[-0.611,173.3],[36,144.655]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":64,"s":[{"i":[[20.216,0],[0,-15.462],[-20.216,0],[0,15.462]],"o":[[-20.216,0],[0,15.462],[20.216,0],[0,-15.462]],"v":[[-0.611,118.788],[-37.221,146.789],[-0.611,174.779],[36,146.788]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[20.216,0],[0,-18.169],[-20.216,0],[0,18.169]],"o":[[-20.216,0],[0,18.169],[20.216,0],[0,-18.169]],"v":[[-0.627,103],[-37.238,135.903],[-0.627,168.793],[35.983,135.903]],"c":true}]},{"i":{"x":0.191,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[20.216,0],[0,-10.714],[-20.216,0],[0,10.714]],"o":[[-20.216,0],[0,10.714],[20.216,0],[0,-10.714]],"v":[[-0.671,135.104],[-37.282,154.507],[-0.671,173.902],[35.939,154.507]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":96,"s":[{"i":[[20.216,0],[0,-6.399],[-20.216,0],[0,6.399]],"o":[[-20.216,0],[0,6.399],[20.216,0],[0,-6.399]],"v":[[-0.692,153.827],[-37.303,165.416],[-0.692,177],[35.918,165.416]],"c":true}]},{"i":{"x":0.434,"y":0.761},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[20.216,0],[0,-6.399],[-20.216,0],[0,6.399]],"o":[[-20.216,0],[0,6.399],[20.216,0],[0,-6.399]],"v":[[-0.692,153.827],[-37.303,165.416],[-0.692,177],[35.918,165.416]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.07},"t":122,"s":[{"i":[[20.216,0],[0,-18.169],[-20.216,0],[0,18.169]],"o":[[-20.216,0],[0,18.169],[20.216,0],[0,-18.169]],"v":[[-0.627,103],[-37.238,135.903],[-0.627,168.793],[35.983,135.903]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":131,"s":[{"i":[[20.216,0],[0,-15.462],[-20.216,0],[0,15.462]],"o":[[-20.216,0],[0,15.462],[20.216,0],[0,-15.462]],"v":[[-0.611,118.788],[-37.221,146.789],[-0.611,174.779],[36,146.788]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[20.216,0],[0,-15.824],[-20.216,0],[0,15.824]],"o":[[-20.216,0],[0,15.824],[20.216,0],[0,-15.824]],"v":[[-0.611,116],[-37.221,144.655],[-0.611,173.3],[36,144.655]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":147,"s":[{"i":[[20.216,0],[0,-15.564],[-20.216,0],[0,15.564]],"o":[[-20.216,0],[0,15.564],[20.216,0],[0,-15.564]],"v":[[-0.611,118.003],[-37.221,146.188],[-0.611,174.362],[36,146.188]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":153,"s":[{"i":[[20.216,0],[0,-15.824],[-20.216,0],[0,15.824]],"o":[[-20.216,0],[0,15.824],[20.216,0],[0,-15.824]],"v":[[-0.611,116],[-37.221,144.655],[-0.611,173.3],[36,144.655]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[{"i":[[20.216,0],[0,-15.564],[-20.216,0],[0,15.564]],"o":[[-20.216,0],[0,15.564],[20.216,0],[0,-15.564]],"v":[[-0.611,118.003],[-37.221,146.188],[-0.611,174.362],[36,146.188]],"c":true}]},{"t":168,"s":[{"i":[[20.216,0],[0,-15.824],[-20.216,0],[0,15.824]],"o":[[-20.216,0],[0,15.824],[20.216,0],[0,-15.824]],"v":[[-0.611,116],[-37.221,144.655],[-0.611,173.3],[36,144.655]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"gf","o":{"a":0,"k":100},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.098,0.412,0.384,0.431,0.649,0.359,0.343,0.388,0.999,0.306,0.302,0.345,0.098,0.5,0.649,0.75,0.999,1]}},"s":{"a":0,"k":[1026.422,-284.736]},"e":{"a":0,"k":[1090.275,-223.645]},"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":"Преобразовать"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":13,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.13],[0,0],[-3.865,0],[0,0],[-0.253,3.857],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.857],[0,0],[3.865,0],[0,0],[0.402,-6.13]],"v":[[156.28,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122],[-147.895,233.978],[147.664,233.978],[154.983,227.122],[166.886,45.432]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":20,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.03],[0,0],[-3.865,0],[0,0],[-0.253,3.793],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.793],[0,0],[3.865,0],[0,0],[0.402,-6.03]],"v":[[160.28,37.421],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301],[-147.895,234.044],[147.664,234.044],[154.983,227.301],[170.886,48.559]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":27,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.13],[0,0],[-3.865,0],[0,0],[-0.253,3.857],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.857],[0,0],[3.865,0],[0,0],[0.402,-6.13]],"v":[[156.28,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122],[-147.895,233.978],[147.664,233.978],[154.983,227.122],[166.886,45.432]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":33,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.03],[0,0],[-3.865,0],[0,0],[-0.253,3.793],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.793],[0,0],[3.865,0],[0,0],[0.402,-6.03]],"v":[[160.28,37.421],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301],[-147.895,234.044],[147.664,234.044],[154.983,227.301],[170.886,48.559]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.13],[0,0],[-3.865,0],[0,0],[-0.253,3.857],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.857],[0,0],[3.865,0],[0,0],[0.402,-6.13]],"v":[[156.28,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122],[-147.895,233.978],[147.664,233.978],[154.983,227.122],[166.886,45.432]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":46,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.03],[0,0],[-3.865,0],[0,0],[-0.253,3.793],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.793],[0,0],[3.865,0],[0,0],[0.402,-6.03]],"v":[[160.28,37.421],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301],[-147.895,234.044],[147.664,234.044],[154.983,227.301],[170.886,48.559]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.13],[0,0],[-3.865,0],[0,0],[-0.253,3.857],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.857],[0,0],[3.865,0],[0,0],[0.402,-6.13]],"v":[[156.28,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122],[-147.895,233.978],[147.664,233.978],[154.983,227.122],[166.886,45.432]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":64,"s":[{"i":[[6.365,0],[0,0],[-0.416,-5.99],[0,0],[-3.865,0],[0,0],[-0.253,3.768],[0,0]],"o":[[0,0],[-6.365,0],[0,0],[0.253,3.768],[0,0],[3.865,0],[0,0],[0.416,-5.99]],"v":[[161.878,38.768],[-162.17,38.768],[-173.158,49.833],[-155.214,227.371],[-147.895,234.07],[147.664,234.07],[154.983,227.371],[172.866,49.833]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.448],[0,0],[-3.865,0],[0,0],[-0.253,4.056],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,4.056],[0,0],[3.865,0],[0,0],[0.402,-6.448]],"v":[[150.12,23.528],[-150.453,23.555],[-161.059,35.465],[-155.214,226.559],[-147.895,233.769],[147.664,233.769],[154.983,226.559],[160.726,35.438]],"c":true}]},{"i":{"x":0.191,"y":1},"o":{"x":0.167,"y":0.167},"t":76,"s":[{"i":[[6.143,0],[0,0],[-0.402,-4.596],[0,0],[-3.865,0],[0,0],[-0.253,2.891],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,2.891],[0,0],[3.865,0],[0,0],[0.402,-4.596]],"v":[[133.952,85.078],[-134.555,85.171],[-145.161,93.66],[-155.214,229.845],[-147.895,234.985],[147.664,234.985],[154.983,229.845],[144.558,93.567]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":96,"s":[{"i":[[6.143,0],[0,0],[-0.402,-3.525],[0,0],[-3.865,0],[0,0],[-0.253,2.218],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,2.218],[0,0],[3.865,0],[0,0],[0.402,-3.525]],"v":[[126.28,120.663],[-127.01,120.777],[-137.617,127.288],[-155.214,231.745],[-147.895,235.687],[147.664,235.687],[154.983,231.745],[136.886,127.174]],"c":true}]},{"i":{"x":0.434,"y":0.761},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[6.143,0],[0,0],[-0.402,-3.525],[0,0],[-3.865,0],[0,0],[-0.253,2.218],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,2.218],[0,0],[3.865,0],[0,0],[0.402,-3.525]],"v":[[126.28,120.663],[-127.01,120.777],[-137.617,127.288],[-155.214,231.745],[-147.895,235.687],[147.664,235.687],[154.983,231.745],[136.886,127.174]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.07},"t":122,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.448],[0,0],[-3.865,0],[0,0],[-0.253,4.056],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,4.056],[0,0],[3.865,0],[0,0],[0.402,-6.448]],"v":[[150.12,23.528],[-150.453,23.555],[-161.059,35.465],[-155.214,226.559],[-147.895,233.769],[147.664,233.769],[154.983,226.559],[160.726,35.438]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":131,"s":[{"i":[[6.365,0],[0,0],[-0.416,-5.99],[0,0],[-3.865,0],[0,0],[-0.253,3.768],[0,0]],"o":[[0,0],[-6.365,0],[0,0],[0.253,3.768],[0,0],[3.865,0],[0,0],[0.416,-5.99]],"v":[[161.878,38.768],[-162.17,38.768],[-173.158,49.833],[-155.214,227.371],[-147.895,234.07],[147.664,234.07],[154.983,227.371],[172.866,49.833]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.13],[0,0],[-3.865,0],[0,0],[-0.253,3.857],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.857],[0,0],[3.865,0],[0,0],[0.402,-6.13]],"v":[[156.28,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122],[-147.895,233.978],[147.664,233.978],[154.983,227.122],[166.886,45.432]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":147,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.03],[0,0],[-3.865,0],[0,0],[-0.253,3.793],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.793],[0,0],[3.865,0],[0,0],[0.402,-6.03]],"v":[[160.28,37.421],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301],[-147.895,234.044],[147.664,234.044],[154.983,227.301],[170.886,48.559]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":153,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.13],[0,0],[-3.865,0],[0,0],[-0.253,3.857],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.857],[0,0],[3.865,0],[0,0],[0.402,-6.13]],"v":[[156.28,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122],[-147.895,233.978],[147.664,233.978],[154.983,227.122],[166.886,45.432]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.03],[0,0],[-3.865,0],[0,0],[-0.253,3.793],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.793],[0,0],[3.865,0],[0,0],[0.402,-6.03]],"v":[[160.28,37.421],[-160.51,37.491],[-171.116,48.628],[-155.214,227.301],[-147.895,234.044],[147.664,234.044],[154.983,227.301],[170.886,48.559]],"c":true}]},{"t":168,"s":[{"i":[[6.143,0],[0,0],[-0.402,-6.13],[0,0],[-3.865,0],[0,0],[-0.253,3.857],[0,0]],"o":[[0,0],[-6.143,0],[0,0],[0.253,3.857],[0,0],[3.865,0],[0,0],[0.402,-6.13]],"v":[[156.28,34.108],[-156.51,34.108],[-167.117,45.432],[-155.214,227.122],[-147.895,233.978],[147.664,233.978],[154.983,227.122],[166.886,45.432]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.266666680574,0.254901975393,0.278431385756,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.572549045086,0.564705908298,0.57647061348,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":"Преобразовать"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Wrist Front 2","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":54,"s":[0],"h":1},{"t":129,"s":[100],"h":1}]},"p":{"a":0,"k":[-113.604,10.142,0]},"a":{"a":0,"k":[-113.604,10.142,0]}},"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":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-79.25,-3.602],[-77.11,-3.883]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-78,19.896],[-75.86,19.386]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-78,19.896],[-75.86,19.386]],"c":false}]},{"t":134,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-68.273,2.684],[-66.132,3.078]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"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.167},"t":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-123.592,-1.823],[-119.509,-2.104]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-122.77,30.71],[-118.831,29.522]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-122.77,30.71],[-118.831,29.522]],"c":false}]},{"t":134,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-119.583,-0.207],[-115.454,-0.249]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"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":49,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-100.993,-1.349],[-96.327,-1.277]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-96.639,24.738],[-92.181,23.352]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-96.639,24.738],[-92.181,23.352]],"c":false}]},{"t":134,"s":[{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-93.48,1.64],[-88.783,1.985]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"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":49,"s":[{"i":[[0,0],[1.005,-4.634],[-3.551,-2.774],[-1.389,2.139],[0.335,3.764],[17.817,0.027]],"o":[[0,0],[-0.761,3.51],[7.271,5.681],[1.389,-2.139],[-0.166,-1.86],[-3.549,-0.005]],"v":[[-104.113,-5.933],[-115.255,2.331],[-111.106,10.507],[-89.634,11.57],[-87.584,3.57],[-102.067,-6.054]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[-3.326,-5.477],[-5.431,-2.897],[-0.02,8.029],[7.427,10.515],[7.145,2.045]],"o":[[0,0],[3.326,5.477],[11.123,5.934],[0.01,-4.12],[-1.948,-2.758],[-3.412,-0.976]],"v":[[-123.674,17.633],[-110.72,28.646],[-96.232,54.95],[-73.23,46.971],[-87.427,18.235],[-103.645,7.455]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[-3.326,-5.477],[-5.431,-2.897],[-0.02,8.029],[7.427,10.515],[7.145,2.045]],"o":[[0,0],[3.326,5.477],[11.123,5.934],[0.01,-4.12],[-1.948,-2.758],[-3.412,-0.976]],"v":[[-123.674,17.633],[-110.72,28.646],[-96.232,54.95],[-73.23,46.971],[-87.427,18.235],[-103.645,7.455]],"c":false}]},{"t":134,"s":[{"i":[[4.763,0.645],[1.28,-4.567],[-3.824,-2.43],[-1.523,2.055],[0.12,3.777],[17.947,1.067]],"o":[[-8.181,-1.108],[-0.97,3.459],[7.827,4.974],[1.523,-2.055],[-0.059,-1.867],[-3.575,-0.213]],"v":[[-95.483,-5.272],[-109.398,2.24],[-103.537,12.036],[-84.122,12.96],[-81.594,5.092],[-95.627,-5.361]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"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":49,"s":[{"i":[[-0.197,-2.319],[-10.648,3.828],[1.25,4.675],[16.222,-2.698]],"o":[[0.197,2.319],[5.867,-2.109],[-0.701,-2.623],[-2.284,0.38]],"v":[[-91.288,7.994],[-70.578,10.23],[-65.799,-1.401],[-90.222,-7.052]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[-3.139,-2.803],[-2.503,12.461],[6.926,5.043],[6.647,-1.308]],"o":[[3.139,2.803],[1.379,-6.866],[-3.886,-2.829],[-2.341,0.461]],"v":[[-75.025,50.619],[-56.559,43.317],[-72.287,13.135],[-97.902,8.911]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[-3.139,-2.803],[-2.503,12.461],[6.926,5.043],[6.647,-1.308]],"o":[[3.139,2.803],[1.379,-6.866],[-3.886,-2.829],[-2.341,0.461]],"v":[[-75.025,50.619],[-56.559,43.317],[-72.287,13.135],[-97.902,8.911]],"c":false}]},{"t":134,"s":[{"i":[[-0.065,-2.326],[-10.948,3.2],[0.989,4.74],[16.498,-1.747]],"o":[[0.065,2.326],[6.032,-1.763],[-0.555,-2.66],[-2.323,0.246]],"v":[[-85.581,9.293],[-65.758,12.19],[-59.361,1.402],[-83.637,-5.665]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"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":49,"s":[{"i":[[6.36,-1.958],[0.355,-4.297],[-2.627,-2.356],[-2.366,2.827],[18.484,6.112]],"o":[[-10.05,3.093],[-0.287,3.472],[8.328,7.468],[2.366,-2.827],[-6.139,-2.03]],"v":[[-126.45,-6.362],[-138.855,3.372],[-137.57,9.843],[-112.8,10.893],[-119.484,-6.346]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[-2.108,-2.548],[-3.223,-2.84],[-0.698,4.664],[13.838,8.43]],"o":[[0,0],[3.255,3.934],[14.687,12.94],[0.698,-4.664],[-5.106,-3.11]],"v":[[-146.83,24.999],[-140.969,34.367],[-129.437,50.56],[-102.665,48.054],[-120.838,19.32]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[-2.108,-2.548],[-3.223,-2.84],[-0.698,4.664],[13.838,8.43]],"o":[[0,0],[3.255,3.934],[14.687,12.94],[0.698,-4.664],[-5.106,-3.11]],"v":[[-146.83,24.999],[-140.969,34.367],[-129.437,50.56],[-102.665,48.054],[-120.838,19.32]],"c":false}]},{"t":134,"s":[{"i":[[6.709,0.111],[0.606,-4.269],[-2.649,-2.357],[-2.547,2.684],[18.626,4.82]],"o":[[-12.597,-0.209],[-0.49,3.449],[7.343,6.532],[2.547,-2.684],[-6.311,-1.633]],"v":[[-117.748,-7.702],[-134.265,1.389],[-130.643,9.435],[-107.42,10.932],[-116.189,-7.452]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"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":49,"s":[{"i":[[0,0],[-1.416,-1.436],[-0.841,3.389],[2.187,1.015]],"o":[[-21.702,2.508],[6.208,6.298],[0.841,-3.389],[-2.187,-1.015]],"v":[[-139.298,-4.259],[-153.64,8.239],[-130.54,8.399],[-130.984,0.311]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[{"i":[[0,0],[-1.416,-2.604],[0.04,10.099],[2.187,1.839]],"o":[[4.798,10.046],[6.208,11.418],[-0.025,-6.202],[-2.187,-1.839]],"v":[[-163.298,33.204],[-153.89,50.862],[-131.04,46.151],[-130.984,26.989]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[-1.416,-2.604],[0.04,10.099],[2.187,1.839]],"o":[[4.798,10.046],[6.208,11.418],[-0.025,-6.202],[-2.187,-1.839]],"v":[[-163.298,33.204],[-153.89,50.862],[-131.04,46.151],[-130.984,26.989]],"c":false}]},{"t":134,"s":[{"i":[[0,0],[-1.343,-1.516],[-1.044,3.335],[2.145,1.141]],"o":[[-21.242,-3.824],[5.89,6.65],[1.044,-3.335],[-2.145,-1.141]],"v":[[-130.055,-5.899],[-148.408,5.898],[-125.147,7.406],[-125.126,-0.694]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 7","bm":0,"hd":false}],"ip":1,"op":180,"st":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Wrist Far","parent":5,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.383],"y":[0]},"t":41,"s":[41]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.2],"y":[0]},"t":54,"s":[-10]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.435],"y":[0]},"t":64,"s":[-4]},{"i":{"x":[0.27],"y":[0.855]},"o":{"x":[0.126],"y":[0]},"t":108,"s":[1]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.19],"y":[0.051]},"t":129,"s":[-10]},{"t":146,"s":[39]}]},"p":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.383,"y":0},"t":41,"s":[-116.953,150.863,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.2,"y":0},"t":54,"s":[-123.953,69.863,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.735,"y":0.572},"o":{"x":0.435,"y":0},"t":64,"s":[-126.953,100.863,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.54,"y":0.69},"o":{"x":0.303,"y":0.178},"t":69,"s":[-115.648,88.083,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.467,"y":1},"o":{"x":0.183,"y":0.647},"t":76,"s":[-98.993,151.49,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.7,"y":0.7},"o":{"x":0.3,"y":0.3},"t":96,"s":[-93.953,186.863,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.27,"y":0.855},"o":{"x":0.126,"y":0},"t":108,"s":[-93.953,186.863,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.19,"y":0.051},"t":129,"s":[-126.953,65.863,0],"to":[0,0,0],"ti":[0,0,0]},{"t":146,"s":[-116.953,140.863,0]}]},"a":{"a":0,"k":[-126.953,100.863,0]}},"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":48,"s":[{"i":[[-1.191,6.669],[9.153,-4.869],[-22.048,-35.792],[-9.601,52.3]],"o":[[4.566,-25.581],[-9.153,4.869],[11.276,18.306],[0,0]],"v":[[-79.472,29.892],[-148.746,14.246],[-153.047,77.549],[-82.485,56.828]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[5.589,3.829],[5.67,-5.243],[-14.384,-15.563],[-9.601,52.3]],"o":[[-1.968,-1.349],[-3.209,2.967],[14.593,15.789],[0,0]],"v":[[-87.395,22.93],[-161.17,33.846],[-160.341,85.063],[-83.799,61.761]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":64,"s":[{"i":[[5.589,3.829],[-0.592,-0.601],[-14.384,-15.563],[-9.601,52.3]],"o":[[-1.968,-1.349],[0,0],[14.593,15.789],[0,0]],"v":[[-90.805,21.267],[-159.977,36.968],[-157.083,83.813],[-86.485,66.828]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[6.327,1.002],[-0.559,-0.563],[-13.603,-14.599],[-9.08,49.06]],"o":[[-6.242,-0.988],[0,0],[13.801,14.811],[0,0]],"v":[[-87.436,8.895],[-161.157,37.109],[-154.402,82.217],[-87.635,66.285]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[6.327,1.002],[-0.559,-0.563],[-13.603,-14.599],[-9.08,49.06]],"o":[[-6.242,-0.988],[0,0],[13.801,14.811],[0,0]],"v":[[-87.436,8.895],[-161.157,37.109],[-154.402,82.217],[-87.635,66.285]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[6.69,1.032],[-0.592,-0.581],[-14.384,-15.047],[-9.601,50.566]],"o":[[-6.601,-1.019],[0,0],[14.593,15.266],[0,0]],"v":[[-86.274,7.386],[-164.226,36.466],[-157.083,82.959],[-86.485,66.537]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[5.589,3.829],[-0.592,-0.601],[-14.384,-15.563],[-9.601,52.3]],"o":[[-1.968,-1.349],[0,0],[14.593,15.789],[0,0]],"v":[[-85.722,10.142],[-162.38,37.412],[-160.839,82.94],[-82.788,59.323]],"c":false}]},{"t":137,"s":[{"i":[[-1.191,6.669],[19.148,-13.48],[-14.384,-15.563],[-9.601,52.3]],"o":[[4.566,-25.581],[-4.962,3.493],[14.593,15.789],[0,0]],"v":[[-79.479,27.971],[-151.094,2.09],[-159.971,80.844],[-82.485,56.828]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862804936,0.674509803922,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-126.428,50.471]},"a":{"a":0,"k":[-126.428,50.471]},"s":{"a":0,"k":[87.313,87.313]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Преобразовать"}],"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":48,"s":[{"i":[[-1.191,6.669],[5.127,0.601],[4.34,0],[5.916,1.601],[5.074,0.818],[5.324,-3.203],[-0.592,-0.601],[-14.384,-15.563],[-9.601,52.3]],"o":[[4.566,-25.581],[-5.127,-0.601],[-6.636,0],[-5.916,-1.601],[-2.897,-0.467],[-5.324,3.203],[0,0],[14.593,15.789],[0,0]],"v":[[-79.472,29.892],[-99.679,9.013],[-111.362,7.186],[-126.507,6.089],[-140.729,3.493],[-153.49,5.405],[-167.755,33.266],[-158.297,83.527],[-82.485,56.828]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[5.589,3.829],[5.127,0.601],[4.34,0],[5.916,1.601],[4.734,-4.978],[5.324,-3.203],[-0.592,-0.601],[-14.384,-15.563],[-9.601,52.3]],"o":[[-1.968,-1.349],[-5.127,-0.601],[-6.636,0],[-5.916,-1.601],[-2.022,2.126],[-5.324,3.203],[0,0],[14.593,15.789],[0,0]],"v":[[-85.722,10.142],[-99.679,9.013],[-111.862,2.936],[-126.257,7.339],[-142.229,11.743],[-158.99,14.905],[-167.755,33.266],[-165.583,81.813],[-83.485,58.328]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":64,"s":[{"i":[[5.589,3.829],[5.127,0.601],[4.34,0],[5.916,1.601],[4.734,-4.978],[5.324,-3.203],[-0.592,-0.601],[-14.384,-15.563],[-9.601,52.3]],"o":[[-1.968,-1.349],[-5.127,-0.601],[-6.636,0],[-5.916,-1.601],[-2.022,2.126],[-5.324,3.203],[0,0],[14.593,15.789],[0,0]],"v":[[-85.722,10.142],[-99.679,9.013],[-111.862,2.936],[-126.257,7.339],[-142.229,11.743],[-158.99,14.905],[-167.755,33.266],[-157.083,83.813],[-86.485,66.828]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[6.327,1.002],[4.032,2.73],[3.257,-1.791],[4.88,2.42],[3.551,-4.446],[3.946,-4.77],[-0.559,-0.563],[-13.603,-14.599],[-9.08,49.06]],"o":[[-6.242,-0.988],[-4.547,-3.079],[-5.488,3.018],[-3.889,-1.929],[-5.886,-0.549],[-3.727,4.506],[0,0],[13.801,14.811],[0,0]],"v":[[-87.436,8.895],[-100.683,3.85],[-115.221,2.992],[-124.002,5.894],[-141.567,12.047],[-156.791,18.054],[-161.157,37.109],[-154.402,82.217],[-87.635,66.285]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[6.327,1.002],[4.032,2.73],[3.257,-1.791],[4.88,2.42],[3.551,-4.446],[3.946,-4.77],[-0.559,-0.563],[-13.603,-14.599],[-9.08,49.06]],"o":[[-6.242,-0.988],[-4.547,-3.079],[-5.488,3.018],[-3.889,-1.929],[-5.886,-0.549],[-3.727,4.506],[0,0],[13.801,14.811],[0,0]],"v":[[-87.436,8.895],[-100.683,3.85],[-115.221,2.992],[-124.002,5.894],[-141.567,12.047],[-156.791,18.054],[-161.157,37.109],[-154.402,82.217],[-87.635,66.285]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[6.69,1.032],[4.263,2.814],[3.444,-1.846],[5.16,2.494],[3.754,-4.583],[4.172,-4.917],[-0.592,-0.581],[-14.384,-15.047],[-9.601,50.566]],"o":[[-6.601,-1.019],[-4.808,-3.174],[-5.803,3.111],[-4.113,-1.988],[-6.223,-0.566],[-3.941,4.644],[0,0],[14.593,15.266],[0,0]],"v":[[-86.274,7.386],[-100.282,2.186],[-115.654,1.301],[-124.939,4.292],[-143.511,10.634],[-159.609,16.826],[-164.226,36.466],[-157.083,82.959],[-86.485,66.537]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[5.589,3.829],[5.127,0.601],[4.34,0],[5.916,1.601],[4.734,-4.978],[5.324,-3.203],[-0.592,-0.601],[-14.384,-15.563],[-9.601,52.3]],"o":[[-1.968,-1.349],[-5.127,-0.601],[-6.636,0],[-5.916,-1.601],[-2.022,2.126],[-5.324,3.203],[0,0],[14.593,15.789],[0,0]],"v":[[-85.722,10.142],[-99.679,9.013],[-111.862,2.936],[-126.257,7.339],[-142.229,11.743],[-158.99,14.905],[-167.755,33.266],[-165.583,81.813],[-83.485,58.328]],"c":false}]},{"t":137,"s":[{"i":[[-1.191,6.669],[5.127,0.601],[4.34,0],[5.916,1.601],[5.074,0.818],[5.324,-3.203],[-0.592,-0.601],[-14.384,-15.563],[-9.601,52.3]],"o":[[4.566,-25.581],[-5.127,-0.601],[-6.636,0],[-5.916,-1.601],[-2.897,-0.467],[-5.324,3.203],[0,0],[14.593,15.789],[0,0]],"v":[[-79.472,29.892],[-99.679,9.013],[-111.362,7.186],[-126.507,6.089],[-140.729,3.493],[-153.49,5.405],[-167.755,33.266],[-158.297,83.527],[-82.485,56.828]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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":[1,0.811764765721,0,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":"Преобразовать"}],"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.167},"t":48,"s":[{"i":[[0,0],[-5.125,-2.27],[11.677,-3.111],[0,0]],"o":[[0,0],[8.482,3.756],[-8.744,2.33],[0,0]],"v":[[-88.54,25.338],[-51.72,22.761],[-51.484,50.773],[-82.703,57.566]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":54,"s":[{"i":[[0,0],[-3.705,-4.328],[12.073,2.265],[0,0]],"o":[[0,0],[6.132,7.163],[-9.04,-1.696],[0,0]],"v":[[-86.516,34.511],[-46.997,45.756],[-55.989,65.13],[-87.597,57.676]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.435,"y":0},"t":64,"s":[{"i":[[0,0],[-5.362,-1.927],[11.611,-4.007],[0,0]],"o":[[0,0],[8.874,3.189],[-8.695,3.001],[0,0]],"v":[[-80.377,25.601],[-52.507,18.929],[-50.733,40.214],[-81.887,49.381]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.126,"y":0},"t":96,"s":[{"i":[[0,0],[-4.493,-2.95],[11.567,-1.064],[0,0]],"o":[[0,0],[7.435,4.883],[-8.662,0.797],[0,0]],"v":[[-82.867,28.35],[-58.577,30.624],[-58.917,48.271],[-89.597,49.682]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.126,"y":0},"t":108,"s":[{"i":[[0,0],[-4.493,-2.95],[11.567,-1.064],[0,0]],"o":[[0,0],[7.435,4.883],[-8.662,0.797],[0,0]],"v":[[-82.867,28.35],[-58.577,30.624],[-58.917,48.271],[-89.597,49.682]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":121,"s":[{"i":[[0,0],[-4.751,-3.041],[12.231,-1.097],[0,0]],"o":[[0,0],[7.862,5.033],[-9.159,0.821],[0,0]],"v":[[-81.443,27.438],[-55.76,29.782],[-56.119,47.971],[-88.559,49.425]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":129,"s":[{"i":[[0,0],[-3.705,-4.328],[12.073,2.265],[0,0]],"o":[[0,0],[6.132,7.163],[-9.04,-1.696],[0,0]],"v":[[-86.516,34.511],[-46.997,45.756],[-55.989,65.13],[-87.597,57.676]],"c":false}]},{"t":137,"s":[{"i":[[0,0],[-5.125,-2.27],[11.677,-3.111],[0,0]],"o":[[0,0],[8.482,3.756],[-8.744,2.33],[0,0]],"v":[[-88.54,25.338],[-51.72,22.761],[-51.484,50.773],[-82.703,57.566]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,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.956862804936,0.674509803922,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-81,37]},"a":{"a":0,"k":[-81,37]},"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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Nose","parent":3,"sr":1,"ks":{"p":{"a":0,"k":[51.553,92.315,0]},"a":{"a":0,"k":[254.22,284.315,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[0,-3.806],[6.897,0],[0,3.806],[-6.897,0]],"o":[[0,3.806],[-6.897,0],[0,-3.806],[6.897,0]],"v":[[10.708,14.858],[-1.78,22.244],[-14.268,14.858],[-1.78,9.141]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0,-3.806],[6.897,0],[0,3.806],[-6.897,0]],"o":[[0,3.806],[-6.897,0],[0,-3.806],[6.897,0]],"v":[[10.782,17.483],[-1.706,24.87],[-14.194,17.483],[-1.707,10.517]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,-3.806],[6.897,0],[0,3.806],[-6.897,0]],"o":[[0,3.806],[-6.897,0],[0,-3.806],[6.897,0]],"v":[[10.708,14.858],[-1.78,22.244],[-14.268,14.858],[-1.78,9.141]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":157,"s":[{"i":[[0,-3.806],[6.897,0],[0,3.806],[-6.897,0]],"o":[[0,3.806],[-6.897,0],[0,-3.806],[6.897,0]],"v":[[10.887,11.484],[-1.601,18.871],[-14.089,11.484],[-1.602,4.518]],"c":true}]},{"t":172,"s":[{"i":[[0,-3.806],[6.897,0],[0,3.806],[-6.897,0]],"o":[[0,3.806],[-6.897,0],[0,-3.806],[6.897,0]],"v":[[10.708,14.858],[-1.78,22.244],[-14.268,14.858],[-1.78,9.141]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.882352941176,0.505882352941,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[0,-7.162],[11.421,0],[0,7.162],[-11.421,0]],"o":[[0,7.162],[-11.421,0],[0,-7.162],[11.421,0]],"v":[[19.975,21.063],[-1.78,35.108],[-23.536,21.063],[-1.718,7.97]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0,-8.123],[11.856,0],[0,8.123],[-11.856,0]],"o":[[0,8.123],[-11.856,0],[0,-8.123],[11.856,0]],"v":[[20.752,21.571],[-1.834,37.501],[-24.419,21.571],[-1.834,7.501]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,-7.162],[11.421,0],[0,7.162],[-11.421,0]],"o":[[0,7.162],[-11.421,0],[0,-7.162],[11.421,0]],"v":[[19.975,21.063],[-1.78,35.108],[-23.536,21.063],[-1.78,8.657]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":157,"s":[{"i":[[0,-8.123],[11.856,0],[0,8.123],[-11.856,0]],"o":[[0,8.123],[-11.856,0],[0,-8.123],[11.856,0]],"v":[[20.856,15.572],[-1.729,31.502],[-24.314,15.572],[-1.729,1.502]],"c":true}]},{"t":172,"s":[{"i":[[0,-7.162],[11.421,0],[0,7.162],[-11.421,0]],"o":[[0,7.162],[-11.421,0],[0,-7.162],[11.421,0]],"v":[[19.975,21.063],[-1.78,35.108],[-23.536,21.063],[-1.718,7.97]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[0,-9.621],[13.202,0],[0,9.621],[-13.202,0]],"o":[[0,9.621],[-13.202,0],[0,-9.621],[13.202,0]],"v":[[22.124,25.667],[-1.78,43.087],[-25.685,25.667],[-1.78,8.657]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0,-9.621],[13.202,0],[0,9.621],[-13.202,0]],"o":[[0,9.621],[-13.202,0],[0,-9.621],[13.202,0]],"v":[[22.071,25.418],[-1.834,42.838],[-25.738,25.418],[-1.834,8.408]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,-9.621],[13.202,0],[0,9.621],[-13.202,0]],"o":[[0,9.621],[-13.202,0],[0,-9.621],[13.202,0]],"v":[[22.124,25.667],[-1.78,43.087],[-25.685,25.667],[-1.78,8.657]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":157,"s":[{"i":[[0,-9.621],[13.202,0],[0,9.621],[-13.202,0]],"o":[[0,9.621],[-13.202,0],[0,-9.621],[13.202,0]],"v":[[22.175,19.419],[-1.729,36.839],[-25.633,19.419],[-1.729,2.409]],"c":true}]},{"t":172,"s":[{"i":[[0,-9.621],[13.202,0],[0,9.621],[-13.202,0]],"o":[[0,9.621],[-13.202,0],[0,-9.621],[13.202,0]],"v":[[22.124,25.667],[-1.78,43.087],[-25.685,25.667],[-1.78,8.657]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.81568627451,0.482352941176,0,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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[254.22,281.872]},"a":{"a":0,"k":[-1.78,25.872]},"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":"Преобразовать"}],"nm":"Nose","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[0,-10.37],[14.23,0],[0,10.37]],"o":[[0,10.37],[-14.23,0],[0,-10.37]],"v":[[21.634,29.195],[-1.78,47.972],[-25.195,29.195]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0,-10.37],[14.23,0],[0,10.37]],"o":[[0,10.37],[-14.23,0],[0,-10.37]],"v":[[21.58,28.945],[-1.834,47.722],[-25.248,28.945]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,-10.37],[14.23,0],[0,10.37]],"o":[[0,10.37],[-14.23,0],[0,-10.37]],"v":[[21.634,29.195],[-1.78,47.972],[-25.195,29.195]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":157,"s":[{"i":[[0,-10.37],[14.23,0],[0,10.37]],"o":[[0,10.37],[-14.23,0],[0,-10.37]],"v":[[21.685,22.946],[-1.729,41.723],[-25.143,22.946]],"c":true}]},{"t":172,"s":[{"i":[[0,-10.37],[14.23,0],[0,10.37]],"o":[[0,10.37],[-14.23,0],[0,-10.37]],"v":[[21.634,29.195],[-1.78,47.972],[-25.195,29.195]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[254.22,290.694]},"a":{"a":0,"k":[-1.78,34.694]},"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":"Преобразовать"}],"nm":"Layer 8","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Mouth","parent":3,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[51.112,130.565,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[51.106,124.565,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[51.112,130.565,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":157,"s":[51.034,126.564,0],"to":[0,0,0],"ti":[0,0,0]},{"t":172,"s":[51.112,130.565,0]}]},"a":{"a":0,"k":[-2.221,66.565,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":68,"s":[{"i":[[-0.447,-3.892],[1.411,0],[0,0],[-0.152,1.282],[-2.693,3.046],[-3.201,-0.024],[0,0],[0.824,1.682]],"o":[[0.153,1.282],[0,0],[-1.411,0],[0.447,-3.892],[-0.811,1.682],[0,0],[3.789,0.038],[2.704,3.046]],"v":[[56.98,60.476],[54.581,62.875],[-59.024,62.875],[-61.423,60.476],[-56.472,49.94],[-55.778,57.524],[51.336,57.524],[52.029,49.94]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":108,"s":[{"i":[[-1.275,-3.705],[2.395,-0.658],[0,0],[-0.101,1.287],[-2.582,3.14],[-3.2,0.09],[-33.402,5.639],[1.16,1.47]],"o":[[0.42,1.221],[-31.924,8.766],[-1.41,0.051],[0.307,-3.906],[-0.751,1.71],[0,0],[2.391,-0.404],[3.286,2.406]],"v":[[57.98,47.797],[56.141,50.648],[-58.912,64.95],[-61.396,62.638],[-56.825,51.931],[-55.86,59.486],[51.997,46.973],[50.918,38.543]],"c":true}]},{"t":159,"s":[{"i":[[-0.447,-3.892],[1.411,0],[0,0],[-0.152,1.282],[-2.693,3.046],[-3.201,-0.024],[0,0],[0.824,1.682]],"o":[[0.153,1.282],[0,0],[-1.411,0],[0.447,-3.892],[-0.811,1.682],[0,0],[3.789,0.038],[2.704,3.046]],"v":[[56.98,60.476],[54.581,62.875],[-59.024,62.875],[-61.423,60.476],[-56.472,49.94],[-55.778,57.524],[51.336,57.524],[52.029,49.94]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843137255,0.450980392157,0,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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":68,"s":[{"i":[[12.697,0],[0,0],[1.308,-11.321],[-1.413,0],[0,0],[0.149,1.288]],"o":[[0,0],[-12.697,0],[-0.149,1.288],[0,0],[1.413,0],[-1.308,-11.321]],"v":[[30.175,40.332],[-34.618,40.332],[-61.425,60.474],[-59.018,62.876],[54.575,62.876],[56.982,60.474]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":108,"s":[{"i":[[13.063,-2.578],[40.493,-4.215],[0.902,-11.361],[-1.412,0.051],[0,0],[0.417,1.228]],"o":[[-13.132,2.591],[-17.571,1.829],[-0.103,1.293],[0,0],[1.382,-0.298],[-3.667,-10.79]],"v":[[27.765,33.379],[-35.713,41.311],[-61.398,62.637],[-58.907,64.951],[56.136,50.651],[57.982,47.795]],"c":true}]},{"t":159,"s":[{"i":[[12.697,0],[0,0],[1.308,-11.321],[-1.413,0],[0,0],[0.149,1.288]],"o":[[0,0],[-12.697,0],[-0.149,1.288],[0,0],[1.413,0],[-1.308,-11.321]],"v":[[30.175,40.332],[-34.618,40.332],[-61.425,60.474],[-59.018,62.876],[54.575,62.876],[56.982,60.474]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764765721,0,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":"Преобразовать"}],"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.3,"y":0},"t":68,"s":[{"i":[[0,-7.126],[1.212,-1.387],[0,0],[0,1.576]],"o":[[0,1.576],[0,0],[-1.211,-1.387],[0,-7.126]],"v":[[27.723,62.875],[25.865,67.343],[-30.308,67.343],[-32.166,62.875]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[-0.207,-5.217],[4.425,-2.215],[0,0],[0,1.158]],"o":[[0.046,1.154],[0,0],[-4.91,-2.14],[0,-5.235]],"v":[[28.383,58.668],[23.333,64.369],[-26.516,66.654],[-32.166,60.984]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[-0.331,-4.069],[4.453,-0.586],[0,0],[0,0.906]],"o":[[0.073,0.9],[-16.531,2.175],[-8.492,-1.044],[0,-4.098]],"v":[[28.78,56.138],[22.606,59.328],[-24.629,62.204],[-32.166,59.847]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":108,"s":[{"i":[[-0.577,-2.671],[1.072,-0.776],[0,0],[0.022,0.604]],"o":[[0.128,0.591],[0,0],[-1.229,-0.488],[-0.098,-2.731]],"v":[[28.961,52.021],[27.507,54.088],[-30.311,61.244],[-32.229,59.598]],"c":true}]},{"t":159,"s":[{"i":[[0,-7.126],[1.212,-1.387],[0,0],[0,1.576]],"o":[[0,1.576],[0,0],[-1.211,-1.387],[0,-7.126]],"v":[[27.723,62.875],[25.865,67.343],[-30.308,67.343],[-32.166,62.875]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317647058824,0.074509803922,0.070588235294,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":"Преобразовать"}],"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.3,"y":0},"t":68,"s":[{"i":[[13.465,0],[0,0],[0,-14.742],[-1.499,0],[0,0],[0,1.418]],"o":[[0,0],[-13.465,0],[0,1.418],[0,0],[1.499,0],[0,-13.113]],"v":[[32.134,40.332],[-36.577,40.332],[-66.006,64.717],[-63.453,67.345],[59.01,67.345],[61.563,64.717]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[13.375,-1.019],[0,0],[0,-14.742],[-1.469,-0.007],[0,0],[0.107,1.409]],"o":[[0,0],[-13.465,0],[0,1.418],[36.067,-0.373],[1.489,-0.113],[-0.992,-13.025]],"v":[[31.391,37.805],[-36.577,40.332],[-66.006,64.717],[-63.453,67.345],[59.916,62.279],[62.467,59.368]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":108,"s":[{"i":[[13.162,-2.841],[0,0],[-0.528,-14.733],[-1.429,0.034],[0,0],[0.299,1.386]],"o":[[0,0],[-13.457,0.482],[0.051,1.417],[83.185,-2.005],[1.465,-0.316],[-2.767,-12.818]],"v":[[29.444,33.35],[-37.287,41.618],[-65.824,67.041],[-63.179,69.576],[60.887,53.352],[63.319,49.977]],"c":true}]},{"t":159,"s":[{"i":[[13.465,0],[0,0],[0,-14.742],[-1.499,0],[0,0],[0,1.418]],"o":[[0,0],[-13.465,0],[0,1.418],[0,0],[1.499,0],[0,-13.113]],"v":[[32.134,40.332],[-36.577,40.332],[-66.006,64.717],[-63.453,67.345],[59.01,67.345],[61.563,64.717]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862804936,0.674509803922,0,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[-2.5,40.25]},"a":{"a":0,"k":[-2.5,40.25]},"s":{"a":0,"k":[100,99]},"r":{"a":0,"k":0},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Преобразовать"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":68,"s":[{"i":[[0,-7.126],[1.212,-1.387],[12.9,0],[4.21,4.927],[0,1.576]],"o":[[0,1.576],[-4.21,4.927],[-12.888,0],[-1.211,-1.387],[0,-7.126]],"v":[[27.723,62.875],[25.865,67.343],[-2.228,75.775],[-30.308,67.343],[-32.166,62.875]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":108,"s":[{"i":[[-0.679,-3.147],[1.044,-0.878],[12.837,-1.279],[4.305,2.037],[0.025,0.711]],"o":[[0.15,0.696],[-3.645,3.064],[-12.824,1.278],[-1.233,-0.583],[-0.115,-3.218]],"v":[[28.972,52.073],[27.582,54.438],[-2.73,59.55],[-30.298,61.602],[-32.227,59.65]],"c":true}]},{"t":159,"s":[{"i":[[0,-7.126],[1.212,-1.387],[12.9,0],[4.21,4.927],[0,1.576]],"o":[[0,1.576],[-4.21,4.927],[-12.888,0],[-1.211,-1.387],[0,-7.126]],"v":[[27.723,62.875],[25.865,67.343],[-2.228,75.775],[-30.308,67.343],[-32.166,62.875]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.494117647059,0.137254901961,0.070588235294,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":"Преобразовать"}],"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.3,"y":0},"t":68,"s":[{"i":[[0,-8.61],[18.979,0],[0,8.61]],"o":[[0,8.61],[-18.979,0],[0,-8.61]],"v":[[32.142,63.568],[-2.221,81.491],[-36.585,63.568]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":82,"s":[{"i":[[-0.294,-6.553],[18.962,-0.519],[0,6.579]],"o":[[0.294,6.553],[-18.962,0.518],[0,-6.579]],"v":[[32.8,58.884],[-2.468,73.002],[-36.585,61.536]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.167,"y":0.167},"t":89,"s":[{"i":[[-0.472,-5.315],[18.952,-0.83],[0,5.357]],"o":[[0.472,5.315],[-18.952,0.83],[0,-5.357]],"v":[[33.196,56.066],[-2.517,64.904],[-36.585,60.314]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":108,"s":[{"i":[[-0.821,-3.802],[18.885,-1.882],[0.139,3.888]],"o":[[0.821,3.802],[-18.885,1.882],[-0.139,-3.888]],"v":[[33.358,51.446],[-2.468,62.12],[-36.632,60.122]],"c":true}]},{"t":159,"s":[{"i":[[0,-8.61],[18.979,0],[0,8.61]],"o":[[0,8.61],[-18.979,0],[0,-8.61]],"v":[[32.142,63.568],[-2.221,81.491],[-36.585,63.568]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.882352941176,0.505882352941,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":"Преобразовать"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":68,"s":[{"i":[[0,-4.586],[14.388,0],[0,4.586],[-14.388,0]],"o":[[0,4.586],[-14.388,0],[0,-4.586],[14.388,0]],"v":[[24.23,80.495],[-1.822,92.797],[-27.874,80.495],[-1.822,81.571]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":108,"s":[{"i":[[-0.472,-4.562],[14.312,-1.48],[0.472,4.562],[-14.312,1.48]],"o":[[0.472,4.562],[-14.312,1.48],[-0.472,-4.562],[14.312,-1.48]],"v":[[24.367,73.601],[-0.28,88.518],[-27.46,78.961],[-1.435,77.352]],"c":true}]},{"t":159,"s":[{"i":[[0,-4.586],[14.388,0],[0,4.586],[-14.388,0]],"o":[[0,4.586],[-14.388,0],[0,-4.586],[14.388,0]],"v":[[24.23,80.495],[-1.822,92.797],[-27.874,80.495],[-1.822,81.571]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862804936,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 8","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Hair","parent":13,"sr":1,"ks":{"p":{"a":0,"k":[-2.314,-106.08,0]},"a":{"a":0,"k":[-2.314,-106.08,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[0,0],[-16.489,-61.041],[20.311,-12.185],[3.092,4.374],[0.458,16.183],[24.193,21.701],[7.973,-9.365],[0.273,0],[-5.644,27.012],[-9.827,5.508],[-44.787,-0.002]],"o":[[62.115,1.377],[7.257,33.866],[0.023,-0.124],[-12.742,-17.626],[-63.143,15.539],[0.622,27.28],[-4.318,5.802],[-21.319,-25.134],[5.376,-25.725],[20.137,-28.848],[0,0]],"v":[[0.288,-204.044],[125.489,-123.959],[108.106,-9.565],[105.333,-64.211],[89.996,-109.016],[-85.822,-127.78],[-108.563,-64.211],[-113.181,-8.116],[-130.658,-120.333],[-103.757,-161.008],[0.288,-204.044]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0,0],[-17.041,-70.934],[20.311,-13.3],[3.195,5.083],[3.459,11.95],[25.003,25.218],[13.867,-7.995],[0.273,0],[-6.286,31.297],[-9.065,10.003],[-46.288,-0.002]],"o":[[64.196,1.6],[7.5,39.355],[0.023,-0.135],[-7.254,-5.825],[-73.578,33.819],[-7.272,14.74],[-4.463,6.742],[-21.319,-27.433],[4.541,-22.609],[18.548,-23.83],[0,0]],"v":[[0.365,-217.998],[129.76,-124.934],[108.106,-0.737],[105.678,-48.047],[85.856,-78.043],[-81.418,-84.651],[-109.548,-53.909],[-113.181,0.844],[-134.968,-120.721],[-109.754,-172.244],[0.365,-217.998]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,0],[-16.489,-61.041],[20.311,-12.185],[3.092,4.374],[0.458,16.183],[24.193,21.701],[7.973,-9.365],[0.273,0],[-5.644,27.012],[-9.827,5.508],[-44.787,-0.002]],"o":[[62.115,1.377],[7.257,33.866],[0.023,-0.124],[-12.742,-17.626],[-63.143,15.539],[0.622,27.28],[-4.318,5.802],[-21.319,-25.134],[5.376,-25.725],[20.137,-28.848],[0,0]],"v":[[0.288,-204.044],[125.489,-123.959],[108.106,-9.565],[105.333,-64.211],[89.996,-109.016],[-85.822,-127.78],[-108.563,-64.211],[-113.181,-8.116],[-130.658,-120.333],[-103.757,-161.008],[0.288,-204.044]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[0,0],[-17.041,-70.934],[20.311,-13.3],[3.195,5.083],[3.459,11.95],[25.485,23.802],[13.867,-7.995],[0.273,0],[-6.286,31.297],[-9.065,10.003],[-46.288,-0.002]],"o":[[64.196,1.6],[7.5,39.355],[0.023,-0.135],[-7.254,-5.825],[-63.475,28.562],[-7.272,14.74],[-4.463,6.742],[-21.319,-27.433],[4.541,-22.609],[18.548,-23.83],[0,0]],"v":[[0.365,-217.998],[129.76,-124.934],[108.106,-0.737],[105.678,-48.047],[86.46,-84.033],[-80.813,-90.641],[-109.548,-53.909],[-113.181,0.844],[-134.968,-120.721],[-109.754,-172.244],[0.365,-217.998]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[-16.489,-61.041],[20.311,-12.185],[3.092,4.374],[0.458,16.183],[24.193,21.701],[7.973,-9.365],[0.273,0],[-5.644,27.012],[-9.827,5.508],[-44.787,-0.002]],"o":[[62.115,1.377],[7.257,33.866],[0.023,-0.124],[-12.742,-17.626],[-63.143,15.539],[0.622,27.28],[-4.318,5.802],[-21.319,-25.134],[5.376,-25.725],[20.137,-28.848],[0,0]],"v":[[0.288,-204.044],[125.489,-123.959],[108.106,-9.565],[105.333,-64.211],[89.996,-109.016],[-85.822,-127.78],[-108.563,-64.211],[-113.181,-8.116],[-130.658,-120.333],[-103.757,-161.008],[0.288,-204.044]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.725490196078,0.380392156863,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[-0.757,5.296],[6.679,-8.882],[-0.329,-15.921],[-7.717,13.802]],"o":[[1.858,-12.996],[-8.087,10.755],[0.128,6.193],[7.577,-13.552]],"v":[[-102.515,-121.802],[-111.767,-139.77],[-125.065,-95.069],[-115.663,-115.616]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[-0.783,6.155],[6.903,-10.322],[-0.34,-18.501],[-7.976,16.039]],"o":[[1.921,-15.102],[-8.358,12.498],[0.132,7.197],[7.831,-15.748]],"v":[[-102.509,-107.26],[-119.311,-134.521],[-129.689,-75.658],[-116.095,-97.676]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[-0.757,5.296],[6.679,-8.882],[-0.329,-15.921],[-7.717,13.802]],"o":[[1.858,-12.996],[-8.087,10.755],[0.128,6.193],[7.577,-13.552]],"v":[[-102.515,-121.802],[-111.767,-139.77],[-125.065,-95.069],[-115.663,-115.616]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[-0.783,6.155],[6.903,-10.322],[-0.34,-18.501],[-7.976,16.039]],"o":[[1.921,-15.102],[-8.358,12.498],[0.132,7.197],[7.831,-15.748]],"v":[[-102.509,-107.26],[-119.311,-134.521],[-129.689,-75.658],[-116.095,-97.676]],"c":true}]},{"t":179,"s":[{"i":[[-0.757,5.296],[6.679,-8.882],[-0.329,-15.921],[-7.717,13.802]],"o":[[1.858,-12.996],[-8.087,10.755],[0.128,6.193],[7.577,-13.552]],"v":[[-102.515,-121.802],[-111.767,-139.77],[-125.065,-95.069],[-115.663,-115.616]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.882352941176,0.505882352941,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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[78.603,0.258],[8.461,7.167],[-6.091,6.524],[-57.635,0.669],[-18.846,-14.014],[-0.011,-0.011]],"o":[[-47.042,-0.154],[-6.823,-5.78],[4.819,-5.162],[32.821,-0.383],[0.01,0.011],[26.206,21.602]],"v":[[1.025,-132.594],[-80.466,-147.801],[-80.226,-168.389],[3.223,-193.138],[80.786,-171.317],[80.807,-171.295]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[81.237,-0.11],[8.745,8.329],[-6.295,7.582],[-59.566,0.781],[-19.477,-16.285],[-0.011,-0.012]],"o":[[-58.167,0.079],[-7.052,-6.717],[4.98,-5.998],[33.92,-0.445],[0.011,0.012],[27.084,25.103]],"v":[[0.101,-126.983],[-83.095,-152.641],[-82.846,-176.565],[3.398,-205.325],[83.56,-179.967],[83.581,-179.942]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[78.603,0.258],[8.461,7.167],[-6.091,6.524],[-57.635,0.669],[-18.846,-14.014],[-0.011,-0.011]],"o":[[-47.042,-0.154],[-6.823,-5.78],[4.819,-5.162],[32.821,-0.383],[0.01,0.011],[26.206,21.602]],"v":[[1.025,-132.594],[-80.466,-147.801],[-80.226,-168.389],[3.223,-193.138],[80.786,-171.317],[80.807,-171.295]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[81.237,-0.11],[8.745,8.329],[-6.295,7.582],[-59.566,0.781],[-19.477,-16.285],[-0.011,-0.012]],"o":[[-58.167,0.079],[-7.052,-6.717],[4.98,-5.998],[33.92,-0.445],[0.011,0.012],[27.084,25.103]],"v":[[0.101,-126.983],[-83.095,-152.641],[-82.846,-176.565],[3.398,-205.325],[83.56,-179.967],[83.581,-179.942]],"c":true}]},{"t":179,"s":[{"i":[[78.603,0.258],[8.461,7.167],[-6.091,6.524],[-57.635,0.669],[-18.846,-14.014],[-0.011,-0.011]],"o":[[-47.042,-0.154],[-6.823,-5.78],[4.819,-5.162],[32.821,-0.383],[0.01,0.011],[26.206,21.602]],"v":[[1.025,-132.594],[-80.466,-147.801],[-80.226,-168.389],[3.223,-193.138],[80.786,-171.317],[80.807,-171.295]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.882352941176,0.505882352941,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":"Преобразовать"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[0,0],[0,1.623],[0,0],[-2,26.346],[7.526,5.15],[0,-2.54],[0,0],[0,0],[0,0],[-1.808,13.823],[15.274,-22.932],[-14.276,1.93],[-3.418,-5.332],[-57.151,-3.328],[-0.952,0.294],[0,0],[0,0],[0,0]],"o":[[-2.422,10.278],[0,0],[0,-2.046],[-84.326,23.177],[-0.177,34.303],[0,0],[-11.893,-7.25],[-0.859,0.319],[21.495,-26.883],[1.874,-14.326],[2.5,-9.625],[-6.125,8.25],[14.783,23.06],[61.237,3.566],[-6.656,6.044],[1.973,28.814],[-2.171,0.538],[-0.892,44.569]],"v":[[120.009,-22.983],[107.479,-9.791],[108.156,-58.213],[90,-109.013],[-85.823,-127.78],[-113.187,-57.766],[-113.187,-15.25],[-120.573,-59.214],[-123.37,-59.056],[-96.624,-129.674],[-120.25,-137.375],[-89.875,-172.375],[-93.136,-152.052],[10.578,-112.94],[114.911,-120.22],[99.278,-108.848],[118.646,-58.29],[114.661,-58.215]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0,0],[0,1.771],[0,0],[5.73,24.282],[7.778,5.985],[0,-2.952],[0,0],[0,0],[0,0],[2.466,15.359],[15.786,-26.649],[-13.095,5.102],[-1.439,-8.409],[-59.182,0.532],[-0.984,0.342],[0,0],[0,0],[0,0]],"o":[[-2.422,11.218],[0,0],[0,-2.378],[-104.756,50.806],[-4.514,20.737],[0,0],[-11.893,-7.913],[-0.888,0.37],[42.477,-31.623],[-2.656,-16.543],[2.584,-11.185],[-6.33,9.587],[9.869,57.682],[59.62,-0.536],[-13.686,13.737],[3.005,17.874],[-1.103,1.647],[-2.775,25.522]],"v":[[120.009,-15.383],[107.479,-0.985],[106.433,-48.447],[87.609,-78.79],[-82.92,-85.4],[-110.327,-52.28],[-113.187,-6.943],[-124.546,-49.697],[-127.181,-52.041],[-95.396,-116.924],[-128.861,-138.923],[-92.564,-184.391],[-96.08,-149.096],[2.24,-70.204],[107.976,-103.835],[99.566,-77.981],[122.426,-51.816],[119.737,-43.746]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,0],[0,1.623],[0,0],[-2,26.346],[7.526,5.15],[0,-2.54],[0,0],[0,0],[0,0],[-1.808,13.823],[15.274,-22.932],[-14.276,1.93],[-3.418,-5.332],[-57.151,-3.328],[-0.952,0.294],[0,0],[0,0],[0,0]],"o":[[-2.422,10.278],[0,0],[0,-2.046],[-84.326,23.177],[-0.177,34.303],[0,0],[-11.893,-7.25],[-0.859,0.319],[21.495,-26.883],[1.874,-14.326],[2.5,-9.625],[-6.125,8.25],[14.783,23.06],[61.237,3.566],[-6.656,6.044],[1.973,28.814],[-2.171,0.538],[-0.892,44.569]],"v":[[120.009,-22.983],[107.479,-9.791],[108.156,-58.213],[90,-109.013],[-85.823,-127.78],[-113.187,-57.766],[-113.187,-15.25],[-120.573,-59.214],[-123.37,-59.056],[-96.624,-129.674],[-120.25,-137.375],[-89.875,-172.375],[-93.136,-152.052],[10.578,-112.94],[114.911,-120.22],[99.278,-108.848],[118.646,-58.29],[114.661,-58.215]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[0,0],[0,1.771],[0,0],[5.73,24.282],[7.778,5.985],[0,-2.952],[0,0],[0,0],[0,0],[2.466,15.359],[15.786,-26.649],[-13.095,5.102],[-1.439,-8.409],[-59.182,0.532],[-0.984,0.342],[0,0],[0,0],[0,0]],"o":[[-2.422,11.218],[0,0],[0,-2.378],[-100.691,41.193],[-4.514,20.737],[0,0],[-11.893,-7.913],[-0.888,0.37],[42.477,-31.623],[-2.656,-16.543],[2.584,-11.185],[-6.33,9.587],[9.869,57.682],[59.62,-0.536],[-13.686,13.737],[3.005,17.874],[-1.103,1.647],[-2.775,25.522]],"v":[[120.009,-15.383],[107.479,-0.985],[106.433,-48.447],[88.214,-84.78],[-82.315,-91.39],[-110.327,-52.28],[-113.187,-6.943],[-124.546,-49.697],[-127.181,-52.041],[-95.396,-116.924],[-128.861,-138.923],[-92.564,-184.391],[-96.08,-149.096],[3.103,-76.69],[108.581,-109.825],[100.171,-83.971],[122.426,-51.816],[119.737,-43.746]],"c":true}]},{"t":179,"s":[{"i":[[0,0],[0,1.623],[0,0],[-2,26.346],[7.526,5.15],[0,-2.54],[0,0],[0,0],[0,0],[-1.808,13.823],[15.274,-22.932],[-14.276,1.93],[-3.418,-5.332],[-57.151,-3.328],[-0.952,0.294],[0,0],[0,0],[0,0]],"o":[[-2.422,10.278],[0,0],[0,-2.046],[-84.326,23.177],[-0.177,34.303],[0,0],[-11.893,-7.25],[-0.859,0.319],[21.495,-26.883],[1.874,-14.326],[2.5,-9.625],[-6.125,8.25],[14.783,23.06],[61.237,3.566],[-6.656,6.044],[1.973,28.814],[-2.171,0.538],[-0.892,44.569]],"v":[[120.009,-22.983],[107.479,-9.791],[108.156,-58.213],[90,-109.013],[-85.823,-127.78],[-113.187,-57.766],[-113.187,-15.25],[-120.573,-59.214],[-123.37,-59.056],[-96.624,-129.674],[-120.25,-137.375],[-89.875,-172.375],[-93.136,-152.052],[10.578,-112.94],[114.911,-120.22],[99.278,-108.848],[118.646,-58.29],[114.661,-58.215]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.917647058824,0.61568627451,0.003921568627,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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[0,0],[-16.489,-61.041],[20.311,-12.185],[3.092,4.374],[0.458,16.183],[24.193,21.701],[7.973,-9.365],[0.273,0],[-5.644,27.012],[-9.827,5.508],[-44.787,-0.002]],"o":[[62.115,1.377],[7.257,33.866],[0.023,-0.124],[-12.742,-17.626],[-63.143,15.539],[0.622,27.28],[-4.318,5.802],[-21.319,-25.134],[5.376,-25.725],[20.137,-28.848],[0,0]],"v":[[0.288,-204.044],[125.489,-123.959],[108.106,-9.565],[105.333,-64.211],[89.996,-109.016],[-85.822,-127.78],[-108.563,-64.211],[-113.181,-8.116],[-130.658,-120.333],[-103.757,-161.008],[0.288,-204.044]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0,0],[-17.041,-70.934],[20.311,-13.3],[3.195,5.083],[2.364,13.244],[25.003,25.218],[4.914,-3.608],[0.273,0],[-5.834,31.39],[-10.156,6.401],[-46.288,-0.002]],"o":[[64.196,1.6],[7.5,39.355],[0.023,-0.135],[-11.388,-5.687],[-70.478,33.283],[-3.137,20.074],[-4.463,6.742],[-21.319,-27.433],[5.556,-29.894],[20.812,-33.523],[0,0]],"v":[[0.365,-217.998],[129.76,-124.934],[108.106,-0.737],[106.833,-47.899],[86.605,-79.293],[-82.918,-85.15],[-108.902,-54.309],[-113.181,0.844],[-134.968,-120.721],[-107.166,-167.988],[0.365,-217.998]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0,0],[-16.489,-61.041],[20.311,-12.185],[3.092,4.374],[0.458,16.183],[24.193,21.701],[7.973,-9.365],[0.273,0],[-5.644,27.012],[-9.827,5.508],[-44.787,-0.002]],"o":[[62.115,1.377],[7.257,33.866],[0.023,-0.124],[-12.742,-17.626],[-63.143,15.539],[0.622,27.28],[-4.318,5.802],[-21.319,-25.134],[5.376,-25.725],[20.137,-28.848],[0,0]],"v":[[0.288,-204.044],[125.489,-123.959],[108.106,-9.565],[105.333,-64.211],[89.996,-109.016],[-85.822,-127.78],[-108.563,-64.211],[-113.181,-8.116],[-130.658,-120.333],[-103.757,-161.008],[0.288,-204.044]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[0,0],[-17.041,-70.934],[20.311,-13.3],[3.195,5.083],[2.364,13.244],[25.003,25.218],[4.914,-3.608],[0.273,0],[-5.834,31.39],[-10.156,6.401],[-46.288,-0.002]],"o":[[64.196,1.6],[7.5,39.355],[0.023,-0.135],[-11.388,-5.687],[-70.478,33.283],[-3.137,20.074],[-4.463,6.742],[-21.319,-27.433],[5.556,-29.894],[20.812,-33.523],[0,0]],"v":[[0.365,-217.998],[129.76,-124.934],[108.106,-0.737],[106.833,-47.899],[87.209,-85.284],[-82.314,-91.14],[-108.902,-54.309],[-113.181,0.844],[-134.968,-120.721],[-107.166,-167.988],[0.365,-217.998]],"c":false}]},{"t":179,"s":[{"i":[[0,0],[-16.489,-61.041],[20.311,-12.185],[3.092,4.374],[0.458,16.183],[24.193,21.701],[7.973,-9.365],[0.273,0],[-5.644,27.012],[-9.827,5.508],[-44.787,-0.002]],"o":[[62.115,1.377],[7.257,33.866],[0.023,-0.124],[-12.742,-17.626],[-63.143,15.539],[0.622,27.28],[-4.318,5.802],[-21.319,-25.134],[5.376,-25.725],[20.137,-28.848],[0,0]],"v":[[0.288,-204.044],[125.489,-123.959],[108.106,-9.565],[105.333,-64.211],[89.996,-109.016],[-85.822,-127.78],[-108.563,-64.211],[-113.181,-8.116],[-130.658,-120.333],[-103.757,-161.008],[0.288,-204.044]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764705882,0,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":"Преобразовать"}],"nm":"Group 5","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Brows","parent":12,"sr":1,"ks":{"p":{"a":0,"k":[-1.559,-64.211,0]},"a":{"a":0,"k":[-1.559,-64.211,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[0,0],[16.026,-7.744]],"o":[[0,0],[0,0]],"v":[[-41.218,-65.504],[-74.933,-61.842]],"c":false}]},{"i":{"x":0.7,"y":1},"o":{"x":0.5,"y":0},"t":9,"s":[{"i":[[0,0],[17.223,-4.49]],"o":[[0,0],[0,0]],"v":[[-37.561,-32.369],[-71.347,-35.314]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":20,"s":[{"i":[[0,0],[17.055,-5.094]],"o":[[0,0],[0,0]],"v":[[-38.967,-62.573],[-72.836,-64.325]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[0,0],[17.361,-3.925]],"o":[[0,0],[0,0]],"v":[[-37.764,-48.21],[-71.435,-52.256]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[0,0],[17.223,-4.49]],"o":[[0,0],[0,0]],"v":[[-36.227,-31.718],[-70.012,-34.663]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.28,"y":0},"t":82,"s":[{"i":[[0,0],[17.011,-5.237]],"o":[[0,0],[0,0]],"v":[[-36.443,-62.962],[-70.325,-64.431]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[0,0],[17.146,-4.776]],"o":[[0,0],[0,0]],"v":[[-36.523,-57.515],[-70.353,-59.896]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[0,0],[17.223,-4.49]],"o":[[0,0],[0,0]],"v":[[-37.274,-32.187],[-71.059,-35.132]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[0,0],[17.055,-5.094]],"o":[[0,0],[0,0]],"v":[[-39.112,-61.069],[-72.98,-62.822]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[0,0],[17.055,-5.094]],"o":[[0,0],[0,0]],"v":[[-39.05,-54.574],[-72.918,-56.326]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[0,0],[17.223,-4.49]],"o":[[0,0],[0,0]],"v":[[-36.235,-30.718],[-70.02,-33.663]],"c":false}]},{"t":177,"s":[{"i":[[0,0],[16.026,-7.744]],"o":[[0,0],[0,0]],"v":[[-41.218,-65.504],[-74.933,-61.842]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.521568627451,0.247058823529,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[0,0],[-16.026,-7.744]],"o":[[0,0],[0,0]],"v":[[38.1,-65.504],[71.815,-61.842]],"c":false}]},{"i":{"x":0.7,"y":1},"o":{"x":0.5,"y":0},"t":9,"s":[{"i":[[0,0],[-17.311,-4.14]],"o":[[0,0],[0,0]],"v":[[32.552,-32.036],[66.271,-35.665]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":20,"s":[{"i":[[0,0],[-17.316,-4.117]],"o":[[0,0],[0,0]],"v":[[36.038,-61.634],[69.753,-65.307]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[0,0],[-17.505,-3.222]],"o":[[0,0],[0,0]],"v":[[32.708,-47.543],[66.188,-52.943]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[0,0],[-17.311,-4.14]],"o":[[0,0],[0,0]],"v":[[33.886,-31.384],[67.605,-35.013]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.28,"y":0},"t":82,"s":[{"i":[[0,0],[-16.026,-7.744]],"o":[[0,0],[0,0]],"v":[[38.162,-69.253],[71.877,-65.591]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[0,0],[-14.739,-11.788]],"o":[[0,0],[0,0]],"v":[[38.639,-77.493],[72.354,-73.831]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[0,0],[-17.311,-4.14]],"o":[[0,0],[0,0]],"v":[[32.839,-31.854],[66.558,-35.483]],"c":false}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[0,0],[-17.316,-4.117]],"o":[[0,0],[0,0]],"v":[[35.894,-60.131],[69.608,-63.804]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[0,0],[-17.316,-4.117]],"o":[[0,0],[0,0]],"v":[[35.956,-53.635],[69.67,-57.308]],"c":false}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[0,0],[-17.311,-4.14]],"o":[[0,0],[0,0]],"v":[[33.878,-30.384],[67.597,-34.013]],"c":false}]},{"t":177,"s":[{"i":[[0,0],[-16.026,-7.744]],"o":[[0,0],[0,0]],"v":[[38.1,-65.504],[71.815,-61.842]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.521568627451,0.247058823529,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":12},"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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Eyes","parent":3,"sr":1,"ks":{"p":{"a":0,"k":[52.029,41.454,0]},"a":{"a":0,"k":[-1.305,-22.546,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[-0.71,-17.313],[20.556,-0.289],[-3.666,-18.54],[-17.648,-0.211]],"o":[[2.44,-19.094],[-18.483,0.26],[-0.4,-17.214],[18.956,0.227]],"v":[[-27.41,-9.094],[-57.868,-47.467],[-87.28,-12.285],[-57.319,-43.965]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":9,"s":[{"i":[[-3.346,3.577],[17.257,0.089],[3.162,1.414],[-17.648,-0.211]],"o":[[-3.922,1.934],[-14.77,-0.076],[3.567,4.553],[18.956,0.227]],"v":[[-28.504,-10.127],[-58.311,-3.585],[-87.28,-12.285],[-58.394,0.148]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":19,"s":[{"i":[[-1.455,-15.799],[20.556,-0.289],[-1.699,-15.92],[-16.863,0.431]],"o":[[1.925,-17.289],[-18.483,0.26],[2.051,-15.908],[18.951,-0.484]],"v":[[-27.41,-9.094],[-57.132,-42.714],[-87.28,-12.285],[-57.335,-38.715]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[-3.349,-15.6],[17.348,-0.184],[-1.699,-15.92],[-14.636,0.291]],"o":[[0.363,-18.157],[-18.401,0.195],[4.469,-15.497],[16.403,-0.327]],"v":[[-27.41,-9.094],[-56.941,-38.342],[-87.28,-12.285],[-56.89,-34.469]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[-3.346,3.577],[17.257,0.089],[3.162,1.414],[-17.648,-0.211]],"o":[[-3.922,1.934],[-14.77,-0.076],[3.567,4.553],[18.956,0.227]],"v":[[-28.504,-10.127],[-58.311,-3.585],[-87.28,-12.285],[-58.394,0.148]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":82,"s":[{"i":[[-0.71,-17.313],[20.556,-0.289],[-3.666,-18.54],[-17.648,-0.211]],"o":[[2.44,-19.094],[-18.483,0.26],[-0.4,-17.214],[18.956,0.227]],"v":[[-27.41,-9.094],[-57.868,-47.467],[-87.28,-12.285],[-57.319,-43.965]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[-0.848,-15.746],[20.556,-0.289],[-2.334,-17.284],[-17.648,-0.211]],"o":[[1.837,-18.064],[-18.483,0.26],[0.085,-15.475],[18.956,0.227]],"v":[[-27.567,-10.986],[-57.868,-47.467],[-86.887,-13.877],[-57.319,-43.965]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[-3.346,3.577],[17.257,0.089],[3.162,1.414],[-17.648,-0.211]],"o":[[-3.922,1.934],[-14.77,-0.076],[3.567,4.553],[18.956,0.227]],"v":[[-28.504,-10.127],[-58.311,-3.585],[-87.28,-12.285],[-58.394,0.148]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[-3.349,-15.6],[17.348,-0.184],[-1.699,-15.92],[-14.638,0.142]],"o":[[0.363,-18.157],[-18.401,0.195],[4.469,-15.497],[17.861,-0.174]],"v":[[-27.41,-9.094],[-56.941,-38.342],[-87.28,-12.285],[-57.136,-33.842]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[-0.71,-17.313],[20.556,-0.289],[-3.666,-18.54],[-17.648,-0.211]],"o":[[2.44,-19.094],[-18.483,0.26],[-0.4,-17.214],[18.956,0.227]],"v":[[-27.41,-9.094],[-58.049,-44.219],[-87.28,-12.285],[-57.996,-40.976]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[-3.346,3.577],[17.257,0.089],[3.162,1.414],[-17.648,-0.211]],"o":[[-3.922,1.934],[-14.77,-0.076],[3.567,4.553],[18.956,0.227]],"v":[[-28.504,-10.127],[-58.311,-3.585],[-87.28,-12.285],[-58.394,0.148]],"c":true}]},{"t":177,"s":[{"i":[[-0.71,-17.313],[20.556,-0.289],[-3.666,-18.54],[-17.648,-0.211]],"o":[[2.44,-19.094],[-18.483,0.26],[-0.4,-17.214],[18.956,0.227]],"v":[[-27.41,-9.094],[-57.868,-47.467],[-87.28,-12.285],[-57.319,-43.965]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.521568627451,0.247058823529,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.521568627451,0.247058823529,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-57.567,0.5],[-26.625,-9.094],[-57.567,10.5]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":9,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-58.271,-1.022],[-26.625,-9.094],[-57.567,10.5]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":19,"s":[{"i":[[-3.541,8.549],[-18.477,1.095],[0,0],[23.567,0]],"o":[[0,0],[21.752,-1.29],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-57.933,-2.126],[-26.625,-9.094],[-55.807,7.505]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[-3.541,8.549],[-13.484,0.3],[0,0],[23.567,0]],"o":[[0,0],[17.264,-0.384],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-58.145,-7.874],[-26.625,-9.094],[-55.807,7.505]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-58.271,-1.022],[-26.625,-9.094],[-57.567,10.5]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":82,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-57.567,0.5],[-26.625,-9.094],[-57.567,10.5]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[-3.541,8.549],[-19.318,0.159],[0,0],[23.567,0]],"o":[[0,0],[19.813,-0.163],[3.618,4.471],[-22.558,0]],"v":[[-86.917,-13.234],[-58.307,-7.818],[-27.172,-11.055],[-57.567,10.5]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-58.271,-1.022],[-26.625,-9.094],[-57.567,10.5]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[-3.541,8.549],[-13.484,0.3],[0,0],[23.567,0]],"o":[[0,0],[17.264,-0.384],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-59,-5.075],[-26.625,-9.094],[-55.807,7.505]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-57.567,0.5],[-26.625,-9.094],[-57.567,10.5]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-58.271,-1.022],[-26.625,-9.094],[-57.567,10.5]],"c":true}]},{"t":177,"s":[{"i":[[-3.541,8.549],[-23.081,0.449],[0,0],[23.567,0]],"o":[[0,0],[27.57,-0.536],[3.618,4.471],[-22.558,0]],"v":[[-87.28,-12.285],[-57.567,0.5],[-26.625,-9.094],[-57.567,10.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.035,-45.745],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":9,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-59.855,-1.84],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":19,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.299,-41.246],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.342,-35.869],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-59.855,-1.84],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":82,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.035,-45.745],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.035,-45.745],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-59.855,-1.84],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.342,-35.869],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.968,-42.386],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-59.855,-1.84],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]},{"t":177,"s":[{"i":[[-9.72,-17.387],[-31.076,-0.75],[0,0],[39.438,-0.284]],"o":[[0,0],[31.076,0.75],[5.576,-5.087],[-35.535,0.256]],"v":[[-87.28,-12.285],[-56.035,-45.745],[-27.41,-9.094],[-56.035,-55.591]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764765721,0,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":"Преобразовать"}],"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":"Преобразовать"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[4.231,-1.305]],"o":[[-1.405,4.186],[0,0]],"v":[[-42.05,-18.571],[-51.046,-9.791]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.913725495338,0.568627476692,0.011764706112,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":3.5},"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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-2.505],[2.505,0],[0,2.505],[-2.505,0]],"o":[[0,2.505],[-2.505,0],[0,-2.505],[2.505,0]],"v":[[-57.093,-34.208],[-61.629,-29.672],[-66.164,-34.208],[-61.629,-38.744]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019610882,0.949019610882,0.949019610882,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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-6.596],[6.596,0],[0,6.596],[-6.596,0]],"o":[[0,6.596],[-6.596,0],[0,-6.596],[6.596,0]],"v":[[-44.091,-23.909],[-56.035,-11.965],[-67.979,-23.909],[-56.035,-35.853]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090196080506,0.074509806931,0.039215687662,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":"Преобразовать"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-10.438],[10.437,0],[0,10.437],[-10.438,0]],"o":[[0,10.437],[-10.438,0],[0,-10.438],[10.437,0]],"v":[[-37.136,-23.909],[-56.035,-5.011],[-74.933,-23.909],[-56.035,-42.808]],"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.235,0.02,0,0.375,0.431,0.175,0,1,0.627,0.329,0]}},"s":{"a":0,"k":[-60.25,-31.75]},"e":{"a":0,"k":[-49.3,-12.595]},"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":"Преобразовать"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[-56.035,-23.909],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":17,"s":[-56.255,-13.912],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":24,"s":[-60.256,-16.095],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":31,"s":[-60.256,-16.071],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":37,"s":[-52.113,-16.893],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":44,"s":[-53.041,-15.826],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":51,"s":[-57.228,-15.139],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":60,"s":[-58.256,-16.11],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":74,"s":[-56.045,-22.909],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":84,"s":[-56.057,-22.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":0.7},"o":{"x":0.167,"y":0.167},"t":87,"s":[-56.066,-21.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"t":98,"s":[-56.066,-21.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":101,"s":[-56.068,-22.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":108,"s":[-56.067,-22.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":120,"s":[-56.255,-13.912],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":127,"s":[-60.256,-16.095],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":139,"s":[-60.256,-16.071],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":145,"s":[-54.095,-16.853],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[-52.113,-16.893],"to":[0,0],"ti":[0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[-54.176,-7.873],"to":[0,0],"ti":[0,0]},{"t":179,"s":[-56.035,-23.909]}]},"a":{"a":0,"k":[-56.035,-23.909]},"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":"Преобразовать"}],"nm":"Eyeball L","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[12.827,11.751],[10.398,-12.935],[0,0],[-17.35,-0.99]],"o":[[0,0],[-11.02,-10.096],[-8.467,10.533],[0,0],[22.074,1.26]],"v":[[-27.41,-9.094],[-38.665,-38.928],[-80.83,-35.098],[-87.28,-12.285],[-61.478,-2.206]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,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":"Преобразовать"}],"nm":"Group 6","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":"Преобразовать"}],"nm":"L","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[0.71,-17.313],[-20.556,-0.289],[3.666,-18.54],[17.648,-0.211]],"o":[[-2.44,-19.094],[18.482,0.26],[0.4,-17.214],[-18.956,0.227]],"v":[[24.291,-9.094],[54.749,-47.467],[84.162,-12.285],[54.2,-43.965]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":9,"s":[{"i":[[4.263,2.483],[-20.55,0.554],[-3.701,1.231],[17.648,-0.211]],"o":[[2.861,-0.811],[17.566,-0.474],[-6.063,4.912],[-18.956,0.227]],"v":[[24.291,-9.094],[54.105,-5.217],[84.162,-12.285],[54.306,-1.693]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":19,"s":[{"i":[[0.71,-17.313],[-20.556,-0.289],[0.739,-17.504],[17.246,-0.366]],"o":[[-2.44,-19.094],[18.482,0.26],[-1.77,-14.637],[-18.953,0.403]],"v":[[24.291,-9.094],[54.86,-42.716],[84.162,-12.285],[54.06,-39.215]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[1.608,-13.832],[-20.556,-0.251],[-2.316,-14.612],[17.246,-0.366]],"o":[[-0.409,-14.927],[17.374,0.212],[-3.894,-11.463],[-18.953,0.403]],"v":[[24.291,-9.094],[54.295,-38.707],[84.162,-12.285],[53.998,-35.089]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[4.263,2.483],[-20.55,0.554],[-3.701,1.231],[17.648,-0.211]],"o":[[2.861,-0.811],[17.566,-0.474],[-6.063,4.912],[-18.956,0.227]],"v":[[24.291,-9.094],[54.105,-5.217],[84.162,-12.285],[54.306,-1.693]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":82,"s":[{"i":[[0.71,-17.313],[-20.556,-0.289],[3.666,-18.54],[17.648,-0.211]],"o":[[-2.44,-19.094],[18.482,0.26],[0.4,-17.214],[-18.956,0.227]],"v":[[24.291,-9.094],[54.749,-47.467],[84.162,-12.285],[54.2,-43.965]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[0.71,-17.313],[-20.556,-0.289],[3.666,-18.54],[17.648,-0.211]],"o":[[-2.44,-19.094],[18.482,0.26],[0.4,-17.214],[-18.956,0.227]],"v":[[24.291,-9.094],[54.749,-47.467],[84.162,-12.285],[54.2,-43.965]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[4.263,2.483],[-20.55,0.554],[-3.701,1.231],[17.648,-0.211]],"o":[[2.861,-0.811],[17.566,-0.474],[-6.063,4.912],[-18.956,0.227]],"v":[[24.291,-9.094],[54.105,-5.217],[84.162,-12.285],[54.306,-1.693]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[1.608,-13.832],[-20.556,-0.251],[-2.316,-14.612],[17.246,-0.366]],"o":[[-0.409,-14.927],[17.374,0.212],[-3.894,-11.463],[-18.953,0.403]],"v":[[24.291,-9.094],[54.295,-38.707],[84.162,-12.285],[53.998,-35.089]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[0.71,-17.313],[-20.556,-0.289],[3.666,-18.54],[17.648,-0.211]],"o":[[-2.44,-19.094],[18.482,0.26],[0.4,-17.214],[-18.956,0.227]],"v":[[24.291,-9.094],[54.943,-44.213],[84.162,-12.285],[54.391,-40.586]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[4.263,2.483],[-20.55,0.554],[-3.701,1.231],[17.648,-0.211]],"o":[[2.861,-0.811],[17.566,-0.474],[-6.063,4.912],[-18.956,0.227]],"v":[[24.291,-9.094],[54.105,-5.217],[84.162,-12.285],[54.306,-1.693]],"c":true}]},{"t":177,"s":[{"i":[[0.71,-17.313],[-20.556,-0.289],[3.666,-18.54],[17.648,-0.211]],"o":[[-2.44,-19.094],[18.482,0.26],[0.4,-17.214],[-18.956,0.227]],"v":[[24.291,-9.094],[54.749,-47.467],[84.162,-12.285],[54.2,-43.965]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.521568627451,0.247058823529,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":2},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.521568627451,0.247058823529,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[54.957,0.5],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":9,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[55.872,-4.975],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":19,"s":[{"i":[[3.541,8.549],[18.847,0.926],[0,0],[-23.567,0]],"o":[[0,0],[-27.542,-1.354],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[53.964,-1.503],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[3.541,8.549],[14.387,-0.147],[0,0],[-23.567,0]],"o":[[0,0],[-19.361,0.198],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[52.386,-6.605],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[55.872,-4.975],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":82,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[54.957,0.5],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[54.957,0.5],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[55.872,-4.975],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[3.541,8.549],[14.387,-0.147],[0,0],[-23.567,0]],"o":[[0,0],[-19.361,0.198],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[52.386,-6.605],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[54.957,0.5],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[55.872,-4.975],[24.016,-9.094],[54.957,10.5]],"c":true}]},{"t":177,"s":[{"i":[[3.541,8.549],[23.081,0.449],[0,0],[-23.567,0]],"o":[[0,0],[-27.57,-0.536],[-3.618,4.471],[22.558,0]],"v":[[84.671,-12.285],[54.957,0.5],[24.016,-9.094],[54.957,10.5]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764765721,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[53.425,-45.745],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":9,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[57.17,-3.863],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":19,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[54.165,-42.492],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":63,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[53.629,-36.609],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":72,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[57.17,-3.863],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":82,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[53.425,-45.745],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":108,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[53.425,-45.745],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":118,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[57.17,-3.863],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":127,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[53.629,-36.609],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[54.373,-42.728],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"i":{"x":0.6,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[57.17,-3.863],[24.8,-9.094],[53.425,-55.591]],"c":true}]},{"t":177,"s":[{"i":[[9.72,-17.387],[31.076,-0.75],[0,0],[-39.438,-0.284]],"o":[[0,0],[-31.076,0.75],[-5.576,-5.087],[35.535,0.256]],"v":[[84.671,-12.285],[53.425,-45.745],[24.8,-9.094],[53.425,-55.591]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764765721,0,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":"Преобразовать"}],"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":"Преобразовать"}],"nm":"Group 7","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[4.231,-1.305]],"o":[[-1.404,4.186],[0,0]],"v":[[66.901,-18.571],[57.906,-9.791]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.913725495338,0.568627476692,0.011764706112,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":3.5},"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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-2.505],[2.505,0],[0,2.505],[-2.505,0]],"o":[[0,2.505],[-2.505,0],[0,-2.505],[2.505,0]],"v":[[51.858,-34.208],[47.322,-29.672],[42.787,-34.208],[47.322,-38.744]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019610882,0.949019610882,0.949019610882,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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-6.596],[6.596,0],[0,6.596],[-6.596,0]],"o":[[0,6.596],[-6.596,0],[0,-6.596],[6.596,0]],"v":[[64.86,-23.909],[52.916,-11.965],[40.972,-23.909],[52.916,-35.853]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.090196080506,0.074509806931,0.039215687662,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":"Преобразовать"}],"nm":"Group 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-10.438],[10.438,0],[0,10.437],[-10.437,0]],"o":[[0,10.437],[-10.437,0],[0,-10.438],[10.438,0]],"v":[[71.815,-23.909],[52.916,-5.011],[34.018,-23.909],[52.916,-42.808]],"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.235,0.02,0,0.375,0.431,0.175,0,1,0.627,0.329,0]}},"s":{"a":0,"k":[49,-29]},"e":{"a":0,"k":[61.7,-9.345]},"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":"Преобразовать"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.4,"y":1},"o":{"x":0.3,"y":0},"t":0,"s":[52.916,-23.909],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":17,"s":[52.696,-13.912],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":24,"s":[48.695,-16.095],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":31,"s":[48.695,-16.071],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":37,"s":[56.838,-16.893],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":44,"s":[55.91,-15.826],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":51,"s":[51.723,-15.139],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.8,"y":0},"t":60,"s":[50.695,-16.11],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":74,"s":[52.906,-22.909],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":1},"o":{"x":0.6,"y":0},"t":84,"s":[52.894,-22.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.7,"y":0.7},"o":{"x":0.167,"y":0.167},"t":87,"s":[52.885,-21.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.167,"y":0},"t":98,"s":[52.885,-21.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":101,"s":[52.883,-22.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":108,"s":[52.884,-22.91],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":120,"s":[52.696,-13.912],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":127,"s":[48.695,-16.095],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":139,"s":[48.695,-16.071],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":145,"s":[54.856,-16.853],"to":[0,0],"ti":[0,0]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":159,"s":[56.838,-16.893],"to":[0,0],"ti":[0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.5,"y":0},"t":168,"s":[54.775,-7.873],"to":[0,0],"ti":[0,0]},{"t":179,"s":[52.916,-23.909]}]},"a":{"a":0,"k":[52.916,-23.909]},"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":"Преобразовать"}],"nm":"Eyeball R","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[-12.827,11.751],[-10.398,-12.935],[0,0],[17.35,-0.99]],"o":[[0,0],[11.02,-10.096],[8.467,10.533],[0,0],[-22.074,1.26]],"v":[[24.291,-9.094],[35.546,-38.928],[77.711,-35.098],[84.162,-12.285],[58.359,-2.206]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,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":"Преобразовать"}],"nm":"Group 6","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":"Преобразовать"}],"nm":"R","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"HEAD","parent":16,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.438],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":2,"s":[0]},{"i":{"x":[0.543],"y":[1]},"o":{"x":[0.301],"y":[0]},"t":11,"s":[-2]},{"i":{"x":[0.453],"y":[0.914]},"o":{"x":[0.38],"y":[0]},"t":36,"s":[4]},{"i":{"x":[0.365],"y":[1.168]},"o":{"x":[0.425],"y":[-0.04]},"t":69,"s":[-2]},{"i":{"x":[0.242],"y":[0.937]},"o":{"x":[0.401],"y":[0.094]},"t":105,"s":[9]},{"i":{"x":[0.567],"y":[1]},"o":{"x":[0.382],"y":[-0.109]},"t":134,"s":[-1]},{"i":{"x":[0.4],"y":[1]},"o":{"x":[0.4],"y":[0]},"t":159,"s":[1.5]},{"t":179,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.438,"y":0.907},"o":{"x":0.3,"y":0},"t":0,"s":[-1.393,115.361,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.1,"y":1},"o":{"x":0.105,"y":0.035},"t":9,"s":[-1.393,98.838,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.193,"y":0.647},"o":{"x":0.298,"y":0},"t":60,"s":[-1.393,145.361,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.461,"y":1},"o":{"x":0.2,"y":0.689},"t":76,"s":[6.681,100.795,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.18,"y":0.674},"o":{"x":0.342,"y":0},"t":107,"s":[12.607,91.361,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.538,"y":1},"o":{"x":0.222,"y":0.596},"t":129,"s":[-1.393,132.823,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":158,"s":[-1.393,141.361,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[-1.393,115.361,0]}]},"a":{"a":0,"k":[-1.393,115.361,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":3,"s":[{"i":[[0.028,0.967],[0.954,5.408],[1.092,-0.218],[10.346,7.55],[-0.056,-1.485],[1.286,-3.664],[0,-1.77],[-57.155,0],[0,66.299]],"o":[[-19.746,-20.055],[-0.194,-1.096],[-86.056,17.148],[-1.2,-0.876],[0.939,24.906],[-0.019,1.452],[0,66.299],[57.155,0],[0,-5.838]],"v":[[102.496,-46.524],[81.626,-90.394],[79.283,-91.998],[-74.808,-104.458],[-77.939,-103.156],[-106.272,-48.028],[-106.336,-16.767],[-1.781,105.44],[102.775,-16.767]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[0.028,0.556],[0.954,3.107],[1.029,-0.386],[45.152,23.022],[0.335,-0.787],[1.286,-2.105],[0,-1.017],[-57.155,0],[0,38.092]],"o":[[-11.9,-9.136],[-0.194,-0.63],[-52.185,19.556],[-1.16,-0.591],[-6.474,15.205],[-0.019,0.834],[0,38.092],[57.155,0],[0,-3.354]],"v":[[97.24,-32.453],[78.372,-55.91],[76.029,-56.831],[-74.31,-61.744],[-76.566,-61.372],[-99.534,-39.079],[-103.836,-9.613],[-1.781,60.603],[100.025,-9.608]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[0.028,0.967],[0.954,5.408],[1.092,-0.218],[10.346,7.55],[-0.056,-1.485],[1.286,-3.664],[0,-1.77],[-57.155,0],[0,66.299]],"o":[[-19.746,-20.055],[-0.194,-1.096],[-86.056,17.148],[-1.2,-0.876],[0.939,24.906],[-0.019,1.452],[0,66.299],[57.155,0],[0,-5.838]],"v":[[102.496,-46.524],[81.626,-90.394],[79.283,-91.998],[-74.808,-104.458],[-77.939,-103.156],[-106.272,-48.028],[-106.336,-16.767],[-1.781,105.44],[102.775,-16.767]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[0.028,0.556],[0.954,3.107],[1.059,-0.293],[45.152,23.022],[0.335,-0.787],[1.286,-2.105],[0,-1.017],[-57.155,0],[0,38.092]],"o":[[-11.9,-9.136],[-0.194,-0.63],[-45.237,12.499],[-1.16,-0.591],[-6.474,15.205],[-0.019,0.834],[0,38.092],[57.155,0],[0,-3.354]],"v":[[97.24,-32.453],[78.968,-61.4],[76.625,-62.322],[-74.214,-67.243],[-76.471,-66.871],[-99.534,-39.079],[-103.836,-9.613],[-1.781,60.603],[100.025,-9.608]],"c":true}]},{"t":179,"s":[{"i":[[0.028,0.967],[0.954,5.408],[1.092,-0.218],[10.346,7.55],[-0.056,-1.485],[1.286,-3.664],[0,-1.77],[-57.155,0],[0,66.299]],"o":[[-19.746,-20.055],[-0.194,-1.096],[-86.056,17.148],[-1.2,-0.876],[0.939,24.906],[-0.019,1.452],[0,66.299],[57.155,0],[0,-5.838]],"v":[[102.496,-46.524],[81.626,-90.394],[79.283,-91.998],[-74.808,-104.458],[-77.939,-103.156],[-106.272,-48.028],[-106.336,-16.767],[-1.781,105.44],[102.775,-16.767]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764705882,0,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":"Преобразовать"}],"nm":"Group 1","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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,-152.216],[62.94,0],[0,73.517],[-62.23,0]],"o":[[0,73.517],[-62.94,0],[-11.581,-122.216],[60.598,0]],"v":[[113.358,-6.284],[-1.781,129.227],[-116.919,-6.284],[-1.781,-177.676]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843137255,0.450980392157,0,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.956862745098,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Ears","parent":13,"sr":1,"ks":{"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[-2.222,-4.622,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[-2.232,-14.622,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[-2.222,-1.622,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[-2.232,-14.622,0],"to":[0,0,0],"ti":[0,0,0]},{"t":179,"s":[-2.222,-4.622,0]}]},"a":{"a":0,"k":[-2.222,-4.622,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[-7.056,9.609],[-5.846,-10.13],[9.441,-7.768],[0,0]],"o":[[0,0],[5.348,9.266],[-5.807,4.779],[-3.83,-2.621]],"v":[[114.73,-37.954],[131.697,-35.384],[117.384,29.551],[105.289,28.435]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[-7.25,7.198],[-6.007,-7.589],[9.701,-5.82],[0,0]],"o":[[0,0],[5.495,6.941],[-5.967,3.58],[-3.935,-1.963]],"v":[[117.948,-29.836],[135.382,-27.91],[120.675,20.735],[108.247,19.899]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[-7.056,9.609],[-5.846,-10.13],[9.441,-7.768],[0,0]],"o":[[0,0],[5.348,9.266],[-5.807,4.779],[-3.83,-2.621]],"v":[[114.73,-37.954],[131.697,-35.384],[117.384,29.551],[105.289,28.435]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[-7.25,6.934],[-6.007,-7.31],[9.701,-5.606],[0,0]],"o":[[0,0],[5.495,6.686],[-5.967,3.448],[-3.935,-1.891]],"v":[[117.948,-28.945],[135.382,-27.09],[120.675,19.768],[108.247,18.962]],"c":true}]},{"t":179,"s":[{"i":[[-7.056,9.609],[-5.846,-10.13],[9.441,-7.768],[0,0]],"o":[[0,0],[5.348,9.266],[-5.807,4.779],[-3.83,-2.621]],"v":[[114.73,-37.954],[131.697,-35.384],[117.384,29.551],[105.289,28.435]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843137255,0.450980392157,0,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.956862804936,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":2,"s":[{"i":[[7.055,9.609],[5.846,-10.13],[-9.441,-7.768],[0,0]],"o":[[0,0],[-5.348,9.266],[5.807,4.779],[3.83,-2.621]],"v":[[-119.173,-37.954],[-136.14,-35.384],[-121.827,29.551],[-109.732,28.435]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":60,"s":[{"i":[[7.25,7.198],[6.007,-7.589],[-9.701,-5.82],[0,0]],"o":[[0,0],[-5.495,6.941],[5.967,3.58],[3.936,-1.963]],"v":[[-122.391,-29.836],[-139.825,-27.91],[-125.118,20.735],[-112.69,19.899]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":108,"s":[{"i":[[7.055,9.609],[5.846,-10.13],[-9.441,-7.768],[0,0]],"o":[[0,0],[-5.348,9.266],[5.807,4.779],[3.83,-2.621]],"v":[[-119.173,-37.954],[-136.14,-35.384],[-121.827,29.551],[-109.732,28.435]],"c":true}]},{"i":{"x":0.4,"y":1},"o":{"x":0.4,"y":0},"t":159,"s":[{"i":[[7.25,6.934],[6.007,-7.31],[-9.701,-5.606],[0,0]],"o":[[0,0],[-5.495,6.686],[5.967,3.448],[3.936,-1.891]],"v":[[-122.391,-28.945],[-139.825,-27.09],[-125.118,19.768],[-112.69,18.962]],"c":true}]},{"t":179,"s":[{"i":[[7.055,9.609],[5.846,-10.13],[-9.441,-7.768],[0,0]],"o":[[0,0],[-5.348,9.266],[5.807,4.779],[3.83,-2.621]],"v":[[-119.173,-37.954],[-136.14,-35.384],[-121.827,29.551],[-109.732,28.435]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843137255,0.450980392157,0,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.956862804936,0.674509803922,0,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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"BODY L","parent":16,"sr":1,"ks":{"p":{"a":0,"k":[-2.007,236.11,0]},"a":{"a":0,"k":[-2.007,236.11,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":11,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[0,0],[-10.922,8.493],[0,0],[-25.012,0]],"o":[[0.806,-18.125],[22.012,-17.116],[2.677,15.315],[19.543,0]],"v":[[-195.61,222.283],[-172.442,173.527],[-43.676,123.949],[-1.602,154.521]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[0,0],[-10.922,8.493],[0,0],[-25.012,0]],"o":[[0.806,-18.125],[22.012,-17.116],[2.677,15.315],[19.543,0]],"v":[[-195.61,222.283],[-172.442,173.527],[-43.676,123.949],[-1.602,154.521]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":38,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":44,"s":[{"i":[[0,0],[-10.922,8.493],[0,0],[-25.012,0]],"o":[[0.806,-18.125],[22.012,-17.116],[2.677,15.315],[19.543,0]],"v":[[-195.61,222.283],[-172.442,173.527],[-43.676,123.949],[-1.602,154.521]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":51,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":127,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[0,0],[-10.922,8.493],[0,0],[-25.012,0]],"o":[[0.806,-18.125],[22.012,-17.116],[2.677,15.315],[19.543,0]],"v":[[-195.61,222.283],[-172.442,173.527],[-43.676,123.949],[-1.602,154.521]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[0,0],[-10.922,8.493],[0,0],[-25.012,0]],"o":[[0.806,-18.125],[22.012,-17.116],[2.677,15.315],[19.543,0]],"v":[[-195.61,222.283],[-172.442,173.527],[-43.676,123.949],[-1.602,154.521]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":154,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":160,"s":[{"i":[[0,0],[-10.922,8.493],[0,0],[-25.012,0]],"o":[[0.806,-18.125],[22.012,-17.116],[2.677,15.315],[19.543,0]],"v":[[-195.61,222.283],[-172.442,173.527],[-43.676,123.949],[-1.602,154.521]],"c":false}]},{"t":167,"s":[{"i":[[0,0],[-10.922,9.108],[0,0],[-25.012,0]],"o":[[0.806,-19.439],[22.012,-18.357],[2.677,16.426],[19.543,0]],"v":[[-195.61,221.279],[-172.442,168.989],[-43.676,115.817],[-1.602,148.605]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.141176477075,0.145098045468,0.596078455448,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":11,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[0,0],[-0.085,-4.154],[-0.863,5.89]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,221.023],[-191.878,230.71],[-199.592,221.896]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[0,0],[-0.085,-4.154],[-0.863,5.89]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,221.023],[-191.878,230.71],[-199.592,221.896]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":38,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":44,"s":[{"i":[[0,0],[-0.085,-4.154],[-0.863,5.89]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,221.023],[-191.878,230.71],[-199.592,221.896]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":51,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":127,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[0,0],[-0.085,-4.154],[-0.863,5.89]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,221.023],[-191.878,230.71],[-199.592,221.896]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[0,0],[-0.085,-4.154],[-0.863,5.89]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,221.023],[-191.878,230.71],[-199.592,221.896]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":154,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":160,"s":[{"i":[[0,0],[-0.085,-4.154],[-0.863,5.89]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,221.023],[-191.878,230.71],[-199.592,221.896]],"c":true}]},{"t":167,"s":[{"i":[[0,0],[-0.085,-4.455],[-0.863,6.317]],"o":[[0,0],[0,0],[0,0]],"v":[[-191.527,219.928],[-191.878,230.318],[-199.592,220.864]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141176477075,0.145098045468,0.596078455448,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":"Преобразовать"}],"nm":"Group 1","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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":11,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[15.657,41.118],[4.143,-4.446],[2.069,-13.836],[0,0],[-12.214,-2.604],[-12.723,8.189],[-1.778,0.293]],"o":[[-50.473,11.997],[-15.163,16.27],[0,0],[0,0],[2.007,-13.188],[50.075,-32.232],[26.378,17.02]],"v":[[-44.657,125.271],[-172.594,173.527],[-194.954,228.785],[-194.954,228.785],[-178.949,235.055],[-159.885,186.343],[-40.699,142.048]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[15.657,41.118],[4.143,-4.446],[2.069,-13.836],[0,0],[-12.214,-2.604],[-12.723,8.189],[-1.778,0.293]],"o":[[-50.473,11.997],[-15.163,16.27],[0,0],[0,0],[2.007,-13.188],[50.075,-32.232],[26.378,17.02]],"v":[[-44.657,125.271],[-172.594,173.527],[-194.954,228.785],[-194.954,228.785],[-178.949,235.055],[-159.885,186.343],[-40.699,142.048]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":38,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":44,"s":[{"i":[[15.657,41.118],[4.143,-4.446],[2.069,-13.836],[0,0],[-12.214,-2.604],[-12.723,8.189],[-1.778,0.293]],"o":[[-50.473,11.997],[-15.163,16.27],[0,0],[0,0],[2.007,-13.188],[50.075,-32.232],[26.378,17.02]],"v":[[-44.657,125.271],[-172.594,173.527],[-194.954,228.785],[-194.954,228.785],[-178.949,235.055],[-159.885,186.343],[-40.699,142.048]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":51,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":127,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[15.657,41.118],[4.143,-4.446],[2.069,-13.836],[0,0],[-12.214,-2.604],[-12.723,8.189],[-1.778,0.293]],"o":[[-50.473,11.997],[-15.163,16.27],[0,0],[0,0],[2.007,-13.188],[50.075,-32.232],[26.378,17.02]],"v":[[-44.657,125.271],[-172.594,173.527],[-194.954,228.785],[-194.954,228.785],[-178.949,235.055],[-159.885,186.343],[-40.699,142.048]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[15.657,41.118],[4.143,-4.446],[2.069,-13.836],[0,0],[-12.214,-2.604],[-12.723,8.189],[-1.778,0.293]],"o":[[-50.473,11.997],[-15.163,16.27],[0,0],[0,0],[2.007,-13.188],[50.075,-32.232],[26.378,17.02]],"v":[[-44.657,125.271],[-172.594,173.527],[-194.954,228.785],[-194.954,228.785],[-178.949,235.055],[-159.885,186.343],[-40.699,142.048]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":154,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":160,"s":[{"i":[[15.657,41.118],[4.143,-4.446],[2.069,-13.836],[0,0],[-12.214,-2.604],[-12.723,8.189],[-1.778,0.293]],"o":[[-50.473,11.997],[-15.163,16.27],[0,0],[0,0],[2.007,-13.188],[50.075,-32.232],[26.378,17.02]],"v":[[-44.657,125.271],[-172.594,173.527],[-194.954,228.785],[-194.954,228.785],[-178.949,235.055],[-159.885,186.343],[-40.699,142.048]],"c":true}]},{"t":167,"s":[{"i":[[15.657,44.099],[4.146,-4.766],[2.069,-14.839],[0,0],[-12.214,-2.792],[-12.723,8.783],[-1.778,0.314]],"o":[[-50.473,12.867],[-15.163,17.449],[0,0],[0,0],[2.007,-14.144],[50.075,-34.568],[26.378,18.254]],"v":[[-44.657,117.234],[-172.594,168.989],[-194.954,228.253],[-194.954,228.253],[-178.949,234.978],[-159.885,182.734],[-40.699,135.227]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.305882364511,0.392156869173,1,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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":11,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[33.239,6.251],[0,0],[6.046,21.841],[4.508,-4.834],[2.23,-14.24],[-12.762,-2.611],[-85.867,-0.016]],"o":[[-7.65,24.085],[-11.532,-0.168],[-58.832,11.191],[-14.766,15.834],[0,0],[3.318,0.679],[87.557,0.016]],"v":[[41.983,127.386],[-2.222,155.356],[-43.379,125.434],[-174.823,173.527],[-197.714,226.854],[-178.799,235.055],[-4.551,236.111]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[33.239,6.251],[0,0],[6.046,21.841],[4.508,-4.834],[2.23,-14.24],[-12.762,-2.611],[-85.867,-0.016]],"o":[[-7.65,24.085],[-11.532,-0.168],[-58.832,11.191],[-14.766,15.834],[0,0],[3.318,0.679],[87.557,0.016]],"v":[[41.983,127.386],[-2.222,155.356],[-43.379,125.434],[-174.823,173.527],[-197.714,226.854],[-178.799,235.055],[-4.551,236.111]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":38,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":44,"s":[{"i":[[33.239,6.251],[0,0],[6.046,21.841],[4.508,-4.834],[2.23,-14.24],[-12.762,-2.611],[-85.867,-0.016]],"o":[[-7.65,24.085],[-11.532,-0.168],[-58.832,11.191],[-14.766,15.834],[0,0],[3.318,0.679],[87.557,0.016]],"v":[[41.983,127.386],[-2.222,155.356],[-43.379,125.434],[-174.823,173.527],[-197.714,226.854],[-178.799,235.055],[-4.551,236.111]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":51,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":127,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[33.239,6.251],[0,0],[6.046,21.841],[4.508,-4.834],[2.23,-14.24],[-12.762,-2.611],[-85.867,-0.016]],"o":[[-7.65,24.085],[-11.532,-0.168],[-58.832,11.191],[-14.766,15.834],[0,0],[3.318,0.679],[87.557,0.016]],"v":[[41.983,127.386],[-2.222,155.356],[-43.379,125.434],[-174.823,173.527],[-197.714,226.854],[-178.799,235.055],[-4.551,236.111]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[33.239,6.251],[0,0],[6.046,21.841],[4.508,-4.834],[2.23,-14.24],[-12.762,-2.611],[-85.867,-0.016]],"o":[[-7.65,24.085],[-11.532,-0.168],[-58.832,11.191],[-14.766,15.834],[0,0],[3.318,0.679],[87.557,0.016]],"v":[[41.983,127.386],[-2.222,155.356],[-43.379,125.434],[-174.823,173.527],[-197.714,226.854],[-178.799,235.055],[-4.551,236.111]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":154,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":160,"s":[{"i":[[33.239,6.251],[0,0],[6.046,21.841],[4.508,-4.834],[2.23,-14.24],[-12.762,-2.611],[-85.867,-0.016]],"o":[[-7.65,24.085],[-11.532,-0.168],[-58.832,11.191],[-14.766,15.834],[0,0],[3.318,0.679],[87.557,0.016]],"v":[[41.983,127.386],[-2.222,155.356],[-43.379,125.434],[-174.823,173.527],[-197.714,226.854],[-178.799,235.055],[-4.551,236.111]],"c":true}]},{"t":167,"s":[{"i":[[33.239,6.704],[0,0],[6.046,23.424],[4.51,-5.183],[2.23,-15.272],[-12.76,-2.815],[-85.867,-0.017]],"o":[[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[-14.766,16.982],[0,0],[3.318,0.728],[87.557,0.017]],"v":[[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-174.823,168.989],[-197.714,226.182],[-178.799,234.978],[-4.551,236.11]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.20000000298,0.215686276555,0.835294127464,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":"Преобразовать"}],"nm":"Group 4","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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"BODY R","parent":1,"sr":1,"ks":{"p":{"a":0,"k":[-2.007,236.11,0]},"a":{"a":0,"k":[-2.007,236.11,0]},"s":{"a":1,"k":[{"i":{"x":[0.438,0.438,0.438],"y":[0.912,0.824,1.088]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":1,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.105,0.105,0.105],"y":[0.03,0.045,-0.03]},"t":12,"s":[98,101,100]},{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.15,0.15,0.15],"y":[0,0,0]},"t":60,"s":[101,99,100]},{"i":{"x":[0.297,0.297,0.297],"y":[0.385,0.795,1]},"o":{"x":[0.411,0.411,0.411],"y":[0,0,0]},"t":83,"s":[99,102,100]},{"i":{"x":[0.743,0.723,0.476],"y":[1,1,1]},"o":{"x":[0.179,0.179,0.179],"y":[0.333,-0.333,0]},"t":107,"s":[100,99,100]},{"i":{"x":[0.4,0.4,0.4],"y":[1,1,1]},"o":{"x":[0.4,0.4,0.4],"y":[0,0,0]},"t":158,"s":[101,99,100]},{"t":179,"s":[100,100,100]}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[-25.012,0],[-2.639,16.983],[-24.115,-18.708],[-0.806,-18.277]],"o":[[19.543,0],[0,0],[10.969,8.51],[0,0]],"v":[[-1.602,153.84],[42.137,123.949],[168.457,173.005],[191.625,222.168]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[-25.012,0],[-2.639,16.983],[-24.115,-18.708],[-0.806,-18.277]],"o":[[19.543,0],[0,0],[10.969,8.51],[0,0]],"v":[[-1.602,153.84],[42.137,123.949],[168.457,173.005],[191.625,222.168]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":45,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":51,"s":[{"i":[[-25.012,0],[-2.639,16.983],[-24.115,-18.708],[-0.806,-18.277]],"o":[[19.543,0],[0,0],[10.969,8.51],[0,0]],"v":[[-1.602,153.84],[42.137,123.949],[168.457,173.005],[191.625,222.168]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0},"t":58,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.167},"t":107,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[49.137,121.359],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[-25.012,0],[-2.639,16.983],[-24.115,-18.708],[-0.806,-18.277]],"o":[[19.543,0],[0,0],[10.969,8.51],[0,0]],"v":[[-1.602,153.84],[42.137,123.949],[168.457,173.005],[191.625,222.168]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":155,"s":[{"i":[[-25.012,0],[-2.639,16.983],[-24.115,-18.708],[-0.806,-18.277]],"o":[[19.543,0],[0,0],[10.969,8.51],[0,0]],"v":[[-1.602,153.84],[42.137,123.949],[168.457,173.005],[191.625,222.168]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":161,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":167,"s":[{"i":[[-25.012,0],[-2.639,16.983],[-24.115,-18.708],[-0.806,-18.277]],"o":[[19.543,0],[0,0],[10.969,8.51],[0,0]],"v":[[-1.602,153.84],[42.137,123.949],[168.457,173.005],[191.625,222.168]],"c":false}]},{"t":174,"s":[{"i":[[-25.012,0],[-2.639,18.063],[-24.115,-19.898],[-0.806,-19.439]],"o":[[19.543,0],[0,0],[10.969,9.051],[0,0]],"v":[[-1.602,148.605],[42.137,116.813],[168.457,168.989],[191.625,221.279]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.141176477075,0.145098045468,0.596078455448,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[0,0],[0.771,-4.274],[0.836,6.006]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,221.074],[186.993,231.101],[195.586,221.778]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[0,0],[0.771,-4.274],[0.836,6.006]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,221.074],[186.993,231.101],[195.586,221.778]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":45,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":51,"s":[{"i":[[0,0],[0.771,-4.274],[0.836,6.006]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,221.074],[186.993,231.101],[195.586,221.778]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":58,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[0,0],[0.771,-4.274],[0.836,6.006]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,221.074],[186.993,231.101],[195.586,221.778]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":155,"s":[{"i":[[0,0],[0.771,-4.274],[0.836,6.006]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,221.074],[186.993,231.101],[195.586,221.778]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":161,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":167,"s":[{"i":[[0,0],[0.771,-4.274],[0.836,6.006]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,221.074],[186.993,231.101],[195.586,221.778]],"c":true}]},{"t":174,"s":[{"i":[[0,0],[0.77,-4.546],[0.836,6.389]],"o":[[0,0],[0,0],[0,0]],"v":[[187.553,220.116],[186.993,230.781],[195.586,220.864]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.141176477075,0.145098045468,0.596078455448,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":"Преобразовать"}],"nm":"Group 1","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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[-25.098,18.042],[-50.075,-32.501],[-2.007,-13.298],[0,0],[0,0],[15.173,16.396],[53.9,13.518]],"o":[[2.358,1.432],[12.723,8.258],[12.214,-2.625],[0,0],[-2.069,-13.952],[-4.146,-4.481],[-11.137,35.276]],"v":[[36.563,141.262],[155.749,185.928],[174.814,235.047],[190.818,228.724],[190.818,228.724],[168.459,173.005],[42.137,123.949]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[-25.098,18.042],[-50.075,-32.501],[-2.007,-13.298],[0,0],[0,0],[15.173,16.396],[53.9,13.518]],"o":[[2.358,1.432],[12.723,8.258],[12.214,-2.625],[0,0],[-2.069,-13.952],[-4.146,-4.481],[-11.137,35.276]],"v":[[36.563,141.262],[155.749,185.928],[174.814,235.047],[190.818,228.724],[190.818,228.724],[168.459,173.005],[42.137,123.949]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":45,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":51,"s":[{"i":[[-25.098,18.042],[-50.075,-32.501],[-2.007,-13.298],[0,0],[0,0],[15.173,16.396],[53.9,13.518]],"o":[[2.358,1.432],[12.723,8.258],[12.214,-2.625],[0,0],[-2.069,-13.952],[-4.146,-4.481],[-11.137,35.276]],"v":[[36.563,141.262],[155.749,185.928],[174.814,235.047],[190.818,228.724],[190.818,228.724],[168.459,173.005],[42.137,123.949]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":58,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[-25.098,18.042],[-50.075,-32.501],[-2.007,-13.298],[0,0],[0,0],[15.173,16.396],[53.9,13.518]],"o":[[2.358,1.432],[12.723,8.258],[12.214,-2.625],[0,0],[-2.069,-13.952],[-4.146,-4.481],[-11.137,35.276]],"v":[[36.563,141.262],[155.749,185.928],[174.814,235.047],[190.818,228.724],[190.818,228.724],[168.459,173.005],[42.137,123.949]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":155,"s":[{"i":[[-25.098,18.042],[-50.075,-32.501],[-2.007,-13.298],[0,0],[0,0],[15.173,16.396],[53.9,13.518]],"o":[[2.358,1.432],[12.723,8.258],[12.214,-2.625],[0,0],[-2.069,-13.952],[-4.146,-4.481],[-11.137,35.276]],"v":[[36.563,141.262],[155.749,185.928],[174.814,235.047],[190.818,228.724],[190.818,228.724],[168.459,173.005],[42.137,123.949]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":161,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":167,"s":[{"i":[[-25.098,18.042],[-50.075,-32.501],[-2.007,-13.298],[0,0],[0,0],[15.173,16.396],[53.9,13.518]],"o":[[2.358,1.432],[12.723,8.258],[12.214,-2.625],[0,0],[-2.069,-13.952],[-4.146,-4.481],[-11.137,35.276]],"v":[[36.563,141.262],[155.749,185.928],[174.814,235.047],[190.818,228.724],[190.818,228.724],[168.459,173.005],[42.137,123.949]],"c":true}]},{"t":174,"s":[{"i":[[-25.098,19.189],[-50.075,-34.568],[-2.007,-14.144],[0,0],[0,0],[15.163,17.449],[53.9,14.378]],"o":[[2.358,1.523],[12.723,8.783],[12.214,-2.792],[0,0],[-2.069,-14.839],[-4.146,-4.766],[-11.137,37.52]],"v":[[36.563,135.227],[155.749,182.734],[174.814,234.978],[190.818,228.253],[190.818,228.253],[168.459,168.989],[42.137,116.813]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.305882364511,0.392156869173,1,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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":18,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":25,"s":[{"i":[[19.657,11.438],[33.239,6.303],[0,0],[6.046,22.023],[-84.863,-0.024],[-3.453,0.742],[0,0]],"o":[[-46.637,-27.136],[-7.65,24.286],[-11.532,-0.169],[-58.832,11.285],[88.503,0.025],[12.214,-2.625],[-2.069,-13.952]],"v":[[168.458,173.005],[41.983,126.477],[-2.222,154.681],[-43.379,124.51],[-7.479,236.111],[174.814,235.047],[190.818,228.724]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":32,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":39,"s":[{"i":[[19.657,11.438],[33.239,6.303],[0,0],[6.046,22.023],[-84.863,-0.024],[-3.453,0.742],[0,0]],"o":[[-46.637,-27.136],[-7.65,24.286],[-11.532,-0.169],[-58.832,11.285],[88.503,0.025],[12.214,-2.625],[-2.069,-13.952]],"v":[[168.458,173.005],[41.983,126.477],[-2.222,154.681],[-43.379,124.51],[-7.479,236.111],[174.814,235.047],[190.818,228.724]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":45,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":51,"s":[{"i":[[19.657,11.438],[33.239,6.303],[0,0],[6.046,22.023],[-84.863,-0.024],[-3.453,0.742],[0,0]],"o":[[-46.637,-27.136],[-7.65,24.286],[-11.532,-0.169],[-58.832,11.285],[88.503,0.025],[12.214,-2.625],[-2.069,-13.952]],"v":[[168.458,173.005],[41.983,126.477],[-2.222,154.681],[-43.379,124.51],[-7.479,236.111],[174.814,235.047],[190.818,228.724]],"c":true}]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0},"t":58,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":134,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":141,"s":[{"i":[[19.657,11.438],[33.239,6.303],[0,0],[6.046,22.023],[-84.863,-0.024],[-3.453,0.742],[0,0]],"o":[[-46.637,-27.136],[-7.65,24.286],[-11.532,-0.169],[-58.832,11.285],[88.503,0.025],[12.214,-2.625],[-2.069,-13.952]],"v":[[168.458,173.005],[41.983,126.477],[-2.222,154.681],[-43.379,124.51],[-7.479,236.111],[174.814,235.047],[190.818,228.724]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":148,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":155,"s":[{"i":[[19.657,11.438],[33.239,6.303],[0,0],[6.046,22.023],[-84.863,-0.024],[-3.453,0.742],[0,0]],"o":[[-46.637,-27.136],[-7.65,24.286],[-11.532,-0.169],[-58.832,11.285],[88.503,0.025],[12.214,-2.625],[-2.069,-13.952]],"v":[[168.458,173.005],[41.983,126.477],[-2.222,154.681],[-43.379,124.51],[-7.479,236.111],[174.814,235.047],[190.818,228.724]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":161,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]},{"i":{"x":0.5,"y":1},"o":{"x":0.5,"y":0},"t":167,"s":[{"i":[[19.657,11.438],[33.239,6.303],[0,0],[6.046,22.023],[-84.863,-0.024],[-3.453,0.742],[0,0]],"o":[[-46.637,-27.136],[-7.65,24.286],[-11.532,-0.169],[-58.832,11.285],[88.503,0.025],[12.214,-2.625],[-2.069,-13.952]],"v":[[168.458,173.005],[41.983,126.477],[-2.222,154.681],[-43.379,124.51],[-7.479,236.111],[174.814,235.047],[190.818,228.724]],"c":true}]},{"t":174,"s":[{"i":[[19.657,12.165],[33.239,6.704],[0,0],[6.046,23.424],[-84.863,-0.025],[-3.453,0.791],[0,0]],"o":[[-46.637,-28.862],[-7.65,25.831],[-11.532,-0.18],[-58.832,12.003],[88.503,0.026],[12.214,-2.792],[-2.069,-14.839]],"v":[[168.458,168.989],[41.983,119.502],[-2.222,149.5],[-43.379,117.409],[-7.479,236.109],[174.814,234.978],[190.818,228.253]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.20000000298,0.215686276555,0.835294127464,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":"Преобразовать"}],"nm":"Group 4","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":"Преобразовать"}],"nm":"Group 2","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":76,"s":[{"i":[[2.14,-3.25],[10.155,11.517],[0,0],[0,0]],"o":[[-31.645,22.355],[-2.022,-3.135],[0,0],[0,0]],"v":[[42.54,121.136],[-38.028,120.208],[-26.079,93.094],[39.913,94.037]],"c":true}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":107,"s":[{"i":[[2.14,-3.25],[10.155,11.517],[0,0],[0,0]],"o":[[-31.645,22.355],[-2.022,-3.135],[0,0],[0,0]],"v":[[48.04,123.409],[-32.278,121.723],[-24.579,88.549],[50.913,94.542]],"c":true}]},{"t":129,"s":[{"i":[[2.14,-3.25],[10.155,11.517],[0,0],[0,0]],"o":[[-31.645,22.355],[-2.022,-3.135],[0,0],[0,0]],"v":[[42.54,121.136],[-38.028,120.208],[-26.079,93.094],[39.913,94.037]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.910588163488,0.641889983532,0,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":"Преобразовать"}],"nm":"Group 1","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.1,"y":1},"o":{"x":0.3,"y":0},"t":76,"s":[{"i":[[0,0],[0,0.915],[0,0],[0,0],[-0.333,-2.623]],"o":[[0.289,-2.374],[0,0],[0,0],[0,0],[0,0]],"v":[[48.709,165.635],[43.318,90.618],[41.451,90.618],[-29.301,90.618],[-50.819,172.658]],"c":false}]},{"i":{"x":0.7,"y":1},"o":{"x":0.3,"y":0},"t":107,"s":[{"i":[[0,0],[0,0.915],[0,0],[0,0],[-0.333,-2.623]],"o":[[0.289,-2.374],[0,0],[0,0],[0,0],[0,0]],"v":[[48.709,165.635],[54.318,91.123],[52.451,91.123],[-28.801,88.85],[-50.819,172.658]],"c":false}]},{"t":129,"s":[{"i":[[0,0],[0,0.915],[0,0],[0,0],[-0.333,-2.623]],"o":[[0.289,-2.374],[0,0],[0,0],[0,0],[0,0]],"v":[[48.709,165.635],[43.318,90.618],[41.451,90.618],[-29.301,90.618],[-50.819,172.658]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.807843197093,0.450980422076,0,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":11},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.811764765721,0,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":"Преобразовать"}],"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":"Преобразовать"}],"nm":"Group 3","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0}]} \ No newline at end of file diff --git a/app/views/CreateSeed/CreateSeed.tsx b/app/views/CreateSeed/CreateSeed.tsx new file mode 100644 index 0000000..4647d0e --- /dev/null +++ b/app/views/CreateSeed/CreateSeed.tsx @@ -0,0 +1,95 @@ +import { IconChevronRight, } from '@tabler/icons-react'; +import { Flex, Text, Transition } from '@mantine/core'; +import { TextChain } from '@/app/components/TextChain/TextChain'; +import { useEffect, useState } from 'react'; +import { generateMnemonic } from 'web-bip39'; +import wordlist from 'web-bip39/wordlists/english' +import { CopyButtonIcon } from '@/app/components/CopyButtonIcon/CopyButtonIcon'; +import { modals } from '@mantine/modals'; +import { useClipboard } from '@mantine/hooks'; +import { useNavigate } from 'react-router-dom'; +import { useMemory } from '@/app/providers/MemoryProvider/useMemory'; +import useWindow from '@/app/hooks/useWindow'; +import { AnimatedButton } from '@/app/components/AnimatedButton/AnimatedButton'; +import { AuthFlowBreadcrumbs } from '@/app/components/AuthFlowBreadcrumbs/AuthFlowBreadcrumbs'; + +export function CreateSeed() { + const [phrase, setPhrase] = useMemory("seed-phrase", "", true); + const {copy} = useClipboard(); + const navigate = useNavigate(); + const {setSize, setResizeble} = useWindow(); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setSize(385, 555); + setResizeble(false); + setTimeout(() => setMounted(true), 100); + }, []); + + const openCopyModal = () => { + modals.openConfirmModal({ + title: 'Stop', + centered: true, + children: ( + + Do you really just want to copy your secret phrase and that's it? + We still recommend writing it down on a piece of paper rather than just copying it. + + ), + withCloseButton: false, + labels: { confirm: 'Copy', cancel: "Cancel" }, + confirmProps: { color: 'red' }, + onCancel: () => copy("") + }); + } + + const generate = async () => { + const mnemonic = await generateMnemonic(wordlist); + setPhrase(mnemonic); + } + + useEffect(() => { + generate(); + }, []); + + return ( + + + + + + {(styles) => ( + + + This seed phrase is needed to access your correspondence, save it in a safe place + + + )} + + + + {(styles) => ( + + + + )} + + + + {(styles) => ( + + + + } fullWidth onClick={() => navigate('/confirm-seed')} size={'md'}> + Next step + + + )} + + + + ); +} \ No newline at end of file diff --git a/app/views/DeviceConfirm/DeviceConfirm.tsx b/app/views/DeviceConfirm/DeviceConfirm.tsx new file mode 100644 index 0000000..d184089 --- /dev/null +++ b/app/views/DeviceConfirm/DeviceConfirm.tsx @@ -0,0 +1,59 @@ +import { PrivateView } from "@/app/components/PrivateView/PrivateView"; +import { ProtocolState } from "@/app/providers/ProtocolProvider/ProtocolProvider"; +import { useProtocolState } from "@/app/providers/ProtocolProvider/useProtocolState"; +import { Flex, Text } from "@mantine/core"; +import Lottie from "lottie-react"; +import { useEffect } from "react"; +import { useNavigate } from "react-router-dom"; +import animationData from './inbox.json' +import { AnimatedButton } from "@/app/components/AnimatedButton/AnimatedButton"; +import { useLogout } from "@/app/providers/AccountProvider/useLogout"; + +export function DeviceConfirm() { + const protocolState = useProtocolState(); + const navigate = useNavigate(); + const logout = useLogout(); + + useEffect(() => { + if(protocolState == ProtocolState.CONNECTED) { + navigate('/main'); + } + }, [protocolState]); + + return ( + + + + + + + + + Confirm new device + + + + + To confirm this device, please check your first device attached to your account and approve the new device. + + + + { + logout(); + }} variant="light" color="white" radius={'xl'} fullWidth animated={['#e03131', '#ff5656']}>Exit + + + + + + Confirm device {window.deviceName} on your first device to loading your chats. + + + + + + ) +} \ No newline at end of file diff --git a/app/views/DeviceConfirm/inbox.json b/app/views/DeviceConfirm/inbox.json new file mode 100644 index 0000000..45410cb --- /dev/null +++ b/app/views/DeviceConfirm/inbox.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 diff --git a/app/views/DialogPreview/DialogPreview.tsx b/app/views/DialogPreview/DialogPreview.tsx new file mode 100644 index 0000000..08b4f9a --- /dev/null +++ b/app/views/DialogPreview/DialogPreview.tsx @@ -0,0 +1,11 @@ +import { Box, Flex, Text } from "@mantine/core"; + +export function DialogPreview() { + return (<> + + + Select dialog + + + ); +} \ No newline at end of file diff --git a/app/views/Dialogs/Dialogs.tsx b/app/views/Dialogs/Dialogs.tsx new file mode 100644 index 0000000..59ad1b4 --- /dev/null +++ b/app/views/Dialogs/Dialogs.tsx @@ -0,0 +1,12 @@ +import { DialogsPanel } from "@/app/components/DialogsPanel/DialogsPanel"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { Navigate } from "react-router-dom"; + +export function Dialogs() { + const {lg} = useRosettaBreakpoints(); + return ( + <> + {lg ? : } + + ) +} \ No newline at end of file diff --git a/app/views/ExistsSeed/ExistsSeed.module.css b/app/views/ExistsSeed/ExistsSeed.module.css new file mode 100644 index 0000000..9228a35 --- /dev/null +++ b/app/views/ExistsSeed/ExistsSeed.module.css @@ -0,0 +1,27 @@ +.inner { + display: flex; + justify-content: center; + align-items: center; + padding-top: calc(var(--mantine-spacing-xl)); + } + + .content { + max-width: 480px; + } + + .title { + color: light-dark(var(--mantine-color-black), var(--mantine-color-white)); + font-family: + Greycliff CF, + var(--mantine-font-family); + font-size: 44px; + line-height: 1.2; + font-weight: 900; + } + + .highlight { + position: relative; + background-color: var(--mantine-color-blue-light); + border-radius: var(--mantine-radius-sm); + padding: 4px 12px; + } \ No newline at end of file diff --git a/app/views/ExistsSeed/ExistsSeed.tsx b/app/views/ExistsSeed/ExistsSeed.tsx new file mode 100644 index 0000000..243dfd7 --- /dev/null +++ b/app/views/ExistsSeed/ExistsSeed.tsx @@ -0,0 +1,82 @@ +import { useMemory } from "@/app/providers/MemoryProvider/useMemory"; +import { Flex, Text, Transition } from "@mantine/core"; +import { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { IconChevronRight } from "@tabler/icons-react"; +import { InputChainWords } from "@/app/components/InputChainWords/InputChainWords"; +import wordlist from "web-bip39/wordlists/english"; +import useWindow from "@/app/hooks/useWindow"; +import { AnimatedButton } from "@/app/components/AnimatedButton/AnimatedButton"; +import { AuthFlowBreadcrumbs } from "@/app/components/AuthFlowBreadcrumbs/AuthFlowBreadcrumbs"; + +export function ExistsSeed() { + const navigate = useNavigate(); + const [_, setPhrase] = useMemory("seed-phrase", "", true); + const [passed, setPassed] = useState(false); + const [words, setWords] = useState(""); + const {setSize, setResizeble} = useWindow(); + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setSize(385, 555); + setResizeble(false); + setTimeout(() => setMounted(true), 100); + }, []); + + const onPassed = (words : string[]) => { + setWords(words.join(" ")); + setPassed(true); + }; + + const onNotPassed = () => { + setPassed(false); + }; + + const onNextStep = () => { + setPhrase(words); + navigate('/set-password'); + } + + return ( + + + + + + {(styles) => ( + + + Enter your seed phrase that you generated or that was created when setting up your account + + + )} + + + + {(styles) => ( + + i + 1 + "."} wordlist={wordlist} onPassed={onPassed} onNotPassed={onNotPassed} words={12}> + + )} + + + + {(styles) => ( + + } + fullWidth + disabled={!passed} + onClick={() => onNextStep()} + size={'md'} + > + Next step + + + )} + + + + ); +} \ No newline at end of file diff --git a/app/views/GroupEncryption/GroupEncryption.tsx b/app/views/GroupEncryption/GroupEncryption.tsx new file mode 100644 index 0000000..aeaa0ff --- /dev/null +++ b/app/views/GroupEncryption/GroupEncryption.tsx @@ -0,0 +1,74 @@ +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { KeyImage } from "@/app/components/KeyImage/KeyImage"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Button, Flex, Text, Tooltip, useMantineTheme } from "@mantine/core"; +import { IconChevronLeft, IconLock } from "@tabler/icons-react"; +import { useNavigate, useParams } from "react-router-dom"; + +export function GroupEncryption() { + const params = useParams(); + const encryptKey = params.key!; + const theme = useMantineTheme(); + const colors = useRosettaColors(); + const navigate = useNavigate(); + + const translateStringToHex = (str: string) => { + return str.split('').map(c => { + /* + XOR for prevent share keys + */ + const hex = (c.charCodeAt(0) ^ 27).toString(16); + return hex.length === 1 ? '0' + hex : hex; + }).join(' '); + } + + return (<> + + + + + + + { + translateStringToHex(encryptKey.substring(0, 16)) + } + { + translateStringToHex(encryptKey.substring(16, 32)) + } + { + translateStringToHex(encryptKey.substring(32, 48)) + } + { + translateStringToHex(encryptKey.substring(48, 64)) + } + + + + + Your messages is secure + + + + + + + This key is used to encrypt and decrypt messages. Your messages is secure and not stored on our servers. + + + + + + + ) +} \ No newline at end of file diff --git a/app/views/GroupInfo/GroupInfo.tsx b/app/views/GroupInfo/GroupInfo.tsx new file mode 100644 index 0000000..39ab7c8 --- /dev/null +++ b/app/views/GroupInfo/GroupInfo.tsx @@ -0,0 +1,168 @@ +import { ActionAvatar } from "@/app/components/ActionAvatar/ActionAvatar"; +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { GroupInvite } from "@/app/components/GroupInvite/GroupInvite"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { KeyImage } from "@/app/components/KeyImage/KeyImage"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { SettingsPaper } from "@/app/components/SettingsPaper/SettingsPaper"; +import { SettingsText } from "@/app/components/SettingsText/SettingsText"; +import { SettingsTitle } from "@/app/components/SettingsTitle/SettingsTitle"; +import { UsersTable } from "@/app/components/UsersTable/UsersTable"; +import { VerifiedBadge } from "@/app/components/VerifiedBadge/VerifiedBadge"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { useGroupMembers } from "@/app/providers/InformationProvider/useGroupMembers"; +import { useGroups } from "@/app/providers/DialogProvider/useGroups"; +import { useGroupInformation } from "@/app/providers/InformationProvider/useGroupInformation"; +import { Button, Flex, Paper, Skeleton, Text, useMantineTheme } from "@mantine/core"; +import { IconBan, IconDoorExit, IconMessage } from "@tabler/icons-react"; +import { useEffect, useState } from "react"; +import { useNavigate, useParams } from "react-router-dom"; +import { modals } from "@mantine/modals"; + + +export function GroupInfo() { + const params = useParams(); + const {groupInfo} = useGroupInformation(params.id!); + const {members, loading: membersLoading} = useGroupMembers(params.id!, true); + const publicKey = usePublicKey(); + const isAdmin = members.length > 0 && members[0] == publicKey; + const colors = useRosettaColors(); + const navigate = useNavigate(); + const [groupKey, setGroupKey] = useState(''); + const {getGroupKey, leaveGroup, banUserOnGroup, loading, getPrefix} = useGroups(); + const theme = useMantineTheme(); + + useEffect(() => { + initGroupKey(); + }, [params.id]); + + const initGroupKey = async () => { + const key = await getGroupKey(groupInfo.groupId); + setGroupKey(key); + } + + const leaveGroupWithModal = () => { + modals.openConfirmModal({ + title: 'Leave group', + centered: true, + children: ( + + You are attempting to leave the group. Are you sure you want to proceed? + + ), + withCloseButton: false, + labels: { confirm: 'Leave', cancel: "Cancel" }, + confirmProps: { color: 'red' }, + onConfirm: () => { + leaveGroup(groupInfo.groupId); + } + }); + } + + const banUserWithModal = (userPublicKey: string) => { + modals.openConfirmModal({ + title: 'Ban user from group', + centered: true, + children: ( + + You are attempting to ban this user from the group. + + ), + withCloseButton: false, + labels: { confirm: 'Ban', cancel: "Cancel" }, + confirmProps: { color: 'red' }, + onConfirm: () => { + confirmBan(userPublicKey); + } + }); + } + + const confirmBan = (userPublicKey: string) => { + banUserOnGroup(userPublicKey, groupInfo.groupId); + } + + return ( + <> + } onClick={leaveGroupWithModal} p={0} pr={6} variant={'transparent'}>Leave + }> + + {(members.length > 0 || !membersLoading) && ( + <> + + + + {groupInfo.title.trim()} + + + {members.length} member{members.length !== 1 ? 's' : ''} + + + {groupInfo.description.trim().length > 0 && ( + + Information + + {groupInfo.description.trim()} + + + )} + {isAdmin && ( + + )} + navigate('/main/groupencrypt/' + groupKey)} hit="Encryption key" settingsIcon={ + + }> + Click to see encryption key for secure group communication + {members.length > 0 && isAdmin && ( + <> + Group Members + ( + <> + navigate('/main/chat/' + userPublicKey)} stroke={1.4} size={20} color={colors.brandColor}> + {publicKey == userPublicKey && ( + + )} + {publicKey != userPublicKey && isAdmin && ( + banUserWithModal(userPublicKey)} stroke={1.4} size={20} color={colors.error}> + )} + + )} usersPublicKeys={members} /> + + Members are listed in order of group creation. The first member is the group admin and can manage group settings. + + + )} + {!isAdmin && ( + + + Group administrator has marked in messages with + + + + )} + + )} + {membersLoading && members.length <= 0 && ( + <> + + + + + + + + )} + + + ); +} \ No newline at end of file diff --git a/app/views/Introduction/Introduction.module.css b/app/views/Introduction/Introduction.module.css new file mode 100644 index 0000000..acbab21 --- /dev/null +++ b/app/views/Introduction/Introduction.module.css @@ -0,0 +1,168 @@ +.wrapper { + box-sizing: border-box; + background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-8)); + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; + display: flex; + align-items: center; + align-content: center; + justify-content: center; + overflow: auto; + padding: 60px 20px 30px; +} + +.title { + font-family: + Greycliff CF, + var(--mantine-font-family); + font-size: 62px; + font-weight: 900; + line-height: 1.1; + margin-top: 70px; + padding: 0; + color: light-dark(var(--mantine-color-black), var(--mantine-color-white)); + + @media (max-width: $mantine-breakpoint-sm) { + font-size: 42px; + line-height: 1.2; + } + } + + .description { + margin-top: var(--mantine-spacing-xl); + font-size: 24px; + + @media (max-width: $mantine-breakpoint-sm) { + font-size: 18px; + } + } + + .controls { + margin-top: calc(var(--mantine-spacing-xl) * 2); + + @media (max-width: $mantine-breakpoint-sm) { + margin-top: var(--mantine-spacing-xl); + } + } + + .control { + height: 54px; + padding-left: 38px; + padding-right: 38px; + + @media (max-width: $mantine-breakpoint-sm) { + height: 54px; + padding-left: 18px; + padding-right: 18px; + flex: 1; + } + } + +.carousel { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + height: 340px; +} + +.slideContent { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + flex: 1; + justify-content: flex-start; + animation: fadeInSlide 0.5s ease-in-out; + width: 100%; +} + +@keyframes fadeInSlide { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.iconWrapper { + width: 160px; + height: 160px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 32px; + transition: all 0.5s ease; + animation: scaleIn 0.5s ease-in-out; +} + +@keyframes scaleIn { + from { + opacity: 0; + transform: scale(0.8); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.title { + font-size: 24px; + font-weight: 600; + margin-bottom: 16px; + color: light-dark(var(--mantine-color-black), var(--mantine-color-white)); + animation: fadeIn 0.5s ease-in-out 0.1s both; + min-height: 30px; +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +.description { + font-size: 15px; + color: light-dark(var(--mantine-color-gray-6), var(--mantine-color-dark-2)); + line-height: 1.5; + max-width: 300px; + animation: fadeIn 0.5s ease-in-out 0.2s both; + min-height: 68px; +} + +.dots { + margin: 20px 0; + gap: 8px; +} + +.dot { + width: 8px; + height: 8px; + border-radius: 50%; + background-color: light-dark(var(--mantine-color-gray-4), var(--mantine-color-dark-4)); + border: none; + cursor: pointer; + transition: all 0.3s ease; + padding: 0; +} + +.dot:hover { + background-color: light-dark(var(--mantine-color-gray-5), var(--mantine-color-dark-3)); +} + +.dotActive { + width: 24px; + border-radius: 4px; + background-color: light-dark(var(--mantine-color-blue-6), var(--mantine-color-blue-4)); +} \ No newline at end of file diff --git a/app/views/Introduction/Introduction.tsx b/app/views/Introduction/Introduction.tsx new file mode 100644 index 0000000..f744367 --- /dev/null +++ b/app/views/Introduction/Introduction.tsx @@ -0,0 +1,160 @@ +import { useEffect, useState } from 'react'; +import { Button, Group, Text, Flex } from '@mantine/core'; +import { IconShieldLock, IconBolt, IconDeviceMobile } from '@tabler/icons-react'; +import classes from './Introduction.module.css'; +import { useNavigate } from 'react-router-dom'; +import useWindow, { ElectronTheme } from '@/app/hooks/useWindow'; +import { AnimatedButton } from '@/app/components/AnimatedButton/AnimatedButton'; + +const slides = [ + { + title: 'Security', + description: 'Your data is protected by modern encryption and stays only on your device', + icon: IconShieldLock, + color: '#4CAF50', + }, + { + title: 'Speed', + description: 'Instant synchronization and fast performance without delays', + icon: IconBolt, + color: '#FF9800', + }, + { + title: 'Simple Interface', + description: 'Intuitive design that is clear at first glance', + icon: IconDeviceMobile, + color: '#2196F3', + }, +]; + +export function Introduction() { + const navigate = useNavigate(); + const {setSize, setResizeble, setTheme} = useWindow(); + const [activeSlide, setActiveSlide] = useState(0); + const [touchStart, setTouchStart] = useState(null); + const [touchEnd, setTouchEnd] = useState(null); + + // Минимальное расстояние свайпа (в px) + const minSwipeDistance = 50; + + useEffect(() => { + setSize(385, 555); + setResizeble(false); + setTheme(ElectronTheme.SYSTEM); + }, []); + + const handleGetStarted = () => { + navigate('/create-seed'); + }; + + const goToSlide = (index: number) => { + setActiveSlide(index); + }; + + const nextSlide = () => { + setActiveSlide((prev) => (prev + 1) % slides.length); + }; + + const prevSlide = () => { + setActiveSlide((prev) => (prev - 1 + slides.length) % slides.length); + }; + + const onTouchStart = (e: React.TouchEvent) => { + setTouchEnd(null); + setTouchStart(e.targetTouches[0].clientX); + }; + + const onTouchMove = (e: React.TouchEvent) => { + setTouchEnd(e.targetTouches[0].clientX); + }; + + const onTouchEnd = () => { + if (!touchStart || !touchEnd) return; + + const distance = touchStart - touchEnd; + const isLeftSwipe = distance > minSwipeDistance; + const isRightSwipe = distance < -minSwipeDistance; + + if (isLeftSwipe) { + nextSlide(); + } else if (isRightSwipe) { + prevSlide(); + } + }; + + const handleCarouselClick = () => { + nextSlide(); + }; + + const CurrentIcon = slides[activeSlide].icon; + + return ( +
+ +
+
+
+
+ +
+ + + {slides[activeSlide].title} + + + + {slides[activeSlide].description} + +
+ + + {slides.map((_, index) => ( +
+
+ + + Get Started + + + +
+
+ ); +} \ No newline at end of file diff --git a/app/views/Lockscreen/Lockscreen.module.css b/app/views/Lockscreen/Lockscreen.module.css new file mode 100644 index 0000000..fe15471 --- /dev/null +++ b/app/views/Lockscreen/Lockscreen.module.css @@ -0,0 +1,28 @@ + +.inner { + display: flex; + justify-content: center; + align-items: center; + padding-top: calc(var(--mantine-spacing-xl)); + } + + .content { + max-width: 480px; + } + + .title { + color: light-dark(var(--mantine-color-black), var(--mantine-color-white)); + font-family: + Greycliff CF, + var(--mantine-font-family); + font-size: 44px; + line-height: 1.2; + font-weight: 900; + } + + .highlight { + position: relative; + background-color: var(--mantine-color-blue-light); + border-radius: var(--mantine-radius-sm); + padding: 4px 12px; + } \ No newline at end of file diff --git a/app/views/Lockscreen/Lockscreen.tsx b/app/views/Lockscreen/Lockscreen.tsx new file mode 100644 index 0000000..74e9aac --- /dev/null +++ b/app/views/Lockscreen/Lockscreen.tsx @@ -0,0 +1,190 @@ +import { Anchor, AspectRatio, Avatar, Box, Flex, PasswordInput, Skeleton, Text, Transition} from "@mantine/core"; +import classes from './Lockscreen.module.css' +import { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import useWindow from "@/app/hooks/useWindow"; +import { decodeWithPassword, generateHashFromPrivateKey } from "@/app/crypto/crypto"; +import { useAccountProvider } from "@/app/providers/AccountProvider/useAccountProvider"; +import { Account, AccountBase } from "@/app/providers/AccountProvider/AccountProvider"; +import { useUserCache } from "@/app/providers/InformationProvider/useUserCache"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { IconArrowsExchange, IconFingerprint } from "@tabler/icons-react"; +import { SIZE_LOGIN_WIDTH_PX } from "@/app/constants"; +import { modals } from "@mantine/modals"; +import { useAvatars } from "@/app/providers/AvatarProvider/useAvatars"; +import { AnimatedButton } from "@/app/components/AnimatedButton/AnimatedButton"; +import { DiceDropdown } from "@/app/components/DiceDropdown/DiceDropdown"; +import { dotCenterIfNeeded } from "@/app/utils/utils"; + +export function Lockscreen() { + const [password, setPassword] = useState(""); + const navigate = useNavigate(); + const { setSize, setResizeble } = useWindow(); + const { allAccounts, selectAccountToLoginDice, loginDiceAccount, loginAccount } = useAccountProvider(); + const userInfo = useUserCache(loginDiceAccount.publicKey); + const [error, setError] = useState(false); + const colors = useRosettaColors(); + const avatars = useAvatars(loginDiceAccount.publicKey); + const [mounted, setMounted] = useState(false); + + + useEffect(() => { + setSize(385, 555); + setResizeble(false); + setTimeout(() => setMounted(true), 100); + }, []); + + useEffect(() => { + if (loginDiceAccount.publicKey == "" && allAccounts.length <= 0) { + navigate("/"); + return; + } + }, [loginDiceAccount]) + + const onUnlockPressed = async () => { + try { + const decryptedHex = await decodeWithPassword(password, loginDiceAccount.privateKey); + const privateKeyHash = await generateHashFromPrivateKey(decryptedHex); + + const account: Account = { + privateKey: loginDiceAccount.privateKey, + publicKey: loginDiceAccount.publicKey, + privateHash: privateKeyHash, + privatePlain: decryptedHex, + seedPhraseEncrypted: loginDiceAccount.seedPhraseEncrypted + }; + + loginAccount(account); + + navigate("/main"); + } catch (e) { + setError(true); + } + } + + const createAccount = () => { + modals.openConfirmModal({ + title: 'Create account', + centered: true, + children: ( + + You may be create new account or import existing + + ), + withCloseButton: false, + labels: { confirm: 'Create new', cancel: "Import" }, + cancelProps: { + autoFocus: false, + style: { + outline: 'none' + } + }, + onCancel: () => { + navigate("/exists-seed"); + }, + onConfirm: () => { + navigate("/create-seed"); + } + }); + } + + const selectAccount = (account: AccountBase) => { + selectAccountToLoginDice(account); + } + + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + if (event.key === "Enter") { + event.preventDefault(); + onUnlockPressed(); + } + }; + + window.addEventListener("keydown", handleKeyDown); + return () => { + window.removeEventListener("keydown", handleKeyDown); + }; + }, [onUnlockPressed]); + + return ( + +
+
+ + {userInfo && ( + + + + 0 ? avatars[0].avatar : undefined} size={80} color={'initials'} name={userInfo.title}> + + + {dotCenterIfNeeded(userInfo.title, 20, 5)} + + + + + For unlock account enter password + + + )} + {!userInfo && ( + + + + + + + )} + + + {(styles) => ( + + { setPassword(e.target.value); setError(false) }} + size="md" + w={SIZE_LOGIN_WIDTH_PX} + error={error && "Invalid password"} + styles={{ + input: { + border: '0px solid ' + colors.borderColor, + backgroundColor: colors.mainColor + }, + error: { + color: colors.error + } + }} + /> + + + } animated={['#2DA5FF', '#87DBFF']} size={'md'} onClick={onUnlockPressed}>Enter + + + )} + +
+
+ + {(styles) => ( + + + You can also navigate('/exists-seed')}>recover your password or create a new account. + + + )} + +
+ ) +} \ No newline at end of file diff --git a/app/views/Main/Main.module.css b/app/views/Main/Main.module.css new file mode 100644 index 0000000..00c2c26 --- /dev/null +++ b/app/views/Main/Main.module.css @@ -0,0 +1,5 @@ +.dialogs_wrapper { + display: flex; + flex-direction: column; + overflow-y: scroll; +} diff --git a/app/views/Main/Main.tsx b/app/views/Main/Main.tsx new file mode 100644 index 0000000..beea69d --- /dev/null +++ b/app/views/Main/Main.tsx @@ -0,0 +1,179 @@ +import { Alert, Box, Button, Divider, Flex, Overlay } from "@mantine/core"; +import { useEffect, useState } from "react"; +import { Route, Routes, useLocation, useNavigate } from "react-router-dom"; +import { Profile } from "@/app/views/Profile/Profile"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { DialogPreview } from "@/app/views/DialogPreview/DialogPreview"; +import { Theme } from "../Theme/Theme"; +import { Safety } from "../Safety/Safety"; +import { Backup } from "../Backup/Backup"; +import { Chat } from "../Chat/Chat"; +import { PrivateView } from "@/app/components/PrivateView/PrivateView"; +import { useDialogFiber } from "@/app/providers/DialogProvider/useDialogFiber"; +import { Update } from "../Update/Update"; +import { useRosettaBreakpoints } from "@/app/hooks/useRosettaBreakpoints"; +import { Dialogs } from "../Dialogs/Dialogs"; +import { DialogsPanel } from "@/app/components/DialogsPanel/DialogsPanel"; +import { useViewPanelsState, ViewPanelsState } from "@/app/hooks/useViewPanelsState"; +import { TransportProvider } from "@/app/providers/TransportProvider/TransportProvider"; +import { useDebouncedCallback } from "@mantine/hooks"; +import { SystemAccountProvider } from "@/app/providers/SystemAccountsProvider/SystemAccountsProvider"; +import { CreateGroup } from "../CreateGroup/CreateGroup"; +import { GroupInfo } from "../GroupInfo/GroupInfo"; +import { GroupEncryption } from "../GroupEncryption/GroupEncryption"; +import useWindow from "@/app/hooks/useWindow"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { useDatabase } from "@/app/providers/DatabaseProvider/useDatabase"; +import { useMemoryClean } from "@/app/providers/MemoryProvider/useMemoryClean"; +import { useAccountProvider } from "@/app/providers/AccountProvider/useAccountProvider"; +import { useLogout } from "@/app/providers/AccountProvider/useLogout"; + +export function Main() { + const { mainColor, borderColor } = useRosettaColors(); + const { lg } = useRosettaBreakpoints(); + const location = useLocation(); + const [viewState, setViewState] = useViewPanelsState(); + useDialogFiber(); + const { setSize, setResizeble } = useWindow(); + + /** + * Operation: OLD PUBLIC KEY MIGRATION + */ + const publicKey = usePublicKey(); + const [oldPublicKey, setOldPublicKey] = useState(false); + const { runQuery } = useDatabase(); + const navigate = useNavigate(); + const memClean = useMemoryClean(); + const { setAccounts } = useAccountProvider(); + const logout = useLogout(); + + useEffect(() => { + if (publicKey.length > 80) { + /** + * Old public keys + */ + setOldPublicKey(true); + } + }, [publicKey]); + + const dropAccountsAndMessages = async () => { + localStorage.clear(); + await runQuery("DELETE FROM accounts"); + await runQuery("DELETE FROM messages"); + await runQuery("DELETE FROM dialogs"); + memClean(); + setAccounts([]); + logout(); + setTimeout(() => { + navigate("/"); + }, 500); + } + + useEffect(() => { + let { width, height } = getWindowSavedSize(); + setSize(width, height); + setResizeble(true); + + const sizeListener = () => { + saveSize(window.innerWidth, window.innerHeight); + }; + window.addEventListener("resize", sizeListener); + + return () => { + window.removeEventListener("resize", sizeListener); + } + }, []); + + + useEffect(() => { + if (lg && viewState == ViewPanelsState.DIALOGS_PANEL_ONLY) { + setViewState(ViewPanelsState.DIALOGS_PANEL_SHOW); + return; + } + if (!lg && location.pathname != '/main') { + setViewState(ViewPanelsState.DIALOGS_PANEL_HIDE); + return; + } + if (!lg && location.pathname == '/main' && window.innerWidth < 770) { + setViewState(ViewPanelsState.DIALOGS_PANEL_ONLY); + return; + } + if (!lg) { + setViewState(ViewPanelsState.DIALOGS_PANEL_HIDE); + return; + } + if (lg) { + setViewState(ViewPanelsState.DIALOGS_PANEL_SHOW); + return; + } + }, [lg, location]); + + const saveSize = useDebouncedCallback((w: number, h: number) => { + localStorage.setItem("windowWidth", w.toString()); + localStorage.setItem("windowHeight", h.toString()); + }, 1000); + + const getWindowSavedSize = () => { + const savedWidth = localStorage.getItem("windowWidth"); + const savedHeight = localStorage.getItem("windowHeight"); + return { + width: savedWidth ? parseInt(savedWidth) : window.innerWidth, + height: savedHeight ? parseInt(savedHeight) : window.innerHeight + } + } + + + return ( + + + + +
+ +
+ + {viewState != ViewPanelsState.DIALOGS_PANEL_ONLY && + + }> + }> + }> + }> + }> + }> + }> + }> + }> + }> + }> + + } +
+ {oldPublicKey && ( + + + + Your account uses an old format public key which is no longer supported. Please create a new account to continue using the application. +

After press "OK" button, the application will close and remove all data. +
+ +
+
+ )} +
+
+
); +} \ No newline at end of file diff --git a/app/views/Profile/MyProfile.tsx b/app/views/Profile/MyProfile.tsx new file mode 100644 index 0000000..b6877f5 --- /dev/null +++ b/app/views/Profile/MyProfile.tsx @@ -0,0 +1,143 @@ +import { ColorSwatch, Text, useComputedColorScheme } from "@mantine/core"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { useState } from "react"; +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { useNavigate } from "react-router-dom"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { PacketUserInfo } from "@/app/providers/ProtocolProvider/protocol/packets/packet.userinfo"; +import { PacketResult, ResultCode } from "@/app/providers/ProtocolProvider/protocol/packets/packet.result"; +import { ProfileCard } from "@/app/components/ProfileCard/ProfileCard"; +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; +import { OnlineState } from "@/app/providers/ProtocolProvider/protocol/packets/packet.onlinestate"; +import { usePrivateKeyHash } from "@/app/providers/AccountProvider/usePrivateKeyHash"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { useSender } from "@/app/providers/ProtocolProvider/useSender"; +import { usePacket } from "@/app/providers/ProtocolProvider/usePacket"; +import { SettingsIcon } from "@/app/components/SettingsIcon/SettingsIcon"; +import { IconBrush, IconHomeCog, IconLogout, IconRefresh } from "@tabler/icons-react"; +import { useLogout } from "@/app/providers/AccountProvider/useLogout"; +import { RosettaPower } from "@/app/components/RosettaPower/RosettaPower"; + +export function MyProfile() { + const publicKey = usePublicKey(); + const [userInfo, updateUserInformation] = useUserInformation(publicKey); + const privateKey = usePrivateKeyHash(); + const [title, setTitle] = useState(userInfo.title); + const [username, setUsername] = useState(userInfo.username); + const colorScheme = useComputedColorScheme(); + const navigate = useNavigate(); + const send = useSender(); + const logout = useLogout(); + + const saveProfileData = () => { + let packet = new PacketUserInfo(); + packet.setUsername(username); + packet.setTitle(title); + packet.setPrivateKey(privateKey); + send(packet); + } + usePacket(0x2, function (packet : PacketResult) { + switch (packet.getResultCode()) { + case ResultCode.SUCCESS: + updateUserInformation({ + username: username, + title: title, + publicKey: publicKey, + online: OnlineState.OFFLINE, + verified: userInfo.verified + }); + break; + } + }, [title, username]); + + return ( + <> + + + + + setTitle(e.target.value)} + > + setUsername(e.target.value)} + > + + + + This is your public key. If you haven't set a @username yet, you can ask a friend to message you using your public key. + + + + } + hit="Updates" + onClick={() => navigate('/main/update')} + mt={'sm'} + > + + You can check for new versions of the app here. Updates may include security improvements and new features. + + + + } + onClick={() => navigate('/main/theme')} mt={'sm'} hit="Theme" rightSection={ + + }> + + You can change the theme. + + + + } + hit="Safety" + onClick={() => navigate('/main/safety')} + mt={'sm'} + > + + You can learn more about your safety on the safety page, + please make sure you are viewing the screen alone before proceeding to the safety page. + + + + } + hit={'Logout'} + mt={'sm'} + onClick={logout} + rightChevronHide + c={'red'} + > + + Logging out of your account. After logging out, you will be redirected to the password entry page. + + + + + ); +} \ No newline at end of file diff --git a/app/views/Profile/OtherProfile.tsx b/app/views/Profile/OtherProfile.tsx new file mode 100644 index 0000000..c2193af --- /dev/null +++ b/app/views/Profile/OtherProfile.tsx @@ -0,0 +1,68 @@ +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { ProfileCard } from "@/app/components/ProfileCard/ProfileCard"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { useBlacklist } from "@/app/providers/BlacklistProvider/useBlacklist"; +import { useUserInformation } from "@/app/providers/InformationProvider/useUserInformation"; +import { Text } from "@mantine/core"; + +interface OtherProfileProps { + publicKey: string; +} + +export function OtherProfile(props : OtherProfileProps) { + const [userInfo] = useUserInformation(props.publicKey); + const [blocked, blockUser, unblockUser] = useBlacklist(userInfo.publicKey); + + return ( + <> + + + + {userInfo.username.trim() != "" && ( + <> + + + Username for search user or send message. + + + )} + + + This is user public key. If user haven't set a @username yet, you can send message using your public key. + + {blocked && (<> + + + + If you want the user to be able to send you messages again, you can unblock them. You can block them later. + + )} + {!blocked && (<> + + + + The person will no longer be able to message you if you block them. You can unblock them later. + + )} + + + ); +} \ No newline at end of file diff --git a/app/views/Profile/Profile.module.css b/app/views/Profile/Profile.module.css new file mode 100644 index 0000000..37143b5 --- /dev/null +++ b/app/views/Profile/Profile.module.css @@ -0,0 +1,9 @@ +.icon { + color: light-dark(var(--mantine-color-gray-5), var(--mantine-color-dark-3)); + } + +.name { +font-family: + Greycliff CF, + var(--mantine-font-family); +} \ No newline at end of file diff --git a/app/views/Profile/Profile.tsx b/app/views/Profile/Profile.tsx new file mode 100644 index 0000000..4c7b8fb --- /dev/null +++ b/app/views/Profile/Profile.tsx @@ -0,0 +1,16 @@ +import { useParams } from "react-router-dom"; +import { MyProfile } from "./MyProfile"; +import { OtherProfile } from "./OtherProfile"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; + +export function Profile() { + const params = useParams(); + const publicKey = usePublicKey(); + + return ( + <> + {params.id == "me" || params.id == publicKey ? : + } + + ); +} \ No newline at end of file diff --git a/app/views/Safety/Safety.tsx b/app/views/Safety/Safety.tsx new file mode 100644 index 0000000..ecaa831 --- /dev/null +++ b/app/views/Safety/Safety.tsx @@ -0,0 +1,83 @@ +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { useAccount } from "@/app/providers/AccountProvider/useAccount"; +import { useAccountProvider } from "@/app/providers/AccountProvider/useAccountProvider"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { Text } from "@mantine/core"; +import { modals } from "@mantine/modals"; +import { useNavigate } from "react-router-dom"; + +export function Safety() { + const publicKey = usePublicKey(); + const [account, deleteAccount] = useAccount(); + const {removeAccountFromLoginDice} = useAccountProvider(); + + const navigate = useNavigate(); + + const openDeleteModal = () => { + modals.openConfirmModal({ + title: 'Account delete', + centered: true, + children: ( + + You are attempting to delete your account. Are you sure you want to proceed? This will result in a complete loss of data. + + ), + withCloseButton: false, + labels: { confirm: 'Continue', cancel: "No, sorry" }, + confirmProps: { color: 'red' }, + onConfirm: accountDelete + }); + } + + const accountDelete = () => { + removeAccountFromLoginDice(); + deleteAccount(); + navigate("/"); + } + + return ( + <> + + + + + This is your public key. If you haven't set a @username yet, you can ask a friend to message you using your public key. + + + + This is your private key. For security reasons, we provide it only in an encrypted form so you can simply admire it. + If anyone asks you for this key, please do not share it. + + navigate("/main/backup")} + > + + + Please save your seed phrase, it is necessary for future access to your conversations. + Do not share this seed phrase with anyone, otherwise, the person you share it with will gain access to your conversations. + + + + + This action cannot be undone, it will result in the complete deletion of account data from your device. + Please note, this will also delete your data on the server, such as your avatar, encrypted messages, and username. + + + + ) +} \ No newline at end of file diff --git a/app/views/SetPassword/SetPassword.module.css b/app/views/SetPassword/SetPassword.module.css new file mode 100644 index 0000000..9228a35 --- /dev/null +++ b/app/views/SetPassword/SetPassword.module.css @@ -0,0 +1,27 @@ +.inner { + display: flex; + justify-content: center; + align-items: center; + padding-top: calc(var(--mantine-spacing-xl)); + } + + .content { + max-width: 480px; + } + + .title { + color: light-dark(var(--mantine-color-black), var(--mantine-color-white)); + font-family: + Greycliff CF, + var(--mantine-font-family); + font-size: 44px; + line-height: 1.2; + font-weight: 900; + } + + .highlight { + position: relative; + background-color: var(--mantine-color-blue-light); + border-radius: var(--mantine-radius-sm); + padding: 4px 12px; + } \ No newline at end of file diff --git a/app/views/SetPassword/SetPassword.tsx b/app/views/SetPassword/SetPassword.tsx new file mode 100644 index 0000000..82e729a --- /dev/null +++ b/app/views/SetPassword/SetPassword.tsx @@ -0,0 +1,142 @@ +import { Box, Flex, PasswordInput, Text, Transition } from "@mantine/core"; +import { useEffect, useState } from "react"; +import Lottie from "lottie-react"; +import animationData from './lottie.json' +import { useMemory } from "@/app/providers/MemoryProvider/useMemory"; +import { mnemonicToSeed } from "web-bip39"; +import { useNavigate } from "react-router-dom"; +import { modals } from "@mantine/modals"; +import { Buffer } from 'buffer' +import { encodeWithPassword, generateHashFromPrivateKey, generateKeyPairFromSeed } from "@/app/crypto/crypto"; +import { useAccountProvider } from "@/app/providers/AccountProvider/useAccountProvider"; +import { Account } from "@/app/providers/AccountProvider/AccountProvider"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { AnimatedButton } from "@/app/components/AnimatedButton/AnimatedButton"; +import { IconChevronRight } from "@tabler/icons-react"; +import { SIZE_LOGIN_WIDTH_PX } from "@/app/constants"; + + +export function SetPassword() { + const navigate = useNavigate(); + const [password, setPassword] = useState(""); + const [confirm, setConfirm] = useState(""); + const [phrase, _] = useMemory("seed-phrase", ""); + const [mounted, setMounted] = useState(false); + const colors = useRosettaColors(); + + const { createAccount, loginAccount, selectAccountToLoginDice } = useAccountProvider(); + + const openInsecurePasswordModal = () => { + modals.openConfirmModal({ + title: 'Insecure password', + centered: true, + children: ( + + Your password is insecure, + such passwords are easy to guess, come up with a new one, or, which is not recommended, leave this one + + ), + withCloseButton: false, + labels: { confirm: 'Continue', cancel: "I'll come up with a new one" }, + confirmProps: { color: 'red' }, + onConfirm: doneSetup + }); + } + + useEffect(() => { + if (phrase.trim() == "") { + navigate("/"); + } + setTimeout(() => setMounted(true), 100); + }, []); + + const doneSetup = async () => { + let seed = await mnemonicToSeed(phrase); + let hex = Buffer.from(seed).toString('hex'); + let keypair = await generateKeyPairFromSeed(hex); + const encrypted = await encodeWithPassword(password, keypair.privateKey); + const privateKeyHash = await generateHashFromPrivateKey(keypair.privateKey); + + const account: Account = { + publicKey: keypair.publicKey, + privateKey: encrypted, + privatePlain: keypair.privateKey, + privateHash: privateKeyHash, + seedPhraseEncrypted: await encodeWithPassword(password, phrase) + } + + createAccount(account); + loginAccount(account); + selectAccountToLoginDice(account); + + navigate("/main"); + } + + const onDone = async () => { + if (!password.match(/[A-Z]+/) || !password.match(/[0-9]+/) || !password.match(/[$@#&!]+/)) { + openInsecurePasswordModal(); + return; + } + doneSetup(); + } + + return ( + + + + + + + + + Protect account + + + Create a password to protect your account + + + + + {(styles) => ( + + setPassword(e.target.value)} size="md"> + setConfirm(e.target.value)} size="md"> + } animated={['#2DA5FF', '#87DBFF']} fullWidth onClick={onDone} size={'md'}> + Start + + + )} + + + + {(styles) => ( + + + Your password never leaves your device and is never stored anywhere. + + + )} + + + + ) +} \ No newline at end of file diff --git a/app/views/SetPassword/lottie.json b/app/views/SetPassword/lottie.json new file mode 100644 index 0000000..71f17a4 --- /dev/null +++ b/app/views/SetPassword/lottie.json @@ -0,0 +1 @@ +{"tgs":1,"v":"5.5.2","fr":60,"ip":0,"op":180,"w":512,"h":512,"nm":"key","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":3,"nm":"Null 1117","sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":0,"k":[242.5,283.5,0]},"a":{"a":0,"k":[126.923,113.462,0]},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[104,104,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":40,"s":[103,103,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":95,"s":[103,103,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":137,"s":[103,103,100]},{"t":179,"s":[104,104,100]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","parent":2,"sr":1,"ks":{"r":{"a":0,"k":-49.844},"p":{"a":0,"k":[-36.5,21.5,0]},"a":{"a":0,"k":[139,-42,0]},"s":{"a":0,"k":[90,90,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[139,-42],[139,-123]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":72,"s":[6]},{"t":82,"s":[0]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[124,-32]},"a":{"a":0,"k":[139,-42]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":-35},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 5","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[139,-42],[139,-123]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":72,"s":[6]},{"t":82,"s":[0]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[109,-22]},"a":{"a":0,"k":[139,-42]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":-70},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 4","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[139,-42],[139,-123]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":72,"s":[6]},{"t":82,"s":[0]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[169,-22]},"a":{"a":0,"k":[139,-42]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":70},"o":{"a":0,"k":100},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Shape 3","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[139,-42],[139,-123]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":72,"s":[6]},{"t":82,"s":[0]}]},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[154,-32]},"a":{"a":0,"k":[139,-42]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":35},"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":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[139,-42],[139,-123]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":72,"s":[6]},{"t":82,"s":[0]}]},"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":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":74,"s":[0]},{"t":82,"s":[100]}]},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":66,"s":[0]},{"t":77.5,"s":[100]}]},"o":{"a":0,"k":0},"m":1,"nm":"Trim Paths 1","hd":false}],"ip":66,"op":82,"st":-24,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"click","parent":2,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":64,"s":[136.5,78.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":66,"s":[140.5,80.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":69,"s":[136.5,78.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":112,"s":[136.5,78.5,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":114,"s":[140.5,80.5,0],"to":[0,0,0],"ti":[0,0,0]},{"t":117,"s":[136.5,78.5,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"master","parent":4,"sr":1,"ks":{"o":{"a":0,"k":0},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":48,"s":[-45]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":120,"s":[-45]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":123,"s":[-45]},{"t":180,"s":[0]}]},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":0,"s":[-42,72,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.33,"y":0.33},"t":35,"s":[-52,-34,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":120,"s":[-52,-34,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0,"y":1},"o":{"x":0.33,"y":0},"t":130,"s":[-84,-38,0],"to":[0,0,0],"ti":[0,0,0]},{"t":169,"s":[-42,72,0]}]},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.3],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":40,"s":[75,75,100]},{"i":{"x":[0.3,0.3,0.3],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":120,"s":[75,75,100]},{"i":{"x":[0.3,0.3,0.3],"y":[1,1,1]},"o":{"x":[0.33,0.33,0.33],"y":[0,0,0]},"t":130,"s":[75,75,100]},{"t":150,"s":[100,100,100]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":3,"nm":"key RL","parent":5,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[150,-63,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.33,"y":0.33},"t":40,"s":[10,-63,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":126,"s":[10,-63,0],"to":[0,0,0],"ti":[0,0,0]},{"t":150,"s":[150,-63,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":3,"nm":"key updown","parent":6,"sr":1,"ks":{"o":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.67,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.66,"y":0},"t":10,"s":[0,-20,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.34,"y":1},"o":{"x":0.167,"y":0},"t":40,"s":[0,380,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"t":60,"s":[0,192,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":120,"s":[0,192,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130,"s":[0,370,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":150,"s":[0,-20,0],"to":[0,0,0],"ti":[0,0,0]},{"t":160,"s":[0,0,0]}]}},"ao":0,"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"side key 3","parent":9,"sr":1,"ks":{"o":{"a":1,"k":[{"t":59,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":120,"s":[100]},{"t":121,"s":[0],"h":1}]},"r":{"a":0,"k":-180},"p":{"a":0,"k":[369.877,260.324,0]},"a":{"a":0,"k":[-37.125,202.75,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,-6.5],[-1,-12.5],[-91.25,-5.5],[0.125,-0.125],[-70.25,55.75],[-8.75,4],[0,0]],"o":[[0,0],[0,0],[0,0],[-8.25,6],[-70.5,55],[3.041,0.064],[-95,-3.75],[0,-13],[-0.75,-41.75],[0,0]],"v":[[-31.75,13.125],[-31.75,13.125],[-65.25,48.75],[-66.25,202],[-78.5,224.5],[-34.125,390.875],[-32.094,390.938],[-78.25,224.25],[-66,202.25],[-65.125,48.75]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0]],"v":[[-31.75,13.5],[-52.5,14],[-52.5,46],[-52.5,204],[-52.5,221],[-52.5,392],[-31.75,392],[-31.75,220.75],[-31.75,203],[-31.75,45.25]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0]],"v":[[-31.75,13.5],[-52.5,14],[-52.5,46],[-52.5,204],[-52.5,221],[-52.5,392],[-31.75,392],[-31.75,220.75],[-31.75,203],[-31.75,45.25]],"c":true}]},{"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[0,-6.5],[-1,-12.5],[-91.25,-5.5],[0.125,-0.125],[-70.25,55.75],[-8.75,4],[0,0]],"o":[[0,0],[0,0],[0,0],[-8.25,6],[-70.5,55],[3.041,0.064],[-95,-3.75],[0,-13],[-0.75,-41.75],[0,0]],"v":[[-31.75,13.125],[-31.75,13.125],[-65.25,48.75],[-66.25,202],[-78.5,224.5],[-34.125,390.875],[-32.094,390.938],[-78.25,224.25],[-66,202.25],[-65.125,48.75]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.666666686535,0.435294121504,0.027450980619,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.721568644047,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"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}],"ip":129,"op":180,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"key 3","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[-14]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":40,"s":[180]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":126,"s":[180]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":154,"s":[-14]},{"t":167,"s":[0]}]},"p":{"a":0,"k":[0.376,-5.463,0]},"a":{"a":0,"k":[364.376,259.537,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,22.832],[-9.901,13.36]],"o":[[-15.289,-14.63],[0,-17.905],[0,0]],"v":[[12.405,52.937],[-12.405,-5.134],[3.351,-52.937]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,22.832],[0.042,13.36]],"o":[[0.064,-14.63],[0,-17.905],[0,0]],"v":[[67.016,52.937],[67.121,-5.134],[67.055,-52.937]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,22.832],[0.042,13.36]],"o":[[0.064,-14.63],[0,-17.905],[0,0]],"v":[[67.016,52.937],[67.121,-5.134],[67.055,-52.937]],"c":false}]},{"t":120,"s":[{"i":[[0,0],[0,22.832],[-9.901,13.36]],"o":[[-15.289,-14.63],[0,-17.905],[0,0]],"v":[[12.405,52.937],[-12.405,-5.134],[3.351,-52.937]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.858823537827,0.270588248968,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[297.588,164.947]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[-2.272,1.494]],"o":[[2.103,-1.71],[0,0]],"v":[[-3.283,2.405],[3.283,-2.405]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0.01,1.494]],"o":[[-0.009,-1.71],[0,0]],"v":[[46.411,2.405],[46.383,-2.405]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0.01,1.494]],"o":[[-0.009,-1.71],[0,0]],"v":[[46.411,2.405],[46.383,-2.405]],"c":false}]},{"t":120,"s":[{"i":[[0,0],[-2.272,1.494]],"o":[[2.103,-1.71],[0,0]],"v":[[-3.283,2.405],[3.283,-2.405]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.858823537827,0.270588248968,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[318.173,95.017]},"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":[318.173,95.017]},"a":{"a":0,"k":[318.173,95.017]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-4.003,-2.592],[-5.276,-3.791],[2.654,-2.585],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.826,0.969],[0,0],[0,5.276],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,4.891],[2.138,1.384],[3.009,2.162],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.067],[0,0],[4.661,-2.472],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-44.232,-5.583],[-20.826,11.587],[-20.151,20.687],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.103,-2.573],[38.581,-3.888],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.017,-2.592],[0.022,-3.791],[-0.011,-2.585],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.969],[0,0],[0,5.276],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,4.891],[-0.009,1.384],[-0.013,2.162],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.067],[0,0],[-0.02,-2.472],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.62,-5.583],[-0.718,11.587],[-0.721,20.687],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.573],[-0.968,-3.888],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.017,-2.592],[0.022,-3.791],[-0.011,-2.585],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.969],[0,0],[0,5.276],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,4.891],[-0.009,1.384],[-0.013,2.162],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.067],[0,0],[-0.02,-2.472],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.62,-5.583],[-0.718,11.587],[-0.721,20.687],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.573],[-0.968,-3.888],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"t":120,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-4.003,-2.592],[-5.276,-3.791],[2.654,-2.585],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.826,0.969],[0,0],[0,5.276],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,4.891],[2.138,1.384],[3.009,2.162],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.067],[0,0],[4.661,-2.472],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-44.232,-5.583],[-20.826,11.587],[-20.151,20.687],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.103,-2.573],[38.581,-3.888],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"st","c":{"a":0,"k":[0.666666686535,0.435294121504,0.027450980619,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":[365.178,260.907]},"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":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[3.272,-80.647],[3.5,81.262],[-3.5,74.062],[-3.5,42.102],[1.99,37.212],[1.99,31.422],[-3.5,26.522],[-3.5,-4.358],[1.92,-9.668],[1.84,-15.548],[-3.5,-20.478],[-3.5,-75.658],[0.49,-80.305]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[16.96,-80.647],[16.959,81.262],[16.989,74.062],[16.989,42.102],[16.966,37.212],[16.966,31.422],[16.989,26.522],[16.989,-4.358],[16.966,-9.668],[16.966,-15.548],[16.989,-20.478],[16.989,-75.658],[16.972,-80.305]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[16.96,-80.647],[16.959,81.262],[16.989,74.062],[16.989,42.102],[16.966,37.212],[16.966,31.422],[16.989,26.522],[16.989,-4.358],[16.966,-9.668],[16.966,-15.548],[16.989,-20.478],[16.989,-75.658],[16.972,-80.305]],"c":true}]},{"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[3.272,-80.647],[3.5,81.262],[-3.5,74.062],[-3.5,42.102],[1.99,37.212],[1.99,31.422],[-3.5,26.522],[-3.5,-4.358],[1.92,-9.668],[1.84,-15.548],[-3.5,-20.478],[-3.5,-75.658],[0.49,-80.305]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411792755,0.360784322023,0.117647059262,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[347.473,356.925]},"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":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[1.19,-1.27]],"v":[[6.272,-80.78],[6.5,80.787],[-0.5,73.587],[-6.5,67.417],[-6.5,46.977],[-0.5,41.627],[4.99,36.737],[4.99,30.947],[-0.5,26.047],[-6.5,20.697],[-6.5,1.037],[-0.5,-4.833],[4.92,-10.143],[4.84,-16.023],[-0.5,-20.953],[-6.5,-26.493],[-6.5,-69.743],[-0.5,-76.133],[1.42,-78.183]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.005,-1.27]],"v":[[19.96,-80.78],[19.959,80.787],[19.989,73.587],[20.014,67.417],[20.014,46.977],[19.989,41.627],[19.966,36.737],[19.966,30.947],[19.989,26.047],[20.014,20.697],[20.014,1.037],[19.989,-4.833],[19.966,-10.143],[19.966,-16.023],[19.989,-20.953],[20.014,-26.493],[20.014,-69.743],[19.989,-76.133],[19.981,-78.183]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.005,-1.27]],"v":[[19.96,-80.78],[19.959,80.787],[19.989,73.587],[20.014,67.417],[20.014,46.977],[19.989,41.627],[19.966,36.737],[19.966,30.947],[19.989,26.047],[20.014,20.697],[20.014,1.037],[19.989,-4.833],[19.966,-10.143],[19.966,-16.023],[19.989,-20.953],[20.014,-26.493],[20.014,-69.743],[19.989,-76.133],[19.981,-78.183]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[1.19,-1.27]],"v":[[6.272,-80.78],[6.5,80.787],[-0.5,73.587],[-6.5,67.417],[-6.5,46.977],[-0.5,41.627],[4.99,36.737],[4.99,30.947],[-0.5,26.047],[-6.5,20.697],[-6.5,1.037],[-0.5,-4.833],[4.92,-10.143],[4.84,-16.023],[-0.5,-20.953],[-6.5,-26.493],[-6.5,-69.743],[-0.5,-76.133],[1.42,-78.183]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.858823537827,0.270588248968,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[344.473,357.4]},"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":[344.473,357.4]},"a":{"a":0,"k":[344.473,357.4]},"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":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[-1.93,0],[-0.18,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[1.82,0],[0.01,0.12]],"v":[[3.5,-82.67],[3.5,78.96],[-3.5,86.17],[-3.5,-82.67],[0,-86.17],[3.48,-83.03]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0.008,0],[0.001,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[-0.008,0],[0,0.12]],"v":[[-17.184,-82.67],[-17.184,78.96],[-17.154,86.17],[-17.154,-82.67],[-17.169,-86.17],[-17.184,-83.03]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0.008,0],[0.001,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[-0.008,0],[0,0.12]],"v":[[-17.184,-82.67],[-17.184,78.96],[-17.154,86.17],[-17.154,-82.67],[-17.169,-86.17],[-17.184,-83.03]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[-1.93,0],[-0.18,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[1.82,0],[0.01,0.12]],"v":[[3.5,-82.67],[3.5,78.96],[-3.5,86.17],[-3.5,-82.67],[0,-86.17],[3.48,-83.03]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411792755,0.360784322023,0.117647059262,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[381.473,349.667]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[-3.59,0],[-0.18,-3.43]],"o":[[0,0],[0,0],[0,0],[-0.1,-0.45],[0,0],[0,-3.59],[3.47,0],[0.01,0.12]],"v":[[6.5,-84.18],[6.5,77.45],[-0.5,84.66],[-6.35,90.68],[-6.5,89.29],[-6.5,-84.18],[0,-90.68],[6.48,-84.54]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[0.015,0],[0.001,-3.43]],"o":[[0,0],[0,0],[0,0],[0,-0.45],[0,0],[0,-3.59],[-0.015,0],[0,0.12]],"v":[[-14.184,-84.18],[-14.184,77.45],[-14.154,84.66],[-14.13,90.68],[-14.129,89.29],[-14.129,-84.18],[-14.157,-90.68],[-14.184,-84.54]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[0.015,0],[0.001,-3.43]],"o":[[0,0],[0,0],[0,0],[0,-0.45],[0,0],[0,-3.59],[-0.015,0],[0,0.12]],"v":[[-14.184,-84.18],[-14.184,77.45],[-14.154,84.66],[-14.13,90.68],[-14.129,89.29],[-14.129,-84.18],[-14.157,-90.68],[-14.184,-84.54]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[-3.59,0],[-0.18,-3.43]],"o":[[0,0],[0,0],[0,0],[-0.1,-0.45],[0,0],[0,-3.59],[3.47,0],[0.01,0.12]],"v":[[6.5,-84.18],[6.5,77.45],[-0.5,84.66],[-6.35,90.68],[-6.5,89.29],[-6.5,-84.18],[0,-90.68],[6.48,-84.54]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.858823537827,0.270588248968,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[378.473,351.177]},"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":[378.473,351.177]},"a":{"a":0,"k":[378.473,351.177]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-41.193],[41.193,0],[0,41.193],[-41.193,0]],"o":[[0,41.193],[-41.193,0],[0,-41.193],[41.193,0]],"v":[[74.586,0],[0,74.586],[-74.586,0],[0,-74.586]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-41.193],[-0.173,0],[0,41.193],[0.173,0]],"o":[[0,41.193],[0.173,0],[0,-41.193],[-0.173,0]],"v":[[-1.119,0],[-0.805,74.586],[-0.491,0],[-0.805,-74.586]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-41.193],[-0.173,0],[0,41.193],[0.173,0]],"o":[[0,41.193],[0.173,0],[0,-41.193],[-0.173,0]],"v":[[-1.119,0],[-0.805,74.586],[-0.491,0],[-0.805,-74.586]],"c":true}]},{"t":120,"s":[{"i":[[0,-41.193],[41.193,0],[0,41.193],[-41.193,0]],"o":[[0,41.193],[-41.193,0],[0,-41.193],[41.193,0]],"v":[[74.586,0],[0,74.586],[-74.586,0],[0,-74.586]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.686274528503,0.482352942228,0.070588238537,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,159.627]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":80},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[41.87,0],[0,41.858],[-41.858,0],[0,-41.858]],"o":[[-41.858,0],[0,-41.858],[41.87,0],[0,41.858]],"v":[[-0.006,75.802],[-75.796,0],[-0.006,-75.802],[75.796,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.176,0],[0,41.858],[0.176,0],[0,-41.858]],"o":[[0.176,0],[0,-41.858],[-0.176,0],[0,41.858]],"v":[[0,75.802],[0.319,0],[0,-75.802],[-0.319,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.176,0],[0,41.858],[0.176,0],[0,-41.858]],"o":[[0.176,0],[0,-41.858],[-0.176,0],[0,41.858]],"v":[[0,75.802],[0.319,0],[0,-75.802],[-0.319,0]],"c":true}]},{"t":120,"s":[{"i":[[41.87,0],[0,41.858],[-41.858,0],[0,-41.858]],"o":[[-41.858,0],[0,-41.858],[41.87,0],[0,41.858]],"v":[[-0.006,75.802],[-75.796,0],[-0.006,-75.802],[75.796,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[49.33,0],[0,-49.318],[-49.317,0],[0,49.317]],"o":[[-49.317,0],[0,49.317],[49.33,0],[0,-49.318]],"v":[[-0.006,-89.308],[-89.302,0],[-0.006,89.308],[89.302,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.208,0],[0,-49.317],[0.208,0],[0,49.318]],"o":[[0.208,0],[0,49.317],[-0.208,0],[0,-49.318]],"v":[[0,-89.308],[0.376,0],[0,89.308],[-0.376,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.208,0],[0,-49.317],[0.208,0],[0,49.318]],"o":[[0.208,0],[0,49.317],[-0.208,0],[0,-49.318]],"v":[[0,-89.308],[0.376,0],[0,89.308],[-0.376,0]],"c":true}]},{"t":120,"s":[{"i":[[49.33,0],[0,-49.318],[-49.317,0],[0,49.317]],"o":[[-49.317,0],[0,49.317],[49.33,0],[0,-49.318]],"v":[[-0.006,-89.308],[-89.302,0],[-0.006,89.308],[89.302,0]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.686274528503,0.482352942228,0.070588238537,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[364.376,158.825]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":14},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.76,-10.27],[0,0],[0,0],[0,5.82],[0,0],[1.66,1.76],[0,0]],"o":[[0,0],[0,0],[-5.4,-2.17],[0,0],[0.07,-2.44],[0,0],[6.05,8.41]],"v":[[68.765,-46.565],[-52.585,74.775],[-57.425,73.095],[-66.365,59.875],[-66.255,55.885],[-68.765,49.365],[55.375,-74.775]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.913725495338,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[380.808,183.492]},"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":0,"k":{"i":[[-3.7,-3.88],[0,0],[2.94,4.55],[0,0],[-10.11,11.14],[0,0],[0,0]],"o":[[0,0],[-3.62,-3.97],[0,0],[0,0],[12.12,-13.354],[0,0],[4.35,3.14]],"v":[[67.445,-57.23],[-57.585,67.8],[-67.445,54.98],[-3.655,-8.8],[22.072,-14.527],[28.697,-41.152],[55.345,-67.8]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.913725495338,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[361.038,156.637]},"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":[361.038,156.637]},"a":{"a":0,"k":[361.038,156.637]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":142,"s":[0]},{"t":164,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"light","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-10.59],[-25.805,-36.4],[-0.005,-62.2],[25.805,-36.4]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-10.59],[-0.697,-36.4],[-0.806,-62.2],[-0.915,-36.4]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-10.59],[-0.697,-36.4],[-0.806,-62.2],[-0.915,-36.4]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-10.59],[-25.805,-36.4],[-0.005,-62.2],[25.805,-36.4]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[34.97,0],[0,-34.96],[-34.96,0],[0,34.96]],"o":[[-34.96,0],[0,34.96],[34.97,0],[0,-34.96]],"v":[[-0.005,-63.31],[-63.305,0],[-0.005,63.31],[63.305,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.147,0],[0,-34.96],[0.147,0],[0,34.96]],"o":[[0.147,0],[0,34.96],[-0.147,0],[0,-34.96]],"v":[[-0.806,-63.31],[-0.539,0],[-0.806,63.31],[-1.072,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.147,0],[0,-34.96],[0.147,0],[0,34.96]],"o":[[0.147,0],[0,34.96],[-0.147,0],[0,-34.96]],"v":[[-0.806,-63.31],[-0.539,0],[-0.806,63.31],[-1.072,0]],"c":true}]},{"t":120,"s":[{"i":[[34.97,0],[0,-34.96],[-34.96,0],[0,34.96]],"o":[[-34.96,0],[0,34.96],[34.97,0],[0,-34.96]],"v":[[-0.005,-63.31],[-63.305,0],[-0.005,63.31],[63.305,0]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.96862745285,0.780392169952,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,159.627]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-5.4,-2.17],[2.763,-4.183],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.83,0.97],[0,0],[0,5.27],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.07],[0,0],[4.66,-2.47],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-41.795,-4.32],[-19.285,18.31],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.115,-2.58],[38.585,-3.89],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.023,-2.17],[-0.012,-4.183],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.97],[0,0],[0,5.27],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,5.82],[0,0],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.07],[0,0],[-0.02,-2.47],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.63,-4.32],[-0.725,18.31],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.58],[-0.968,-3.89],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.023,-2.17],[-0.012,-4.183],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.97],[0,0],[0,5.27],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,5.82],[0,0],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.07],[0,0],[-0.02,-2.47],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.63,-4.32],[-0.725,18.31],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.58],[-0.968,-3.89],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"t":120,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-5.4,-2.17],[2.763,-4.183],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.83,0.97],[0,0],[0,5.27],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.07],[0,0],[4.66,-2.47],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-41.795,-4.32],[-19.285,18.31],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.115,-2.58],[38.585,-3.89],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.721568644047,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,260.907]},"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":129,"op":180,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"side key","parent":11,"sr":1,"ks":{"o":{"a":1,"k":[{"t":59,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":120,"s":[100]},{"t":121,"s":[0],"h":1}]},"r":{"a":0,"k":-180},"p":{"a":0,"k":[369.877,260.324,0]},"a":{"a":0,"k":[-37.125,202.75,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,-6.5],[-1,-12.5],[-91.25,-5.5],[0.125,-0.125],[-70.25,55.75],[-8.75,4],[0,0]],"o":[[0,0],[0,0],[0,0],[-8.25,6],[-70.5,55],[3.041,0.064],[-95,-3.75],[0,-13],[-0.75,-41.75],[0,0]],"v":[[-31.75,13.125],[-31.75,13.125],[-65.25,48.75],[-66.25,202],[-78.5,224.5],[-34.125,390.875],[-32.094,390.938],[-78.25,224.25],[-66,202.25],[-65.125,48.75]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0]],"v":[[-31.75,13.5],[-52.5,14],[-52.5,46],[-52.5,204],[-52.5,221],[-52.5,392],[-31.75,392],[-31.75,220.75],[-31.75,203],[-31.75,45.25]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0]],"v":[[-31.75,13.5],[-52.5,14],[-52.5,46],[-52.5,204],[-52.5,221],[-52.5,392],[-31.75,392],[-31.75,220.75],[-31.75,203],[-31.75,45.25]],"c":true}]},{"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[0,-6.5],[-1,-12.5],[-91.25,-5.5],[0.125,-0.125],[-70.25,55.75],[-8.75,4],[0,0]],"o":[[0,0],[0,0],[0,0],[-8.25,6],[-70.5,55],[3.041,0.064],[-95,-3.75],[0,-13],[-0.75,-41.75],[0,0]],"v":[[-31.75,13.125],[-31.75,13.125],[-65.25,48.75],[-66.25,202],[-78.5,224.5],[-34.125,390.875],[-32.094,390.938],[-78.25,224.25],[-66,202.25],[-65.125,48.75]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.666666686535,0.435294121504,0.027450980619,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.721568644047,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"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}],"ip":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"key","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[-14]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":40,"s":[180]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":126,"s":[180]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":154,"s":[-14]},{"t":167,"s":[0]}]},"p":{"a":0,"k":[0.376,-5.463,0]},"a":{"a":0,"k":[364.376,259.537,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,22.832],[-9.901,13.36]],"o":[[-15.289,-14.63],[0,-17.905],[0,0]],"v":[[12.405,52.937],[-12.405,-5.134],[3.351,-52.937]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,22.832],[0.042,13.36]],"o":[[0.064,-14.63],[0,-17.905],[0,0]],"v":[[67.016,52.937],[67.121,-5.134],[67.055,-52.937]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,22.832],[0.042,13.36]],"o":[[0.064,-14.63],[0,-17.905],[0,0]],"v":[[67.016,52.937],[67.121,-5.134],[67.055,-52.937]],"c":false}]},{"t":120,"s":[{"i":[[0,0],[0,22.832],[-9.901,13.36]],"o":[[-15.289,-14.63],[0,-17.905],[0,0]],"v":[[12.405,52.937],[-12.405,-5.134],[3.351,-52.937]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.858823537827,0.270588248968,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[297.588,164.947]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[-2.272,1.494]],"o":[[2.103,-1.71],[0,0]],"v":[[-3.283,2.405],[3.283,-2.405]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0.01,1.494]],"o":[[-0.009,-1.71],[0,0]],"v":[[46.411,2.405],[46.383,-2.405]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0.01,1.494]],"o":[[-0.009,-1.71],[0,0]],"v":[[46.411,2.405],[46.383,-2.405]],"c":false}]},{"t":120,"s":[{"i":[[0,0],[-2.272,1.494]],"o":[[2.103,-1.71],[0,0]],"v":[[-3.283,2.405],[3.283,-2.405]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.858823537827,0.270588248968,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[318.173,95.017]},"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":[318.173,95.017]},"a":{"a":0,"k":[318.173,95.017]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-4.003,-2.592],[-5.276,-3.791],[2.654,-2.585],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.826,0.969],[0,0],[0,5.276],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,4.891],[2.138,1.384],[3.009,2.162],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.067],[0,0],[4.661,-2.472],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-44.232,-5.583],[-20.826,11.587],[-20.151,20.687],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.103,-2.573],[38.581,-3.888],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.017,-2.592],[0.022,-3.791],[-0.011,-2.585],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.969],[0,0],[0,5.276],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,4.891],[-0.009,1.384],[-0.013,2.162],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.067],[0,0],[-0.02,-2.472],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.62,-5.583],[-0.718,11.587],[-0.721,20.687],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.573],[-0.968,-3.888],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.017,-2.592],[0.022,-3.791],[-0.011,-2.585],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.969],[0,0],[0,5.276],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,4.891],[-0.009,1.384],[-0.013,2.162],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.067],[0,0],[-0.02,-2.472],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.62,-5.583],[-0.718,11.587],[-0.721,20.687],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.573],[-0.968,-3.888],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"t":120,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-4.003,-2.592],[-5.276,-3.791],[2.654,-2.585],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.826,0.969],[0,0],[0,5.276],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,4.891],[2.138,1.384],[3.009,2.162],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.067],[0,0],[4.661,-2.472],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-44.232,-5.583],[-20.826,11.587],[-20.151,20.687],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.103,-2.573],[38.581,-3.888],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"st","c":{"a":0,"k":[0.666666686535,0.435294121504,0.027450980619,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":[365.178,260.907]},"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":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[3.272,-80.647],[3.5,81.262],[-3.5,74.062],[-3.5,42.102],[1.99,37.212],[1.99,31.422],[-3.5,26.522],[-3.5,-4.358],[1.92,-9.668],[1.84,-15.548],[-3.5,-20.478],[-3.5,-75.658],[0.49,-80.305]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[16.96,-80.647],[16.959,81.262],[16.989,74.062],[16.989,42.102],[16.966,37.212],[16.966,31.422],[16.989,26.522],[16.989,-4.358],[16.966,-9.668],[16.966,-15.548],[16.989,-20.478],[16.989,-75.658],[16.972,-80.305]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[16.96,-80.647],[16.959,81.262],[16.989,74.062],[16.989,42.102],[16.966,37.212],[16.966,31.422],[16.989,26.522],[16.989,-4.358],[16.966,-9.668],[16.966,-15.548],[16.989,-20.478],[16.989,-75.658],[16.972,-80.305]],"c":true}]},{"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[3.272,-80.647],[3.5,81.262],[-3.5,74.062],[-3.5,42.102],[1.99,37.212],[1.99,31.422],[-3.5,26.522],[-3.5,-4.358],[1.92,-9.668],[1.84,-15.548],[-3.5,-20.478],[-3.5,-75.658],[0.49,-80.305]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411792755,0.360784322023,0.117647059262,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[347.473,356.925]},"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":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[1.19,-1.27]],"v":[[6.272,-80.78],[6.5,80.787],[-0.5,73.587],[-6.5,67.417],[-6.5,46.977],[-0.5,41.627],[4.99,36.737],[4.99,30.947],[-0.5,26.047],[-6.5,20.697],[-6.5,1.037],[-0.5,-4.833],[4.92,-10.143],[4.84,-16.023],[-0.5,-20.953],[-6.5,-26.493],[-6.5,-69.743],[-0.5,-76.133],[1.42,-78.183]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.005,-1.27]],"v":[[19.96,-80.78],[19.959,80.787],[19.989,73.587],[20.014,67.417],[20.014,46.977],[19.989,41.627],[19.966,36.737],[19.966,30.947],[19.989,26.047],[20.014,20.697],[20.014,1.037],[19.989,-4.833],[19.966,-10.143],[19.966,-16.023],[19.989,-20.953],[20.014,-26.493],[20.014,-69.743],[19.989,-76.133],[19.981,-78.183]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.005,-1.27]],"v":[[19.96,-80.78],[19.959,80.787],[19.989,73.587],[20.014,67.417],[20.014,46.977],[19.989,41.627],[19.966,36.737],[19.966,30.947],[19.989,26.047],[20.014,20.697],[20.014,1.037],[19.989,-4.833],[19.966,-10.143],[19.966,-16.023],[19.989,-20.953],[20.014,-26.493],[20.014,-69.743],[19.989,-76.133],[19.981,-78.183]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[1.19,-1.27]],"v":[[6.272,-80.78],[6.5,80.787],[-0.5,73.587],[-6.5,67.417],[-6.5,46.977],[-0.5,41.627],[4.99,36.737],[4.99,30.947],[-0.5,26.047],[-6.5,20.697],[-6.5,1.037],[-0.5,-4.833],[4.92,-10.143],[4.84,-16.023],[-0.5,-20.953],[-6.5,-26.493],[-6.5,-69.743],[-0.5,-76.133],[1.42,-78.183]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.858823537827,0.270588248968,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[344.473,357.4]},"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":[344.473,357.4]},"a":{"a":0,"k":[344.473,357.4]},"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":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[-1.93,0],[-0.18,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[1.82,0],[0.01,0.12]],"v":[[3.5,-82.67],[3.5,78.96],[-3.5,86.17],[-3.5,-82.67],[0,-86.17],[3.48,-83.03]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0.008,0],[0.001,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[-0.008,0],[0,0.12]],"v":[[-17.184,-82.67],[-17.184,78.96],[-17.154,86.17],[-17.154,-82.67],[-17.169,-86.17],[-17.184,-83.03]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0.008,0],[0.001,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[-0.008,0],[0,0.12]],"v":[[-17.184,-82.67],[-17.184,78.96],[-17.154,86.17],[-17.154,-82.67],[-17.169,-86.17],[-17.184,-83.03]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[-1.93,0],[-0.18,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[1.82,0],[0.01,0.12]],"v":[[3.5,-82.67],[3.5,78.96],[-3.5,86.17],[-3.5,-82.67],[0,-86.17],[3.48,-83.03]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411792755,0.360784322023,0.117647059262,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[381.473,349.667]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[-3.59,0],[-0.18,-3.43]],"o":[[0,0],[0,0],[0,0],[-0.1,-0.45],[0,0],[0,-3.59],[3.47,0],[0.01,0.12]],"v":[[6.5,-84.18],[6.5,77.45],[-0.5,84.66],[-6.35,90.68],[-6.5,89.29],[-6.5,-84.18],[0,-90.68],[6.48,-84.54]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[0.015,0],[0.001,-3.43]],"o":[[0,0],[0,0],[0,0],[0,-0.45],[0,0],[0,-3.59],[-0.015,0],[0,0.12]],"v":[[-14.184,-84.18],[-14.184,77.45],[-14.154,84.66],[-14.13,90.68],[-14.129,89.29],[-14.129,-84.18],[-14.157,-90.68],[-14.184,-84.54]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[0.015,0],[0.001,-3.43]],"o":[[0,0],[0,0],[0,0],[0,-0.45],[0,0],[0,-3.59],[-0.015,0],[0,0.12]],"v":[[-14.184,-84.18],[-14.184,77.45],[-14.154,84.66],[-14.13,90.68],[-14.129,89.29],[-14.129,-84.18],[-14.157,-90.68],[-14.184,-84.54]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[-3.59,0],[-0.18,-3.43]],"o":[[0,0],[0,0],[0,0],[-0.1,-0.45],[0,0],[0,-3.59],[3.47,0],[0.01,0.12]],"v":[[6.5,-84.18],[6.5,77.45],[-0.5,84.66],[-6.35,90.68],[-6.5,89.29],[-6.5,-84.18],[0,-90.68],[6.48,-84.54]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.858823537827,0.270588248968,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[378.473,351.177]},"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":[378.473,351.177]},"a":{"a":0,"k":[378.473,351.177]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-41.193],[41.193,0],[0,41.193],[-41.193,0]],"o":[[0,41.193],[-41.193,0],[0,-41.193],[41.193,0]],"v":[[74.586,0],[0,74.586],[-74.586,0],[0,-74.586]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-41.193],[-0.173,0],[0,41.193],[0.173,0]],"o":[[0,41.193],[0.173,0],[0,-41.193],[-0.173,0]],"v":[[-1.119,0],[-0.805,74.586],[-0.491,0],[-0.805,-74.586]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-41.193],[-0.173,0],[0,41.193],[0.173,0]],"o":[[0,41.193],[0.173,0],[0,-41.193],[-0.173,0]],"v":[[-1.119,0],[-0.805,74.586],[-0.491,0],[-0.805,-74.586]],"c":true}]},{"t":120,"s":[{"i":[[0,-41.193],[41.193,0],[0,41.193],[-41.193,0]],"o":[[0,41.193],[-41.193,0],[0,-41.193],[41.193,0]],"v":[[74.586,0],[0,74.586],[-74.586,0],[0,-74.586]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.686274528503,0.482352942228,0.070588238537,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,159.627]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":80},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[41.87,0],[0,41.858],[-41.858,0],[0,-41.858]],"o":[[-41.858,0],[0,-41.858],[41.87,0],[0,41.858]],"v":[[-0.006,75.802],[-75.796,0],[-0.006,-75.802],[75.796,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.176,0],[0,41.858],[0.176,0],[0,-41.858]],"o":[[0.176,0],[0,-41.858],[-0.176,0],[0,41.858]],"v":[[0,75.802],[0.319,0],[0,-75.802],[-0.319,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.176,0],[0,41.858],[0.176,0],[0,-41.858]],"o":[[0.176,0],[0,-41.858],[-0.176,0],[0,41.858]],"v":[[0,75.802],[0.319,0],[0,-75.802],[-0.319,0]],"c":true}]},{"t":120,"s":[{"i":[[41.87,0],[0,41.858],[-41.858,0],[0,-41.858]],"o":[[-41.858,0],[0,-41.858],[41.87,0],[0,41.858]],"v":[[-0.006,75.802],[-75.796,0],[-0.006,-75.802],[75.796,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[49.33,0],[0,-49.318],[-49.317,0],[0,49.317]],"o":[[-49.317,0],[0,49.317],[49.33,0],[0,-49.318]],"v":[[-0.006,-89.308],[-89.302,0],[-0.006,89.308],[89.302,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.208,0],[0,-49.317],[0.208,0],[0,49.318]],"o":[[0.208,0],[0,49.317],[-0.208,0],[0,-49.318]],"v":[[0,-89.308],[0.376,0],[0,89.308],[-0.376,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.208,0],[0,-49.317],[0.208,0],[0,49.318]],"o":[[0.208,0],[0,49.317],[-0.208,0],[0,-49.318]],"v":[[0,-89.308],[0.376,0],[0,89.308],[-0.376,0]],"c":true}]},{"t":120,"s":[{"i":[[49.33,0],[0,-49.318],[-49.317,0],[0,49.317]],"o":[[-49.317,0],[0,49.317],[49.33,0],[0,-49.318]],"v":[[-0.006,-89.308],[-89.302,0],[-0.006,89.308],[89.302,0]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.686274528503,0.482352942228,0.070588238537,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[364.376,158.825]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":14},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.76,-10.27],[0,0],[0,0],[0,5.82],[0,0],[1.66,1.76],[0,0]],"o":[[0,0],[0,0],[-5.4,-2.17],[0,0],[0.07,-2.44],[0,0],[6.05,8.41]],"v":[[68.765,-46.565],[-52.585,74.775],[-57.425,73.095],[-66.365,59.875],[-66.255,55.885],[-68.765,49.365],[55.375,-74.775]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.913725495338,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[380.808,183.492]},"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":0,"k":{"i":[[-3.7,-3.88],[0,0],[2.94,4.55],[0,0],[-10.11,11.14],[0,0],[0,0]],"o":[[0,0],[-3.62,-3.97],[0,0],[0,0],[12.12,-13.354],[0,0],[4.35,3.14]],"v":[[67.445,-57.23],[-57.585,67.8],[-67.445,54.98],[-3.655,-8.8],[22.072,-14.527],[28.697,-41.152],[55.345,-67.8]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.913725495338,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[361.038,156.637]},"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":[361.038,156.637]},"a":{"a":0,"k":[361.038,156.637]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":142,"s":[0]},{"t":164,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"light","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-10.59],[-25.805,-36.4],[-0.005,-62.2],[25.805,-36.4]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-10.59],[-0.697,-36.4],[-0.806,-62.2],[-0.915,-36.4]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-10.59],[-0.697,-36.4],[-0.806,-62.2],[-0.915,-36.4]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-10.59],[-25.805,-36.4],[-0.005,-62.2],[25.805,-36.4]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[34.97,0],[0,-34.96],[-34.96,0],[0,34.96]],"o":[[-34.96,0],[0,34.96],[34.97,0],[0,-34.96]],"v":[[-0.005,-63.31],[-63.305,0],[-0.005,63.31],[63.305,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.147,0],[0,-34.96],[0.147,0],[0,34.96]],"o":[[0.147,0],[0,34.96],[-0.147,0],[0,-34.96]],"v":[[-0.806,-63.31],[-0.539,0],[-0.806,63.31],[-1.072,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.147,0],[0,-34.96],[0.147,0],[0,34.96]],"o":[[0.147,0],[0,34.96],[-0.147,0],[0,-34.96]],"v":[[-0.806,-63.31],[-0.539,0],[-0.806,63.31],[-1.072,0]],"c":true}]},{"t":120,"s":[{"i":[[34.97,0],[0,-34.96],[-34.96,0],[0,34.96]],"o":[[-34.96,0],[0,34.96],[34.97,0],[0,-34.96]],"v":[[-0.005,-63.31],[-63.305,0],[-0.005,63.31],[63.305,0]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.96862745285,0.780392169952,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,159.627]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-5.4,-2.17],[2.763,-4.183],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.83,0.97],[0,0],[0,5.27],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.07],[0,0],[4.66,-2.47],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-41.795,-4.32],[-19.285,18.31],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.115,-2.58],[38.585,-3.89],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.023,-2.17],[-0.012,-4.183],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.97],[0,0],[0,5.27],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,5.82],[0,0],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.07],[0,0],[-0.02,-2.47],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.63,-4.32],[-0.725,18.31],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.58],[-0.968,-3.89],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.023,-2.17],[-0.012,-4.183],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.97],[0,0],[0,5.27],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,5.82],[0,0],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.07],[0,0],[-0.02,-2.47],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.63,-4.32],[-0.725,18.31],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.58],[-0.968,-3.89],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"t":120,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-5.4,-2.17],[2.763,-4.183],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.83,0.97],[0,0],[0,5.27],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.07],[0,0],[4.66,-2.47],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-41.795,-4.32],[-19.285,18.31],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.115,-2.58],[38.585,-3.89],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.721568644047,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,260.907]},"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":0,"op":40,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"locker","parent":13,"sr":1,"ks":{"p":{"a":0,"k":[217.962,157.612,0]},"a":{"a":0,"k":[217.962,157.612,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-14.147,21.084]],"o":[[0,0],[0,0]],"v":[[-7.373,22.756],[7.373,-22.756]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":78,"s":[{"i":[[0,0],[-14.147,21.084]],"o":[[0,0],[0,0]],"v":[[-7.373,-37.244],[7.373,-82.756]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":100,"s":[{"i":[[0,0],[-14.147,21.084]],"o":[[0,0],[0,0]],"v":[[-7.373,-37.244],[7.373,-82.756]],"c":false}]},{"t":110,"s":[{"i":[[0,0],[-14.147,21.084]],"o":[[0,0],[0,0]],"v":[[-7.373,22.756],[7.373,-22.756]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.913725495338,0.964705884457,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[115.235,170.342]},"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.3,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,0],[-2.262,1.918]],"o":[[1.978,-2.101],[0,0]],"v":[[-2.189,1.971],[2.189,-1.971]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":78,"s":[{"i":[[0,0],[-2.262,1.918]],"o":[[1.978,-2.101],[0,0]],"v":[[-2.189,-58.029],[2.189,-61.971]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":100,"s":[{"i":[[0,0],[-2.262,1.918]],"o":[[1.978,-2.101],[0,0]],"v":[[-2.189,-58.029],[2.189,-61.971]],"c":false}]},{"t":110,"s":[{"i":[[0,0],[-2.262,1.918]],"o":[[1.978,-2.101],[0,0]],"v":[[-2.189,1.971],[2.189,-1.971]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.913725495338,0.964705884457,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":14},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[139.438,125.257]},"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.3,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,-67.46],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.6,0.005],[0,-44.889],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.582,-0.104],[-44.889,-0.14],[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,45.745],[122.345,72.509],[118.249,76.605],[85.441,76.605],[81.345,72.509],[81.345,45.745],[66.655,-0.825],[37.865,-26.245],[5.115,-35.435],[5.045,-35.445],[0.271,-35.605],[-81.345,46.559],[-81.345,72.509],[-85.441,76.605],[-118.249,76.605],[-122.345,72.509],[-122.345,45.745],[-91.015,-35.925],[-90.995,-35.945],[-56.705,-62.645],[-1.085,-76.595],[0.005,-76.605]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":78,"s":[{"i":[[0,-67.46],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.6,0.005],[0,-44.889],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.582,-0.104],[-44.889,-0.14],[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,-14.255],[122.345,72.509],[118.249,76.605],[85.441,76.605],[81.345,72.509],[81.345,-14.255],[66.655,-60.825],[37.865,-86.245],[5.115,-95.435],[5.045,-95.445],[0.271,-95.605],[-81.345,-13.441],[-81.345,12.509],[-85.441,16.605],[-118.249,16.605],[-122.345,12.509],[-122.345,-14.255],[-91.015,-95.925],[-90.995,-95.945],[-56.705,-122.645],[-1.085,-136.595],[0.005,-136.605]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":100,"s":[{"i":[[0,-67.46],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.6,0.005],[0,-44.889],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.582,-0.104],[-44.889,-0.14],[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,-14.255],[122.345,72.509],[118.249,76.605],[85.441,76.605],[81.345,72.509],[81.345,-14.255],[66.655,-60.825],[37.865,-86.245],[5.115,-95.435],[5.045,-95.445],[0.271,-95.605],[-81.345,-13.441],[-81.345,12.509],[-85.441,16.605],[-118.249,16.605],[-122.345,12.509],[-122.345,-14.255],[-91.015,-95.925],[-90.995,-95.945],[-56.705,-122.645],[-1.085,-136.595],[0.005,-136.605]],"c":true}]},{"t":110,"s":[{"i":[[0,-67.46],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.6,0.005],[0,-44.889],[0,0],[2.262,0],[0,0],[0,2.262],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.582,-0.104],[-44.889,-0.14],[0,0],[0,2.262],[0,0],[-2.262,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,45.745],[122.345,72.509],[118.249,76.605],[85.441,76.605],[81.345,72.509],[81.345,45.745],[66.655,-0.825],[37.865,-26.245],[5.115,-35.435],[5.045,-35.445],[0.271,-35.605],[-81.345,46.559],[-81.345,72.509],[-85.441,76.605],[-118.249,76.605],[-122.345,72.509],[-122.345,45.745],[-91.015,-35.925],[-90.995,-35.945],[-56.705,-62.645],[-1.085,-76.595],[0.005,-76.605]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.415686279535,0.490196079016,0.61960786581,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"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":"tr","p":{"a":0,"k":[217.962,157.612]},"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.3,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[43.714,28.249],[40.114,-8.59],[0.88,-0.68],[-13.4,6.39],[-3.55,1.35],[-11.47,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[-0.74,-13.33],[-10.123,-6.542],[-25.83,5.531],[8.43,-11.53],[3.48,-1.67],[16.69,-6.34],[0.36,-0.01],[67.46,0]],"v":[[106.67,45.745],[106.67,76.605],[78.67,76.605],[78.67,45.745],[28.224,-51.305],[-49.947,-64.185],[-106.67,-35.945],[-72.38,-62.645],[-61.81,-67.165],[-16.76,-76.595],[-15.67,-76.605]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":78,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[43.714,28.249],[40.114,-8.59],[0.88,-0.68],[-13.4,6.39],[-3.55,1.35],[-11.47,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[-0.74,-13.33],[-10.123,-6.542],[-25.83,5.531],[8.43,-11.53],[3.48,-1.67],[16.69,-6.34],[0.36,-0.01],[67.46,0]],"v":[[106.67,-14.255],[106.67,76.605],[78.67,76.605],[78.67,-14.255],[28.224,-111.305],[-49.947,-124.185],[-106.67,-95.945],[-72.38,-122.645],[-61.81,-127.165],[-16.76,-136.595],[-15.67,-136.605]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":100,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[43.714,28.249],[40.114,-8.59],[0.88,-0.68],[-13.4,6.39],[-3.55,1.35],[-11.47,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[-0.74,-13.33],[-10.123,-6.542],[-25.83,5.531],[8.43,-11.53],[3.48,-1.67],[16.69,-6.34],[0.36,-0.01],[67.46,0]],"v":[[106.67,-14.255],[106.67,76.605],[78.67,76.605],[78.67,-14.255],[28.224,-111.305],[-49.947,-124.185],[-106.67,-95.945],[-72.38,-122.645],[-61.81,-127.165],[-16.76,-136.595],[-15.67,-136.605]],"c":true}]},{"t":110,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[43.714,28.249],[40.114,-8.59],[0.88,-0.68],[-13.4,6.39],[-3.55,1.35],[-11.47,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[-0.74,-13.33],[-10.123,-6.542],[-25.83,5.531],[8.43,-11.53],[3.48,-1.67],[16.69,-6.34],[0.36,-0.01],[67.46,0]],"v":[[106.67,45.745],[106.67,76.605],[78.67,76.605],[78.67,45.745],[28.224,-51.305],[-49.947,-64.185],[-106.67,-35.945],[-72.38,-62.645],[-61.81,-67.165],[-16.76,-76.595],[-15.67,-76.605]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.439215689898,0.639215707779,0.839215695858,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[233.637,157.612]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":50},"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.3,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,-44.09],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-52.15,0],[-7.46,-2.03]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-52.14],[8.05,0],[40.9,11.08]],"v":[[94.57,33.605],[94.57,63.955],[81.34,63.955],[81.34,33.095],[66.65,-13.475],[37.86,-38.895],[5.11,-48.085],[5.04,-48.095],[0,-48.255],[-81.35,33.095],[-81.35,63.955],[-94.57,63.955],[-94.57,33.605],[0,-63.955],[23.34,-60.845]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":78,"s":[{"i":[[0,-44.09],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-52.15,0],[-7.46,-2.03]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-52.14],[8.05,0],[40.9,11.08]],"v":[[94.57,-26.395],[94.57,63.955],[81.34,63.955],[81.34,-26.905],[66.65,-73.475],[37.86,-98.895],[5.11,-108.085],[5.04,-108.095],[0,-108.255],[-81.35,-26.905],[-81.35,3.955],[-94.57,3.955],[-94.57,-26.395],[0,-123.955],[23.34,-120.845]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":100,"s":[{"i":[[0,-44.09],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-52.15,0],[-7.46,-2.03]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-52.14],[8.05,0],[40.9,11.08]],"v":[[94.57,-26.395],[94.57,63.955],[81.34,63.955],[81.34,-26.905],[66.65,-73.475],[37.86,-98.895],[5.11,-108.085],[5.04,-108.095],[0,-108.255],[-81.35,-26.905],[-81.35,3.955],[-94.57,3.955],[-94.57,-26.395],[0,-123.955],[23.34,-120.845]],"c":true}]},{"t":110,"s":[{"i":[[0,-44.09],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-52.15,0],[-7.46,-2.03]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-52.14],[8.05,0],[40.9,11.08]],"v":[[94.57,33.605],[94.57,63.955],[81.34,63.955],[81.34,33.095],[66.65,-13.475],[37.86,-38.895],[5.11,-48.085],[5.04,-48.095],[0,-48.255],[-81.35,33.095],[-81.35,63.955],[-94.57,63.955],[-94.57,33.605],[0,-63.955],[23.34,-60.845]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.368627458811,0.305882364511,0.254901975393,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[217.967,170.262]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":40},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 5","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.167,"y":0.167},"t":68,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,45.745],[122.345,76.605],[81.345,76.605],[81.345,45.745],[66.655,-0.825],[37.865,-26.245],[5.115,-35.435],[5.045,-35.445],[0.005,-35.605],[-81.345,45.745],[-81.345,76.605],[-122.345,76.605],[-122.345,45.745],[-91.015,-35.925],[-90.995,-35.945],[-56.705,-62.645],[-1.085,-76.595],[0.005,-76.605]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":78,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,-14.255],[122.345,76.605],[81.345,76.605],[81.345,-14.255],[66.655,-60.825],[37.865,-86.245],[5.115,-95.435],[5.045,-95.445],[0.005,-95.605],[-81.345,-14.255],[-81.345,16.605],[-122.345,16.605],[-122.345,-14.255],[-91.015,-95.925],[-90.995,-95.945],[-56.705,-122.645],[-1.085,-136.595],[0.005,-136.605]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.33,"y":0},"t":100,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,-14.255],[122.345,76.605],[81.345,76.605],[81.345,-14.255],[66.655,-60.825],[37.865,-86.245],[5.115,-95.435],[5.045,-95.445],[0.005,-95.605],[-81.345,-14.255],[-81.345,16.605],[-122.345,16.605],[-122.345,-14.255],[-91.015,-95.925],[-90.995,-95.945],[-56.705,-122.645],[-1.085,-136.595],[0.005,-136.605]],"c":true}]},{"t":110,"s":[{"i":[[0,-67.46],[0,0],[0,0],[0,0],[9.26,13.2],[11.5,6.08],[11.76,0.72],[0.02,0],[1.69,0],[0,-44.86],[0,0],[0,0],[0,0],[-19.47,21.67],[-0.01,0.01],[-12.97,6.81],[-20.05,0.17],[-0.36,0]],"o":[[0,0],[0,0],[0,0],[0,-17.31],[-7.41,-10.59],[-9.89,-5.22],[-0.02,-0.01],[-1.67,-0.11],[-44.86,0],[0,0],[0,0],[0,0],[0,-31.36],[0,-0.01],[9.71,-10.81],[16.66,-8.76],[0.36,-0.01],[67.46,0]],"v":[[122.345,45.745],[122.345,76.605],[81.345,76.605],[81.345,45.745],[66.655,-0.825],[37.865,-26.245],[5.115,-35.435],[5.045,-35.445],[0.005,-35.605],[-81.345,45.745],[-81.345,76.605],[-122.345,76.605],[-122.345,45.745],[-91.015,-35.925],[-90.995,-35.945],[-56.705,-62.645],[-1.085,-76.595],[0.005,-76.605]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.729411780834,0.850980401039,0.96862745285,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[217.962,157.612]},"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":13,"ty":4,"nm":"base","parent":5,"sr":1,"ks":{"p":{"a":0,"k":[1.239,7.025,0]},"a":{"a":0,"k":[215.239,335.025,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[3.349,0],[0,0],[1.664,2.462]],"o":[[-1.625,2.664],[0,0],[-3.195,0],[0,0]],"v":[[148.062,-2.331],[140.027,2.331],[-140.099,2.331],[-148.062,-2.201]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.227450981736,0.196078434587,0.066666670144,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.275,433.506]},"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":0,"k":{"i":[[5.113,0],[0,0],[0,5.113],[0,0],[-5.113,0],[0,0],[0,-5.113],[0,0]],"o":[[0,0],[-5.113,0],[0,0],[0,-5.113],[0,0],[5.113,0],[0,0],[0,5.113]],"v":[[140.063,100.812],[-140.063,100.812],[-149.321,91.555],[-149.321,-91.555],[-140.063,-100.812],[140.063,-100.812],[149.321,-91.555],[149.321,91.555]],"c":true}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.556862771511,0.51372551918,0.258823543787,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.239,335.025]},"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":0,"k":{"i":[[0,0],[5.057,0],[0,0],[0,5.057],[0,0],[-5.067,0],[0,0],[0,-5.067]],"o":[[0,5.057],[0,0],[-5.067,0],[0,0],[0,-5.067],[0,0],[5.057,0],[0,0]],"v":[[134.153,76.864],[124.999,86.028],[-124.989,86.028],[-134.153,76.864],[-134.153,-74.261],[-124.989,-83.425],[124.999,-83.425],[134.153,-74.261]],"c":true}},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":0,"k":{"i":[[5.057,0],[0,0],[0,-5.057],[0,0],[-5.057,0],[0,0],[0,5.067],[0,0]],"o":[[0,0],[-5.057,0],[0,0],[0,5.067],[0,0],[5.057,0],[0,0],[0,-5.057]],"v":[[138.616,-99.764],[-138.606,-99.764],[-147.77,-90.61],[-147.77,90.6],[-138.606,99.764],[138.616,99.764],[147.77,90.6],[147.77,-90.61]],"c":true}},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274510622,0.439215689898,0.219607844949,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,335.027]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"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.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[5.11,0],[0,0],[0,0],[0,0],[0.05,-1.85],[0,0],[-5.4,-2.17],[2.76,-4.18],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0.98,1.52],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[0,0],[0,0],[0,0],[0,-5.11]],"v":[[29.58,-100.81],[14.58,-100.81],[-26.42,-100.81],[-38.83,-100.81],[-37.38,-95.65],[-37.49,-91.66],[-28.55,-78.44],[-6.04,-55.81],[-22.65,-38.1],[-24.6,-33.16],[-24.6,-17.1],[-22.02,-11.57],[-2.62,6.35],[-2.54,12.23],[-22.01,31.29],[-22.01,35.89],[-2.47,53.32],[-2.47,59.11],[-22.2,76.7],[-22.36,81.15],[-3.25,100.81],[26.04,100.81],[38.83,87.64],[38.83,-91.56]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9,"s":[{"i":[[5.11,0],[0,0],[0,0],[0,0],[-0.289,-1.828],[0,0],[-5.706,-1.148],[1.951,-4.613],[0,0],[-0.334,-1.799],[0,0],[-1.853,-1.05],[0,0],[1.463,-1.868],[0,0],[-1.581,-0.958],[0,0],[1.42,-1.83],[0,0],[-1.429,-1.016],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0.98,1.52],[0,0],[1.062,5.722],[0,0],[0,0],[-0.985,1.546],[0,0],[0.39,2.104],[0,0],[2.069,1.172],[0,0],[-1.134,1.451],[0,0],[1.982,1.199],[0,0],[-1.075,1.39],[0,0],[0,0],[0,0],[0,0],[0,-5.11]],"v":[[29.58,-100.81],[14.58,-100.81],[-26.42,-100.81],[-38.83,-100.81],[-50.908,-98.123],[-50.289,-94.18],[-37.945,-76.269],[-11.684,-58.126],[-24.784,-37.682],[-25.8,-32.469],[-22.87,-16.679],[-19.324,-11.713],[3.02,2.367],[4.171,8.134],[-11.495,30.426],[-10.655,34.949],[11.737,48.521],[12.793,54.214],[-3.396,75.109],[-2.742,79.513],[19.635,95.356],[26.04,100.81],[38.83,87.64],[38.83,-91.56]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":154,"s":[{"i":[[5.11,0],[0,0],[0,0],[0,0],[-0.289,-1.828],[0,0],[-5.706,-1.148],[1.951,-4.613],[0,0],[-0.334,-1.799],[0,0],[-1.853,-1.05],[0,0],[1.463,-1.868],[0,0],[-1.581,-0.958],[0,0],[1.42,-1.83],[0,0],[-1.429,-1.016],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0.98,1.52],[0,0],[1.062,5.722],[0,0],[0,0],[-0.985,1.546],[0,0],[0.39,2.104],[0,0],[2.069,1.172],[0,0],[-1.134,1.451],[0,0],[1.982,1.199],[0,0],[-1.075,1.39],[0,0],[0,0],[0,0],[0,0],[0,-5.11]],"v":[[29.58,-100.81],[14.58,-100.81],[-26.42,-100.81],[-38.83,-100.81],[-36.375,-97.938],[-35.756,-93.995],[-23.412,-76.084],[2.849,-57.94],[-10.251,-37.497],[-11.267,-32.284],[-8.337,-16.494],[-4.791,-11.527],[17.553,2.552],[18.704,8.319],[3.039,30.611],[3.878,35.134],[26.27,48.707],[27.326,54.399],[11.137,75.294],[11.791,79.698],[34.168,95.542],[26.04,100.81],[38.83,87.64],[38.83,-91.56]],"c":true}]},{"t":167,"s":[{"i":[[5.11,0],[0,0],[0,0],[0,0],[0.05,-1.85],[0,0],[-5.4,-2.17],[2.76,-4.18],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0.98,1.52],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[0,0],[0,0],[0,0],[0,-5.11]],"v":[[29.58,-100.81],[14.58,-100.81],[-26.42,-100.81],[-38.83,-100.81],[-37.38,-95.65],[-37.49,-91.66],[-28.55,-78.44],[-6.04,-55.81],[-22.65,-38.1],[-24.6,-33.16],[-24.6,-17.1],[-22.02,-11.57],[-2.62,6.35],[-2.54,12.23],[-22.01,31.29],[-22.01,35.89],[-2.47,53.32],[-2.47,59.11],[-22.2,76.7],[-22.36,81.15],[-3.25,100.81],[26.04,100.81],[38.83,87.64],[38.83,-91.56]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274510622,0.439215689898,0.219607844949,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[325.727,335.027]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":147,"s":[0]},{"t":155,"s":[30]}]},"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":0,"k":{"i":[[0,-5.109],[0,0],[5.11,0],[0,0],[0,0],[0,6.903],[0,0],[5.15,3.259],[0,0],[0,0],[0,0]],"o":[[0,0],[0,5.12],[0,0],[0,0],[6.253,-2.924],[0,0],[0,-6.095],[0,0],[0,0],[0,0],[5.109,0]],"v":[[81.515,-91.56],[81.515,91.55],[72.265,100.81],[-81.355,100.81],[-59.654,90.663],[-49.405,74.556],[-49.405,-70.391],[-57.677,-85.415],[-81.355,-100.4],[-81.515,-100.81],[72.265,-100.81]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274510622,0.439215689898,0.219607844949,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[283.042,335.027]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":30},"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":0,"k":{"i":[[1.65,2.11],[-10.54,0],[0,0],[-5.46,-6.897],[3.22,0],[0,0]],"o":[[5.46,-6.897],[0,0],[10.55,0],[-1.66,2.11],[0,0],[-3.22,0]],"v":[[-147.77,3.97],[-122.48,-7.469],[122.47,-7.469],[147.77,3.97],[140.06,7.469],[-140.07,7.469]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.317647069693,0.270588248968,0.137254908681,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,428.367]},"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":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.607843160629,0.568627476692,0.341176480055,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,367.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":"Group 9","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.607843160629,0.568627476692,0.341176480055,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,308.945]},"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 10","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.847058832645,0.819607853889,0.57647061348,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,370.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":"Group 11","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.847058832645,0.819607853889,0.57647061348,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,311.945]},"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 12","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.847058832645,0.819607853889,0.57647061348,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,396.475]},"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 13","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.847058832645,0.819607853889,0.57647061348,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,338.121]},"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 14","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.40000000596,0.345098048449,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,393.137]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 15","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.40000000596,0.345098048449,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,335.121]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 16","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.847058832645,0.819607853889,0.57647061348,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,279.501]},"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 17","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[10.54,0],[0,0],[5.46,8.14]],"o":[[-5.46,8.14],[0,0],[-10.55,0],[0,0]],"v":[[147.77,-6.75],[122.48,6.75],[-122.47,6.75],[-147.77,-6.75]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.917647063732,0.886274516582,0.654901981354,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,248.097]},"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 18","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-1.65,-2.49],[10.54,0],[0,0],[5.46,8.14],[-3.22,0],[0,0]],"o":[[-5.46,8.14],[0,0],[-10.55,0],[1.66,-2.49],[0,0],[3.22,0]],"v":[[147.77,-4.685],[122.48,8.815],[-122.47,8.815],[-147.77,-4.685],[-140.06,-8.815],[140.07,-8.815]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.956862747669,0.913725495338,0.670588254929,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,246.032]},"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 19","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[19.63,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-17.592,0],[0,0]],"v":[[147.77,-3.338],[122.48,3.338],[-122.47,3.338],[-147.77,-3.338]],"c":false}},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.40000000596,0.345098048449,0.180392161012,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":9},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.237,276.292]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":20},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 20","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[5.113,0],[0,0],[0,5.113],[0,0],[-5.113,0],[0,0],[0,-5.113],[0,0]],"o":[[0,0],[-5.113,0],[0,0],[0,-5.113],[0,0],[5.113,0],[0,0],[0,5.113]],"v":[[140.063,100.812],[-140.063,100.812],[-149.321,91.555],[-149.321,-91.555],[-140.063,-100.812],[140.063,-100.812],[149.321,-91.555],[149.321,91.555]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.764705896378,0.737254917622,0.470588237047,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[215.239,335.025]},"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 21","bm":0,"hd":false}],"ip":0,"op":180,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"side key 2","parent":15,"sr":1,"ks":{"o":{"a":1,"k":[{"t":59,"s":[0],"h":1},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":120,"s":[100]},{"t":121,"s":[0],"h":1}]},"r":{"a":0,"k":-180},"p":{"a":0,"k":[369.877,260.324,0]},"a":{"a":0,"k":[-37.125,202.75,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,-6.5],[-1,-12.5],[-91.25,-5.5],[0.125,-0.125],[-70.25,55.75],[-8.75,4],[0,0]],"o":[[0,0],[0,0],[0,0],[-8.25,6],[-70.5,55],[3.041,0.064],[-95,-3.75],[0,-13],[-0.75,-41.75],[0,0]],"v":[[-31.75,13.125],[-31.75,13.125],[-65.25,48.75],[-66.25,202],[-78.5,224.5],[-34.125,390.875],[-32.094,390.938],[-78.25,224.25],[-66,202.25],[-65.125,48.75]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0]],"v":[[-31.75,13.5],[-52.5,14],[-52.5,46],[-52.5,204],[-52.5,221],[-52.5,392],[-31.75,392],[-31.75,220.75],[-31.75,203],[-31.75,45.25]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[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],[0,0],[0,0],[0,0],[0,0]],"v":[[-31.75,13.5],[-52.5,14],[-52.5,46],[-52.5,204],[-52.5,221],[-52.5,392],[-31.75,392],[-31.75,220.75],[-31.75,203],[-31.75,45.25]],"c":true}]},{"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[0,-6.5],[-1,-12.5],[-91.25,-5.5],[0.125,-0.125],[-70.25,55.75],[-8.75,4],[0,0]],"o":[[0,0],[0,0],[0,0],[-8.25,6],[-70.5,55],[3.041,0.064],[-95,-3.75],[0,-13],[-0.75,-41.75],[0,0]],"v":[[-31.75,13.125],[-31.75,13.125],[-65.25,48.75],[-66.25,202],[-78.5,224.5],[-34.125,390.875],[-32.094,390.938],[-78.25,224.25],[-66,202.25],[-65.125,48.75]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.666666686535,0.435294121504,0.027450980619,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":2,"bm":0,"nm":"Stroke 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.721568644047,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"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}],"ip":40,"op":129,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"key 2","parent":7,"sr":1,"ks":{"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[-14]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.66],"y":[0]},"t":40,"s":[180]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":126,"s":[180]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.33],"y":[0]},"t":154,"s":[-14]},{"t":167,"s":[0]}]},"p":{"a":0,"k":[0.376,-5.463,0]},"a":{"a":0,"k":[364.376,259.537,0]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,22.832],[-9.901,13.36]],"o":[[-15.289,-14.63],[0,-17.905],[0,0]],"v":[[12.405,52.937],[-12.405,-5.134],[3.351,-52.937]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,22.832],[0.042,13.36]],"o":[[0.064,-14.63],[0,-17.905],[0,0]],"v":[[67.016,52.937],[67.121,-5.134],[67.055,-52.937]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,22.832],[0.042,13.36]],"o":[[0.064,-14.63],[0,-17.905],[0,0]],"v":[[67.016,52.937],[67.121,-5.134],[67.055,-52.937]],"c":false}]},{"t":120,"s":[{"i":[[0,0],[0,22.832],[-9.901,13.36]],"o":[[-15.289,-14.63],[0,-17.905],[0,0]],"v":[[12.405,52.937],[-12.405,-5.134],[3.351,-52.937]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.858823537827,0.270588248968,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[297.588,164.947]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[-2.272,1.494]],"o":[[2.103,-1.71],[0,0]],"v":[[-3.283,2.405],[3.283,-2.405]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0.01,1.494]],"o":[[-0.009,-1.71],[0,0]],"v":[[46.411,2.405],[46.383,-2.405]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0.01,1.494]],"o":[[-0.009,-1.71],[0,0]],"v":[[46.411,2.405],[46.383,-2.405]],"c":false}]},{"t":120,"s":[{"i":[[0,0],[-2.272,1.494]],"o":[[2.103,-1.71],[0,0]],"v":[[-3.283,2.405],[3.283,-2.405]],"c":false}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.858823537827,0.270588248968,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":7},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[318.173,95.017]},"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":[318.173,95.017]},"a":{"a":0,"k":[318.173,95.017]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-4.003,-2.592],[-5.276,-3.791],[2.654,-2.585],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.826,0.969],[0,0],[0,5.276],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,4.891],[2.138,1.384],[3.009,2.162],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.067],[0,0],[4.661,-2.472],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-44.232,-5.583],[-20.826,11.587],[-20.151,20.687],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.103,-2.573],[38.581,-3.888],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.017,-2.592],[0.022,-3.791],[-0.011,-2.585],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.969],[0,0],[0,5.276],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,4.891],[-0.009,1.384],[-0.013,2.162],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.067],[0,0],[-0.02,-2.472],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.62,-5.583],[-0.718,11.587],[-0.721,20.687],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.573],[-0.968,-3.888],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.017,-2.592],[0.022,-3.791],[-0.011,-2.585],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.969],[0,0],[0,5.276],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,4.891],[-0.009,1.384],[-0.013,2.162],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.067],[0,0],[-0.02,-2.472],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.62,-5.583],[-0.718,11.587],[-0.721,20.687],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.573],[-0.968,-3.888],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"t":120,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-4.003,-2.592],[-5.276,-3.791],[2.654,-2.585],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.826,0.969],[0,0],[0,5.276],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,4.891],[2.138,1.384],[3.009,2.162],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.067],[0,0],[4.661,-2.472],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-44.232,-5.583],[-20.826,11.587],[-20.151,20.687],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.103,-2.573],[38.581,-3.888],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"st","c":{"a":0,"k":[0.666666686535,0.435294121504,0.027450980619,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":[365.178,260.907]},"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":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[3.272,-80.647],[3.5,81.262],[-3.5,74.062],[-3.5,42.102],[1.99,37.212],[1.99,31.422],[-3.5,26.522],[-3.5,-4.358],[1.92,-9.668],[1.84,-15.548],[-3.5,-20.478],[-3.5,-75.658],[0.49,-80.305]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[16.96,-80.647],[16.959,81.262],[16.989,74.062],[16.989,42.102],[16.966,37.212],[16.966,31.422],[16.989,26.522],[16.989,-4.358],[16.966,-9.668],[16.966,-15.548],[16.989,-20.478],[16.989,-75.658],[16.972,-80.305]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[16.96,-80.647],[16.959,81.262],[16.989,74.062],[16.989,42.102],[16.966,37.212],[16.966,31.422],[16.989,26.522],[16.989,-4.358],[16.966,-9.668],[16.966,-15.548],[16.989,-20.478],[16.989,-75.658],[16.972,-80.305]],"c":true}]},{"t":120,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0]],"o":[[0,41.471],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,-1.93]],"v":[[3.272,-80.647],[3.5,81.262],[-3.5,74.062],[-3.5,42.102],[1.99,37.212],[1.99,31.422],[-3.5,26.522],[-3.5,-4.358],[1.92,-9.668],[1.84,-15.548],[-3.5,-20.478],[-3.5,-75.658],[0.49,-80.305]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411792755,0.360784322023,0.117647059262,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[347.473,356.925]},"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":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[1.19,-1.27]],"v":[[6.272,-80.78],[6.5,80.787],[-0.5,73.587],[-6.5,67.417],[-6.5,46.977],[-0.5,41.627],[4.99,36.737],[4.99,30.947],[-0.5,26.047],[-6.5,20.697],[-6.5,1.037],[-0.5,-4.833],[4.92,-10.143],[4.84,-16.023],[-0.5,-20.953],[-6.5,-26.493],[-6.5,-69.743],[-0.5,-76.133],[1.42,-78.183]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.005,-1.27]],"v":[[19.96,-80.78],[19.959,80.787],[19.989,73.587],[20.014,67.417],[20.014,46.977],[19.989,41.627],[19.966,36.737],[19.966,30.947],[19.989,26.047],[20.014,20.697],[20.014,1.037],[19.989,-4.833],[19.966,-10.143],[19.966,-16.023],[19.989,-20.953],[20.014,-26.493],[20.014,-69.743],[19.989,-76.133],[19.981,-78.183]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.008,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.007,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.005,-1.27]],"v":[[19.96,-80.78],[19.959,80.787],[19.989,73.587],[20.014,67.417],[20.014,46.977],[19.989,41.627],[19.966,36.737],[19.966,30.947],[19.989,26.047],[20.014,20.697],[20.014,1.037],[19.989,-4.833],[19.966,-10.143],[19.966,-16.023],[19.989,-20.953],[20.014,-26.493],[20.014,-69.743],[19.989,-76.133],[19.981,-78.183]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.82,1.53],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.73,-1.54],[0,0],[0,0],[0,0],[0,0],[0,0],[1.78,-1.57],[0,0],[0,0],[0,0],[0,0],[0,0],[1.19,-1.27]],"v":[[6.272,-80.78],[6.5,80.787],[-0.5,73.587],[-6.5,67.417],[-6.5,46.977],[-0.5,41.627],[4.99,36.737],[4.99,30.947],[-0.5,26.047],[-6.5,20.697],[-6.5,1.037],[-0.5,-4.833],[4.92,-10.143],[4.84,-16.023],[-0.5,-20.953],[-6.5,-26.493],[-6.5,-69.743],[-0.5,-76.133],[1.42,-78.183]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.858823537827,0.270588248968,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[344.473,357.4]},"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":[344.473,357.4]},"a":{"a":0,"k":[344.473,357.4]},"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":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[-1.93,0],[-0.18,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[1.82,0],[0.01,0.12]],"v":[[3.5,-82.67],[3.5,78.96],[-3.5,86.17],[-3.5,-82.67],[0,-86.17],[3.48,-83.03]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0.008,0],[0.001,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[-0.008,0],[0,0.12]],"v":[[-17.184,-82.67],[-17.184,78.96],[-17.154,86.17],[-17.154,-82.67],[-17.169,-86.17],[-17.184,-83.03]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0.008,0],[0.001,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[-0.008,0],[0,0.12]],"v":[[-17.184,-82.67],[-17.184,78.96],[-17.154,86.17],[-17.154,-82.67],[-17.169,-86.17],[-17.184,-83.03]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[-1.93,0],[-0.18,-1.76]],"o":[[0,0],[0,0],[0,0],[0,-1.93],[1.82,0],[0.01,0.12]],"v":[[3.5,-82.67],[3.5,78.96],[-3.5,86.17],[-3.5,-82.67],[0,-86.17],[3.48,-83.03]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[0.529411792755,0.360784322023,0.117647059262,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[381.473,349.667]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[-3.59,0],[-0.18,-3.43]],"o":[[0,0],[0,0],[0,0],[-0.1,-0.45],[0,0],[0,-3.59],[3.47,0],[0.01,0.12]],"v":[[6.5,-84.18],[6.5,77.45],[-0.5,84.66],[-6.35,90.68],[-6.5,89.29],[-6.5,-84.18],[0,-90.68],[6.48,-84.54]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[0.015,0],[0.001,-3.43]],"o":[[0,0],[0,0],[0,0],[0,-0.45],[0,0],[0,-3.59],[-0.015,0],[0,0.12]],"v":[[-14.184,-84.18],[-14.184,77.45],[-14.154,84.66],[-14.13,90.68],[-14.129,89.29],[-14.129,-84.18],[-14.157,-90.68],[-14.184,-84.54]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[0.015,0],[0.001,-3.43]],"o":[[0,0],[0,0],[0,0],[0,-0.45],[0,0],[0,-3.59],[-0.015,0],[0,0.12]],"v":[[-14.184,-84.18],[-14.184,77.45],[-14.154,84.66],[-14.13,90.68],[-14.129,89.29],[-14.129,-84.18],[-14.157,-90.68],[-14.184,-84.54]],"c":true}]},{"t":120,"s":[{"i":[[0,-0.12],[0,0],[0,0],[0,0],[0,0.48],[0,0],[-3.59,0],[-0.18,-3.43]],"o":[[0,0],[0,0],[0,0],[-0.1,-0.45],[0,0],[0,-3.59],[3.47,0],[0.01,0.12]],"v":[[6.5,-84.18],[6.5,77.45],[-0.5,84.66],[-6.35,90.68],[-6.5,89.29],[-6.5,-84.18],[0,-90.68],[6.48,-84.54]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.858823537827,0.270588248968,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 1","bm":0,"hd":false},{"ty":"tr","p":{"a":0,"k":[378.473,351.177]},"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":[378.473,351.177]},"a":{"a":0,"k":[378.473,351.177]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[0,-41.193],[41.193,0],[0,41.193],[-41.193,0]],"o":[[0,41.193],[-41.193,0],[0,-41.193],[41.193,0]],"v":[[74.586,0],[0,74.586],[-74.586,0],[0,-74.586]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[0,-41.193],[-0.173,0],[0,41.193],[0.173,0]],"o":[[0,41.193],[0.173,0],[0,-41.193],[-0.173,0]],"v":[[-1.119,0],[-0.805,74.586],[-0.491,0],[-0.805,-74.586]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[0,-41.193],[-0.173,0],[0,41.193],[0.173,0]],"o":[[0,41.193],[0.173,0],[0,-41.193],[-0.173,0]],"v":[[-1.119,0],[-0.805,74.586],[-0.491,0],[-0.805,-74.586]],"c":true}]},{"t":120,"s":[{"i":[[0,-41.193],[41.193,0],[0,41.193],[-41.193,0]],"o":[[0,41.193],[-41.193,0],[0,-41.193],[41.193,0]],"v":[[74.586,0],[0,74.586],[-74.586,0],[0,-74.586]],"c":true}]}]},"nm":"Path 1","hd":false},{"ty":"st","c":{"a":0,"k":[0.686274528503,0.482352942228,0.070588238537,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":3},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,159.627]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":80},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[41.87,0],[0,41.858],[-41.858,0],[0,-41.858]],"o":[[-41.858,0],[0,-41.858],[41.87,0],[0,41.858]],"v":[[-0.006,75.802],[-75.796,0],[-0.006,-75.802],[75.796,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.176,0],[0,41.858],[0.176,0],[0,-41.858]],"o":[[0.176,0],[0,-41.858],[-0.176,0],[0,41.858]],"v":[[0,75.802],[0.319,0],[0,-75.802],[-0.319,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.176,0],[0,41.858],[0.176,0],[0,-41.858]],"o":[[0.176,0],[0,-41.858],[-0.176,0],[0,41.858]],"v":[[0,75.802],[0.319,0],[0,-75.802],[-0.319,0]],"c":true}]},{"t":120,"s":[{"i":[[41.87,0],[0,41.858],[-41.858,0],[0,-41.858]],"o":[[-41.858,0],[0,-41.858],[41.87,0],[0,41.858]],"v":[[-0.006,75.802],[-75.796,0],[-0.006,-75.802],[75.796,0]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[49.33,0],[0,-49.318],[-49.317,0],[0,49.317]],"o":[[-49.317,0],[0,49.317],[49.33,0],[0,-49.318]],"v":[[-0.006,-89.308],[-89.302,0],[-0.006,89.308],[89.302,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.208,0],[0,-49.317],[0.208,0],[0,49.318]],"o":[[0.208,0],[0,49.317],[-0.208,0],[0,-49.318]],"v":[[0,-89.308],[0.376,0],[0,89.308],[-0.376,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.208,0],[0,-49.317],[0.208,0],[0,49.318]],"o":[[0.208,0],[0,49.317],[-0.208,0],[0,-49.318]],"v":[[0,-89.308],[0.376,0],[0,89.308],[-0.376,0]],"c":true}]},{"t":120,"s":[{"i":[[49.33,0],[0,-49.318],[-49.317,0],[0,49.317]],"o":[[-49.317,0],[0,49.317],[49.33,0],[0,-49.318]],"v":[[-0.006,-89.308],[-89.302,0],[-0.006,89.308],[89.302,0]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.686274528503,0.482352942228,0.070588238537,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[364.376,158.825]},"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":0,"k":14},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"Group 6","bm":0,"hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[-2.76,-10.27],[0,0],[0,0],[0,5.82],[0,0],[1.66,1.76],[0,0]],"o":[[0,0],[0,0],[-5.4,-2.17],[0,0],[0.07,-2.44],[0,0],[6.05,8.41]],"v":[[68.765,-46.565],[-52.585,74.775],[-57.425,73.095],[-66.365,59.875],[-66.255,55.885],[-68.765,49.365],[55.375,-74.775]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.913725495338,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[380.808,183.492]},"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":0,"k":{"i":[[-3.7,-3.88],[0,0],[2.94,4.55],[0,0],[-10.11,11.14],[0,0],[0,0]],"o":[[0,0],[-3.62,-3.97],[0,0],[0,0],[12.12,-13.354],[0,0],[4.35,3.14]],"v":[[67.445,-57.23],[-57.585,67.8],[-67.445,54.98],[-3.655,-8.8],[22.072,-14.527],[28.697,-41.152],[55.345,-67.8]],"c":true}},"nm":"Path 1","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.913725495338,0.701960802078,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[361.038,156.637]},"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":[361.038,156.637]},"a":{"a":0,"k":[361.038,156.637]},"s":{"a":0,"k":[100,100]},"r":{"a":0,"k":0},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":22,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":142,"s":[0]},{"t":164,"s":[100]}]},"sk":{"a":0,"k":0},"sa":{"a":0,"k":0},"nm":"Transform"}],"nm":"light","bm":0,"hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-10.59],[-25.805,-36.4],[-0.005,-62.2],[25.805,-36.4]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-10.59],[-0.697,-36.4],[-0.806,-62.2],[-0.915,-36.4]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-10.59],[-0.697,-36.4],[-0.806,-62.2],[-0.915,-36.4]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-10.59],[-25.805,-36.4],[-0.005,-62.2],[25.805,-36.4]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[34.97,0],[0,-34.96],[-34.96,0],[0,34.96]],"o":[[-34.96,0],[0,34.96],[34.97,0],[0,-34.96]],"v":[[-0.005,-63.31],[-63.305,0],[-0.005,63.31],[63.305,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.147,0],[0,-34.96],[0.147,0],[0,34.96]],"o":[[0.147,0],[0,34.96],[-0.147,0],[0,-34.96]],"v":[[-0.806,-63.31],[-0.539,0],[-0.806,63.31],[-1.072,0]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.147,0],[0,-34.96],[0.147,0],[0,34.96]],"o":[[0.147,0],[0,34.96],[-0.147,0],[0,-34.96]],"v":[[-0.806,-63.31],[-0.539,0],[-0.806,63.31],[-1.072,0]],"c":true}]},{"t":120,"s":[{"i":[[34.97,0],[0,-34.96],[-34.96,0],[0,34.96]],"o":[[-34.96,0],[0,34.96],[34.97,0],[0,-34.96]],"v":[[-0.005,-63.31],[-63.305,0],[-0.005,63.31],[63.305,0]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.96862745285,0.780392169952,0.349019616842,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,159.627]},"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.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.06,0],[0,14.26],[0.06,0],[0,-14.25]],"o":[[0.06,0],[0,-14.25],[-0.06,0],[0,14.26]],"v":[[-0.806,-111.87],[-0.697,-137.68],[-0.806,-163.48],[-0.914,-137.68]],"c":true}]},{"t":120,"s":[{"i":[[14.26,0],[0,14.26],[-14.25,0],[0,-14.25]],"o":[[-14.25,0],[0,-14.25],[14.26,0],[0,14.26]],"v":[[-0.005,-111.87],[-25.805,-137.68],[-0.005,-163.48],[25.805,-137.68]],"c":true}]}]},"nm":"Path 1","hd":false},{"ind":1,"ty":"sh","ks":{"a":1,"k":[{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":60,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-5.4,-2.17],[2.763,-4.183],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.83,0.97],[0,0],[0,5.27],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.07],[0,0],[4.66,-2.47],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-41.795,-4.32],[-19.285,18.31],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.115,-2.58],[38.585,-3.89],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":70,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.023,-2.17],[-0.012,-4.183],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.97],[0,0],[0,5.27],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,5.82],[0,0],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.07],[0,0],[-0.02,-2.47],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.63,-4.32],[-0.725,18.31],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.58],[-0.968,-3.89],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"i":{"x":0.3,"y":1},"o":{"x":0.33,"y":0},"t":110,"s":[{"i":[[-0.203,0],[0,-48.25],[0.085,-17.71],[0,-2.75],[0,0],[0.023,-2.17],[-0.012,-4.183],[0,0],[0,-1.83],[0,0],[0.007,-1.37],[0,0],[-0.007,-1.57],[0,0],[0.006,-1.23],[0,0],[-0.007,-1.54],[0,0],[0.005,-1.26],[0,0],[0.005,1.24],[0,0],[0,0.8],[0,0],[0.008,0.97],[0,0],[0,5.27],[0,0],[0.009,1.74],[0,29.76]],"o":[[0.203,0],[0,27.86],[-0.009,1.81],[0,0],[0,5.82],[0,0],[0,0],[0.005,1.34],[0,0],[0,2.14],[0,0],[-0.008,1.53],[0,0],[0.006,1.22],[0,0],[-0.007,1.54],[0,0],[0.006,1.17],[0,0],[-0.005,1.24],[0,0],[-0.002,-0.58],[0,0],[0,-2.07],[0,0],[-0.02,-2.47],[0,0],[0,-2.85],[-0.096,-17.53],[0,-48.25]],"v":[[-0.806,-188.65],[-0.438,-101.28],[-0.579,-28.7],[-0.593,-21.53],[-0.592,-17.54],[-0.63,-4.32],[-0.725,18.31],[-0.655,36.02],[-0.646,40.96],[-0.646,57.02],[-0.657,62.55],[-0.739,80.47],[-0.739,86.35],[-0.657,105.41],[-0.657,110.01],[-0.74,127.44],[-0.74,133.23],[-0.657,150.82],[-0.656,155.27],[-0.789,187.72],[-0.807,187.72],[-0.942,154.89],[-0.945,152.74],[-0.945,2.36],[-0.958,-2.58],[-0.968,-3.89],[-1,-16.48],[-1,-18.18],[-1.015,-25.43],[-1.173,-101.28]],"c":true}]},{"t":120,"s":[{"i":[[48.26,0],[0,-48.25],[-20.32,-17.71],[0.08,-2.75],[0,0],[-5.4,-2.17],[2.763,-4.183],[0,0],[0,-1.83],[0,0],[-1.63,-1.37],[0,0],[1.78,-1.57],[0,0],[-1.38,-1.23],[0,0],[1.73,-1.54],[0,0],[-1.22,-1.26],[0,0],[-1.21,1.24],[0,0],[0,0.8],[0,0],[-1.83,0.97],[0,0],[0,5.27],[0,0],[-2.26,1.74],[0,29.76]],"o":[[-48.25,0],[0,27.86],[2.07,1.81],[0,0],[0,5.82],[0,0],[0,0],[-1.25,1.34],[0,0],[0,2.14],[0,0],[1.82,1.53],[0,0],[-1.38,1.22],[0,0],[1.73,1.54],[0,0],[-1.31,1.17],[0,0],[1.21,1.24],[0,0],[0.56,-0.58],[0,0],[0,-2.07],[0,0],[4.66,-2.47],[0,0],[0,-2.85],[22.72,-17.53],[0,-48.25]],"v":[[-0.005,-188.65],[-87.375,-101.28],[-53.805,-28.7],[-50.625,-21.53],[-50.735,-17.54],[-41.795,-4.32],[-19.285,18.31],[-35.895,36.02],[-37.845,40.96],[-37.845,57.02],[-35.265,62.55],[-15.865,80.47],[-15.785,86.35],[-35.255,105.41],[-35.255,110.01],[-15.715,127.44],[-15.715,133.23],[-35.445,150.82],[-35.605,155.27],[-4.055,187.72],[0.365,187.72],[32.265,154.89],[33.135,152.74],[33.135,2.36],[36.115,-2.58],[38.585,-3.89],[46.155,-16.48],[46.155,-18.18],[49.765,-25.43],[87.375,-101.28]],"c":true}]}]},"nm":"Path 2","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411768913,0.721568644047,0.141176477075,1]},"o":{"a":0,"k":100},"r":1,"bm":0,"nm":"Fill 1","hd":false},{"ty":"tr","p":{"a":0,"k":[365.178,260.907]},"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":40,"op":129,"st":0,"bm":0}]} \ No newline at end of file diff --git a/app/views/Theme/Theme.tsx b/app/views/Theme/Theme.tsx new file mode 100644 index 0000000..254f5ee --- /dev/null +++ b/app/views/Theme/Theme.tsx @@ -0,0 +1,295 @@ +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { useRosettaColors } from "@/app/hooks/useRosettaColors"; +import { Box, darken, Divider, Flex, Image, lighten, Paper, Text, useComputedColorScheme, useMantineColorScheme, useMantineTheme } from "@mantine/core"; +import lightThemeImage from './comments-light.svg' +import darkThemeImage from './comments-dark.svg' +import { useSetting } from "@/app/providers/SettingsProvider/useSetting"; +import { SettingsPaper } from "@/app/components/SettingsPaper/SettingsPaper"; +import { Message, MessageStyle, MessageSystem } from "@/app/components/Messages/Message"; +import { DeliveredMessageState, DialogProvider } from "@/app/providers/DialogProvider/DialogProvider"; +import { AttachmentType } from "@/app/providers/ProtocolProvider/protocol/packets/packet.message"; +import { usePublicKey } from "@/app/providers/AccountProvider/usePublicKey"; +import { WALLPAPERS } from "@/app/wallpapers/wallpapers"; +import { useEffect, useRef } from "react"; + + +export function Theme() { + const {setColorScheme} = useMantineColorScheme({ + keepTransitions: true + }); + const currentColorSchemeValue = useMantineColorScheme().colorScheme; + const colorScheme = useComputedColorScheme(); + + const colors = useRosettaColors(); + const theme = useMantineTheme(); + const publicKey = usePublicKey(); + const scrollContainerRef = useRef(null); + const [showAlertInReplyMessages, setShowAlertInReplyMessages] = useSetting + ('showAlertInReplyMessages', true); + const [showTimeInReplyMessages, setShowTimeInReplyMessages] = useSetting + ('showTimeInReplyMessages', false); + const [bgInReplyMessages, setBgInReplyMessages] = useSetting + ('bgInReplyMessages', ''); + const [messageStyle, setMessageStyle] = useSetting + ('messageStyle', MessageStyle.ROWS); + const [wallpaper, setWallpaper] = useSetting + ('wallpaper', ''); + + const themeSwitcherColor = colorScheme == 'light' ? darken(colors.chevrons.active, 0.6) : + lighten(colors.chevrons.active, 0.6); + + const colorSchemeSwitch = (scheme : any) => { + setColorScheme(scheme); + } + + useEffect(() => { + const handleWheel = (event: WheelEvent) => { + event.preventDefault(); + if (scrollContainerRef.current) { + scrollContainerRef.current.scrollLeft += event.deltaY; + } + }; + + const element = scrollContainerRef.current; + if (element) { + element.addEventListener('wheel', handleWheel, { passive: false }); + } + + return () => { + if (element) { + element.removeEventListener('wheel', handleWheel); + } + }; + }, []); + + return (<> + + + + + + + + + + + + + + colorSchemeSwitch('light')} align={'center'} justify={'center'}> + + + + Light + + colorSchemeSwitch('dark')} align={'center'} justify={'center'}> + + + + Dark + + + setWallpaper('')} align={'center'} justify={'center'}> + + No wallpaper + + {WALLPAPERS.map((wp, index) => ( + { + setWallpaper(wp.src); + setMessageStyle(MessageStyle.BUBBLES); + }} align={'center'} justify={'center'}> + + + + {wp.name} + + ))} + + + {/* + + Theme +
+ colorSchemeSwitch('light')} align={'center'} justify={'center'}> + + + + Light + + colorSchemeSwitch('dark')} align={'center'} justify={'center'}> + + + + Dark + +
+
+
*/} + {/* + + */} + colorSchemeSwitch(v ? 'dark' : 'light')} + > + + { + if(!v) { + setWallpaper(''); + } + setMessageStyle(v ? MessageStyle.BUBBLES : MessageStyle.ROWS) + }} + > + + + Enable this option to display messages in bubble style, similar to many modern messaging apps. + + setShowAlertInReplyMessages(v)} + > + + + Reply messages may be forged by sender, if its option enabled you will see alert in such messages. + + setShowTimeInReplyMessages(v)} + > + + + If this option is enabled, the time will be displayed for each reply message. + + { + setBgInReplyMessages(v == 'none' ? '' : v!); + }} + variants={['none', 'red', 'pink', 'grape', 'violet', 'indigo', 'blue', 'cyan', 'teal', 'green', 'lime', 'yellow', 'orange', 'brown', 'gray']} + > + + This setting allows you to choose a background color for reply messages to make them stand out more clearly. + +
+ ) +} \ No newline at end of file diff --git a/app/views/Theme/comments-dark.svg b/app/views/Theme/comments-dark.svg new file mode 100644 index 0000000..c020647 --- /dev/null +++ b/app/views/Theme/comments-dark.svg @@ -0,0 +1 @@ + diff --git a/app/views/Theme/comments-light.svg b/app/views/Theme/comments-light.svg new file mode 100644 index 0000000..c2d5533 --- /dev/null +++ b/app/views/Theme/comments-light.svg @@ -0,0 +1 @@ + diff --git a/app/views/Update/Update.tsx b/app/views/Update/Update.tsx new file mode 100644 index 0000000..b1904a5 --- /dev/null +++ b/app/views/Update/Update.tsx @@ -0,0 +1,38 @@ +import { Breadcrumbs } from "@/app/components/Breadcrumbs/Breadcrumbs"; +import { InternalScreen } from "@/app/components/InternalScreen/InternalScreen"; +import { RosettaPower } from "@/app/components/RosettaPower/RosettaPower"; +import { SettingsAlert } from "@/app/components/SettingsAlert/SettingsAlert"; +import { SettingsInput } from "@/app/components/SettingsInput/SettingsInput"; +import { UpdateAlert } from "@/app/components/UpdateAlert/UpdateAlert"; +import { CORE_VERSION } from "@/app/constants"; +import { useUpdater } from "@/app/hooks/useUpdater"; +import { APP_VERSION } from "@/app/version"; +import { Box, Text } from "@mantine/core"; + +export function Update() { + const {appUpdateUrl, kernelUpdateUrl, kernelOutdatedForNextAppUpdates} = useUpdater(); + + return ( + <> + + + {(kernelUpdateUrl != "" || appUpdateUrl != "" || kernelOutdatedForNextAppUpdates) && ( + + )} + + + + + + If the kernel version is outdated, you need to reinstall the application so that this kernel continues to receive current updates. + + + + App version. We recommend always keeping it up to date to improve visual effects and have the latest features. + + + + + + ) +} \ No newline at end of file diff --git a/app/wallpapers/.DS_Store b/app/wallpapers/.DS_Store new file mode 100644 index 0000000..78cd4c1 Binary files /dev/null and b/app/wallpapers/.DS_Store differ diff --git a/app/wallpapers/image/back_1.png b/app/wallpapers/image/back_1.png new file mode 100644 index 0000000..b490b49 Binary files /dev/null and b/app/wallpapers/image/back_1.png differ diff --git a/app/wallpapers/image/back_10.png b/app/wallpapers/image/back_10.png new file mode 100644 index 0000000..482c8b1 Binary files /dev/null and b/app/wallpapers/image/back_10.png differ diff --git a/app/wallpapers/image/back_11.png b/app/wallpapers/image/back_11.png new file mode 100644 index 0000000..0518932 Binary files /dev/null and b/app/wallpapers/image/back_11.png differ diff --git a/app/wallpapers/image/back_2.png b/app/wallpapers/image/back_2.png new file mode 100644 index 0000000..4946de6 Binary files /dev/null and b/app/wallpapers/image/back_2.png differ diff --git a/app/wallpapers/image/back_3.png b/app/wallpapers/image/back_3.png new file mode 100644 index 0000000..b490b49 Binary files /dev/null and b/app/wallpapers/image/back_3.png differ diff --git a/app/wallpapers/image/back_4.png b/app/wallpapers/image/back_4.png new file mode 100644 index 0000000..b8cd264 Binary files /dev/null and b/app/wallpapers/image/back_4.png differ diff --git a/app/wallpapers/image/back_5.png b/app/wallpapers/image/back_5.png new file mode 100644 index 0000000..3ec7b78 Binary files /dev/null and b/app/wallpapers/image/back_5.png differ diff --git a/app/wallpapers/image/back_6.png b/app/wallpapers/image/back_6.png new file mode 100644 index 0000000..ac9297f Binary files /dev/null and b/app/wallpapers/image/back_6.png differ diff --git a/app/wallpapers/image/back_7.png b/app/wallpapers/image/back_7.png new file mode 100644 index 0000000..4df23a3 Binary files /dev/null and b/app/wallpapers/image/back_7.png differ diff --git a/app/wallpapers/image/back_8.png b/app/wallpapers/image/back_8.png new file mode 100644 index 0000000..9994940 Binary files /dev/null and b/app/wallpapers/image/back_8.png differ diff --git a/app/wallpapers/image/back_9.png b/app/wallpapers/image/back_9.png new file mode 100644 index 0000000..1490358 Binary files /dev/null and b/app/wallpapers/image/back_9.png differ diff --git a/app/wallpapers/wallpapers.ts b/app/wallpapers/wallpapers.ts new file mode 100644 index 0000000..1786231 --- /dev/null +++ b/app/wallpapers/wallpapers.ts @@ -0,0 +1,30 @@ +import w1 from './image/back_3.png'; +import w2 from './image/back_4.png'; +import w3 from './image/back_5.png'; +import w4 from './image/back_6.png'; +import w5 from './image/back_7.png'; +import w6 from './image/back_8.png'; +import w7 from './image/back_9.png'; +import w8 from './image/back_10.png'; +import w9 from './image/back_11.png'; +import w10 from './image/back_1.png'; +import w11 from './image/back_2.png'; + +export interface Wallpaper { + name: string; + src: string; +} + +export const WALLPAPERS: Wallpaper[] = [ + { name: "Wallpaper 1", src: w1 }, + { name: "Wallpaper 2", src: w2 }, + { name: "Wallpaper 3", src: w3 }, + { name: "Wallpaper 4", src: w4 }, + { name: "Wallpaper 5", src: w5 }, + { name: "Wallpaper 6", src: w6 }, + { name: "Wallpaper 7", src: w7 }, + { name: "Wallpaper 8", src: w8 }, + { name: "Wallpaper 9", src: w9 }, + { name: "Wallpaper 10", src: w10 }, + { name: "Wallpaper 11", src: w11 }, +] \ No newline at end of file diff --git a/build-packs.sh b/build-packs.sh new file mode 100644 index 0000000..e9c2cde --- /dev/null +++ b/build-packs.sh @@ -0,0 +1,29 @@ +#/bin/bash +echo "Using directory: $(pwd)" +current_dir=$(pwd) +# Run npm with a timeout using perl (cross-platform alternative to 'timeout') +perl -e 'alarm shift; $SIG{ALRM}=sub{kill INT => -$$}; exec @ARGV' 10 npm run start +echo "Build complete. Packing service packs..." + +APP_VERSION=$(grep -o 'APP_VERSION *= *"[^"]*' "$current_dir/app/version.ts" | sed 's/APP_VERSION *= *"//') +CORE_MIN_REQUIRED_VERSION=$(grep -o 'CORE_MIN_REQUIRED_VERSION *= *"[^"]*' "$current_dir/app/version.ts" | sed 's/CORE_MIN_REQUIRED_VERSION *= *"//') + +echo "App version: $APP_VERSION" +echo "Kernel target version: $CORE_MIN_REQUIRED_VERSION" + +mkdir -p "${current_dir}/packs" +rm -rf "${current_dir}/packs"/* +for PLATFORM in darwin linux win32; do + for ARCH in arm64 x64; do + ZIP_NAME="sp-${PLATFORM}-${ARCH}-${APP_VERSION}-${CORE_MIN_REQUIRED_VERSION}.zip" + SRC_DIR="${current_dir}/out/renderer/assets" + if [ -d "$SRC_DIR" ]; then + (cd "$SRC_DIR" && zip -j "${current_dir}/packs/${ZIP_NAME}" *) + echo "Packed $SRC_DIR to /packs/${ZIP_NAME}" + else + echo "Warning: $SRC_DIR does not exist, skipping." + fi + done +done + + diff --git a/electron-builder.yml b/electron-builder.yml new file mode 100644 index 0000000..1f48593 --- /dev/null +++ b/electron-builder.yml @@ -0,0 +1,42 @@ +appId: im.rosetta +productName: Rosetta +directories: + buildResources: resources/build +files: + - '!**/.vscode/*' + - '!src/*' + - '!electron.vite.config.{js,ts,mjs,cjs}' + - '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}' + - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}' + - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}' +asarUnpack: + - resources/** +win: + executableName: Rosetta +nsis: + artifactName: ${name}-${version}-setup.${ext} + shortcutName: ${productName} + uninstallDisplayName: ${productName} + createDesktopShortcut: always +mac: + entitlementsInherit: resources/build/entitlements.mac.plist + extendInfo: + - NSCameraUsageDescription: Application requests access to the device's camera. + - NSMicrophoneUsageDescription: Application requests access to the device's microphone. + - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder. + - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder. + notarize: false + ico: resources/icon.icns +dmg: + artifactName: ${name}-${version}.${ext} +linux: + target: + - AppImage + - snap + - deb + maintainer: electronjs.org + category: Utility +appImage: + artifactName: ${name}-${version}.${ext} +npmRebuild: false +buildFromSource: false diff --git a/electron.vite.config.ts b/electron.vite.config.ts new file mode 100644 index 0000000..ff42438 --- /dev/null +++ b/electron.vite.config.ts @@ -0,0 +1,59 @@ +import { resolve } from 'path' +import react from '@vitejs/plugin-react' +import tailwindcss from '@tailwindcss/vite' +import { defineConfig, externalizeDepsPlugin } from 'electron-vite' + +export default defineConfig({ + main: { + build: { + rollupOptions: { + input: { + main: resolve(__dirname, 'lib/main/main.ts'), + }, + }, + }, + resolve: { + alias: { + '@/app': resolve(__dirname, 'app'), + '@/lib': resolve(__dirname, 'lib'), + '@/resources': resolve(__dirname, 'resources'), + }, + }, + plugins: [externalizeDepsPlugin()], + }, + preload: { + build: { + rollupOptions: { + input: { + preload: resolve(__dirname, 'lib/preload/preload.ts'), + }, + }, + }, + resolve: { + alias: { + '@/app': resolve(__dirname, 'app'), + '@/lib': resolve(__dirname, 'lib'), + '@/resources': resolve(__dirname, 'resources'), + }, + }, + plugins: [externalizeDepsPlugin()], + }, + renderer: { + root: './app', + build: { + rollupOptions: { + input: { + index: resolve(__dirname, 'app/dev.html') + }, + }, + }, + resolve: { + alias: { + '@/app': resolve(__dirname, 'app'), + '@/lib': resolve(__dirname, 'lib'), + '@/resources': resolve(__dirname, 'resources'), + }, + }, + plugins: [react(), tailwindcss()], + }, +}) diff --git a/icons/.DS_Store b/icons/.DS_Store new file mode 100644 index 0000000..6a95c03 Binary files /dev/null and b/icons/.DS_Store differ diff --git a/icons/mac/icon.icns b/icons/mac/icon.icns new file mode 100644 index 0000000..6fd9a96 Binary files /dev/null and b/icons/mac/icon.icns differ diff --git a/icons/png/1024x1024.png b/icons/png/1024x1024.png new file mode 100644 index 0000000..63b6f77 Binary files /dev/null and b/icons/png/1024x1024.png differ diff --git a/icons/png/128x128.png b/icons/png/128x128.png new file mode 100644 index 0000000..0304ef6 Binary files /dev/null and b/icons/png/128x128.png differ diff --git a/icons/png/16x16.png b/icons/png/16x16.png new file mode 100644 index 0000000..0a4cbde Binary files /dev/null and b/icons/png/16x16.png differ diff --git a/icons/png/24x24.png b/icons/png/24x24.png new file mode 100644 index 0000000..5f66f48 Binary files /dev/null and b/icons/png/24x24.png differ diff --git a/icons/png/256x256.png b/icons/png/256x256.png new file mode 100644 index 0000000..61bbc90 Binary files /dev/null and b/icons/png/256x256.png differ diff --git a/icons/png/32x32.png b/icons/png/32x32.png new file mode 100644 index 0000000..6291582 Binary files /dev/null and b/icons/png/32x32.png differ diff --git a/icons/png/48x48.png b/icons/png/48x48.png new file mode 100644 index 0000000..d7c730b Binary files /dev/null and b/icons/png/48x48.png differ diff --git a/icons/png/512x512.png b/icons/png/512x512.png new file mode 100644 index 0000000..3b0dc8a Binary files /dev/null and b/icons/png/512x512.png differ diff --git a/icons/png/64x64.png b/icons/png/64x64.png new file mode 100644 index 0000000..c0b84a5 Binary files /dev/null and b/icons/png/64x64.png differ diff --git a/icons/win/icon.ico b/icons/win/icon.ico new file mode 100644 index 0000000..ab2871f Binary files /dev/null and b/icons/win/icon.ico differ diff --git a/lib/.DS_Store b/lib/.DS_Store new file mode 100644 index 0000000..8938f11 Binary files /dev/null and b/lib/.DS_Store differ diff --git a/lib/main/app.ts b/lib/main/app.ts new file mode 100644 index 0000000..71f40bd --- /dev/null +++ b/lib/main/app.ts @@ -0,0 +1,227 @@ +import { BrowserWindow, shell, app, ipcMain, nativeTheme, screen, powerMonitor } from 'electron' +import { join } from 'path' +import fs from 'fs' +import { WORKING_DIR } from './constants'; +import { boot } from './boot/bootloader'; + +export async function startApplication() { + let preloaderWindow = createPreloaderWindow(); + await fs.promises.mkdir(WORKING_DIR, { recursive: true }); + createAppWindow(preloaderWindow); +} + +export function createPreloaderWindow() { + let preloaderWindow = new BrowserWindow({ + width: 150, + height: 150, + frame: false, + transparent: true, + center: true, + resizable: false, + alwaysOnTop: true + }); + + preloaderWindow.loadFile(join(__dirname, '../../resources/preload.html')); + + return preloaderWindow; +} + +export function createAppWindow(preloaderWindow?: BrowserWindow): void { + const mainWindow = new BrowserWindow({ + width: 900, + height: 670, + minWidth: 385, + minHeight: 555, + show: false, + title: 'Rosetta Messager', + icon: join(__dirname, '../../resources/R.png'), + frame: false, + autoHideMenuBar: true, + backgroundColor: '#000', + webPreferences: { + preload: join(__dirname, '../preload/preload.js'), + sandbox: false, + nodeIntegration: true, + nodeIntegrationInSubFrames: true, + nodeIntegrationInWorker: true, + webSecurity: false, + allowRunningInsecureContent: true + } + }); + + powerMonitor.on('lock-screen', () => { + if (mainWindow && !mainWindow.isDestroyed()) { + mainWindow.reload(); + } + }); + + foundationIpcRegistration(mainWindow); + + mainWindow.webContents.on('did-finish-load', () => { + if (preloaderWindow && !preloaderWindow.isDestroyed()) { + preloaderWindow.close(); + } + mainWindow.show(); + }); + + mainWindow.webContents.setWindowOpenHandler((details) => { + shell.openExternal(details.url) + return { action: 'deny' } + }); + + boot(mainWindow); +} + +export function foundationIpcRegistration(mainWindow: BrowserWindow) { + ipcMain.removeAllListeners('window-resize'); + ipcMain.removeAllListeners('window-resizeble'); + ipcMain.removeAllListeners('window-theme'); + ipcMain.removeAllListeners("write-file"); + ipcMain.removeAllListeners("read-file"); + ipcMain.removeAllListeners("mkdir"); + ipcMain.removeHandler("get-core-version"); + ipcMain.removeHandler("get-arch"); + ipcMain.removeAllListeners("get-user-dir"); + ipcMain.removeHandler("get-downloads-path") + ipcMain.removeHandler("get-app-path"); + ipcMain.removeHandler('open-dev-tools'); + ipcMain.removeHandler('window-state'); + ipcMain.removeHandler('window-toggle'); + ipcMain.removeHandler('window-close'); + ipcMain.removeHandler('window-minimize'); + ipcMain.removeHandler('showItemInFolder'); + ipcMain.removeHandler('openExternal'); + + ipcMain.handle('showItemInFolder', (_, fullPath: string) => { + shell.showItemInFolder(fullPath); + }); + + ipcMain.handle('openExternal', (_, url: string) => { + shell.openExternal(url); + }); + + ipcMain.handle('open-dev-tools', () => { + if (mainWindow.webContents.isDevToolsOpened()) { + return; + } + mainWindow.webContents.openDevTools({ mode: 'detach' }); + }); + + ipcMain.on('window-resize', (_, { width, height }) => { + const { x: currentX, y: currentY, width: currentWidth, height: currentHeight } = mainWindow.getBounds(); + + const newX = currentX + (currentWidth - width) / 2; + const newY = currentY + (currentHeight - height) / 2; + + const { width: screenWidth, height: screenHeight } = screen.getPrimaryDisplay().workAreaSize; + + const clampedX = Math.max(0, Math.min(newX, screenWidth - width)); + //const clampedY = Math.max(0, Math.min(newY, screenHeight - height)); + + mainWindow.setBounds({ + x: Math.round(clampedX), + //y: Math.round(clampedY), + width, + height, + }); + }); + + ipcMain.on('window-resizeble', (_, isResizeble) => { + mainWindow.setResizable(isResizeble); + mainWindow.webContents.send('window-state-changed'); + }); + + ipcMain.on('window-theme', (_, theme) => { + nativeTheme.themeSource = theme; + }) + + ipcMain.on("write-file", (_, filePath, content) => { + fs.writeFile(filePath, content, (err) => { + if (err) { + console.error(err); + return; + } + }); + }); + ipcMain.handle('window-state', () => { + return { + isMinimized: mainWindow.isMinimized(), + isMaximized: mainWindow.isMaximized(), + isFullScreen: mainWindow.isFullScreen(), + isVisible: mainWindow.isVisible(), + isFocused: mainWindow.isFocused(), + isResizable: mainWindow.isResizable(), + isClosable: mainWindow.isClosable(), + isDestroyed: mainWindow.isDestroyed(), + bounds: mainWindow.getBounds() + }; + }); + + ipcMain.handle('window-toggle', () => { + if (mainWindow.isMaximized() || mainWindow.isFullScreen()) { + mainWindow.setFullScreen(false); + mainWindow.unmaximize(); + } else { + mainWindow.setFullScreen(true); + } + setTimeout(() => { + /** + * Разобраться с этой хуйней + */ + mainWindow.webContents.send('window-state-changed'); + }, 700); + }); + + ipcMain.handle('window-minimize', () => { + mainWindow.minimize(); + mainWindow.webContents.send('window-state-changed'); + }); + + ipcMain.handle('window-close', () => { + mainWindow.hide(); + mainWindow.webContents.send('window-state-changed'); + }); + + ipcMain.on("read-file", (_, filePath) => { + fs.readFile(filePath, 'utf8', (err, data) => { + if (err) { + console.error(err); + return; + } + mainWindow.webContents.send("read-file-reply", data); + }); + }); + + ipcMain.on("mkdir", (_, dirPath) => { + fs.mkdir(dirPath, { recursive: true }, (err) => { + if (err) { + console.error(err); + return; + } + mainWindow.webContents.send("mkdir-reply"); + }); + }); + /** + * Change to get-core-version + */ + ipcMain.handle("get-core-version", () => { + return app.getVersion(); + }); + + ipcMain.handle("get-arch", () => { + return process.arch; + }) + + ipcMain.on("get-user-dir", () => { + const userDir = app.getPath("userData"); + mainWindow.webContents.send("get-user-dir-reply", userDir); + }); + + ipcMain.handle("get-app-path", () => { + return app.getAppPath(); + }); + + ipcMain.handle("get-downloads-path", () => { + return app.getPath("downloads"); + }); +} diff --git a/lib/main/boot/bootloader.ts b/lib/main/boot/bootloader.ts new file mode 100644 index 0000000..835b420 --- /dev/null +++ b/lib/main/boot/bootloader.ts @@ -0,0 +1,67 @@ +import { app, BrowserWindow, ipcMain } from "electron"; +import fs from 'fs/promises' +import { WORKING_DIR } from "../constants"; +import path from "path"; +import { Logger } from "../logger"; + +const logger = Logger('bootloader'); + + +ipcMain.handleOnce('report-boot-process-failed', async () => { + /** + * Если процесс загрузки не завершился успешно, то preload показывает + * экран ошибки, а нам нужно откатиться назад к загрузке dev.html + * и удалить скомпилированные файлы, чтобы при следующем запуске + * приложение попыталось загрузиться в режиме разработки. + */ + let filePath = path.join(WORKING_DIR, 'b'); + await fs.rmdir(filePath, { recursive: true }); + logger.log("Boot process failed, removed compiled files"); + logger.log(`Removed compiled files at ${filePath}`); + logger.log(`Restarting application in safe mode`); + app.relaunch(); + app.exit(0); +}); + +/** + * Boot функция, эта функция запускает приложение + * @param window окно + */ +export async function boot(window : BrowserWindow) { + if (!app.isPackaged && process.env['ELECTRON_RENDERER_URL']) { + await bootDevelopment(window); + // await bootProduction(window); + window.webContents.openDevTools({ mode: 'detach' }); + //console.info(window.webContents); + return; + } + //window.webContents.openDevTools({ mode: 'detach' }); + await bootProduction(window); +} + +async function bootProduction(window : BrowserWindow) { + logger.log("Booting in production mode"); + let html = path.join(WORKING_DIR, 'b', 'j.html'); + if(await existsFile(html)){ + logger.log(`Loading compiled file`); + window.loadFile(html); + } else { + logger.log(`Loading conatiner file`); + window.loadFile(path.join(__dirname, '../renderer/dev.html')); + } +} + +async function bootDevelopment(window : BrowserWindow) { + logger.log("Booting in development mode"); + window.loadURL(process.env['ELECTRON_RENDERER_URL'] + "/dev.html"); + window.webContents.openDevTools({ mode: 'detach' }); +} + +async function existsFile(filePath: string): Promise { + try { + await fs.access(filePath); + return true; + } catch { + return false; + } +} diff --git a/lib/main/boot/compiler.ts b/lib/main/boot/compiler.ts new file mode 100644 index 0000000..6a773ba --- /dev/null +++ b/lib/main/boot/compiler.ts @@ -0,0 +1,130 @@ +import path from "path"; +import { WORKING_DIR } from "../constants"; +import fs from 'fs/promises' +import JSZip from "jszip"; +import crypto from "crypto"; +import { Logger } from "../logger"; + +const logger = Logger('compiler'); + +export interface BundleFile { + file: string; + type: string; + main: boolean; +} + +const binaryFileTypes = ['png', 'jpg', 'jpeg', 'gif', 'webp', 'mp4', 'mp3', 'wav', 'ogg', 'pdf', 'zip', 'rar', '7z']; + + +export async function compileBundleFile(zip : JSZip) { + let timestart = Date.now(); + logger.log("Starting compilation of bundle file"); + let files : BundleFile[] = await getAllFilesInBundleForCompile(zip); + if(files.length == 0){ + logger.log("No files to compile in bundle"); + throw new Error("No files to compile in bundle"); + } + let compileOutputDir = path.join(WORKING_DIR, 'b'); + await fs.mkdir(compileOutputDir, { recursive: true }); + + let mainFiles = files.filter(f => f.main); + let otherFiles = files.filter(f => !f.main); + + logger.log(`Compiling ${files.length} files, ${mainFiles.length} main files and ${otherFiles.length} other files`); + + for (let file of files) { + let zipFile = zip.file(file.file); + if (zipFile) { + let content = await zipFile.async('nodebuffer'); + let outputPath = path.join(compileOutputDir, await hashFileName(path.basename(file.file))); + await fs.writeFile(outputPath, content); + } + } + + await compileHtmlFile(mainFiles); + await transitionFilenamesInFiles([...mainFiles, ...otherFiles]); + logger.log("Compilation done successfully in " + (Date.now() - timestart) + "ms"); +} + +async function transitionFilenamesInFiles(otherFiles: BundleFile[]) { + logger.log(`Transitioning filenames in ${otherFiles.length} files`); + for(let i = 0; i < otherFiles.length; i++){ + let file = otherFiles[i]; + let filePath = path.join(WORKING_DIR, 'b', await hashFileName(path.basename(file.file))); + let buffer = await fs.readFile(filePath, { + encoding: file.type && binaryFileTypes.includes(file.type) ? 'binary' : 'utf-8' + }); + let content = buffer.toString(); + logger.log(`Processing file ${path.basename(file.file)}`); + + for(let j = 0; j < otherFiles.length; j++){ + let targetFile = otherFiles[j]; + let originalName = path.basename(targetFile.file); + let hashedName = await hashFileName(originalName); + let entries = content.split(originalName); + if(entries.length <= 0){ + continue; + } + logger.log(`In file ${path.basename(file.file)} replacing ${originalName} with ${hashedName} (${entries.length - 1} occurrences)`); + content = entries.join(hashedName); + } + logger.log(`Flush transitioned file ${path.basename(file.file)}`); + await fs.writeFile(filePath, content, { + encoding: file.type && binaryFileTypes.includes(file.type) ? 'binary' : 'utf-8' + }); + } +} + +async function compileHtmlFile(mainFiles: BundleFile[]) { + let html = await constructHtmlTemplateToCompile(); + html = html.replace(``, ''); + let scripts = mainFiles.filter(f => f.type === 'js').map(f => f.file); + let styles = mainFiles.filter(f => f.type === 'css').map(f => f.file); + + let scriptTags : string = ""; + for (let script of scripts) { + let hashedName = await hashFileName(path.basename(script)); + scriptTags += `\n`; + } + + let styleTags : string = ""; + for (let style of styles) { + let hashedName = await hashFileName(path.basename(style)); + styleTags += `\n`; + } + + + html = html.replace('', `${scriptTags}\n${styleTags}`); + html = html.replace('\n', ''); + + + let outputHtmlPath = path.join(WORKING_DIR, 'b', 'j.html'); + await fs.writeFile(outputHtmlPath, html); +} + +export async function getAllFilesInBundleForCompile(zip : JSZip) : Promise { + const mainFilePrefixes = ['index-', 'main-']; + return Object.keys(zip.files) + .filter(filePath => filePath.indexOf('__MACOSX') == -1) + .map(filePath => { + const ext = path.extname(filePath).slice(1); + const isMain = mainFilePrefixes.some(prefix => path.basename(filePath).startsWith(prefix)); + return { + file: filePath, + type: ext, + main: isMain + } as BundleFile; + }); +} + +async function constructHtmlTemplateToCompile() { + let buffer = await fs.readFile( + path.join(__dirname, '../../resources/prod.html') + ); + let html = buffer.toString(); + return html; +} + +async function hashFileName(name : string) : Promise { + return crypto.createHash('md5').update(name).digest('hex') + path.extname(name); +} \ No newline at end of file diff --git a/lib/main/boot/updater.ts b/lib/main/boot/updater.ts new file mode 100644 index 0000000..6d31bf1 --- /dev/null +++ b/lib/main/boot/updater.ts @@ -0,0 +1,10 @@ +import fs from 'fs/promises' +import JSZip from "jszip"; +import { compileBundleFile } from './compiler'; + +export async function installServiceUpdate(pathToUpdate : string) { + let data = await fs.readFile(pathToUpdate); + let zip = await JSZip.loadAsync(data); + await compileBundleFile(zip); + await fs.unlink(pathToUpdate); +} diff --git a/lib/main/constants.ts b/lib/main/constants.ts new file mode 100644 index 0000000..64d2d04 --- /dev/null +++ b/lib/main/constants.ts @@ -0,0 +1,8 @@ +import { app } from 'electron'; +import path from 'path'; + +export const WORKING_DIR = + path.join(app.getPath('home'), 'rosed'); + +export const LOGFILE_PATH = + path.join(WORKING_DIR, 'rosetta.log'); \ No newline at end of file diff --git a/lib/main/database.ts b/lib/main/database.ts new file mode 100644 index 0000000..79ee164 --- /dev/null +++ b/lib/main/database.ts @@ -0,0 +1,51 @@ +import path from 'path'; +import { WORKING_DIR } from './constants'; +import { promises as fs } from 'fs'; +import sqlite3 from 'sqlite3' + +let db : any = null; + +export async function initializeDatabase(){ + await fs.mkdir(WORKING_DIR, { recursive: true }); + const dbPath = path.join(WORKING_DIR, 'r_d'); + const dbLink = new sqlite3.Database(dbPath); + db = dbLink; +} + +export function runQuery(query: string, params: any[] = []) : Promise { + return new Promise((resolve, reject) => { + db.run(query, params, function (err) { + if (err) { + reject(); + } else { + resolve(); + } + }); + }); +} + +export function getQuery(query: string, params: any[] = []): Promise { + return new Promise((resolve, reject) => { + db.get(query, params, (err, row) => { + if (err) { + reject(err); + } else { + resolve(row); + } + }); + }); +} + +export function allQuery(query: string, params: any[] = []): Promise { + return new Promise((resolve, reject) => { + db.all(query, params, (err, rows) => { + if (err) { + reject(err); + } else { + resolve(rows); + } + }); + }); +} + +initializeDatabase(); \ No newline at end of file diff --git a/lib/main/index.d.ts b/lib/main/index.d.ts new file mode 100644 index 0000000..4be5476 --- /dev/null +++ b/lib/main/index.d.ts @@ -0,0 +1,27 @@ +/// + + +declare module '*.png' { + const content: string + export default content +} + +declare module '*.jpg' { + const content: string + export default content +} + +declare module '*.jpeg' { + const content: string + export default content +} + +declare module '*.svg' { + const content: string + export default content +} + +declare module '*.web' { + const content: string + export default content +} diff --git a/lib/main/ipcs/ipcDatabase.ts b/lib/main/ipcs/ipcDatabase.ts new file mode 100644 index 0000000..3ff403c --- /dev/null +++ b/lib/main/ipcs/ipcDatabase.ts @@ -0,0 +1,14 @@ +import { ipcMain } from 'electron'; +import { runQuery, getQuery, allQuery } from '../database'; + +ipcMain.handle('db:run', async (_, query: string, params: any[]) => { + return await runQuery(query, params); +}); + +ipcMain.handle('db:get', async (_, query: string, params: any[]) => { + return await getQuery(query, params); +}); + +ipcMain.handle('db:all', async (_, query: string, params: any[]) => { + return await allQuery(query, params); +}); \ No newline at end of file diff --git a/lib/main/ipcs/ipcDevice.ts b/lib/main/ipcs/ipcDevice.ts new file mode 100644 index 0000000..d3e7058 --- /dev/null +++ b/lib/main/ipcs/ipcDevice.ts @@ -0,0 +1,36 @@ +import { ipcMain } from "electron"; +import os from "os"; +import {machineId} from 'node-machine-id'; + +/** + * Consturct device name. + * Ex: Macbook Pro M3 + */ +ipcMain.handle('device:name', () => { + const type = os.type(); // 'Darwin', 'Windows_NT', 'Linux' + + let deviceName = ""; + + if (type === "Darwin") { + deviceName += "Mac"; + } else if (type === "Windows_NT") { + deviceName += "Windows"; + } else if (type === "Linux") { + deviceName += "Linux"; + } else { + deviceName += type + " "; + } + + const cpus = os.cpus(); + if (cpus && cpus.length > 0) { + const cpuModel = cpus[0].model; + deviceName += cpuModel.replace("Apple", "").replace("Processor", ""); + } + + return deviceName.trim(); +}); + + +ipcMain.handle('device:id', async () => { + return await machineId(); +}); \ No newline at end of file diff --git a/lib/main/ipcs/ipcFilestorage.ts b/lib/main/ipcs/ipcFilestorage.ts new file mode 100644 index 0000000..71c8abd --- /dev/null +++ b/lib/main/ipcs/ipcFilestorage.ts @@ -0,0 +1,22 @@ +import { ipcMain } from "electron"; +import { WORKING_DIR } from "../constants"; +import fs from 'fs/promises' +import path from 'path' + +ipcMain.handle('fileStorage:writeFile', async (_, file: string, data: string | Buffer, inWorkingDir : boolean = true) => { + const fullPath = path.join(inWorkingDir ? WORKING_DIR : '', file); + await fs.mkdir(path.dirname(fullPath), { recursive: true }); + await fs.writeFile(fullPath, data); + console.info("File written to " + fullPath); + return true; +}); + +ipcMain.handle('fileStorage:readFile', async (_, file: string, inWorkingDir : boolean = true) => { + try{ + const fullPath = path.join(inWorkingDir ? WORKING_DIR : '', file); + const data = await fs.readFile(fullPath); + return data; + }catch(e){ + return null; + } +}); \ No newline at end of file diff --git a/lib/main/ipcs/ipcLogger.ts b/lib/main/ipcs/ipcLogger.ts new file mode 100644 index 0000000..d71a39d --- /dev/null +++ b/lib/main/ipcs/ipcLogger.ts @@ -0,0 +1,10 @@ +import { ipcMain } from 'electron'; +import { promises as fs } from 'fs'; +import { LOGFILE_PATH } from '../constants'; + + + +ipcMain.handle('logger:log', async (_, logString) => { + console.log(logString); + await fs.appendFile(LOGFILE_PATH, logString + '\n'); +}); diff --git a/lib/main/ipcs/ipcNotification.ts b/lib/main/ipcs/ipcNotification.ts new file mode 100644 index 0000000..78b62e4 --- /dev/null +++ b/lib/main/ipcs/ipcNotification.ts @@ -0,0 +1,16 @@ +import { ipcMain, Notification } from "electron"; +import { restoreApplicationAfterClickOnTrayOrDock } from "../main"; + +ipcMain.handle('notification:show', async (_, title: string, body: string) => { + let id = Math.random().toString(36).substring(2, 15); + let note = new Notification({ + title: title, + body: body + }); + note.on('click', () => { + restoreApplicationAfterClickOnTrayOrDock(); + ipcMain.emit('notification:clicked', id); + }); + note.show(); + return id; +}); \ No newline at end of file diff --git a/lib/main/ipcs/ipcUpdate.ts b/lib/main/ipcs/ipcUpdate.ts new file mode 100644 index 0000000..aeb57c7 --- /dev/null +++ b/lib/main/ipcs/ipcUpdate.ts @@ -0,0 +1,14 @@ +import { app, ipcMain } from "electron"; +import { installServiceUpdate } from "../boot/updater"; +import path from "path"; +import { WORKING_DIR } from "../constants"; + + +ipcMain.handle('update:installServiceUpdate', async (_, bundleName: string) => { + await installServiceUpdate(path.join(WORKING_DIR, bundleName)); +}); + +ipcMain.handle('update:restartApp', async () => { + app.relaunch(); + app.exit(0); +}); \ No newline at end of file diff --git a/lib/main/logger.ts b/lib/main/logger.ts new file mode 100644 index 0000000..1baa9b1 --- /dev/null +++ b/lib/main/logger.ts @@ -0,0 +1,16 @@ +import { promises as fs } from 'fs'; +import { LOGFILE_PATH } from './constants'; + +export function Logger(component: string) { + + const log = async (message: string) => { + const date = new Date().toISOString(); + const logMessage = `[main_proc] [${date}] [${component}] ${message}`; + console.log(logMessage); + await fs.appendFile(LOGFILE_PATH, logMessage + '\n'); + } + + return { + log + }; +} \ No newline at end of file diff --git a/lib/main/main.ts b/lib/main/main.ts new file mode 100644 index 0000000..a169a38 --- /dev/null +++ b/lib/main/main.ts @@ -0,0 +1,102 @@ +import { app, BrowserWindow, Menu, nativeImage } from 'electron' +import { electronApp, optimizer } from '@electron-toolkit/utils' +import { createAppWindow, startApplication } from './app' +import './ipcs/ipcDatabase' +import './ipcs/ipcLogger' +import './ipcs/ipcFilestorage' +import './ipcs/ipcUpdate' +import './ipcs/ipcNotification' +import './ipcs/ipcDevice' +import { Tray } from 'electron/main' +import { join } from 'path' +import { Logger } from './logger' + +let lockInstance = app.requestSingleInstanceLock(); +let tray : Tray | null = null; +const size = process.platform === 'darwin' ? 18 : 22; +const logger = Logger('main'); + + +const icon = nativeImage.createFromPath( + join(__dirname, '../../resources/R.png') +).resize({ width: size, height: size }); + +if(!lockInstance){ + app.quit(); + process.exit(0); +} + +process.on('unhandledRejection', (reason) => { + logger.log(`main thread error, reason: ${reason}`); +}); + +app.disableHardwareAcceleration(); + +app.on('second-instance', () => { + // Someone tried to run a second instance, we should focus our window. + const allWindows = BrowserWindow.getAllWindows(); + if (allWindows.length) { + const mainWindow = allWindows[0]; + if (mainWindow.isMinimized()) mainWindow.restore(); + if (mainWindow.isVisible() === false) mainWindow.show(); + mainWindow.focus(); + } +}); + +export const restoreApplicationAfterClickOnTrayOrDock = () => { + const allWindows = BrowserWindow.getAllWindows(); + if (allWindows.length > 0) { + const mainWindow = allWindows[0]; + if (mainWindow.isMinimized()){ + mainWindow.restore(); + return; + } + if(mainWindow.isVisible() === false){ + mainWindow.show(); + } + mainWindow.focus(); + } else { + createAppWindow(); + } +} + +//Menu.setApplicationMenu(null); +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.whenReady().then(async () => { + electronApp.setAppUserModelId('Rosetta'); + tray = new Tray(icon); + const contextMenu = Menu.buildFromTemplate([ + { label: 'Open App', click: () => restoreApplicationAfterClickOnTrayOrDock() }, + { label: 'Quit', click: () => app.quit() } + ]); + tray.setContextMenu(contextMenu); + tray.setToolTip('Rosetta'); + tray.on('click', () => { + restoreApplicationAfterClickOnTrayOrDock(); + }); + startApplication(); + + // Default open or close DevTools by F12 in development + // and ignore CommandOrControl + R in production. + // see https://github.com/alex8088/electron-toolkit/tree/master/packages/utils + app.on('browser-window-created', (_, window) => { + optimizer.watchWindowShortcuts(window) + }) + + app.on('activate', function () { + restoreApplicationAfterClickOnTrayOrDock(); + }); +}) + +// Quit when all windows are closed, except on macOS. There, it's common +// for applications and their menu bar to stay active until the user quits +// explicitly with Cmd + Q. +app.on('window-all-closed', () => { + if (process.platform == 'darwin') { + app.hide(); + } +}) +// In this file, you can include the rest of your app's specific main process +// code. You can also put them in separate files and import them here. diff --git a/lib/preload/api.ts b/lib/preload/api.ts new file mode 100644 index 0000000..90c321f --- /dev/null +++ b/lib/preload/api.ts @@ -0,0 +1,18 @@ +import { ipcRenderer } from 'electron'; + +const api = { + send: (channel: string, ...args: any[]) => { + ipcRenderer.send(channel, ...args); + }, + receive: (channel: string, func: (...args: any[]) => void) => { + ipcRenderer.on(channel, (_, ...args) => func(...args)); + }, + invoke: (channel: string, ...args: any[]) => { + return ipcRenderer.invoke(channel, ...args); + }, + removeAllListeners: (channel: string) => { + ipcRenderer.removeAllListeners(channel); + }, +}; + +export default api; \ No newline at end of file diff --git a/lib/preload/index.d.ts b/lib/preload/index.d.ts new file mode 100644 index 0000000..35fa486 --- /dev/null +++ b/lib/preload/index.d.ts @@ -0,0 +1,17 @@ +import { ElectronAPI } from '@electron-toolkit/preload' +import type api from './api' + +declare global { + interface Window { + electron: ElectronAPI + api: typeof api, + version: string, + platform: string, + appPath: string, + arch: string, + shell: Electron.Shell; + downloadsPath: string; + deviceName: string; + deviceId: string; + } +} diff --git a/lib/preload/preload.ts b/lib/preload/preload.ts new file mode 100644 index 0000000..78c90c7 --- /dev/null +++ b/lib/preload/preload.ts @@ -0,0 +1,137 @@ +import { contextBridge, ipcRenderer, shell } from 'electron' +import { electronAPI } from '@electron-toolkit/preload' +import api from './api' + +const applicationLoader = ` +
+
+ +
+`; + +const applicationError = ` +
+
+
+ +
+

Application Error

+

The application failed to load properly. Please wait for application repairing or reinstall application.

+ ${applicationLoader} +
+
+

rosetta - powering freedom. visit about rosetta-im.com. error: boot_process_failed

+
+
+`; + + +const exposeContext = async () => { + let version = await ipcRenderer.invoke("get-core-version"); + let appPath = await ipcRenderer.invoke("get-app-path"); + let arch = await ipcRenderer.invoke("get-arch"); + let deviceName = await ipcRenderer.invoke("device:name"); + let deviceId = await ipcRenderer.invoke("device:id"); + + setTimeout(() => { + if(document.body.innerHTML.length < 100){ + document.body.innerHTML = applicationError; + ipcRenderer.invoke("report-boot-process-failed"); + } + }, 3000); + + let downloadsPath = await ipcRenderer.invoke("get-downloads-path"); + if (process.contextIsolated) { + try { + contextBridge.exposeInMainWorld('electron', electronAPI) + contextBridge.exposeInMainWorld('api', api) + contextBridge.exposeInMainWorld('version', version); + contextBridge.exposeInMainWorld('platform', process.platform); + contextBridge.exposeInMainWorld('appPath', appPath); + contextBridge.exposeInMainWorld('arch', arch); + contextBridge.exposeInMainWorld('deviceName', deviceName); + contextBridge.exposeInMainWorld('deviceId', deviceId); + contextBridge.exposeInMainWorld('shell', { + openExternal: (url: string) => { + ipcRenderer.invoke('openExternal', url); + }, + showItemInFolder: (fullPath: string) => { + ipcRenderer.invoke('showItemInFolder', fullPath); + } + }); + contextBridge.exposeInMainWorld('downloadsPath', downloadsPath) + } catch (error) { + console.error(error) + } + } else { + window.electron = electronAPI + window.api = api + window.version = version; + window.platform = process.platform; + window.appPath = appPath; + window.arch = arch; + window.shell = shell; + window.downloadsPath = downloadsPath; + window.deviceName = deviceName; + window.deviceId = deviceId; + } +} + +exposeContext(); \ No newline at end of file diff --git a/lib/window/ipcEvents.ts b/lib/window/ipcEvents.ts new file mode 100644 index 0000000..4bd0406 --- /dev/null +++ b/lib/window/ipcEvents.ts @@ -0,0 +1,35 @@ +import { type BrowserWindow, ipcMain } from 'electron' +import os from 'os' + +const handleIPC = (channel: string, handler: (...args: any[]) => void) => { + ipcMain.handle(channel, handler) +} + +export const registerWindowIPC = (mainWindow: BrowserWindow) => { + // Hide the menu bar + mainWindow.setMenuBarVisibility(false) + + // Register window IPC + handleIPC('init-window', () => { + const { width, height } = mainWindow.getBounds() + const minimizable = mainWindow.isMinimizable() + const maximizable = mainWindow.isMaximizable() + const platform = os.platform() + + return { width, height, minimizable, maximizable, platform } + }) + + handleIPC('is-window-minimizable', () => mainWindow.isMinimizable()) + handleIPC('is-window-maximizable', () => mainWindow.isMaximizable()) + handleIPC('window-minimize', () => mainWindow.minimize()) + handleIPC('window-maximize', () => mainWindow.maximize()) + handleIPC('window-close', () => mainWindow.close()) + handleIPC('window-maximize-toggle', () => { + if (mainWindow.isMaximized()) { + mainWindow.unmaximize() + } else { + mainWindow.maximize() + } + }) + +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2f7f4ff --- /dev/null +++ b/package.json @@ -0,0 +1,157 @@ +{ + "name": "Rosetta", + "version": "1.4.6", + "description": "Rosetta Messenger", + "main": "./out/main/main.js", + "license": "MIT", + "build": { + "electronUpdaterCompatibility": false, + "files": [ + "node_modules/sqlite3/**/*", + "out/main/**/*", + "out/preload/**/*", + "resources/**/*", + "out/renderer/**" + ], + "mac": { + "appId": "im.rosetta", + "icon": "icons/mac/icon.icns", + "target": [ + "zip", + "pkg" + ], + "artifactName": "/builds/darwin/${arch}/Rosetta-${version}.${ext}", + "publish": null + }, + "pkg": { + "scripts": "scripts", + "installLocation": "/Applications", + "isVersionChecked": true, + "isRelocatable": false, + "overwriteAction": "upgrade" + }, + "linux": { + "icon": "icons/png/256x256.png", + "target": [ + "AppImage" + ] + }, + "win": { + "icon": "icons/win/icon.ico", + "target": [ + "zip", + "nsis" + ], + "artifactName": "/builds/win/${arch}/Rosetta-${version}.${ext}" + }, + "nsis": { + "oneClick": false, + "allowToChangeInstallationDirectory": true, + "perMachine": true, + "createDesktopShortcut": true, + "createStartMenuShortcut": true, + "shortcutName": "Rosetta" + } + }, + "scripts": { + "dev": "electron-vite dev -w", + "format": "prettier --write .", + "lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix", + "start": "electron-vite preview", + "postinstall": "electron-builder install-app-deps", + "build:unpack": "electron-vite build && electron-builder --dir", + "kernel:win": "electron-vite build && electron-builder --win --x64", + "kernel:darwin-arm64": "electron-vite build && electron-builder --mac --arm64", + "kernel:darwin-x64": "electron-vite build && electron-builder --mac --x64", + "kernel:mac": "npm run kernel:darwin-x64 && npm run kernel:darwin-arm64", + "kernel:linux": "electron-vite build && electron-builder --linux --x64 --arm64" + }, + "dependencies": { + "@electron-toolkit/preload": "^3.0.1", + "@electron-toolkit/utils": "^4.0.0", + "@emoji-mart/data": "^1.2.1", + "@emoji-mart/react": "^1.1.1", + "@mantine/charts": "^8.3.12", + "@mantine/code-highlight": "^8.3.12", + "@mantine/core": "^8.3.12", + "@mantine/dates": "^8.3.12", + "@mantine/dropzone": "^8.3.12", + "@mantine/form": "^8.3.12", + "@mantine/hooks": "^8.3.12", + "@mantine/modals": "^8.3.12", + "@noble/ciphers": "^1.2.1", + "@noble/secp256k1": "^3.0.0", + "@tabler/icons-react": "^3.31.0", + "@types/elliptic": "^6.4.18", + "@types/node-forge": "^1.3.11", + "@types/npm": "^7.19.3", + "@types/react-syntax-highlighter": "^15.5.13", + "@types/react-transition-group": "^4.4.12", + "absurd-sql": "^0.0.54", + "bip39": "^3.1.0", + "blurhash": "^2.0.5", + "buffer": "^6.0.3", + "crypto-browserify": "^3.12.1", + "crypto-js": "^4.2.0", + "dayjs": "^1.11.13", + "elliptic": "^6.6.1", + "embla-carousel": "^8.6.0", + "embla-carousel-react": "^8.6.0", + "emoji-mart": "^5.6.0", + "emoji-picker-react": "^4.16.1", + "eventemitter3": "^5.0.1", + "events": "^3.3.0", + "i": "^0.3.7", + "jsencrypt": "^3.3.2", + "jszip": "^3.10.1", + "lottie-react": "^2.4.1", + "node-forge": "^1.3.1", + "node-machine-id": "^1.1.12", + "pako": "^2.1.0", + "react-router-dom": "^7.4.0", + "react-syntax-highlighter": "^16.1.0", + "react-transition-group": "^4.4.5", + "react-virtualized-auto-sizer": "^2.0.2", + "react-window": "^2.2.4", + "recharts": "^2.15.1", + "sql.js": "^1.13.0", + "sqlite3": "^5.1.7", + "wa-sqlite": "^1.0.0", + "web-bip39": "^0.0.3" + }, + "devDependencies": { + "@electron-toolkit/eslint-config": "^2.0.0", + "@electron-toolkit/eslint-config-ts": "^3.0.0", + "@electron-toolkit/tsconfig": "^1.0.1", + "@rushstack/eslint-patch": "^1.10.5", + "@tailwindcss/vite": "^4.0.9", + "@types/node": "^22.13.5", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@types/react-virtualized-auto-sizer": "^1.0.4", + "@types/react-window": "^1.8.8", + "@vitejs/plugin-react": "^4.3.4", + "electron": "^38.3.0", + "electron-builder": "^25.1.8", + "@electron/rebuild": "^4.0.3", + "electron-vite": "^3.0.0", + "eslint": "^9.21.0", + "eslint-plugin-react": "^7.37.4", + "framer-motion": "^12.4.7", + "postcss": "^8.5.3", + "postcss-preset-mantine": "^1.17.0", + "postcss-simple-vars": "^7.0.1", + "prettier": "^3.5.2", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "tailwindcss": "^4.0.9", + "typescript": "^5.7.3", + "vite": "^6.2.0" + }, + "overrides": { + "@emoji-mart/react": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + } +} diff --git a/packs/.DS_Store b/packs/.DS_Store new file mode 100644 index 0000000..c3c11d1 Binary files /dev/null and b/packs/.DS_Store differ diff --git a/packs/sp-darwin-arm64-0.6.0-1.4.6.zip b/packs/sp-darwin-arm64-0.6.0-1.4.6.zip new file mode 100644 index 0000000..7c63e73 Binary files /dev/null and b/packs/sp-darwin-arm64-0.6.0-1.4.6.zip differ diff --git a/packs/sp-darwin-x64-0.6.0-1.4.6.zip b/packs/sp-darwin-x64-0.6.0-1.4.6.zip new file mode 100644 index 0000000..7c63e73 Binary files /dev/null and b/packs/sp-darwin-x64-0.6.0-1.4.6.zip differ diff --git a/packs/sp-linux-arm64-0.6.0-1.4.6.zip b/packs/sp-linux-arm64-0.6.0-1.4.6.zip new file mode 100644 index 0000000..7c63e73 Binary files /dev/null and b/packs/sp-linux-arm64-0.6.0-1.4.6.zip differ diff --git a/packs/sp-linux-x64-0.6.0-1.4.6.zip b/packs/sp-linux-x64-0.6.0-1.4.6.zip new file mode 100644 index 0000000..7c63e73 Binary files /dev/null and b/packs/sp-linux-x64-0.6.0-1.4.6.zip differ diff --git a/packs/sp-win32-arm64-0.6.0-1.4.6.zip b/packs/sp-win32-arm64-0.6.0-1.4.6.zip new file mode 100644 index 0000000..7c63e73 Binary files /dev/null and b/packs/sp-win32-arm64-0.6.0-1.4.6.zip differ diff --git a/packs/sp-win32-x64-0.6.0-1.4.6.zip b/packs/sp-win32-x64-0.6.0-1.4.6.zip new file mode 100644 index 0000000..7c63e73 Binary files /dev/null and b/packs/sp-win32-x64-0.6.0-1.4.6.zip differ diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 0000000..069b052 --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,14 @@ +module.exports = { + plugins: { + 'postcss-preset-mantine': {}, + 'postcss-simple-vars': { + variables: { + 'mantine-breakpoint-xs': '36em', + 'mantine-breakpoint-sm': '48em', + 'mantine-breakpoint-md': '62em', + 'mantine-breakpoint-lg': '75em', + 'mantine-breakpoint-xl': '88em', + }, + }, + }, + }; \ No newline at end of file diff --git a/problems/problem_sync.md b/problems/problem_sync.md new file mode 100644 index 0000000..238a8e8 --- /dev/null +++ b/problems/problem_sync.md @@ -0,0 +1,15 @@ +# Проблема синхронизации своих же сообщений (не сообщений оппонента) + +При синхронизации переписок, мы отправляем пакеты сообщений на устройство, которое собираемся синхронизировать. Количество пакетов регулируется сервером, и сервер буквально может отправить последние пакеты за например 7 дней. +Проблема в том, что сообщения шифруются только для оппонентов, и не могут быть прочитаны ни кем кроме них (даже нами). Проблема возникает при синхронизации наших же сообщений. + +### 1. Пользователь был в сети, активно общался, а потом вышел из сети +Пользователь был в сети, общался, потом вышел из сети. В момент, когда пользователь был не в сети, ему могли написать сообщения. В следующий раз когда пользователь зайдет в сеть, хорошо бы как и во всех мессенджерах, загружать пользователю новые сообщения для чтения. Так оно и происходит. Работает это посредством того, что на сервере на некоторое время сохраняются сообщения (зашифрованные) которые отправили пользователю, и когда пользователь заходит, сервер их перенаправляет на пользователя. +Проблемы конкретно в этом случае нет, потому что мы синхронизируем только сообщения, которые пришли к нашему пользователю ОТ ОППОНЕНТОВ. Они и так предназначались для нас, а значит успешно расшифровываются с помощью ECC и ChaCha20. Проблемы начинаются в другом кейсе... + +### 2. У пользователя два устройства +Пользователь общался с одного из устройств (компьютер), второе в этот момент было офлайн (телефон), и не знало о том, что там что-то происходит с сообщениями. Допустим, оно вообще не было подключено к сети. Пользователь решил выключить компьютер и продолжить общаться с телефона. Включил телефон, зашел, и в этот момент приложению необходимо загрузить все те сообщения, которые и приходили и отправлялись пользователем за то время пока телефон был офлайн. Проще говоря, нужно синхронизироваться. С синхронизацией сообщений от оппонентов - проблем нет. Мы точно так же их получаем, как будто они были только что отправлены, разве что редактируем Timestamp. Текст точно так же как и обычно расшифровываем, сначала расшифровав ключ от ChaCha20 с помощью ECC и далее этим ключом расшифровав текст. Проблема начинается тогда, когда мы пытаемся расшифровать наши же собственные сообщения. Ключ от chacha20 зашифрован public ключом оппонента, и мы при синхронизации ключ расшифровать не можем, соотвественно не можем прочитать и текст. + + +# Решение, использованное в Rosetta +Добавить дополнительное поле aesChachaKey в PacketMessage, где ключ chacha20 зашифрован еще и AES256 приватным ключем отправителя. Таким образом при синхронизации сообщений отправитель которых равен текущему пользователю мы используем ключ из поля aesChachaKey, расшифровываем его с помощью private key и с помощью расшифрованного ключа дешифруем текст сообщения и вложения. \ No newline at end of file diff --git a/resources/.DS_Store b/resources/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/resources/.DS_Store differ diff --git a/resources/R.png b/resources/R.png new file mode 100644 index 0000000..7c9f137 Binary files /dev/null and b/resources/R.png differ diff --git a/resources/preload.html b/resources/preload.html new file mode 100644 index 0000000..1669c3e --- /dev/null +++ b/resources/preload.html @@ -0,0 +1,47 @@ + + + + + Rosetta + + + + + + + \ No newline at end of file diff --git a/resources/prod.html b/resources/prod.html new file mode 100644 index 0000000..921a0aa --- /dev/null +++ b/resources/prod.html @@ -0,0 +1,12 @@ + + + + + Rosetta Messenger + + + +
+ + + diff --git a/scripts/postinstall b/scripts/postinstall new file mode 100644 index 0000000..64038d0 --- /dev/null +++ b/scripts/postinstall @@ -0,0 +1,4 @@ +#!/bin/bash +sudo xattr -r -c /Applications/Rosetta.app +exit 0 + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..3996d75 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "esModuleInterop": true + }, + "files": [], + "references": [{ "path": "./tsconfig.node.json" }, { "path": "./tsconfig.web.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..03f17fb --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,14 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", + "include": ["lib/main/index.d.ts", "electron.vite.config.*", "lib/**/*", "resources/**/*"], + "compilerOptions": { + "composite": true, + "moduleResolution": "bundler", + "esModuleInterop": true, + "types": ["electron-vite/node"], + "baseUrl": ".", + "paths": { + "@/*": ["./*"] + } + } +} diff --git a/tsconfig.web.json b/tsconfig.web.json new file mode 100644 index 0000000..eb4c3b3 --- /dev/null +++ b/tsconfig.web.json @@ -0,0 +1,14 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.web.json", + "include": ["app/index.d.ts", "app/**/*", "lib/**/*", "lib/preload/*.d.ts", "resources/**/*"], + "compilerOptions": { + "composite": true, + "jsx": "react-jsx", + "baseUrl": ".", + "esModuleInterop": true, + "types": ["electron-vite/node"], + "paths": { + "@/*": ["./*"] + } + } +}