├── .gitignore ├── .watchmanconfig ├── App.js ├── CHANGELOG.md ├── LICENSE ├── README.md ├── app.json ├── assets ├── animations │ ├── 101-x-pop.json │ ├── 2144-little-girl-jumping-loader.json │ ├── 2151-loading-hamster.json │ ├── 4284-notification.json │ ├── 433-checked-done.json │ ├── 4386-connection-error.json │ ├── 677-trophy.json │ └── 823-crying.json ├── fonts │ ├── BadaboomBB_Reg.ttf │ ├── GrinchedRegular.otf │ └── SaucerBB.ttf ├── icon.png ├── images │ ├── game_background.png │ └── game_background_active.png ├── sounds │ ├── correct.wav │ ├── gameover_average.wav │ ├── gameover_bad.wav │ ├── gameover_good.wav │ ├── incorrect.wav │ └── timeout.wav └── splash.png ├── babel.config.js ├── package.json ├── src ├── Router.js ├── Scaling.js ├── TriviaAPI.js ├── Utils.js ├── actions │ ├── TriviaActions.js │ ├── index.js │ └── types.js ├── components │ ├── AnswerStatus.js │ ├── Button.js │ ├── CountdownCircle.js │ ├── Question.js │ ├── QuestionOptionItem.js │ ├── TriviaLoader.js │ └── screens │ │ ├── GameOver.js │ │ ├── MainMenu.js │ │ ├── TriviaGame.js │ │ └── TriviaSelection.js └── reducers │ ├── TriviaReducer.js │ └── index.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .expo/ 3 | npm-debug.* 4 | *.jks 5 | *.p8 6 | *.p12 7 | *.key 8 | *.mobileprovision 9 | *.orig.* 10 | web-build/ 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | 15 | # macOS 16 | .DS_Store -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Provider } from 'react-redux'; 3 | import { createStore, applyMiddleware } from 'redux'; 4 | import ReduxThunk from 'redux-thunk'; 5 | import reducers from './src/reducers'; 6 | import Router from './src/Router'; 7 | 8 | export default class App extends React.Component { 9 | 10 | render() { 11 | const store = createStore(reducers, {}, applyMiddleware(ReduxThunk)); 12 | return ( 13 | 14 | 15 | 16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). 5 | 6 | ## [2.4.0](../../releases/tag/v2.4.0) 7 | - Update base expo from v36 to v42 8 | - Update React from 16.9.0 to 16.13.1 9 | - Move CountdownCircle component from the [react-native-countdown-circle](https://github.com/MrToph/react-native-countdown-circle) to the base code 10 | - Improve Game Over and button component UI 11 | 12 | ## [2.3.0](../../releases/tag/v2.3.0) 13 | - Update base expo from v32 to v36 14 | - Update React from 16.5.0 to 16.9.0 15 | - Refactor parts of the code to match base lib changes: Audio, fonts and some component life cycles. 16 | 17 | ## [2.2](../../releases/tag/v2.2) 18 | - Improve game sound logic 19 | 20 | ## [2.1](../../releases/tag/v2.1) 21 | - Improve Game Over screen with sounds and animations 22 | - Add scaling strategy for component styles 23 | 24 | ## [2.0](../../releases/tag/v2.0) 25 | - Add Category Selection 26 | - Add Difficulty Selection 27 | - Add Number of Questions Selection 28 | - Add Countdown timer per question 29 | - Add Answer Correct/Incorrect/Time Over animations and sounds 30 | - Add Main Menu Github Button 31 | 32 | ## [1.0](../../releases/tag/v1.0) 33 | - First Version 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Vin Busquet 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React Native Trivia Quiz 2 | 3 | A simple trivia game built with React Native, Redux, and the [Open Trivia Database](https://opentdb.com/). 4 | ![](https://github.com/computationalcore/react-native-trivia-quiz/raw/assets/app.gif) 5 | 6 | ## Getting Started 7 | 8 | These instructions will get you a copy of the project up and running on your local machine for development and testing 9 | purposes. 10 | 11 | ### Prerequisites 12 | 13 | The project can be built with npm or yarn, so choose one of the approach bellow in case you don't 14 | have any installed on your system. 15 | 16 | * Yarn is a package manager built by Facebook Team and seems to be faster than npm in general. [Download Yarn](https://yarnpkg.com/en/docs/install). (RECOMMENDED) 17 | 18 | or 19 | 20 | * npm is distributed with Node.js which means that when you download Node.js, 21 | you automatically get npm installed on your computer. [Download Node.js](https://nodejs.org/en/download/) 22 | 23 | ### Installing 24 | 25 | To download the project follow the instructions bellow 26 | 27 | ``` 28 | git clone https://github.com/computationalcore/react-native-trivia-quiz 29 | cd react-native-trivia-quiz 30 | ``` 31 | 32 | Install dependencies and run with: 33 | 34 | yarn 35 | ``` 36 | yarn install 37 | yarn start 38 | ``` 39 | or 40 | 41 | npm 42 | ``` 43 | npm install 44 | npm start 45 | ``` 46 | ## How to Play 47 | 48 | - Open the app 49 | - Click at "Play" button 50 | - Select Quiz Options and click Start Quiz 51 | - Answer each one of the questions in max 10 seconds per question 52 | - When all questions are answered it shows the game over screen with total score and elapsed time 53 | 54 | ## Assets Credits 55 | 56 | #### Animations 57 | 58 | * [Loading Hamster](https://lottiefiles.com/2151-loading-hamster) by [Nabeel Shah](https://lottiefiles.com/nabeelshah7) 59 | 60 | * [Connection error](https://lottiefiles.com/4386-connection-error) by [Lorena Villanueva García](https://lottiefiles.com/lorenavillanueva) 61 | 62 | * [Checked Done](https://lottiefiles.com/433-checked-done) by [LottieFiles](https://lottiefiles.com/lottiefiles) 63 | 64 | * [X Pop](https://lottiefiles.com/101-x-pop) by [LottieFiles](https://lottiefiles.com/lottiefiles) 65 | 66 | * [Notification](https://lottiefiles.com/4284-notification) by [Changhyun Lee](https://lottiefiles.com/jony) 67 | 68 | * [Crying](https://lottiefiles.com/823-crying) by [Rogger Tân](https://lottiefiles.com/leminhtanvus) 69 | 70 | * [Trophy](https://lottiefiles.com/677-trophy by [Michael Harvey](https://lottiefiles.com/marvey) 71 | 72 | * [Little Girl Jumping - Loader](https://lottiefiles.com/2144-little-girl-jumping-loader) by [Jignesh Gajjar](https://lottiefiles.com/jigneshgajjar) 73 | 74 | #### Fonts 75 | 76 | * [Saucer BB Font](https://www.1001fonts.com/saucer-bb-font.html) by [Blambot Comic Fonts](https://www.1001fonts.com/users/blambot/) 77 | 78 | * [Grinched Font](https://www.1001fonts.com/grinched-font.html) by [Sharkshock](https://www.1001fonts.com/users/sharkshock/) 79 | 80 | * [BadaBoom BB Font](https://www.1001fonts.com/badaboom-bb-font.html) by [Blambot Comic Fonts](https://www.1001fonts.com/users/blambot/) 81 | 82 | #### Images 83 | * [Faq free icon](https://www.flaticon.com/free-icon/faq_1580270) by [Freepik](https://www.flaticon.com/authors/freepik) from [www.flaticon.com](https://www.flaticon.com) 84 | 85 | #### Sounds 86 | 87 | * [Cartoon Oh-Oh](https://freesound.org/people/dersuperanton/sounds/435883/) by [dersuperanton](https://freesound.org/people/dersuperanton/) 88 | 89 | * [Grinched Font](https://www.1001fonts.com/grinched-font.html) by [Sharkshock](https://www.1001fonts.com/users/sharkshock/) 90 | 91 | * [success 2](https://freesound.org/people/Leszek_Szary/sounds/171670/) by [Leszek_Szary](https://freesound.org/people/Leszek_Szary/) 92 | 93 | * [Bell, Counter, A.wav](https://freesound.org/people/InspectorJ/sounds/415510/) by [InspectorJ](https://freesound.org/people/InspectorJ/) 94 | 95 | * [Sad Trombone.wav](https://freesound.org/people/Benboncan/sounds/73581/) by [Benboncan](https://freesound.org/people/Benboncan/) 96 | 97 | * [Celebration](https://freesound.org/people/sonsdebarcelona/sounds/221937/) by [sonsdebarcelona](https://freesound.org/people/sonsdebarcelona/) 98 | 99 | * [Jazzy Chords](https://freesound.org/people/NenadSimic/sounds/150879/) by [NenadSimic](https://freesound.org/people/NenadSimic/) 100 | ## Authors 101 | Vin Busquet 102 | * [https://github.com/computationalcore](https://github.com/computationalcore) 103 | 104 | ## License 105 | 106 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details 107 | 108 | ## Changelog 109 | 110 | For details, check out [CHANGELOG.md](CHANGELOG.md). 111 | 112 | ## Acknowledgments 113 | * [Open Trivia DB](https://opentdb.com/) 114 | * [Crowdbotics](https://www.crowdbotics.com/) -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "name": "React Trivia Game", 4 | "slug": "react-native-trivia-quiz", 5 | "privacy": "public", 6 | "sdkVersion": "42.0.0", 7 | "platforms": [ 8 | "ios", 9 | "android" 10 | ], 11 | "version": "2.4.0", 12 | "orientation": "portrait", 13 | "icon": "./assets/icon.png", 14 | "splash": { 15 | "image": "./assets/splash.png", 16 | "resizeMode": "contain", 17 | "backgroundColor": "#ffffff" 18 | }, 19 | "updates": { 20 | "fallbackToCacheTimeout": 0 21 | }, 22 | "assetBundlePatterns": [ 23 | "**/*" 24 | ], 25 | "ios": { 26 | "supportsTablet": true, 27 | "bundleIdentifier": "com.vinbusquet.react-trivia-game" 28 | }, 29 | "android": { 30 | "package": "com.vinbusquet.triviagame" 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /assets/animations/101-x-pop.json: -------------------------------------------------------------------------------- 1 | {"v":"4.5.9","fr":60,"ip":0,"op":120,"w":300,"h":300,"ddd":0,"assets":[],"layers":[{"ddd":0,"ind":0,"ty":4,"nm":"smallCircle5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[133.426,147.301,0],"e":[69.676,167.301,0],"to":[-10.625,3.33333325386047,0],"ti":[10.625,-3.33333325386047,0]},{"t":12}]},"a":{"a":0,"k":[-32.449,76.551,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[7.102,7.102]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.94,0.166,0.692,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-32.449,76.551],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":1,"ty":4,"nm":"smallCircle4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[144.676,133.926,0],"e":[118.926,69.926,0],"to":[-4.29166650772095,-10.6666669845581,0],"ti":[4.29166650772095,10.6666669845581,0]},{"t":12}]},"a":{"a":0,"k":[-32.449,76.551,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[7.102,7.102]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.94,0.166,0.692,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-32.449,76.551],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"smallCircle3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[159.551,138.051,0],"e":[218.801,76.551,0],"to":[9.875,-10.25,0],"ti":[-9.875,10.25,0]},{"t":12}]},"a":{"a":0,"k":[-32.449,76.551,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[7.102,7.102]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.94,0.166,0.692,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-32.449,76.551],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"smallCircle2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[156.926,162.301,0],"e":[230.176,204.301,0],"to":[12.2083330154419,7,0],"ti":[-12.2083330154419,-7,0]},{"t":12}]},"a":{"a":0,"k":[-32.449,76.551,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[7.102,7.102]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.94,0.166,0.692,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-32.449,76.551],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"smallCircle1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[142.301,162.676,0],"e":[131.301,249.176,0],"to":[-1.83333337306976,14.4166669845581,0],"ti":[1.83333337306976,-14.4166669845581,0]},{"t":12}]},"a":{"a":0,"k":[-32.449,76.551,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[7.102,7.102]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.94,0.166,0.692,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-32.449,76.551],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"bigCircle5","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[136.6,141.6,0],"e":[66.1,185.85,0],"to":[-11.75,7.375,0],"ti":[11.75,-7.375,0]},{"t":12}]},"a":{"a":0,"k":[-72.275,38.725,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3.449,3.449]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.908,0.059,0.259,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-72.275,38.725],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[292.94,292.94],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"bigCircle4","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[164.1,140.1,0],"e":[199.85,89.35,0],"to":[5.95833349227905,-8.45833301544189,0],"ti":[-5.95833349227905,8.45833301544189,0]},{"t":12}]},"a":{"a":0,"k":[-72.275,38.725,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3.449,3.449]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.908,0.059,0.259,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-72.275,38.725],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[292.94,292.94],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":7,"ty":4,"nm":"bigCircle3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[146.225,132.1,0],"e":[122.975,84.35,0],"to":[-3.875,-7.95833349227905,0],"ti":[3.875,7.95833349227905,0]},{"t":12}]},"a":{"a":0,"k":[-72.275,38.725,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3.449,3.449]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.908,0.059,0.259,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-72.275,38.725],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[292.94,292.94],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":8,"ty":4,"nm":"bigCircle2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[162.85,157.475,0],"e":[216.1,188.725,0],"to":[8.875,5.20833349227905,0],"ti":[-8.875,-5.20833349227905,0]},{"t":12}]},"a":{"a":0,"k":[-72.275,38.725,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3.449,3.449]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.908,0.059,0.259,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-72.275,38.725],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[292.94,292.94],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":9,"ty":4,"nm":"bigCircle1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"n":"0p833_0p833_0p333_0","t":1,"s":[139.475,156.85,0],"e":[123.475,221.1,0],"to":[-2.66666674613953,10.7083330154419,0],"ti":[2.66666674613953,-10.7083330154419,0]},{"t":12}]},"a":{"a":0,"k":[-72.275,38.725,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":8,"s":[100,100,100],"e":[0,0,100]},{"t":17}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[3.449,3.449]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0.908,0.059,0.259,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-72.275,38.725],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[292.94,292.94],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":10,"ty":4,"nm":"check","ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":1,"s":[0],"e":[100]},{"t":18}]},"r":{"a":1,"k":[{"i":{"x":[0.66],"y":[2.045]},"o":{"x":[0.167],"y":[0.167]},"n":["0p66_2p045_0p167_0p167"],"t":1,"s":[-164],"e":[0]},{"i":{"x":[0.074],"y":[0.984]},"o":{"x":[0],"y":[0]},"n":["0p074_0p984_0_0"],"t":18,"s":[0],"e":[-36.525]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.666],"y":[-0.009]},"n":["0p833_1_0p666_-0p009"],"t":23,"s":[-36.525],"e":[18.356]},{"i":{"x":[0.57],"y":[0.989]},"o":{"x":[0.167],"y":[0]},"n":["0p57_0p989_0p167_0"],"t":29,"s":[18.356],"e":[-13.643]},{"i":{"x":[0.57],"y":[1.046]},"o":{"x":[0.427],"y":[-0.031]},"n":["0p57_1p046_0p427_-0p031"],"t":34,"s":[-13.643],"e":[0]},{"t":40}]},"p":{"a":0,"k":[150,150,0]},"a":{"a":0,"k":[-5.5,-5.5,0]},"s":{"a":1,"k":[{"i":{"x":[0.842,0.842,0.833],"y":[1.621,1.621,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p842_1p621_0p167_0p167","0p842_1p621_0p167_0p167","0p833_0p833_0p167_0p167"],"t":1,"s":[30,30,100],"e":[100,100,100]},{"i":{"x":[0.349,0.349,0.833],"y":[1.018,1.018,0.833]},"o":{"x":[0,0,0],"y":[0,0,0]},"n":["0p349_1p018_0_0","0p349_1p018_0_0","0p833_0p833_0_0"],"t":18,"s":[100,100,100],"e":[92.786,92.786,100]},{"i":{"x":[0.783,0.783,0.833],"y":[2.448,2.448,0.833]},"o":{"x":[0.671,0.671,0.167],"y":[0.024,0.024,0.167]},"n":["0p783_2p448_0p671_0p024","0p783_2p448_0p671_0p024","0p833_0p833_0p167_0p167"],"t":25,"s":[92.786,92.786,100],"e":[100,100,100]},{"t":34}]}},"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":[[-55,-49],[25.5,52]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.799,0.158,0.158,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-55,51],[-15.5,5.5],[25,-50.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[0.799,0.158,0.158,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":20},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"mn":"ADBE Vector Group"}],"ip":0,"op":120,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /assets/animations/2151-loading-hamster.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.10","fr":20,"ip":0,"op":10,"w":160,"h":160,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[80.5,76,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[116.965,127.679,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[120,120]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"gs","o":{"a":0,"k":100},"w":{"a":0,"k":4},"g":{"p":7,"k":{"a":0,"k":[0,0.394,0.906,0.647,0.134,0.395,0.906,0.647,0.268,0.396,0.906,0.647,0.274,0.28,0.849,0.48,0.28,0.165,0.792,0.314,0.64,0.165,0.792,0.314,1,0.165,0.792,0.314]}},"s":{"a":0,"k":[-22.863,-0.406]},"e":{"a":0,"k":[101.338,-0.812]},"t":1,"lc":1,"lj":1,"ml":4,"nm":"Gradient Stroke 1","mn":"ADBE Vector Graphic - G-Stroke"},{"ty":"tr","p":{"a":0,"k":[-0.75,3.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[99.287,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-720],"e":[-365]},{"t":10}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":205,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":-3.003},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[92.75,118.75,0],"e":[92.75,121.5,0],"to":[0,0.45833334326744,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[92.75,121.5,0],"e":[92.75,118.75,0],"to":[0,0,0],"ti":[0,0.45833334326744,0]},{"t":10}]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[84.753,96.459,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8.25,7.75]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[31.375,-9.375],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":11,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":-3.003},"p":{"a":0,"k":[88.5,119.5,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[84.753,96.459,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[{"i":[[3.047,-1.793],[0,0],[0,0],[0,0],[0,0],[10.251,-11.39],[0,0],[-5.25,-8.25],[0,0],[0.25,-16.25],[1.225,-6.982],[-0.905,-0.74],[-1.515,2.331],[-18.016,-1.386],[-1.25,-1],[6,4.75],[0,0],[2.75,2.75],[-1.538,-1.923],[-14.25,3.5],[5.75,8.75],[0,0]],"o":[[-4.25,2.5],[0,0],[0,0],[0,0],[0,0],[-2.25,2.5],[0,0],[5.25,8.25],[0,0],[-0.067,4.324],[-0.48,2.738],[4.969,4.06],[3.25,-5],[3.25,0.25],[1.25,1],[-1.616,-1.28],[0,0],[-2.75,-2.75],[2,2.5],[14.25,-3.5],[-5.75,-8.75],[0,0]],"v":[[12.5,-28.75],[14.75,-20.25],[4.058,-23.074],[-4.856,-25.429],[-11.75,-27.25],[-41,-20],[-49,-24.25],[-50.75,-19],[-43.75,-15.5],[-53.893,5.757],[-53.408,15.217],[-55.846,21.884],[-34.069,17.804],[3,19.5],[20.75,24.5],[27.5,19.5],[16.25,13.25],[6.5,5],[7.5,2.25],[34,11.25],[57.75,-10.5],[28.25,-23]],"c":true}],"e":[{"i":[[3.047,-1.793],[0,0],[0,0],[0,0],[0,0],[10.251,-11.39],[0,0],[-5.25,-8.25],[0,0],[0.25,-16.25],[-3.669,-4.557],[-1.137,-0.272],[-1.515,2.331],[-16.768,6.732],[-1.25,-1],[-3.5,8.75],[0,0],[2.75,2.75],[-1.538,-1.923],[-14.25,3.5],[5.75,8.75],[0,0]],"o":[[-4.25,2.5],[0,0],[0,0],[0,0],[0,0],[-2.25,2.5],[0,0],[5.25,8.25],[0,0],[-0.067,4.324],[3.78,4.695],[1.958,0.468],[3.25,-5],[2.089,-0.839],[1.25,1],[0.766,-1.914],[0,0],[-2.75,-2.75],[2,2.5],[14.25,-3.5],[-5.75,-8.75],[0,0]],"v":[[17.25,-31.25],[14.75,-20.25],[4.058,-23.074],[-4.856,-25.429],[-11.75,-27.25],[-41,-20],[-47,-25.25],[-49.75,-21],[-43.75,-15.5],[-51.622,5.9],[-45.305,20.797],[-33.415,31.38],[-28.75,20.25],[3,19.5],[5.373,30.77],[16.894,23.152],[16,12.25],[6.5,5],[7.5,2.25],[31.75,12.75],[57.75,-6.5],[28.25,-23]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":3,"s":[{"i":[[3.047,-1.793],[0,0],[0,0],[0,0],[0,0],[10.251,-11.39],[0,0],[-5.25,-8.25],[0,0],[0.25,-16.25],[-3.669,-4.557],[-1.137,-0.272],[-1.515,2.331],[-16.768,6.732],[-1.25,-1],[-3.5,8.75],[0,0],[2.75,2.75],[-1.538,-1.923],[-14.25,3.5],[5.75,8.75],[0,0]],"o":[[-4.25,2.5],[0,0],[0,0],[0,0],[0,0],[-2.25,2.5],[0,0],[5.25,8.25],[0,0],[-0.067,4.324],[3.78,4.695],[1.958,0.468],[3.25,-5],[2.089,-0.839],[1.25,1],[0.766,-1.914],[0,0],[-2.75,-2.75],[2,2.5],[14.25,-3.5],[-5.75,-8.75],[0,0]],"v":[[17.25,-31.25],[14.75,-20.25],[4.058,-23.074],[-4.856,-25.429],[-11.75,-27.25],[-41,-20],[-47,-25.25],[-49.75,-21],[-43.75,-15.5],[-51.622,5.9],[-45.305,20.797],[-33.415,31.38],[-28.75,20.25],[3,19.5],[5.373,30.77],[16.894,23.152],[16,12.25],[6.5,5],[7.5,2.25],[31.75,12.75],[57.75,-6.5],[28.25,-23]],"c":true}],"e":[{"i":[[3.047,-1.793],[0,0],[0,0],[0,0],[0,0],[10.251,-11.39],[0,0],[-5.25,-8.25],[0,0],[-4.75,-15.75],[-1.508,-1.838],[-1.37,0.576],[-1.022,1.572],[-18.016,-1.386],[-1.25,-1],[3.344,13.375],[0,0],[2.75,2.75],[-1.538,-1.923],[-14.25,3.5],[5.75,8.75],[0,0]],"o":[[-4.25,2.5],[0,0],[0,0],[0,0],[0,0],[-2.25,2.5],[0,0],[5.25,8.25],[0,0],[1.604,5.318],[1.554,1.894],[1.238,-0.52],[3.25,-5],[3.25,0.25],[1.25,1],[-0.5,-2],[0,0],[-2.75,-2.75],[2,2.5],[14.25,-3.5],[-5.75,-8.75],[0,0]],"v":[[18.5,-27.75],[14.75,-20.25],[4.058,-23.074],[-4.856,-25.429],[-11.75,-27.25],[-41,-20],[-47.5,-26],[-48.75,-20.5],[-43.75,-15.5],[-48.5,16.5],[-43.812,26.951],[-39.405,28.618],[-36,25.25],[3,19.5],[17,26.75],[27.5,19.5],[16.25,13.25],[6.5,5],[7.5,2.25],[33.25,13],[58.25,-6.75],[28.5,-22]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[{"i":[[3.047,-1.793],[0,0],[0,0],[0,0],[0,0],[10.251,-11.39],[0,0],[-5.25,-8.25],[0,0],[-4.75,-15.75],[-1.508,-1.838],[-1.37,0.576],[-1.022,1.572],[-18.016,-1.386],[-1.25,-1],[3.344,13.375],[0,0],[2.75,2.75],[-1.538,-1.923],[-14.25,3.5],[5.75,8.75],[0,0]],"o":[[-4.25,2.5],[0,0],[0,0],[0,0],[0,0],[-2.25,2.5],[0,0],[5.25,8.25],[0,0],[1.604,5.318],[1.554,1.894],[1.238,-0.52],[3.25,-5],[3.25,0.25],[1.25,1],[-0.5,-2],[0,0],[-2.75,-2.75],[2,2.5],[14.25,-3.5],[-5.75,-8.75],[0,0]],"v":[[18.5,-27.75],[14.75,-20.25],[4.058,-23.074],[-4.856,-25.429],[-11.75,-27.25],[-41,-20],[-47.5,-26],[-48.75,-20.5],[-43.75,-15.5],[-48.5,16.5],[-43.812,26.951],[-39.405,28.618],[-36,25.25],[3,19.5],[17,26.75],[27.5,19.5],[16.25,13.25],[6.5,5],[7.5,2.25],[33.25,13],[58.25,-6.75],[28.5,-22]],"c":true}],"e":[{"i":[[3.047,-1.793],[0,0],[0,0],[0,0],[0,0],[10.251,-11.39],[0,0],[-3.75,-8.75],[0,0],[3.591,-15.85],[1.172,-3.654],[0.489,-1.248],[-4.588,1.957],[-18.016,-1.386],[0.5,-0.5],[0,6.27],[0,0],[1.5,3.5],[-1.538,-1.923],[-14.25,3.5],[3.5,7.75],[0,0]],"o":[[-4.25,2.5],[0,0],[0,0],[0,0],[0,0],[-2.25,2.5],[0,0],[3.852,8.988],[0,0],[-0.719,3.175],[-1.631,5.087],[-1.593,4.065],[6.047,-2.58],[3.25,0.25],[6.5,0.5],[0,-2.75],[0,0],[-1.532,-3.575],[2,2.5],[14.25,-3.5],[-4.309,-9.542],[0,0]],"v":[[16.262,-27.809],[14.5,-20.25],[3.074,-23.297],[-4.971,-25.442],[-11.75,-27.25],[-41,-20],[-47,-25.25],[-49.75,-21],[-43.75,-15.5],[-50.169,-4.277],[-51.13,6.058],[-56.991,17.37],[-35.981,19.531],[3,19.5],[23.602,25.758],[31.31,21.015],[14.75,14],[6.5,5],[9.75,6.25],[34.18,13.514],[58.406,-10.128],[28.75,-21]],"c":true}]},{"t":9}]},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"fl","c":{"a":0,"k":[0.1647059,0.7921569,0.3137255,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":11,"st":0,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /assets/animations/4284-notification.json: -------------------------------------------------------------------------------- 1 | {"v":"5.4.3","fr":30,"ip":0,"op":90,"w":128,"h":128,"nm":"preview","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ic_bell_12 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[100],"e":[40]},{"t":11}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[6,6,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":7,"s":[200,200,100],"e":[240,240,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":11,"s":[240,240,100],"e":[200,200,100]},{"t":15}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,1.104],[0,0]],"o":[[1.104,0],[0,0],[0,1.104]],"v":[[0,6],[2,4],[-2,4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.139,0.049],[0.055,1.314],[0,0],[1.489,0],[0.368,0],[0,-0.355],[0.06,-1.435],[0,0],[1.264,-0.449],[0,-0.143],[0,0],[-0.184,0],[0,0],[0,0.177],[0,0]],"o":[[-1.265,-0.449],[0,0],[-0.058,-1.435],[0,-0.355],[-0.368,0],[-1.489,0],[0,0],[-0.054,1.314],[-0.139,0.049],[0,0],[0,0.177],[0,0],[0.184,0],[0,0],[0,-0.143]],"v":[[5.761,1.961],[3.569,-0.945],[3.439,-2.788],[0.667,-5.357],[0,-6],[-0.667,-5.357],[-3.44,-2.788],[-3.57,-0.945],[-5.761,1.961],[-6,2.278],[-6,2.679],[-5.667,3],[5.667,3],[6,2.679],[6,2.278]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":7,"s":[1,1,1,1],"e":[0,0,0,1]},{"t":11}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6,6],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[100,100,100],"e":[0,0,100]},{"t":7}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[48,48],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019610882,0.474509805441,0.207843139768,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":40,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[160,160,100],"e":[200,200,100]},{"t":5}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[23,23],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":1,"ml2":{"a":0,"k":1,"ix":8},"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ic_bell_12 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[6,6,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,1.104],[0,0]],"o":[[1.104,0],[0,0],[0,1.104]],"v":[[0,6],[2,4],[-2,4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.139,0.049],[0.055,1.314],[0,0],[1.489,0],[0.368,0],[0,-0.355],[0.06,-1.435],[0,0],[1.264,-0.449],[0,-0.143],[0,0],[-0.184,0],[0,0],[0,0.177],[0,0]],"o":[[-1.265,-0.449],[0,0],[-0.058,-1.435],[0,-0.355],[-0.368,0],[-1.489,0],[0,0],[-0.054,1.314],[-0.139,0.049],[0,0],[0,0.177],[0,0],[0.184,0],[0,0],[0,-0.143]],"v":[[5.761,1.961],[3.569,-0.945],[3.439,-2.788],[0.667,-5.357],[0,-6],[-0.667,-5.357],[-3.44,-2.788],[-3.57,-0.945],[-5.761,1.961],[-6,2.278],[-6,2.679],[-5.667,3],[5.667,3],[6,2.679],[6,2.278]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6,6],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[48,48],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019610882,0.474509805441,0.207843139768,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"bell@2x","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":4,"s":[0],"e":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8,"s":[5],"e":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":11,"s":[-5],"e":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":14,"s":[5],"e":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":17,"s":[-5],"e":[5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":20,"s":[5],"e":[0]},{"t":22}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[56,44,0],"e":[56,32,0],"to":[0,-2,0],"ti":[0,2,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":4,"s":[56,32,0],"e":[56,32,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[56,32,0],"e":[56,44,0],"to":[0,2,0],"ti":[0,-2,0]},{"t":30}],"ix":2},"a":{"a":0,"k":[48,48,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[50,50,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":4,"s":[100,100,100],"e":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":22,"s":[100,100,100],"e":[50,50,100]},{"t":30}],"ix":6}},"ao":0,"w":96,"h":96,"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":0,"s":[100,100,100],"e":[224,224,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_1_0p333_0"],"t":4,"s":[224,224,100],"e":[192,192,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]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":7,"s":[192,192,100],"e":[200,200,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]},"n":["0p667_1_0p167_0","0p667_1_0p167_0","0p667_1_0p167_0"],"t":9,"s":[200,200,100],"e":[200,200,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_1_0p333_0"],"t":22,"s":[200,200,100],"e":[100,100,100]},{"t":30}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[48,48],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.949019610882,0.474509805441,0.207843139768,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ic_bell_24 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[48,72,0],"ix":2},"a":{"a":0,"k":[12,12,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.28,0.1],[0.108,2.629],[0,0],[2.979,0],[0.736,0],[0,-0.71],[0.118,-2.87],[0,0],[2.529,-0.899],[0,-0.287],[0,0],[-0.369,0],[0,0],[0,0.355],[0,0]],"o":[[-2.528,-0.899],[0,0],[-0.119,-2.87],[0,-0.71],[-0.736,0],[-2.979,0],[0,0],[-0.11,2.629],[-0.279,0.1],[0,0],[0,0.355],[0,0],[0.368,0],[0,0],[0,-0.287]],"v":[[11.521,3.921],[7.14,-1.891],[6.88,-5.576],[1.333,-10.714],[0,-12],[-1.333,-10.714],[-6.879,-5.576],[-7.139,-1.891],[-11.522,3.921],[-12,4.557],[-12,5.357],[-11.333,6],[11.333,6],[12,5.357],[12,4.557]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12,12],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"ic_bell_24 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[48,72,0],"e":[48,72,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":5,"s":[48,72,0],"e":[38,72,0],"to":[-1.66666662693024,0,0],"ti":[-1.66666662693024,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":9,"s":[38,72,0],"e":[58,72,0],"to":[1.66666662693024,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[58,72,0],"e":[38,72,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[38,72,0],"e":[58,72,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[58,72,0],"e":[38,72,0],"to":[0,0,0],"ti":[1.66666662693024,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21,"s":[38,72,0],"e":[48,72,0],"to":[-1.66666662693024,0,0],"ti":[-1.66666662693024,0,0]},{"t":25}],"ix":2},"a":{"a":0,"k":[12,12,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.102,0],[-0.162,2.061],[0.171,0],[0,0],[-0.013,-0.172]],"o":[[2.103,0],[0.014,-0.172],[0,0],[-0.172,0],[0.162,2.061]],"v":[[0,12],[3.987,8.318],[3.684,8],[-3.683,8],[-3.988,8.318]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12,12],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":30,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"ic_bell_12 Outlines","sr":1,"ks":{"o":{"a":0,"k":40,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[6,6,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.104,0],[0,1.104],[0,0]],"o":[[1.104,0],[0,0],[0,1.104]],"v":[[0,6],[2,4],[-2,4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.139,0.049],[0.055,1.314],[0,0],[1.489,0],[0.368,0],[0,-0.355],[0.06,-1.435],[0,0],[1.264,-0.449],[0,-0.143],[0,0],[-0.184,0],[0,0],[0,0.177],[0,0]],"o":[[-1.265,-0.449],[0,0],[-0.058,-1.435],[0,-0.355],[-0.368,0],[-1.489,0],[0,0],[-0.054,1.314],[-0.139,0.049],[0,0],[0,0.177],[0,0],[0.184,0],[0,0],[0,-0.143]],"v":[[5.761,1.961],[3.569,-0.945],[3.439,-2.788],[0.667,-5.357],[0,-6],[-0.667,-5.357],[-3.44,-2.788],[-3.57,-0.945],[-5.761,1.961],[-6,2.278],[-6,2.679],[-5.667,3],[5.667,3],[6,2.679],[6,2.278]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[6,6],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":40,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[56,56,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[200,200,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[23,23],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":1,"ml2":{"a":0,"k":1,"ix":8},"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"ic_bell_disabled@2x","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64,64,0],"ix":2},"a":{"a":0,"k":[56,56,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":112,"h":112,"ip":60,"op":90,"st":60,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"ic_bell_activated_n@2x","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64,64,0],"ix":2},"a":{"a":0,"k":[56,56,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":112,"h":112,"ip":45,"op":60,"st":45,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"ic_bell_activated@2x","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64,64,0],"ix":2},"a":{"a":0,"k":[56,56,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":112,"h":112,"ip":16,"op":45,"st":16,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"ic_bell_disabled_n@2x","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64,64,0],"ix":2},"a":{"a":0,"k":[56,56,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":112,"h":112,"ip":0,"op":16,"st":0,"bm":0}],"markers":[]} -------------------------------------------------------------------------------- /assets/animations/433-checked-done.json: -------------------------------------------------------------------------------- 1 | {"v":"4.6.3","fr":24,"ip":0,"op":21,"w":320,"h":320,"nm":"checklist","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 13","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":300},"p":{"a":0,"k":[160,159.5,0]},"a":{"a":0,"k":[0,-34,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":17}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.7921569,0.4470588,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":6,"s":[-8.142,-92.147],"e":[-7.675,-162.544],"to":[0.07779947668314,-11.7327470779419],"ti":[-0.07779947668314,11.7327470779419]},{"t":17}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.981,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":6,"s":[20.367],"e":[6.367]},{"t":17}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":21}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.9070925,0.5119235,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[16.585,-99.759],"e":[28.521,-187.495],"to":[1.9892578125,-14.6227216720581],"ti":[-1.9892578125,14.6227216720581]},{"t":21}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[97.419,116],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[14.733],"e":[8.733]},{"t":21}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 12","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":250},"p":{"a":0,"k":[160,159.5,0]},"a":{"a":0,"k":[0,-34,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":17}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.7921569,0.4470588,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":6,"s":[-8.142,-92.147],"e":[-7.675,-162.544],"to":[0.07779947668314,-11.7327470779419],"ti":[-0.07779947668314,11.7327470779419]},{"t":17}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.981,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":6,"s":[20.367],"e":[6.367]},{"t":17}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":21}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.9070925,0.5119235,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[16.585,-99.759],"e":[28.521,-187.495],"to":[1.9892578125,-14.6227216720581],"ti":[-1.9892578125,14.6227216720581]},{"t":21}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[97.419,116],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[14.733],"e":[8.733]},{"t":21}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 11","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":200},"p":{"a":0,"k":[160,159.5,0]},"a":{"a":0,"k":[0,-34,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":17}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.7921569,0.4470588,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":6,"s":[-8.142,-92.147],"e":[-7.675,-162.544],"to":[0.07779947668314,-11.7327470779419],"ti":[-0.07779947668314,11.7327470779419]},{"t":17}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.981,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":6,"s":[20.367],"e":[6.367]},{"t":17}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":21}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.9070925,0.5119235,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[16.585,-99.759],"e":[28.521,-187.495],"to":[1.9892578125,-14.6227216720581],"ti":[-1.9892578125,14.6227216720581]},{"t":21}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[97.419,116],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[14.733],"e":[8.733]},{"t":21}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 10","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":150},"p":{"a":0,"k":[160,159.5,0]},"a":{"a":0,"k":[0,-34,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":17}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.7921569,0.4470588,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":6,"s":[-8.142,-92.147],"e":[-7.675,-162.544],"to":[0.07779947668314,-11.7327470779419],"ti":[-0.07779947668314,11.7327470779419]},{"t":17}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.981,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":6,"s":[20.367],"e":[6.367]},{"t":17}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":21}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.9070925,0.5119235,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[16.585,-99.759],"e":[28.521,-187.495],"to":[1.9892578125,-14.6227216720581],"ti":[-1.9892578125,14.6227216720581]},{"t":21}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[97.419,116],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[14.733],"e":[8.733]},{"t":21}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":6,"ty":4,"nm":"Shape Layer 9","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":100},"p":{"a":0,"k":[160,159.5,0]},"a":{"a":0,"k":[0,-34,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":17}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.7921569,0.4470588,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":6,"s":[-8.142,-92.147],"e":[-7.675,-162.544],"to":[0.07779947668314,-11.7327470779419],"ti":[-0.07779947668314,11.7327470779419]},{"t":17}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.981,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":6,"s":[20.367],"e":[6.367]},{"t":17}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":21}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.9070925,0.5119235,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[16.585,-99.759],"e":[28.521,-187.495],"to":[1.9892578125,-14.6227216720581],"ti":[-1.9892578125,14.6227216720581]},{"t":21}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[97.419,116],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[14.733],"e":[8.733]},{"t":21}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 8","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":50},"p":{"a":0,"k":[160,159.5,0]},"a":{"a":0,"k":[0,-34,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":17}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.7921569,0.4470588,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":6,"s":[-8.142,-92.147],"e":[-7.675,-162.544],"to":[0.07779947668314,-11.7327470779419],"ti":[-0.07779947668314,11.7327470779419]},{"t":17}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.981,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":6,"s":[20.367],"e":[6.367]},{"t":17}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":21}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.9070925,0.5119235,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[16.585,-99.759],"e":[28.521,-187.495],"to":[1.9892578125,-14.6227216720581],"ti":[-1.9892578125,14.6227216720581]},{"t":21}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[97.419,116],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[14.733],"e":[8.733]},{"t":21}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 7","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[160,159.5,0]},"a":{"a":0,"k":[0,-34,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":17}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.7921569,0.4470588,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":6,"s":[-8.142,-92.147],"e":[-7.675,-162.544],"to":[0.07779947668314,-11.7327470779419],"ti":[-0.07779947668314,11.7327470779419]},{"t":17}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[83.981,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":6,"s":[20.367],"e":[6.367]},{"t":17}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":6,"s":[15.021,15.021],"e":[0,0]},{"t":21}]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[0.0823529,0.6784314,0.3843137,1],"e":[0,0.9070925,0.5119235,1]},{"t":17}]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":6,"s":[16.585,-99.759],"e":[28.521,-187.495],"to":[1.9892578125,-14.6227216720581],"ti":[-1.9892578125,14.6227216720581]},{"t":21}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[97.419,116],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":6,"s":[14.733],"e":[8.733]},{"t":21}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 5","parent":11,"ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":-44},"p":{"a":0,"k":[0.378,-0.641,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[7.39,7.39,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-274.219,-254.097]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-17,-16],[-17,10.5],[41,10.5]],"c":false}},"nm":"Path 1","mn":"ADBE Vector Shape - Group"},{"ty":"st","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":8},"lc":2,"lj":1,"ml":5,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":2,"mn":"ADBE Vector Group"}],"ip":7,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 6","ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":4,"s":[50],"e":[0]},{"t":14}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[160,160,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":4,"s":[100,100,100],"e":[1085,1085,100]},{"t":14}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[19.779,19.779]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0,0.7921569,0.4470588,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.068,0.036],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":4,"op":22,"st":-23,"bm":0,"sr":1},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 4","ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":6,"s":[30],"e":[100]},{"t":9}]},"r":{"a":0,"k":0},"p":{"a":0,"k":[160.312,161.188,0]},"a":{"a":0,"k":[0.812,-0.562,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":6,"s":[100,100,100],"e":[1087,1087,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":11,"s":[1087,1087,100],"e":[866,866,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p833_0p833_0p333_0","0p833_0p833_0p333_0","0p833_0p833_0p333_0p333"],"t":13,"s":[866,866,100],"e":[878,878,100]},{"t":16}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[10.068,10.068]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"fl","c":{"a":0,"k":[0,0.7921569,0.4470588,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[0.784,-0.716],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":6,"op":22,"st":-19,"bm":0,"sr":1},{"ddd":0,"ind":12,"ty":4,"nm":"Shape Layer 3","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[161,160,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":3,"s":[100,100,100],"e":[224,224,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,0.667]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0.333]},"n":["0p667_1_0p333_0","0p667_1_0p333_0","0p667_0p667_0p333_0p333"],"t":4,"s":[224,224,100],"e":[476,476,100]},{"t":8}]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[6.009,6.009]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":4,"s":[0.0558609,0.688557,0.3778246,1],"e":[0.1089485,0.6693168,0.3941063,1]},{"t":8}]},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":4,"s":[0],"e":[100]},{"t":5}]},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":4,"s":[3],"e":[0]},{"t":8}]},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[0,0.7921569,0.4470588,1]},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":3,"s":[100],"e":[99]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"n":["0p667_1_0p333_0"],"t":4,"s":[99],"e":[0]},{"t":5}]},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.338,0.065],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[649.112,649.112],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 2","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":3,"op":22,"st":-21,"bm":0,"sr":1},{"ddd":0,"ind":13,"ty":4,"nm":"Shape Layer 2","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[160.142,159.987,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[377.603,377.603,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[22.315,22.315]},"p":{"a":0,"k":[0,0]},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse"},{"ty":"st","c":{"a":0,"k":[0.8352941,0.8352941,0.8352941,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":1},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"fl","c":{"a":0,"k":[1,1,1,1]},"o":{"a":0,"k":100},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill"},{"ty":"tr","p":{"a":0,"k":[-0.038,0.003],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":-21,"op":22,"st":-21,"bm":0,"sr":1}]} -------------------------------------------------------------------------------- /assets/animations/4386-connection-error.json: -------------------------------------------------------------------------------- 1 | {"v":"5.1.5","fr":29.9700012207031,"ip":0,"op":42.0000017106951,"w":32,"h":32,"nm":"System-states-Sin conexión","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":3,"ty":4,"nm":"! contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2},"a":{"a":0,"k":[8.25,8.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.847,0.847,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"n":["0p847_1_1_0","0p847_1_1_0","0p667_1_0p333_0"],"t":0,"s":[100,100,100],"e":[130,130,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.127,0.127,0.333],"y":[0,0,0]},"n":["0_1_0p127_0","0_1_0p127_0","0p667_1_0p333_0"],"t":21,"s":[130,130,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.442,0],[0,-0.443],[-0.442,0],[0,0.441]],"o":[[-0.442,0],[0,0.441],[0.442,0],[0,-0.443]],"v":[[0,-0.8],[-0.8,0],[0,0.8],[0.8,0]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,12.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.221,0],[0,0.221],[0,0],[0.221,0],[0,-0.221],[0,0]],"o":[[0.221,0],[0,0],[0,-0.221],[-0.221,0],[0,0],[0,0.221]],"v":[[0,2.544],[0.4,2.144],[0.4,-2.144],[0,-2.544],[-0.4,-2.144],[-0.4,2.144]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,7.194],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.416],[-4.416,0],[0,4.416],[4.416,0]],"o":[[0,4.416],[4.416,0],[0,-4.416],[-4.416,0]],"v":[[-8,0],[0,8],[8,0],[0,-8]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.172999991623,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,8.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":2,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3597.00014650881,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Sombra contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":8.4,"s":[100],"e":[0]},{"t":23.8000009693939}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[16,16,0],"ix":2},"a":{"a":0,"k":[8.25,8.25,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.847,0.847,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"n":["0p847_1_1_0","0p847_1_1_0","0p667_1_0p333_0"],"t":0,"s":[100,100,100],"e":[180,180,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.127,0.127,0.333],"y":[0,0,0]},"n":["0_1_0p127_0","0_1_0p127_0","0p667_1_0p333_0"],"t":21,"s":[180,180,100],"e":[100,100,100]},{"t":42.0000017106951}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.416],[-4.416,0],[0,4.416],[4.416,0]],"o":[[0,4.416],[4.416,0],[0,-4.416],[-4.416,0]],"v":[[-8,0],[0,8],[8,0],[0,-8]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.172999991623,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[8.25,8.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 3","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3597.00014650881,"st":0,"bm":0}],"markers":[]} -------------------------------------------------------------------------------- /assets/animations/677-trophy.json: -------------------------------------------------------------------------------- 1 | {"v":"4.10.1","fr":29.9700012207031,"ip":0,"op":60.0000024438501,"w":550,"h":400,"nm":"trofeu_camadas 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"estrela/trofeu_camadas contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":31,"s":[100],"e":[0]},{"t":47.0000019143492}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":24,"s":[0],"e":[-364.604]},{"t":40.0000016292334}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":24,"s":[277,204,0],"e":[72,66,0],"to":[-8.16666698455811,-29.3333339691162,0],"ti":[143.16667175293,-10.1666669845581,0]},{"t":40.0000016292334}],"ix":2},"a":{"a":0,"k":[48,46,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,12.45]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_12p45"],"t":24,"s":[16.667,16.667,100],"e":[91.367,91.367,100]},{"t":40.0000016292334}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[0,0],[0,0],[-2.548,1.855],[0.523,3.087],[0,0]],"o":[[2.277,-2.193],[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.674],[0,0],[0,0],[2.733,1.433],[2.546,-1.856],[0,0],[0,0]],"v":[[20.859,-4.095],[22.783,-11.914],[16.583,-17],[-6.647,-20.492],[-16.946,-41.444],[-19.856,-44.38],[-23.778,-45.392],[-23.778,33.001],[-3.003,43.959],[4.918,43.326],[7.954,35.912],[4.006,12.328]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.583,45.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[1.214,-0.675],[0.658,-1.249],[0,0],[0,0],[0.996,-3.003],[-2.277,-2.193],[0,0],[0,0],[-2.531,-1.856],[-2.733,1.45],[0,0],[0,0],[-2.531,1.855],[0.523,3.104],[0,0],[0,0]],"o":[[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.675],[-1.417,0],[-1.265,0.709],[0,0],[0,0],[-3.121,0.388],[-0.995,3.02],[0,0],[0,0],[-0.523,3.087],[2.547,1.855],[0,0],[0,0],[2.734,1.45],[2.547,-1.856],[0,0],[0,0],[2.278,-2.193]],"v":[[46.561,-11.91],[40.36,-16.996],[17.13,-20.488],[6.831,-41.439],[3.921,-44.376],[-0.001,-45.387],[-3.948,-44.376],[-6.833,-41.439],[-17.157,-20.488],[-40.385,-16.996],[-46.561,-11.91],[-44.637,-4.091],[-27.785,12.306],[-31.732,35.916],[-28.721,43.33],[-20.801,43.937],[-0.001,33.005],[20.799,43.937],[28.695,43.33],[31.731,35.89],[27.785,12.306],[44.636,-4.091]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.806,45.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":24.00000097754,"op":47.0000019143492,"st":10.0000004073083,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"estrela/trofeu_camadas contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":27,"s":[100],"e":[0]},{"t":43.0000017514259}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":20,"s":[0],"e":[-364.604]},{"t":36.0000014663101}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":20,"s":[280,196,0],"e":[70,232,0],"to":[-58,-35.5,0],"ti":[28,-26.5,0]},{"t":36.0000014663101}],"ix":2},"a":{"a":0,"k":[48,46,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,11.786]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_11p786"],"t":20,"s":[16.667,16.667,100],"e":[87.381,87.381,100]},{"t":36.0000014663101}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[0,0],[0,0],[-2.548,1.855],[0.523,3.087],[0,0]],"o":[[2.277,-2.193],[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.674],[0,0],[0,0],[2.733,1.433],[2.546,-1.856],[0,0],[0,0]],"v":[[20.859,-4.095],[22.783,-11.914],[16.583,-17],[-6.647,-20.492],[-16.946,-41.444],[-19.856,-44.38],[-23.778,-45.392],[-23.778,33.001],[-3.003,43.959],[4.918,43.326],[7.954,35.912],[4.006,12.328]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.583,45.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[1.214,-0.675],[0.658,-1.249],[0,0],[0,0],[0.996,-3.003],[-2.277,-2.193],[0,0],[0,0],[-2.531,-1.856],[-2.733,1.45],[0,0],[0,0],[-2.531,1.855],[0.523,3.104],[0,0],[0,0]],"o":[[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.675],[-1.417,0],[-1.265,0.709],[0,0],[0,0],[-3.121,0.388],[-0.995,3.02],[0,0],[0,0],[-0.523,3.087],[2.547,1.855],[0,0],[0,0],[2.734,1.45],[2.547,-1.856],[0,0],[0,0],[2.278,-2.193]],"v":[[46.561,-11.91],[40.36,-16.996],[17.13,-20.488],[6.831,-41.439],[3.921,-44.376],[-0.001,-45.387],[-3.948,-44.376],[-6.833,-41.439],[-17.157,-20.488],[-40.385,-16.996],[-46.561,-11.91],[-44.637,-4.091],[-27.785,12.306],[-31.732,35.916],[-28.721,43.33],[-20.801,43.937],[-0.001,33.005],[20.799,43.937],[28.695,43.33],[31.731,35.89],[27.785,12.306],[44.636,-4.091]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.806,45.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":20.0000008146167,"op":47.0000019143492,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"estrela/trofeu_camadas contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":22,"s":[100],"e":[0]},{"t":38.0000015477717}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":15,"s":[0],"e":[-364.604]},{"t":31.0000012626559}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":15,"s":[277,197,0],"e":[98,361,0],"to":[-51.8333320617676,-12.6666669845581,0],"ti":[31.8333339691162,-65.3333358764648,0]},{"t":31.0000012626559}],"ix":2},"a":{"a":0,"k":[48,46,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,10.491]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_10p491"],"t":15,"s":[16.667,16.667,100],"e":[79.612,79.612,100]},{"t":31.0000012626559}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[0,0],[0,0],[-2.548,1.855],[0.523,3.087],[0,0]],"o":[[2.277,-2.193],[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.674],[0,0],[0,0],[2.733,1.433],[2.546,-1.856],[0,0],[0,0]],"v":[[20.859,-4.095],[22.783,-11.914],[16.583,-17],[-6.647,-20.492],[-16.946,-41.444],[-19.856,-44.38],[-23.778,-45.392],[-23.778,33.001],[-3.003,43.959],[4.918,43.326],[7.954,35.912],[4.006,12.328]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.583,45.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[1.214,-0.675],[0.658,-1.249],[0,0],[0,0],[0.996,-3.003],[-2.277,-2.193],[0,0],[0,0],[-2.531,-1.856],[-2.733,1.45],[0,0],[0,0],[-2.531,1.855],[0.523,3.104],[0,0],[0,0]],"o":[[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.675],[-1.417,0],[-1.265,0.709],[0,0],[0,0],[-3.121,0.388],[-0.995,3.02],[0,0],[0,0],[-0.523,3.087],[2.547,1.855],[0,0],[0,0],[2.734,1.45],[2.547,-1.856],[0,0],[0,0],[2.278,-2.193]],"v":[[46.561,-11.91],[40.36,-16.996],[17.13,-20.488],[6.831,-41.439],[3.921,-44.376],[-0.001,-45.387],[-3.948,-44.376],[-6.833,-41.439],[-17.157,-20.488],[-40.385,-16.996],[-46.561,-11.91],[-44.637,-4.091],[-27.785,12.306],[-31.732,35.916],[-28.721,43.33],[-20.801,43.937],[-0.001,33.005],[20.799,43.937],[28.695,43.33],[31.731,35.89],[27.785,12.306],[44.636,-4.091]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.806,45.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":15.0000006109625,"op":47.0000019143492,"st":1.00000004073083,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"estrela/trofeu_camadas contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":29,"s":[100],"e":[0]},{"t":45.0000018328876}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":22,"s":[0],"e":[-364.604]},{"t":38.0000015477717}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":22,"s":[278,199,0],"e":[489,78,0],"to":[26.1666660308838,-72,0],"ti":[-99.1666641235352,7,0]},{"t":38.0000015477717}],"ix":2},"a":{"a":0,"k":[48,46,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,12.197]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_12p197"],"t":22,"s":[16.667,16.667,100],"e":[89.847,89.847,100]},{"t":38.0000015477717}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[0,0],[0,0],[-2.548,1.855],[0.523,3.087],[0,0]],"o":[[2.277,-2.193],[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.674],[0,0],[0,0],[2.733,1.433],[2.546,-1.856],[0,0],[0,0]],"v":[[20.859,-4.095],[22.783,-11.914],[16.583,-17],[-6.647,-20.492],[-16.946,-41.444],[-19.856,-44.38],[-23.778,-45.392],[-23.778,33.001],[-3.003,43.959],[4.918,43.326],[7.954,35.912],[4.006,12.328]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.583,45.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[1.214,-0.675],[0.658,-1.249],[0,0],[0,0],[0.996,-3.003],[-2.277,-2.193],[0,0],[0,0],[-2.531,-1.856],[-2.733,1.45],[0,0],[0,0],[-2.531,1.855],[0.523,3.104],[0,0],[0,0]],"o":[[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.675],[-1.417,0],[-1.265,0.709],[0,0],[0,0],[-3.121,0.388],[-0.995,3.02],[0,0],[0,0],[-0.523,3.087],[2.547,1.855],[0,0],[0,0],[2.734,1.45],[2.547,-1.856],[0,0],[0,0],[2.278,-2.193]],"v":[[46.561,-11.91],[40.36,-16.996],[17.13,-20.488],[6.831,-41.439],[3.921,-44.376],[-0.001,-45.387],[-3.948,-44.376],[-6.833,-41.439],[-17.157,-20.488],[-40.385,-16.996],[-46.561,-11.91],[-44.637,-4.091],[-27.785,12.306],[-31.732,35.916],[-28.721,43.33],[-20.801,43.937],[-0.001,33.005],[20.799,43.937],[28.695,43.33],[31.731,35.89],[27.785,12.306],[44.636,-4.091]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.806,45.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":22.0000008960784,"op":47.0000019143492,"st":8.00000032584668,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"estrela/trofeu_camadas contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":25,"s":[100],"e":[0]},{"t":41.0000016699642}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":18,"s":[0],"e":[-364.604]},{"t":34.0000013848484}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":18,"s":[278,202,0],"e":[480,253,0],"to":[69.6666641235352,-35,0],"ti":[-15.6666669845581,-44,0]},{"t":34.0000013848484}],"ix":2},"a":{"a":0,"k":[48,46,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,12.956]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_12p956"],"t":18,"s":[16.667,16.667,100],"e":[94.404,94.404,100]},{"t":34.0000013848484}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[0,0],[0,0],[-2.548,1.855],[0.523,3.087],[0,0]],"o":[[2.277,-2.193],[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.674],[0,0],[0,0],[2.733,1.433],[2.546,-1.856],[0,0],[0,0]],"v":[[20.859,-4.095],[22.783,-11.914],[16.583,-17],[-6.647,-20.492],[-16.946,-41.444],[-19.856,-44.38],[-23.778,-45.392],[-23.778,33.001],[-3.003,43.959],[4.918,43.326],[7.954,35.912],[4.006,12.328]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.583,45.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[1.214,-0.675],[0.658,-1.249],[0,0],[0,0],[0.996,-3.003],[-2.277,-2.193],[0,0],[0,0],[-2.531,-1.856],[-2.733,1.45],[0,0],[0,0],[-2.531,1.855],[0.523,3.104],[0,0],[0,0]],"o":[[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.675],[-1.417,0],[-1.265,0.709],[0,0],[0,0],[-3.121,0.388],[-0.995,3.02],[0,0],[0,0],[-0.523,3.087],[2.547,1.855],[0,0],[0,0],[2.734,1.45],[2.547,-1.856],[0,0],[0,0],[2.278,-2.193]],"v":[[46.561,-11.91],[40.36,-16.996],[17.13,-20.488],[6.831,-41.439],[3.921,-44.376],[-0.001,-45.387],[-3.948,-44.376],[-6.833,-41.439],[-17.157,-20.488],[-40.385,-16.996],[-46.561,-11.91],[-44.637,-4.091],[-27.785,12.306],[-31.732,35.916],[-28.721,43.33],[-20.801,43.937],[-0.001,33.005],[20.799,43.937],[28.695,43.33],[31.731,35.89],[27.785,12.306],[44.636,-4.091]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.806,45.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":18.000000733155,"op":47.0000019143492,"st":4.00000016292334,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"estrela/trofeu_camadas contornos","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":21,"s":[100],"e":[0]},{"t":37.0000015070409}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":14,"s":[0],"e":[-364.604]},{"t":30.0000012219251}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":14,"s":[278,216,0],"e":[452,364,0],"to":[78.1666641235352,-2.66666674613953,0],"ti":[-0.16666667163372,-52.3333320617676,0]},{"t":30.0000012219251}],"ix":2},"a":{"a":0,"k":[48,46,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,9.473]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_9p473"],"t":14,"s":[16.667,16.667,100],"e":[73.504,73.504,100]},{"t":30.0000012219251}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[0,0],[0,0],[-2.548,1.855],[0.523,3.087],[0,0]],"o":[[2.277,-2.193],[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.674],[0,0],[0,0],[2.733,1.433],[2.546,-1.856],[0,0],[0,0]],"v":[[20.859,-4.095],[22.783,-11.914],[16.583,-17],[-6.647,-20.492],[-16.946,-41.444],[-19.856,-44.38],[-23.778,-45.392],[-23.778,33.001],[-3.003,43.959],[4.918,43.326],[7.954,35.912],[4.006,12.328]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.583,45.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[1.214,-0.675],[0.658,-1.249],[0,0],[0,0],[0.996,-3.003],[-2.277,-2.193],[0,0],[0,0],[-2.531,-1.856],[-2.733,1.45],[0,0],[0,0],[-2.531,1.855],[0.523,3.104],[0,0],[0,0]],"o":[[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.675],[-1.417,0],[-1.265,0.709],[0,0],[0,0],[-3.121,0.388],[-0.995,3.02],[0,0],[0,0],[-0.523,3.087],[2.547,1.855],[0,0],[0,0],[2.734,1.45],[2.547,-1.856],[0,0],[0,0],[2.278,-2.193]],"v":[[46.561,-11.91],[40.36,-16.996],[17.13,-20.488],[6.831,-41.439],[3.921,-44.376],[-0.001,-45.387],[-3.948,-44.376],[-6.833,-41.439],[-17.157,-20.488],[-40.385,-16.996],[-46.561,-11.91],[-44.637,-4.091],[-27.785,12.306],[-31.732,35.916],[-28.721,43.33],[-20.801,43.937],[-0.001,33.005],[20.799,43.937],[28.695,43.33],[31.731,35.89],[27.785,12.306],[44.636,-4.091]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.806,45.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":14.0000005702317,"op":47.0000019143492,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"topo contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":17,"s":[277.078,91.691,0],"e":[277.078,132.191,0],"to":[0,6.75,0],"ti":[0,-5.91666650772095,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":22,"s":[277.078,132.191,0],"e":[277.078,127.191,0],"to":[0,5.91666650772095,0],"ti":[0,0.58333331346512,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":26,"s":[277.078,127.191,0],"e":[277.078,128.691,0],"to":[0,-0.58333331346512,0],"ti":[0,-0.25,0]},{"t":29.0000011811942}],"ix":2},"a":{"a":0,"k":[98.938,7.841,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":17,"s":[0.555,173.834,100],"e":[109.991,75.033,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":22,"s":[109.991,75.033,100],"e":[89.218,160.66,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":26,"s":[89.218,160.66,100],"e":[95.298,114.553,100]},{"t":29.0000011811942}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.126],[1.468,1.468],[2.126,0],[0,0],[0,0],[0,0],[-1.468,1.468]],"o":[[0,-2.125],[-1.468,-1.467],[0,0],[0,0],[0,0],[2.126,0],[1.468,-1.468]],"v":[[49.344,0],[47.142,-5.39],[41.752,-7.591],[-49.344,-7.591],[-49.344,7.591],[41.752,7.591],[47.142,5.39]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[148.281,7.841],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.126],[1.468,1.468],[2.126,0],[0,0],[1.45,-1.467],[0,-2.125],[-1.468,-1.468],[-2.143,0],[0,0],[-1.468,1.468]],"o":[[0,-2.125],[-1.468,-1.467],[0,0],[-2.143,0],[-1.468,1.468],[0,2.126],[1.45,1.468],[0,0],[2.126,0],[1.468,-1.468]],"v":[[98.688,0],[96.485,-5.39],[91.095,-7.591],[-91.096,-7.591],[-96.486,-5.39],[-98.688,0],[-96.486,5.39],[-91.096,7.591],[91.095,7.591],[96.485,5.39]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[98.938,7.841],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":17.0000006924242,"op":60.0000024438501,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"estrela contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"n":["0p667_1_0p167_0p167"],"t":14,"s":[-361.275],"e":[0]},{"t":30.0000012219251}],"ix":10},"p":{"a":0,"k":[277.078,201.291,0],"ix":2},"a":{"a":0,"k":[47.806,45.642,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.983]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0p983"],"t":14,"s":[0.61,0.155,100],"e":[105.898,105.898,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,-7.135]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_-7p135"],"t":21,"s":[105.898,105.898,100],"e":[63.089,63.089,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,6.152]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_6p152"],"t":26,"s":[63.089,63.089,100],"e":[72.709,72.709,100]},{"t":29.0000011811942}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[0,0],[0,0],[-2.548,1.855],[0.523,3.087],[0,0]],"o":[[2.277,-2.193],[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.674],[0,0],[0,0],[2.733,1.433],[2.546,-1.856],[0,0],[0,0]],"v":[[20.859,-4.095],[22.783,-11.914],[16.583,-17],[-6.647,-20.492],[-16.946,-41.444],[-19.856,-44.38],[-23.778,-45.392],[-23.778,33.001],[-3.003,43.959],[4.918,43.326],[7.954,35.912],[4.006,12.328]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.583,45.642],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.995,3.02],[3.121,0.388],[0,0],[0,0],[1.266,0.709],[1.401,0],[1.214,-0.675],[0.658,-1.249],[0,0],[0,0],[0.996,-3.003],[-2.277,-2.193],[0,0],[0,0],[-2.531,-1.856],[-2.733,1.45],[0,0],[0,0],[-2.531,1.855],[0.523,3.104],[0,0],[0,0]],"o":[[-1.013,-3.003],[0,0],[0,0],[-0.674,-1.249],[-1.214,-0.675],[-1.417,0],[-1.265,0.709],[0,0],[0,0],[-3.121,0.388],[-0.995,3.02],[0,0],[0,0],[-0.523,3.087],[2.547,1.855],[0,0],[0,0],[2.734,1.45],[2.547,-1.856],[0,0],[0,0],[2.278,-2.193]],"v":[[46.561,-11.91],[40.36,-16.996],[17.13,-20.488],[6.831,-41.439],[3.921,-44.376],[-0.001,-45.387],[-3.948,-44.376],[-6.833,-41.439],[-17.157,-20.488],[-40.385,-16.996],[-46.561,-11.91],[-44.637,-4.091],[-27.785,12.306],[-31.732,35.916],[-28.721,43.33],[-20.801,43.937],[-0.001,33.005],[20.799,43.937],[28.695,43.33],[31.731,35.89],[27.785,12.306],[44.636,-4.091]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.806,45.638],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":14.0000005702317,"op":60.0000024438501,"st":-7.00000028511585,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"caneca contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p667_1_0p167_0"],"t":11,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p667_1_0p167_0"],"t":17,"s":[0],"e":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"n":["0p667_1_0p167_0"],"t":21,"s":[0],"e":[0]},{"t":24.00000097754}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":11,"s":[277.077,276,0],"e":[277.077,186,0],"to":[0,-15,0],"ti":[0,11,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":17,"s":[277.077,186,0],"e":[277.077,210,0],"to":[0,-11,0],"ti":[0,-3.33333325386047,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":21,"s":[277.077,210,0],"e":[277.077,206,0],"to":[0,3.33333325386047,0],"ti":[0,0.66666668653488,0]},{"t":24.00000097754}],"ix":2},"a":{"a":0,"k":[83.914,84.008,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":11,"s":[14.198,3.539,100],"e":[109.534,111.904,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0.167,0]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":17,"s":[109.534,111.904,100],"e":[109.534,88.096,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":21,"s":[109.534,88.096,100],"e":[100,94.048,100]},{"t":24.00000097754}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.332,1.602],[2.059,0.237],[0,0],[0,0],[-8.739,3.407],[-6.765,6.106],[-4.151,8.114],[-0.979,9.447]],"o":[[0.151,-2.125],[-1.317,-1.603],[0,0],[0,0],[9.481,0],[8.468,-3.307],[6.748,-6.09],[4.267,-8.351],[0,0]],"v":[[41.677,-75.407],[39.906,-80.999],[34.844,-83.758],[-41.828,-83.758],[-41.828,83.758],[-14.499,78.647],[8.351,64.527],[24.698,43.22],[32.567,16.524]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.8,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[125.751,84.008],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.332,1.602],[2.059,0.237],[0,0],[1.333,-1.603],[-0.169,-2.108],[0,0],[-4.268,-8.351],[-6.764,-6.107],[-8.486,-3.307],[-9.497,0],[-8.739,3.407],[-6.765,6.106],[-4.151,8.114],[-0.979,9.447]],"o":[[0.151,-2.125],[-1.317,-1.603],[0,0],[-2.058,0.237],[-1.332,1.619],[0,0],[0.978,9.447],[4.15,8.098],[6.748,6.106],[8.721,3.407],[9.481,0],[8.468,-3.307],[6.748,-6.09],[4.267,-8.351],[0,0]],"v":[[83.514,-75.407],[81.742,-80.999],[76.681,-83.758],[-76.663,-83.758],[-81.751,-80.999],[-83.495,-75.407],[-74.411,16.524],[-66.542,43.22],[-50.171,64.527],[-27.32,78.647],[0.009,83.758],[27.337,78.647],[50.188,64.527],[66.535,43.22],[74.404,16.524]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.859000052658,0.250999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.914,84.008],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":11.0000004480392,"op":60.0000024438501,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"braco2 contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":17,"s":[304.254,197.132,0],"e":[374.254,197.132,0],"to":[11.6666669845581,0,0],"ti":[-9.66666698455811,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":24,"s":[374.254,197.132,0],"e":[362.254,197.132,0],"to":[9.66666698455811,0,0],"ti":[1.66666662693024,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":29,"s":[362.254,197.132,0],"e":[364.254,197.132,0],"to":[-1.66666662693024,0,0],"ti":[-0.33333334326744,0,0]},{"t":33.0000013441176}],"ix":2},"a":{"a":0,"k":[43.402,57.143,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0","0p667_1_0p167_0"],"t":17,"s":[22.014,100,100],"e":[136.699,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0","0p667_1_0p167_0"],"t":24,"s":[136.699,100,100],"e":[81.65,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0","0p667_1_0p167_0"],"t":29,"s":[81.65,100,100],"e":[100,100,100]},{"t":33.0000013441176}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.484,1.484],[2.093,0],[0,0],[1.485,-1.485],[0,-2.092],[-1.485,-1.484],[-2.092,0],[0,0],[0,0],[8.991,-12.18],[14.373,-4.47],[0,0],[0.979,-1.855],[-0.624,-1.99],[-1.839,-0.979],[-2.025,0.624],[0,0],[-7.372,5.28],[-5.262,7.135],[-2.799,8.385],[0,9.076],[0,0]],"o":[[-1.484,-1.485],[0,0],[-2.092,0],[-1.485,1.484],[0,2.092],[1.485,1.484],[0,0],[0,0],[0,15.032],[-8.992,12.146],[0,0],[-2.007,0.625],[-0.978,1.857],[0.624,1.991],[1.856,0.995],[0,0],[8.671,-2.7],[7.203,-5.179],[5.281,-7.136],[2.885,-8.603],[0,0],[0,-2.092]],"v":[[40.926,-54.666],[35.56,-56.893],[-13.555,-56.893],[-18.919,-54.666],[-21.147,-49.302],[-18.919,-43.937],[-13.555,-41.71],[27.969,-41.71],[27.969,-29.261],[14.482,11.556],[-20.565,36.48],[-37.518,41.769],[-41.997,45.488],[-42.529,51.258],[-38.835,55.712],[-33.014,56.269],[-16.06,50.98],[8.004,39.011],[26.703,20.539],[38.824,-2.742],[43.152,-29.261],[43.152,-49.302]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.402,57.143],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":17.0000006924242,"op":60.0000024438501,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"braco1 contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":17,"s":[256.121,195.466,0],"e":[173.121,195.466,0],"to":[-13.8333330154419,0,0],"ti":[11.8333330154419,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":24,"s":[173.121,195.466,0],"e":[185.121,195.466,0],"to":[-11.8333330154419,0,0],"ti":[-1.66666662693024,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":29,"s":[185.121,195.466,0],"e":[183.121,195.466,0],"to":[1.66666662693024,0,0],"ti":[0.33333334326744,0,0]},{"t":33.0000013441176}],"ix":2},"a":{"a":0,"k":[41.34,54.477,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0","0p667_1_0p167_0"],"t":17,"s":[12.917,100,100],"e":[129.028,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0","0p667_1_0p167_0"],"t":24,"s":[129.028,100,100],"e":[85.486,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0","0p667_1_0p167_0"],"t":29,"s":[85.486,100,100],"e":[100,100,100]},{"t":33.0000013441176}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.092],[1.484,1.484],[2.092,0],[0,0],[1.485,-1.485],[0,-2.092],[0,0],[-3.154,-8.958],[-5.736,-7.322],[-7.709,-5.079],[-9.194,-2.295],[0,0],[-1.788,1.08],[-0.506,2.042],[1.079,1.788],[2.041,0.507],[0,0],[6.478,4.268],[4.69,5.989],[2.513,7.136],[0,7.744],[0,0],[0,0],[-1.484,1.484]],"o":[[0,-2.092],[-1.484,-1.485],[0,0],[-2.092,0],[-1.484,1.484],[0,0],[0,9.464],[3.054,8.705],[5.719,7.304],[7.929,5.212],[0,0],[2.025,0.506],[1.805,-1.08],[0.523,-2.024],[-1.08,-1.805],[0,0],[-7.524,-1.89],[-6.326,-4.184],[-4.707,-5.988],[-2.581,-7.338],[0,0],[0,0],[2.092,0],[1.484,-1.485]],"v":[[23.183,-46.636],[20.956,-52],[15.591,-54.227],[-33.499,-54.227],[-38.864,-52],[-41.09,-46.636],[-41.09,-29.986],[-36.359,-2.353],[-23.175,21.686],[-3.033,40.26],[22.651,51.52],[31.381,53.721],[37.1,52.861],[40.567,48.179],[39.732,42.461],[35.051,38.994],[26.321,36.818],[5.318,27.582],[-11.206,12.323],[-22.036,-7.364],[-25.908,-29.986],[-25.908,-39.045],[15.591,-39.045],[20.956,-41.271]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.34,54.477],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":17.0000006924242,"op":60.0000024438501,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"base contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"n":"0p667_0p667_0p167_0p167","t":0,"s":[277.083,369.918,0],"e":[277.083,369.918,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"n":"0p667_0p667_0p167_0p167","t":5,"s":[277.083,369.918,0],"e":[277.083,369.918,0],"to":[0,0,0],"ti":[0,0,0]},{"t":8.00000032584668}],"ix":2},"a":{"a":0,"k":[68.572,7.841,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":0,"s":[0.105,182.892,100],"e":[127.708,80.871,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":5,"s":[127.708,80.871,100],"e":[100,100,100]},{"t":8.00000032584668}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-1.468,1.468],[0,2.126],[1.468,1.468],[2.126,0]],"o":[[0,0],[0,0],[2.126,0],[1.468,-1.466],[0,-2.125],[-1.468,-1.468],[0,0]],"v":[[-34.161,-7.592],[-34.161,7.592],[26.569,7.592],[31.96,5.389],[34.161,-0.001],[31.96,-5.391],[26.569,-7.592]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[102.732,7.842],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.451,-1.468],[0,-2.125],[-1.467,-1.466],[-2.142,0],[0,0],[-1.468,1.468],[0,2.126],[1.467,1.468],[2.126,0]],"o":[[-2.142,0],[-1.467,1.468],[0,2.126],[1.451,1.468],[0,0],[2.126,0],[1.467,-1.466],[0,-2.125],[-1.468,-1.468],[0,0]],"v":[[-60.731,-7.592],[-66.121,-5.391],[-68.322,-0.001],[-66.121,5.389],[-60.731,7.592],[60.73,7.592],[66.121,5.389],[68.322,-0.001],[66.121,-5.391],[60.73,-7.592]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[68.572,7.842],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60.0000024438501,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"base1 contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":5,"s":[277.083,365.551,0],"e":[277.083,333.551,0],"to":[0,-5.33333349227905,0],"ti":[0,4.33333349227905,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":10,"s":[277.083,333.551,0],"e":[277.083,339.551,0],"to":[0,-4.33333349227905,0],"ti":[0,-1,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.167,"y":0.167},"n":"0p667_0p667_0p167_0p167","t":13,"s":[277.083,339.551,0],"e":[277.083,339.551,0],"to":[0,0,0],"ti":[0,0,0]},{"t":15.0000006109625}],"ix":2},"a":{"a":0,"k":[53.389,30.615,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":5,"s":[100,2.009,100],"e":[92.508,116.332,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":10,"s":[92.508,116.332,100],"e":[107.492,90.201,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0]},"n":["0p667_1_0p167_0p167","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":13,"s":[107.492,90.201,100],"e":[100,100,100]},{"t":15.0000006109625}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.31,0],[0,0],[0,0],[0,0],[-1.468,1.468],[0,2.125],[0,0],[4.437,4.453]],"o":[[0,0],[0,0],[0,0],[2.126,0],[1.468,-1.467],[0,0],[0,-6.293],[-4.436,-4.436]],"v":[[3.796,-30.365],[-26.57,-30.365],[-26.57,30.365],[18.979,30.365],[24.369,28.164],[26.57,22.775],[26.57,-7.591],[19.915,-23.71]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.8,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.958,30.615],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.31,0],[0,0],[4.436,-4.436],[0,-6.309],[0,0],[-1.468,-1.467],[-2.142,0],[0,0],[-1.468,1.468],[0,2.125],[0,0],[4.437,4.453]],"o":[[0,0],[-6.31,0],[-4.437,4.437],[0,0],[0,2.125],[1.451,1.468],[0,0],[2.126,0],[1.468,-1.467],[0,0],[0,-6.293],[-4.436,-4.436]],"v":[[30.365,-30.365],[-30.365,-30.365],[-46.484,-23.71],[-53.139,-7.591],[-53.139,22.775],[-50.938,28.164],[-45.548,30.365],[45.548,30.365],[50.938,28.164],[53.139,22.775],[53.139,-7.591],[46.484,-23.71]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.859000052658,0.250999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.389,30.615],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":5.00000020365417,"op":60.0000024438501,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"meio contornos","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":8,"s":[277.086,351.957,0],"e":[277.086,288.957,0],"to":[0,-10.5,0],"ti":[0,8.5,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"n":"0p667_1_0p167_0p167","t":13,"s":[277.086,288.957,0],"e":[277.086,300.957,0],"to":[0,-8.5,0],"ti":[0,-2,0]},{"t":16.0000006516934}],"ix":2},"a":{"a":0,"k":[23.024,38.46,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0.167,0]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":8,"s":[100,1.196,100],"e":[100,126.001,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0.167,0]},"n":["0p667_1_0p167_0","0p667_1_0p167_0p167","0p667_1_0p167_0"],"t":13,"s":[100,126.001,100],"e":[100,100,100]},{"t":16.0000006516934}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.387,-38.21],[-11.387,-38.21],[-11.387,38.21],[11.387,38.21]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.6,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.411,38.46],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[22.774,-38.21],[-22.774,-38.21],[-22.774,38.21],[22.774,38.21]],"c":true},"ix":2},"nm":"Caminho 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.658999992819,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Preenchimento 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.024,38.46],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Grupo 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":8.00000032584668,"op":60.0000024438501,"st":8.00000032584668,"bm":0}]} -------------------------------------------------------------------------------- /assets/animations/823-crying.json: -------------------------------------------------------------------------------- 1 | {"v":"4.11.1","fr":60,"ip":0,"op":93,"w":1280,"h":720,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"crying Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[640,360,0],"ix":2},"a":{"a":0,"k":[512,384,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.42,8.036],[0,0],[0,0],[0,0],[0,0],[0.186,-8.725],[0,-2.326],[-33.695,0.959],[-4.12,28.285]],"o":[[-0.701,-3.304],[0,0],[0,0],[0,0],[0,0],[-0.26,2.257],[0,33.48],[28.571,-0.813],[1.324,-9.091]],"v":[[56.683,29.587],[55.119,24.185],[-2.401,-107.29],[-2.402,-107.29],[-55.813,24.185],[-59.495,39.913],[-59.921,46.781],[1.391,106.331],[58.596,55.447]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-713.733,130.356],[310.267,130.356],[310.267,-637.644],[-713.733,-637.644]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-713.733,-637.644],[310.267,-637.644],[310.267,130.356],[-713.733,130.356]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.26699999641,0.458999992819,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[713.733,437.644],"e":[713.733,820.644],"to":[0,63.8333320617676],"ti":[0,-63.8333320617676]},{"t":92}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[0,0],"e":[52,52]},{"t":46}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"drop","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-61.629,0],[0,0]],"o":[[0,0],[61.628,0],[0,0]],"v":[[-84.225,18.488],[-2.053,-22.597],[84.225,22.597]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.172999991623,0.219999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[512.065,548.843],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,27.229],[24.96,0],[0,-27.229],[-24.96,0]],"o":[[0,-27.229],[-24.96,0],[0,27.229],[24.96,0]],"v":[[45.195,0],[0,-49.303],[-45.195,0],[0,49.303]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-662.028,373.228],[361.972,373.228],[361.972,-394.772],[-662.028,-394.772]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-662.028,-394.772],[361.972,-394.772],[361.972,373.228],[-662.028,373.228]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.172999991623,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[662.028,394.772],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,27.229],[24.96,0],[0,-27.229],[-24.961,0]],"o":[[0,-27.229],[-24.961,0],[0,27.229],[24.96,0]],"v":[[45.194,0],[0,-49.303],[-45.195,0],[0,49.303]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-362.103,373.228],[661.897,373.228],[661.897,-394.772],[-362.103,-394.772]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-362.103,-394.772],[661.897,-394.772],[661.897,373.228],[-362.103,373.228]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.172999991623,0.219999994016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[362.103,394.772],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[27.413,14.595],[0,0]],"o":[[0,0],[-27.413,-14.595],[0,0]],"v":[[39.076,27.454],[9.962,-12.859],[-39.076,-19.88]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.172999991623,0.219999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[680.561,305.689],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-27.413,14.595],[0,0]],"o":[[0,0],[27.413,-14.595],[0,0]],"v":[[-39.076,27.454],[-9.963,-12.859],[39.076,-19.88]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.172999991623,0.219999994016,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":9,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[343.659,305.689],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0}]} -------------------------------------------------------------------------------- /assets/fonts/BadaboomBB_Reg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/fonts/BadaboomBB_Reg.ttf -------------------------------------------------------------------------------- /assets/fonts/GrinchedRegular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/fonts/GrinchedRegular.otf -------------------------------------------------------------------------------- /assets/fonts/SaucerBB.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/fonts/SaucerBB.ttf -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/icon.png -------------------------------------------------------------------------------- /assets/images/game_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/images/game_background.png -------------------------------------------------------------------------------- /assets/images/game_background_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/images/game_background_active.png -------------------------------------------------------------------------------- /assets/sounds/correct.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/sounds/correct.wav -------------------------------------------------------------------------------- /assets/sounds/gameover_average.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/sounds/gameover_average.wav -------------------------------------------------------------------------------- /assets/sounds/gameover_bad.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/sounds/gameover_bad.wav -------------------------------------------------------------------------------- /assets/sounds/gameover_good.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/sounds/gameover_good.wav -------------------------------------------------------------------------------- /assets/sounds/incorrect.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/sounds/incorrect.wav -------------------------------------------------------------------------------- /assets/sounds/timeout.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/sounds/timeout.wav -------------------------------------------------------------------------------- /assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/computationalcore/react-native-trivia-quiz/8471ed90d57bcb0d4b9f80290234f4f3db84f4aa/assets/splash.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function(api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-native-trivia-quiz", 3 | "version": "2.4.0", 4 | "description": "A simple trivia game built with React Native, Redux, and the Open Trivia Database Trivia.", 5 | "repository": { 6 | "type": "git", 7 | "url": "git+https://github.com/computationalcore/react-native-trivia-quiz" 8 | }, 9 | "keywords": [ 10 | "trivia", 11 | "quiz", 12 | "trivia quiz", 13 | "trivia react native", 14 | "trivia quiz react native", 15 | "quiz react native", 16 | "react native", 17 | "open trivia database api", 18 | "open trivia db", 19 | "opentdb" 20 | ], 21 | "author": "Vin Busquet", 22 | "license": "SEE LICENSE IN LICENSE.txt", 23 | "bugs": { 24 | "url": "https://github.com/computationalcore/react-native-trivia-quiz/issues" 25 | }, 26 | "homepage": "https://github.com/computationalcore/react-native-trivia-quiz", 27 | "main": "node_modules/expo/AppEntry.js", 28 | "scripts": { 29 | "start": "expo start", 30 | "android": "expo start --android", 31 | "ios": "expo start --ios", 32 | "eject": "expo eject" 33 | }, 34 | "jest": { 35 | "preset": "jest-expo" 36 | }, 37 | "dependencies": { 38 | "@expo/vector-icons": "^12.0.0", 39 | "@react-native-community/masked-view": "0.1.10", 40 | "@react-navigation/bottom-tabs": "^6.0.5", 41 | "@react-navigation/native": "^6.0.2", 42 | "@react-navigation/native-stack": "^6.1.0", 43 | "expo": "~42.0.1", 44 | "expo-asset": "~8.3.2", 45 | "expo-av": "~9.2.1", 46 | "expo-constants": "~11.0.1", 47 | "expo-font": "~9.2.1", 48 | "expo-linking": "~2.3.1", 49 | "expo-splash-screen": "~0.11.2", 50 | "expo-status-bar": "~1.0.4", 51 | "expo-web-browser": "~9.2.0", 52 | "html-entities": "^1.2.1", 53 | "lottie-ios": "^3.2.3", 54 | "lottie-react-native": "4.0.2", 55 | "mem": "^4.0.0", 56 | "prop-types": "^15.7.2", 57 | "react": "16.13.1", 58 | "react-dom": "16.13.1", 59 | "react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz", 60 | "react-native-gesture-handler": "~1.10.2", 61 | "react-native-picker-select": "^6.0.0", 62 | "react-native-reanimated": "~2.2.0", 63 | "react-native-router-flux": "^4.3.1", 64 | "react-native-safe-area-context": "3.2.0", 65 | "react-native-screens": "~3.4.0", 66 | "react-native-segmented-control-tab": "^3.4.0", 67 | "react-native-web": "~0.13.12", 68 | "react-navigation": "^4.4.4", 69 | "react-redux": "^6.0.1", 70 | "redux": "^4.0.1", 71 | "redux-thunk": "^2.3.0", 72 | "sort-by": "^1.2.0" 73 | }, 74 | "devDependencies": { 75 | "@babel/core": "^7.9.0", 76 | "jest-expo": "~41.0.0-beta.0" 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/Router.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Scene, Router } from 'react-native-router-flux'; 3 | import GameOver from './components/screens/GameOver'; 4 | import MainMenu from './components/screens/MainMenu'; 5 | import TriviaGame from './components/screens/TriviaGame'; 6 | import TriviaSelection from './components/screens/TriviaSelection'; 7 | 8 | const RouterComponent = () => { 9 | return ( 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ); 19 | }; 20 | 21 | export default RouterComponent; 22 | -------------------------------------------------------------------------------- /src/Scaling.js: -------------------------------------------------------------------------------- 1 | // App scaling setup used for styles 2 | import { Dimensions } from 'react-native'; 3 | const { width, height } = Dimensions.get('window'); 4 | 5 | //Guideline sizes are based on standard ~5" screen mobile device 6 | //const guidelineBaseWidth = 350; 7 | //const guidelineBaseHeight = 680; 8 | const guidelineBaseWidth = 500; 9 | const guidelineBaseHeight = 972; 10 | 11 | const scale = size => width / guidelineBaseWidth * size; 12 | const verticalScale = size => height / guidelineBaseHeight * size; 13 | const moderateScale = (size, factor = 0.5) => size + ( scale(size) - size ) * factor; 14 | 15 | export {scale, verticalScale, moderateScale}; 16 | -------------------------------------------------------------------------------- /src/TriviaAPI.js: -------------------------------------------------------------------------------- 1 | /** 2 | * This file contains helper functions to interact with the Open Trivia Database API. 3 | * 4 | * @see https://opentdb.com 5 | */ 6 | 7 | const API_URL = 'https://opentdb.com'; 8 | 9 | /** 10 | * @description Get questions request. 11 | * @param {number} amount - Number of Questions 12 | */ 13 | export const getQuestions = async (amount=10, category=-1, difficulty='Mixed') => { 14 | difficulty = difficulty.toLowerCase(); 15 | const url = `${API_URL}/api.php?amount=${amount}` + 16 | ((category !== -1) ? `&category=${category}` : '') + 17 | ((difficulty !== 'mixed') ? `&difficulty=${difficulty}` : ''); 18 | console.log(url); 19 | return fetch(url) 20 | .then(res => { 21 | if (res.status !== 200) { 22 | return res; 23 | } 24 | return res.json(); 25 | }) 26 | .then(data => { 27 | // Only happen if status is 200 28 | if (data.results) { 29 | return data.results; 30 | } 31 | // Return the object with with http status (error code) 32 | return {errorCode: data.status}; 33 | }); 34 | } 35 | 36 | /** 37 | * @description Get all available categories. 38 | */ 39 | export const getCategories = async () => { 40 | return fetch(`${API_URL}/api_category.php`) 41 | .then(res => { 42 | if (res.status !== 200) { 43 | return res; 44 | } 45 | return res.json(); 46 | }) 47 | .then(data => { 48 | // Only happen if status is 200 49 | if (data.trivia_categories) { 50 | return data.trivia_categories; 51 | } 52 | // Return the object with with http status (error code) 53 | return {errorCode: data.status}; 54 | }); 55 | } 56 | -------------------------------------------------------------------------------- /src/Utils.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @description Shuffle the data of an array. 3 | * @param {*} array 4 | */ 5 | export const shuffleArray = (array) => { 6 | let ctr = array.length; 7 | let temp; 8 | let index; 9 | 10 | // While there are elements in the array 11 | while (ctr > 0) { 12 | // Pick a random index 13 | index = Math.floor(Math.random() * ctr); 14 | // Decrease ctr by 1 15 | ctr--; 16 | // And swap the last element with it 17 | temp = array[ctr]; 18 | array[ctr] = array[index]; 19 | array[index] = temp; 20 | } 21 | return array; 22 | } 23 | 24 | /** 25 | * @description Capitalize fist letter of a string. 26 | * @param {string} str 27 | */ 28 | export const capitalizeFirstLetter = (str) => { 29 | return str.charAt(0).toUpperCase() + str.slice(1); 30 | } -------------------------------------------------------------------------------- /src/actions/TriviaActions.js: -------------------------------------------------------------------------------- 1 | import { Actions } from 'react-native-router-flux'; 2 | import { AllHtmlEntities as entities } from 'html-entities'; 3 | import sortBy from 'sort-by'; 4 | import { 5 | TRIVIA_MAIN_MENU, 6 | TRIVIA_SELECT_OPTIONS_GAME, 7 | TRIVIA_START_GAME, 8 | TRIVIA_FETCH_CATEGORIES_SUCCESS, 9 | TRIVIA_FETCH_SUCCESS, 10 | TRIVIA_FETCH_ERROR, 11 | TRIVIA_NEXT_QUESTION, 12 | TRIVIA_GAME_OVER 13 | } from './types'; 14 | import { shuffleArray } from '../Utils'; 15 | import * as TriviaAPI from '../TriviaAPI'; 16 | 17 | /** 18 | * @description Fetch the quiz categories, parse the response and dispatch success or error action. 19 | */ 20 | export const triviaCategoryFetch = () => { 21 | 22 | return (dispatch) => { 23 | TriviaAPI.getCategories().then((categories) => { 24 | //console.log(categories); 25 | categories = categories.map( 26 | category => { 27 | return { 28 | label: category.name, 29 | value: category.id 30 | } 31 | } 32 | ).sort(sortBy('label')); 33 | // Add 'Any' options a the beginning of the array 34 | categories.unshift({ 35 | label: 'Any', 36 | value: -1 37 | }); 38 | dispatch({ type: TRIVIA_FETCH_CATEGORIES_SUCCESS, payload: categories }); 39 | }).catch(function () { 40 | dispatch({ type: TRIVIA_FETCH_ERROR }); 41 | }); 42 | } 43 | }; 44 | 45 | /** 46 | * @description Fetch the questions, parse the response and dispatch success or error action. 47 | */ 48 | export const triviaFetch = (selectedCategoryId, selectedDifficulty, numberOfQuestions) => { 49 | 50 | return (dispatch) => { 51 | TriviaAPI.getQuestions(numberOfQuestions, selectedCategoryId, selectedDifficulty).then((questions) => { 52 | const formatedQuestions = questions.map( 53 | question => { 54 | let options = question.incorrect_answers; 55 | options.push(question.correct_answer); 56 | options = shuffleArray(options); 57 | 58 | return { 59 | options: options.map(option => entities.decode(option)), 60 | category: question.category, 61 | difficulty: question.difficulty, 62 | type: question.type, 63 | correct_answer: entities.decode(question.correct_answer), 64 | question: entities.decode(question.question) 65 | } 66 | } 67 | ); 68 | //console.log(formatedQuestions); 69 | dispatch({ type: TRIVIA_FETCH_SUCCESS, payload: formatedQuestions }); 70 | }).catch(function () { 71 | dispatch({ type: TRIVIA_FETCH_ERROR }); 72 | }); 73 | } 74 | }; 75 | 76 | 77 | /** 78 | * @description Validate answer, and dispatch action to move to next question or game over. 79 | * @param {string} currentAnswer - Currect answer selected by the user. 80 | * @param {number} currentQuestionIndex - Current question selected by the user. 81 | * @param {Object[]} questions - The array with the questions. 82 | * @param {*} totalScore - The total score of the user. 83 | */ 84 | export const nextQuestion = (currentAnswer, currentQuestionIndex, questions, totalScore) => { 85 | 86 | return (dispatch) => { 87 | const nextIndex = currentQuestionIndex + 1; 88 | let totalQuestionsSize = questions.length; 89 | 90 | // Validate current answer 91 | if (currentAnswer === questions[currentQuestionIndex].correct_answer) { 92 | totalScore += 1; 93 | } 94 | 95 | if (nextIndex < totalQuestionsSize) { 96 | dispatch({ type: TRIVIA_NEXT_QUESTION, payload: { currentQuestionIndex: nextIndex, totalScore } }); 97 | } 98 | else { 99 | dispatch({ type: TRIVIA_GAME_OVER, payload: totalScore }); 100 | // Call game over screen and disable back action 101 | Actions.gameOver({ type: 'reset' }); 102 | } 103 | } 104 | }; 105 | 106 | /** 107 | * @description Start Trivia Game. 108 | */ 109 | export const startGame = (categoryId, difficulty, numberOfQuestions) => { 110 | return (dispatch) => { 111 | dispatch({ type: TRIVIA_START_GAME, payload: { categoryId, difficulty, numberOfQuestions } }); 112 | // Call start game and disable back action 113 | Actions.triviaGame({ type: 'reset' }); 114 | } 115 | }; 116 | 117 | /** 118 | * @description Start Game Selection. 119 | */ 120 | export const startGameSelection = () => { 121 | 122 | return (dispatch) => { 123 | dispatch({ type: TRIVIA_SELECT_OPTIONS_GAME }); 124 | // Call start game and disable back action 125 | Actions.triviaSelection({ type: 'reset' }); 126 | } 127 | }; 128 | 129 | /** 130 | * @description Go to Main Menu Screen. 131 | */ 132 | export const goToMainMenu = () => { 133 | 134 | return (dispatch) => { 135 | dispatch({ type: TRIVIA_MAIN_MENU }); 136 | // Call start game and disable back action 137 | Actions.mainMenu({ type: 'reset' }); 138 | } 139 | }; 140 | -------------------------------------------------------------------------------- /src/actions/index.js: -------------------------------------------------------------------------------- 1 | export * from './TriviaActions'; 2 | -------------------------------------------------------------------------------- /src/actions/types.js: -------------------------------------------------------------------------------- 1 | export const TRIVIA_MAIN_MENU = 'trivia_main_menu'; 2 | export const TRIVIA_SELECT_OPTIONS_GAME = 'trivia_select_options_game'; 3 | export const TRIVIA_START_GAME = 'trivia_start_game'; 4 | export const TRIVIA_FETCH_CATEGORIES_SUCCESS = 'trivia_fetch_categories_success'; 5 | export const TRIVIA_FETCH_CATEGORIES_ERROR = 'trivia_fetch_categories_error'; 6 | export const TRIVIA_FETCH_SUCCESS = 'trivia_fetch_success'; 7 | export const TRIVIA_FETCH_ERROR = 'trivia_fetch_error'; 8 | export const TRIVIA_NEXT_QUESTION = 'trivia_next_question'; 9 | export const TRIVIA_GAME_OVER = 'trivia_game_over'; 10 | -------------------------------------------------------------------------------- /src/components/AnswerStatus.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { 4 | View, 5 | Text, 6 | StyleSheet, 7 | } from 'react-native'; 8 | import * as Font from 'expo-font'; 9 | import LottieView from 'lottie-react-native'; 10 | import { scale, moderateScale, verticalScale} from '../Scaling'; 11 | 12 | const STATUS_FONT = require('../../assets/fonts/BadaboomBB_Reg.ttf'); 13 | const CORRECT_ANIMATION = require('../../assets/animations/433-checked-done.json'); 14 | const INCORRECT_ANIMATION = require('../../assets/animations/101-x-pop.json'); 15 | const TIMEOUT_ANIMATION = require('../../assets/animations/4284-notification.json'); 16 | 17 | 18 | /** 19 | * This object is used for type checking the props of the component. 20 | */ 21 | const propTypes = { 22 | type: PropTypes.oneOf(['correct', 'incorrect', 'timeout']).isRequired, 23 | }; 24 | 25 | 26 | /** 27 | * @description Show the correct animation for answer status based on type. 28 | * @constructor 29 | * @param {Object} props - The props that were defined by the caller of this component. 30 | * @param {string} props.type - Type of the status answer (correct, incorrect or timeout). 31 | */ 32 | class AnswerStatus extends React.Component { 33 | 34 | constructor(props){ 35 | super(props); 36 | /** 37 | * @typedef {Object} ComponentState 38 | * @property {Object[]} fontLoaded - Indicates whether custom fonts already loaded. 39 | */ 40 | 41 | /** @type {ComponentState} */ 42 | this.state = { 43 | fontLoaded: false 44 | }; 45 | } 46 | 47 | async componentDidMount() { 48 | await Font.loadAsync({ 49 | 'status-text': STATUS_FONT, 50 | }); 51 | this.setState({ fontLoaded: true }); 52 | } 53 | 54 | render() { 55 | let animation; 56 | let statusMessage; 57 | let statusStyle; 58 | switch(this.props.type) { 59 | case 'correct': 60 | animation = CORRECT_ANIMATION; 61 | statusMessage = 'Correct!!!'; 62 | statusStyle = styles.correctText; 63 | break; 64 | case 'incorrect': 65 | animation = INCORRECT_ANIMATION; 66 | statusMessage = 'Incorrect!!!'; 67 | statusStyle = styles.errorText; 68 | break; 69 | default: 70 | statusMessage = 'Time over!!!'; 71 | statusStyle = styles.timeoutText; 72 | animation = TIMEOUT_ANIMATION; 73 | } 74 | 75 | return ( 76 | (this.state.fontLoaded) && 77 | 78 | 84 | {statusMessage} 85 | 86 | ); 87 | } 88 | } 89 | 90 | /** 91 | * AnswerStatus component StyleSheet. 92 | */ 93 | const styles = StyleSheet.create({ 94 | statusContainer: { 95 | flex: 1, 96 | height: '100%', 97 | width: '100%', 98 | paddingTop: 0, 99 | borderWidth: 2, 100 | borderRadius: 8, 101 | borderColor: '#ffffff', 102 | justifyContent: 'center', 103 | alignItems: 'center', 104 | alignSelf: 'center', 105 | backgroundColor: 'rgba(255, 255, 255, 0.9)', 106 | }, 107 | statusAnimation: { 108 | width: scale(300), 109 | height: scale(300) 110 | }, 111 | statusText: { 112 | fontFamily: "status-text", 113 | fontSize: moderateScale(40), 114 | textShadowRadius: 10, 115 | marginTop: moderateScale(-60) 116 | }, 117 | correctText: { 118 | color: '#00C871' 119 | }, 120 | errorText: { 121 | color: '#FF1122' 122 | }, 123 | timeoutText: { 124 | color: '#FFAA38' 125 | }, 126 | }); 127 | 128 | // Type checking the props of the component 129 | AnswerStatus.propTypes = propTypes; 130 | 131 | export default AnswerStatus; -------------------------------------------------------------------------------- /src/components/Button.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Text, TouchableOpacity } from "react-native"; 3 | import { scale, moderateScale } from "../Scaling"; 4 | 5 | /** 6 | * This object sets default values to the optional props. 7 | */ 8 | const defaultProps = { 9 | style: {}, 10 | onPress: () => {}, 11 | }; 12 | 13 | /** 14 | * @callback onPress 15 | */ 16 | 17 | /** 18 | * @description General Button component. 19 | * @constructor 20 | * @param {Object} props - The props that were defined by the caller of this component. 21 | * @param {onPress} props.onPress - The size of the spinner. 22 | */ 23 | const Button = ({ onPress, children, style }) => { 24 | const { buttonStyle, textStyle } = styles; 25 | 26 | return ( 27 | 28 | {children} 29 | 30 | ); 31 | }; 32 | 33 | /** 34 | * Button component StyleSheet. 35 | */ 36 | const styles = { 37 | textStyle: { 38 | padding: scale(12), 39 | color: "#ffffff", 40 | fontSize: moderateScale(24), 41 | fontWeight: "normal", 42 | textAlign: "center", 43 | textShadowColor: "#000000", 44 | textShadowOffset: { width: 2, height: 2 }, 45 | textShadowRadius: 0, 46 | }, 47 | buttonStyle: { 48 | display: 'flex', 49 | flexDirection: "column", 50 | justifyContent: "center", 51 | alignItems: "center", 52 | height: moderateScale(60), 53 | alignSelf: "stretch", 54 | minHeight: moderateScale(32), 55 | margin: scale(10), 56 | backgroundColor: "rgba(64, 64, 255, 0.8)", 57 | borderRadius: 8, 58 | }, 59 | }; 60 | 61 | // Assign default values to the optional props 62 | Button.defaultProps = defaultProps; 63 | 64 | export default Button; 65 | -------------------------------------------------------------------------------- /src/components/CountdownCircle.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Adapted from https://github.com/MrToph/react-native-countdown-circle 3 | */ 4 | import React from "react"; 5 | import { 6 | Easing, 7 | Animated, 8 | StyleSheet, 9 | Text, 10 | View, 11 | ViewPropTypes, 12 | } from "react-native"; 13 | import PropTypes from "prop-types"; 14 | 15 | const ViewPropTypesStyle = ViewPropTypes 16 | ? ViewPropTypes.style 17 | : View.propTypes.style; 18 | 19 | const styles = StyleSheet.create({ 20 | outerCircle: { 21 | overflow: "hidden", 22 | justifyContent: "center", 23 | alignItems: "center", 24 | backgroundColor: "#e3e3e3", 25 | }, 26 | innerCircle: { 27 | overflow: "hidden", 28 | justifyContent: "center", 29 | alignItems: "center", 30 | backgroundColor: "#fff", 31 | }, 32 | leftWrap: { 33 | position: "absolute", 34 | top: 0, 35 | left: 0, 36 | }, 37 | halfCircle: { 38 | position: "absolute", 39 | top: 0, 40 | left: 0, 41 | borderTopRightRadius: 0, 42 | borderBottomRightRadius: 0, 43 | backgroundColor: "#f00", 44 | }, 45 | }); 46 | 47 | function calcInterpolationValuesForHalfCircle1(animatedValue, { shadowColor }) { 48 | const rotate = animatedValue.interpolate({ 49 | inputRange: [0, 50, 50, 100], 50 | outputRange: ["0deg", "180deg", "180deg", "180deg"], 51 | }); 52 | 53 | const backgroundColor = shadowColor; 54 | return { rotate, backgroundColor }; 55 | } 56 | 57 | function calcInterpolationValuesForHalfCircle2( 58 | animatedValue, 59 | { color, shadowColor } 60 | ) { 61 | const rotate = animatedValue.interpolate({ 62 | inputRange: [0, 50, 50, 100], 63 | outputRange: ["0deg", "0deg", "180deg", "360deg"], 64 | }); 65 | 66 | const backgroundColor = animatedValue.interpolate({ 67 | inputRange: [0, 50, 50, 100], 68 | outputRange: [color, color, shadowColor, shadowColor], 69 | }); 70 | return { rotate, backgroundColor }; 71 | } 72 | 73 | function getInitialState(props) { 74 | const circleProgress = new Animated.Value(0); 75 | return { 76 | circleProgress, 77 | secondsElapsed: 0, 78 | text: props.updateText(0, props.seconds), 79 | interpolationValuesHalfCircle1: calcInterpolationValuesForHalfCircle1( 80 | circleProgress, 81 | props 82 | ), 83 | interpolationValuesHalfCircle2: calcInterpolationValuesForHalfCircle2( 84 | circleProgress, 85 | props 86 | ), 87 | }; 88 | } 89 | 90 | export default class PercentageCircle extends React.PureComponent { 91 | static propTypes = { 92 | seconds: PropTypes.number.isRequired, 93 | radius: PropTypes.number.isRequired, 94 | color: PropTypes.string, 95 | shadowColor: PropTypes.string, // eslint-disable-line react/no-unused-prop-types 96 | bgColor: PropTypes.string, 97 | borderWidth: PropTypes.number, 98 | containerStyle: ViewPropTypesStyle, 99 | textStyle: Text.propTypes.style, 100 | updateText: PropTypes.func, 101 | onTimeElapsed: PropTypes.func, 102 | }; 103 | 104 | static defaultProps = { 105 | color: "#f00", 106 | shadowColor: "#999", 107 | bgColor: "#e9e9ef", 108 | borderWidth: 2, 109 | seconds: 10, 110 | children: null, 111 | containerStyle: null, 112 | textStyle: null, 113 | onTimeElapsed: () => null, 114 | updateText: (elapsedSeconds, totalSeconds) => 115 | (totalSeconds - elapsedSeconds).toString(), 116 | }; 117 | 118 | constructor(props) { 119 | super(props); 120 | 121 | this.state = getInitialState(props); 122 | this.restartAnimation(); 123 | } 124 | 125 | UNSAFE_componentWillReceiveProps(nextProps) { 126 | if (this.props.seconds !== nextProps.seconds) { 127 | this.state.circleProgress.stopAnimation(); 128 | this.setState(getInitialState(nextProps), this.restartAnimation); 129 | } 130 | } 131 | 132 | onCircleAnimated = ({ finished }) => { 133 | // if animation was interrupted by stopAnimation don't restart it. 134 | if (!finished) return; 135 | 136 | const secondsElapsed = this.state.secondsElapsed + 1; 137 | const callback = 138 | secondsElapsed < this.props.seconds 139 | ? this.restartAnimation 140 | : this.props.onTimeElapsed; 141 | const updatedText = this.props.updateText( 142 | secondsElapsed, 143 | this.props.seconds 144 | ); 145 | this.setState( 146 | { 147 | ...getInitialState(this.props), 148 | secondsElapsed, 149 | text: updatedText, 150 | }, 151 | callback 152 | ); 153 | }; 154 | 155 | restartAnimation = () => { 156 | this.state.circleProgress.stopAnimation(); 157 | Animated.timing(this.state.circleProgress, { 158 | toValue: 100, 159 | duration: 1000, 160 | easing: Easing.linear, 161 | useNativeDriver: false, 162 | }).start(this.onCircleAnimated); 163 | }; 164 | 165 | renderHalfCircle({ rotate, backgroundColor }) { 166 | const { radius } = this.props; 167 | 168 | return ( 169 | 178 | 194 | 195 | ); 196 | } 197 | 198 | renderInnerCircle() { 199 | const radiusMinusBorder = this.props.radius - this.props.borderWidth; 200 | return ( 201 | 213 | {this.state.text} 214 | 215 | ); 216 | } 217 | 218 | render() { 219 | const { interpolationValuesHalfCircle1, interpolationValuesHalfCircle2 } = 220 | this.state; 221 | return ( 222 | 233 | {this.renderHalfCircle(interpolationValuesHalfCircle1)} 234 | {this.renderHalfCircle(interpolationValuesHalfCircle2)} 235 | {this.renderInnerCircle()} 236 | 237 | ); 238 | } 239 | } 240 | -------------------------------------------------------------------------------- /src/components/Question.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { 4 | View, 5 | Text, 6 | StyleSheet, 7 | FlatList, 8 | } from 'react-native'; 9 | import QuestionOptionItem from './QuestionOptionItem'; 10 | import { scale, moderateScale, verticalScale} from '../Scaling'; 11 | 12 | /** 13 | * This object is used for type checking the props of the component. 14 | */ 15 | const propTypes = { 16 | category: PropTypes.string.isRequired, 17 | type: PropTypes.oneOf(['boolean', 'multiple']).isRequired, 18 | difficulty: PropTypes.oneOf(['easy', 'medium', 'hard']).isRequired, 19 | question: PropTypes.string.isRequired, 20 | options: PropTypes.arrayOf(PropTypes.string).isRequired, 21 | }; 22 | 23 | /** 24 | * This object sets default values to the optional props. 25 | */ 26 | const defaultProps = { 27 | onItemSelected: () => { }, 28 | }; 29 | 30 | /** 31 | * @callback onItemSelected 32 | * @param {string} selected - Text of the option selected. 33 | */ 34 | 35 | /** 36 | * @description Individual quiz question with options. 37 | * @constructor 38 | * @param {Object} props - The props that were defined by the caller of this component. 39 | * @param {string} props.category - The id of the book. 40 | * @param {string} props.type - The url of the book cover image. 41 | * @param {string} props.difficulty - The title of the book. 42 | * @param {boolean} props.question - Indicates whether the book is updating. Shows the loader layer if true. 43 | * @param {} props.onItemSelected - Executed when an option is selected. 44 | */ 45 | function Question(props) { 46 | return ( 47 | 48 | 49 | 50 | 51 | {props.question} 52 | 53 | 54 | 55 | ( 60 | 64 | )} 65 | keyExtractor={(item, index) => `${index}-${item}`} 66 | onPressItem={props.onItemSelected} 67 | scrollEnabled={true} 68 | /> 69 | 70 | ); 71 | } 72 | 73 | /** 74 | * Question component StyleSheet. 75 | */ 76 | const styles = StyleSheet.create({ 77 | questionDataContainer: { 78 | flex: 1, 79 | justifyContent: 'center', 80 | alignItems: 'center', 81 | marginLeft: scale(16), 82 | marginRight: scale(16), 83 | }, 84 | 85 | questionData: { 86 | padding: scale(16), 87 | marginTop: scale(32), 88 | marginBottom: scale(32), 89 | alignSelf: 'stretch', 90 | maxHeight: verticalScale(280), 91 | borderWidth: 2, 92 | borderRadius: 8, 93 | borderColor: '#ffffff', 94 | justifyContent: 'center', 95 | backgroundColor: 'rgba(255, 255, 255, 0.9)', 96 | }, 97 | 98 | questionDescription: { 99 | color: '#000', 100 | fontSize: moderateScale(20), 101 | textAlign: 'center', 102 | }, 103 | 104 | questionOptions: { 105 | width: '100%', 106 | }, 107 | questionOptionsContainer: { 108 | marginTop: 0, 109 | } 110 | }); 111 | 112 | // Type checking the props of the component 113 | Question.propTypes = propTypes; 114 | // Assign default values to the optional props 115 | Question.defaultProps = defaultProps; 116 | 117 | export default Question; -------------------------------------------------------------------------------- /src/components/QuestionOptionItem.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from 'react'; 2 | import { 3 | View, 4 | Text, 5 | StyleSheet, 6 | TouchableOpacity, 7 | } from 'react-native'; 8 | import PropTypes from 'prop-types'; 9 | import { scale, moderateScale } from '../Scaling'; 10 | 11 | /** 12 | * This object is used for type checking the props of the component. 13 | */ 14 | const propTypes = { 15 | optionDescription: PropTypes.string.isRequired, 16 | onPressItem: PropTypes.func.isRequired, 17 | }; 18 | 19 | /** 20 | * @callback onPressItem 21 | * @param {string} selected - Text of the option selected. 22 | */ 23 | 24 | /** 25 | * @description Individual quiz question option component. 26 | * @constructor 27 | * @param {Object} props - The props that were defined by the caller of this component. 28 | * @param {string} props.optionDescription - The text of the option. 29 | * @param {onPressItem} props.onPressItem - Executed when user selects an option. 30 | */ 31 | class QuestionOptionItem extends PureComponent { 32 | 33 | _onPress = () => { 34 | this.props.onPressItem(this.props.optionDescription); 35 | }; 36 | 37 | render() { 38 | const { optionDescription } = this.props; 39 | 40 | return ( 41 | 44 | 45 | {optionDescription} 46 | 47 | 48 | ); 49 | } 50 | } 51 | 52 | /** 53 | * QuestionOptionItem component StyleSheet. 54 | */ 55 | const styles = StyleSheet.create({ 56 | quizOption: { 57 | flex: 1, 58 | alignSelf: 'stretch', 59 | minHeight: 32, 60 | marginTop: 4, 61 | marginBottom: 4, 62 | backgroundColor: 'rgba(64, 64, 64,0.8)', 63 | borderRadius: 8, 64 | }, 65 | 66 | quizOptionDescription: { 67 | flex: 1, 68 | padding: scale(12), 69 | color: '#ffffff', 70 | fontSize: moderateScale(24), 71 | fontWeight:'normal', 72 | textAlign: 'center', 73 | textShadowColor:'#000000', 74 | textShadowOffset:{width: 2, height: 2}, 75 | textShadowRadius:0, 76 | }, 77 | }); 78 | 79 | // Type checking the props of the component 80 | QuestionOptionItem.propTypes = propTypes; 81 | 82 | export default QuestionOptionItem; 83 | -------------------------------------------------------------------------------- /src/components/TriviaLoader.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | View, 4 | Text, 5 | StyleSheet, 6 | ImageBackground, 7 | } from 'react-native'; 8 | import LottieView from 'lottie-react-native'; 9 | import Button from './Button'; 10 | import { scale, moderateScale, verticalScale} from '../Scaling'; 11 | 12 | // Assets 13 | const BACKGROUND_IMAGE = require('../../assets/images/game_background.png'); 14 | const BACKGROUND_IMAGE_ACTIVE = require('../../assets/images/game_background_active.png'); 15 | const LOADING_ANIMATION = require('../../assets/animations/2151-loading-hamster.json'); 16 | const ERROR_ANIMATION = require('../../assets/animations/4386-connection-error.json'); 17 | 18 | /** 19 | * This object sets default values to the optional props. 20 | */ 21 | const defaultProps = { 22 | error: false, 23 | loading: false, 24 | loadingText: '', 25 | onRetryPressed: () => {} 26 | }; 27 | 28 | /** 29 | * @description Trivia app general loader container with network error handler. 30 | * @constructor 31 | */ 32 | class TriviaLoader extends React.Component { 33 | 34 | render() { 35 | const { loading, error, loadingText, onRetryPressed} = this.props; 36 | 37 | return ( 38 | 39 | 44 | {(loading || error) ? ( 45 | (loading) ? ( 46 | 47 | 53 | {loadingText} 54 | 55 | ) : ( 56 | 57 | 63 | Request Error 64 | Unable to get questions from server. 65 | Possible reasons: 66 | - Internet connectivity issue 67 | - Server Instability 68 | 71 | 72 | ) 73 | ) : ( 74 | this.props.children 75 | )} 76 | 77 | 78 | ); 79 | } 80 | } 81 | 82 | /** 83 | * TriviaLoader component StyleSheet. 84 | */ 85 | const styles = StyleSheet.create({ 86 | container: { 87 | flex: 1, 88 | paddingTop: 0, 89 | }, 90 | loaderContainer: { 91 | flex: 1, 92 | height: '100%', 93 | width: '100%', 94 | paddingTop: 0, 95 | borderWidth: 2, 96 | borderRadius: 8, 97 | borderColor: '#ffffff', 98 | justifyContent: 'center', 99 | alignItems: 'center', 100 | alignSelf: 'center', 101 | backgroundColor: 'rgba(255, 255, 255, 0.9)', 102 | }, 103 | loaderAnimation: { 104 | width: moderateScale(200), 105 | height: verticalScale(200) 106 | }, 107 | errorAnimation: { 108 | width: moderateScale(100), 109 | height: verticalScale(100) 110 | }, 111 | loaderText: { 112 | fontSize: moderateScale(30), 113 | textShadowOffset: {width: -1, height: 1}, 114 | textShadowRadius: 10, 115 | color: '#00AA38' 116 | }, 117 | errorText: { 118 | fontSize: moderateScale(30), 119 | color: '#FF4423', 120 | textShadowOffset: {width: -1, height: 1}, 121 | textShadowRadius: 10, 122 | marginBottom: scale(10), 123 | }, 124 | errorDescription: { 125 | fontSize: moderateScale(20), 126 | textAlign: 'center', 127 | marginBottom: 0, 128 | }, 129 | errorIssue: { 130 | marginBottom: 0, 131 | fontStyle: 'italic', 132 | }, 133 | imageBackground: { 134 | flex: 1, 135 | height: '100%', 136 | width: '100%', 137 | flexDirection: 'column', 138 | justifyContent: 'space-between', 139 | }, 140 | }); 141 | 142 | // Assign default values to the optional props 143 | TriviaLoader.defaultProps = defaultProps; 144 | 145 | export default TriviaLoader; -------------------------------------------------------------------------------- /src/components/screens/GameOver.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { 3 | View, 4 | Text, 5 | ScrollView, 6 | StyleSheet, 7 | ImageBackground, 8 | } from "react-native"; 9 | import { connect } from "react-redux"; 10 | import { Audio } from "expo-av"; 11 | import * as Font from "expo-font"; 12 | import LottieView from "lottie-react-native"; 13 | import Button from "../Button"; 14 | import { goToMainMenu, startGameSelection } from "../../actions"; 15 | import { scale, moderateScale, verticalScale } from "../../Scaling"; 16 | 17 | // Static assets 18 | const GOOD_ANIMATION = require("../../../assets/animations/677-trophy.json"); 19 | const AVERAGE_ANIMATION = require("../../../assets/animations/2144-little-girl-jumping-loader.json"); 20 | const BAD_ANIMATION = require("../../../assets/animations/823-crying.json"); 21 | const GOOD_SOUND = require("../../../assets/sounds/gameover_good.wav"); 22 | const AVERAGE_SOUND = require("../../../assets/sounds/gameover_average.wav"); 23 | const BAD_SOUND = require("../../../assets/sounds/gameover_bad.wav"); 24 | const BACKGROUND_IMAGE = require("../../../assets/images/game_background.png"); 25 | const GAMEOVER_TITLE_FONT = require("../../../assets/fonts/GrinchedRegular.otf"); 26 | const GAMEOVER_FONT = require("../../../assets/fonts/BadaboomBB_Reg.ttf"); 27 | 28 | /** 29 | * @description Game Over screen. 30 | * @constructor 31 | * @param {Object} props - The props that were defined by the caller of this component. 32 | * @param {number} props.elapsedTime - Total elapsed time in seconds since start and game over. 33 | * @param {function} props.goToMainMenu - Callback executed when user clicks back to main menu. 34 | * @param {string} props.scorePercent - Percent value of the score. 35 | * @param {string} props.selectedCategory - Quiz category. 36 | * @param {string} props.selectedDifficulty - Quiz difficulty. 37 | * @param {function} props.startGameSelection - Callback executed when user clicks play again button. 38 | * @param {number} props.totalQuestionsNumber - Quiz Total questions number. 39 | * @param {number} props.totalScore - Game total score. 40 | */ 41 | class GameOver extends React.Component { 42 | constructor(props) { 43 | super(props); 44 | /** 45 | * @typedef {Object} ComponentState 46 | * @property {Object[]} fontLoaded - Indicates whether custom fonts already loaded. 47 | */ 48 | 49 | /** @type {ComponentState} */ 50 | this.state = { 51 | fontLoaded: false, 52 | }; 53 | } 54 | 55 | /** 56 | * Load custom fonts when component mount. 57 | */ 58 | async componentDidMount() { 59 | const { scorePercent } = this.props; 60 | await Font.loadAsync({ 61 | "game-over": GAMEOVER_FONT, 62 | "game-over-title": GAMEOVER_TITLE_FONT, 63 | }); 64 | this.setState({ fontLoaded: true }); 65 | 66 | await Audio.setIsEnabledAsync(true); 67 | const soundObject = new Audio.Sound(); 68 | try { 69 | await soundObject.unloadAsync(); 70 | await soundObject.loadAsync( 71 | scorePercent >= 0.8 72 | ? GOOD_SOUND 73 | : scorePercent > 0.5 74 | ? AVERAGE_SOUND 75 | : BAD_SOUND 76 | ); 77 | await soundObject.playAsync(); 78 | } catch (error) { 79 | // An error occurred! 80 | console.log(error); 81 | } 82 | } 83 | 84 | render() { 85 | const { 86 | elapsedTime, 87 | goToMainMenu, 88 | scorePercent, 89 | selectedCategory, 90 | selectedDifficulty, 91 | startGameSelection, 92 | totalQuestionsNumber, 93 | totalScore, 94 | } = this.props; 95 | 96 | // Change some game over data based on score percent 97 | let scoreColor; 98 | let message; 99 | let animation; 100 | if (scorePercent >= 0.8) { 101 | animation = GOOD_ANIMATION; 102 | scoreColor = "#14AB00"; 103 | message = "Congratulations, you rock!"; 104 | } else if (scorePercent > 0.5) { 105 | animation = AVERAGE_ANIMATION; 106 | scoreColor = "#8f61f9"; 107 | message = "Not bad!\nBut you can do better!"; 108 | } else { 109 | animation = BAD_ANIMATION; 110 | message = "Better luck next time!"; 111 | scoreColor = "#FF2020"; 112 | } 113 | 114 | return ( 115 | 116 | 121 | {this.state.fontLoaded && ( 122 | 123 | 124 | 125 | GAME OVER 126 | 132 | 133 | {message} 134 | 135 | 136 | Total Score: {totalScore} of {totalQuestionsNumber} 137 | 138 | 139 | Elapsed Time: {elapsedTime} seconds 140 | 141 | 142 | Category: {selectedCategory} 143 | 144 | 145 | Difficulty: {selectedDifficulty} 146 | 147 | 148 | 151 | 152 | 153 | 154 | )} 155 | 156 | 157 | ); 158 | } 159 | } 160 | 161 | /** 162 | * GameOver component StyleSheet. 163 | */ 164 | const styles = StyleSheet.create({ 165 | container: { 166 | flex: 1, 167 | width: "100%", 168 | width: "100%", 169 | }, 170 | imageBackground: { 171 | flex: 1, 172 | height: 0, 173 | width: "100%", 174 | justifyContent: "center", 175 | alignItems: "center", 176 | backgroundColor: "rgb(255, 255, 255)", 177 | }, 178 | gameOverData: { 179 | padding: scale(16), 180 | marginTop: scale(32), 181 | marginBottom: scale(32), 182 | alignSelf: "stretch", 183 | alignItems: "center", 184 | borderWidth: 2, 185 | borderRadius: 8, 186 | borderColor: "#ffffff", 187 | justifyContent: "center", 188 | backgroundColor: "rgba(255, 255, 255, 0.9)", 189 | }, 190 | gameOverInternal: { 191 | alignSelf: "stretch", 192 | alignItems: "center", 193 | justifyContent: "center", 194 | }, 195 | gameOverMessage: { 196 | fontSize: moderateScale(28), 197 | textAlign: "center", 198 | fontWeight: "900", 199 | }, 200 | gameOverTitle: { 201 | fontFamily: "game-over-title", 202 | color: "#000000", 203 | textShadowOffset: { width: -1, height: 1 }, 204 | textShadowRadius: scale(10), 205 | fontSize: moderateScale(78), 206 | marginBottom: scale(-40), 207 | zIndex: 9999, 208 | }, 209 | gameScoreText: { 210 | fontFamily: "game-over", 211 | fontWeight: "900", 212 | fontSize: moderateScale(32), 213 | marginTop: scale(5), 214 | marginBottom: scale(5), 215 | }, 216 | gameStatusText: { 217 | fontFamily: "game-over", 218 | fontSize: moderateScale(24), 219 | fontWeight: "900", 220 | color: "#8f61f9", 221 | marginTop: 2, 222 | marginBottom: 2, 223 | }, 224 | mainMenuButton: { 225 | marginBottom: scale(50), 226 | backgroundColor: "#DC143C", 227 | }, 228 | statusAnimation: { 229 | width: scale(200), 230 | height: scale(200), 231 | }, 232 | }); 233 | 234 | const mapStateToProps = ({ trivia }) => { 235 | const { 236 | categories, 237 | endTime, 238 | questions, 239 | startTime, 240 | selectedCategoryId, 241 | selectedDifficulty, 242 | totalScore, 243 | } = trivia; 244 | 245 | // Elapsed time in seconds 246 | const elapsedTime = Math.round((endTime - startTime) / 1000); 247 | 248 | const totalQuestionsNumber = questions.length; 249 | 250 | const scorePercent = totalScore / totalQuestionsNumber; 251 | 252 | return { 253 | selectedCategory: categories.filter( 254 | (category) => category.value === selectedCategoryId 255 | )[0].label, 256 | elapsedTime, 257 | scorePercent, 258 | selectedDifficulty, 259 | totalQuestionsNumber, 260 | totalScore, 261 | }; 262 | }; 263 | 264 | export default connect(mapStateToProps, { startGameSelection, goToMainMenu })( 265 | GameOver 266 | ); 267 | -------------------------------------------------------------------------------- /src/components/screens/MainMenu.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | ImageBackground, 4 | Linking, 5 | StyleSheet, 6 | Text, 7 | View, 8 | } from 'react-native'; 9 | import { connect } from 'react-redux'; 10 | import * as Font from 'expo-font'; 11 | import Button from '../Button'; 12 | import { startGameSelection } from '../../actions'; 13 | import { scale, moderateScale, verticalScale} from '../../Scaling'; 14 | 15 | // Game background image 16 | const BACKGROUND_IMAGE = require('../../../assets/images/game_background.png'); 17 | const GAME_TITLE_FONT = require('../../../assets/fonts/SaucerBB.ttf'); 18 | 19 | const GITHUB_URL = 'https://github.com/computationalcore/react-native-trivia-quiz'; 20 | 21 | /** 22 | * @description Main Menu screen. 23 | * @constructor 24 | * @param {Object} props - The props that were defined by the caller of this component. 25 | * @param {function} props.startGame - Callback when user clicks start game button. 26 | */ 27 | class MainMenu extends React.Component { 28 | 29 | constructor(props){ 30 | super(props); 31 | /** 32 | * @typedef {Object} ComponentState 33 | * @property {Object[]} fontLoaded - Indicates whether custom fonts already loaded. 34 | */ 35 | 36 | /** @type {ComponentState} */ 37 | this.state = { 38 | fontLoaded: false 39 | }; 40 | } 41 | 42 | async componentDidMount() { 43 | await Font.loadAsync({ 44 | 'game-title': GAME_TITLE_FONT, 45 | }); 46 | this.setState({ fontLoaded: true }); 47 | } 48 | 49 | /** 50 | * Open githubpage using default browser. 51 | */ 52 | handleGithubClick = () => { 53 | Linking.canOpenURL(GITHUB_URL).then(supported => { 54 | if (supported) { 55 | Linking.openURL(GITHUB_URL); 56 | } else { 57 | console.log("Don't know how to open URI: " + GITHUB_URL); 58 | } 59 | }); 60 | }; 61 | 62 | render() { 63 | return ( 64 | 65 | 70 | {(this.state.fontLoaded) && 71 | 72 | TRIVIA QUIZ 73 | 74 | } 75 | 78 | 81 | 82 | 83 | ) 84 | } 85 | } 86 | 87 | /** 88 | * MainMenu component StyleSheet. 89 | */ 90 | const styles = StyleSheet.create({ 91 | container: { 92 | flex: 1, 93 | justifyContent: 'flex-start', 94 | }, 95 | gameTitleContainer: { 96 | flex: 1, 97 | marginTop: scale(60), 98 | alignSelf: 'center', 99 | justifyContent: 'flex-start', 100 | }, 101 | gameTitle: { 102 | fontFamily: "game-title", 103 | color: '#000000', 104 | fontSize: moderateScale(50) 105 | }, 106 | playButton: { 107 | marginBottom: scale(10) 108 | }, 109 | githubButton: { 110 | marginBottom: scale(50), 111 | backgroundColor: '#DC143C' 112 | }, 113 | imageBackground: { 114 | flex: 1, 115 | height: '100%', 116 | width: '100%', 117 | justifyContent: 'flex-end', 118 | }, 119 | }); 120 | 121 | const mapStateToProps = (state) => { 122 | return state; 123 | }; 124 | 125 | export default connect(mapStateToProps, { startGameSelection })(MainMenu); -------------------------------------------------------------------------------- /src/components/screens/TriviaGame.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | View, 4 | Text, 5 | StyleSheet, 6 | } from 'react-native'; 7 | import { connect } from 'react-redux'; 8 | import { Audio } from 'expo-av'; 9 | import CountdownCircle from '../CountdownCircle'; 10 | import AnswerStatus from '../AnswerStatus'; 11 | import Button from '../Button'; 12 | import Question from '../Question'; 13 | import TriviaLoader from '../TriviaLoader'; 14 | import * as actions from '../../actions'; 15 | import { capitalizeFirstLetter } from '../../Utils'; 16 | import { scale, moderateScale } from '../../Scaling'; 17 | 18 | // Sound setup 19 | const AVAILABLE_SOUNDS = { 20 | correct: require('../../../assets/sounds/correct.wav'), 21 | incorrect: require('../../../assets/sounds/incorrect.wav'), 22 | timeout: require('../../../assets/sounds/timeout.wav') 23 | }; 24 | 25 | const COUNTDOWN_TIME = 10; 26 | 27 | /** 28 | * @description Trivia Game Screen. 29 | * @constructor 30 | */ 31 | class TriviaGame extends React.Component { 32 | 33 | constructor(props){ 34 | super(props); 35 | /** 36 | * @typedef {Object} ComponentState 37 | * @property {Object[]} fontLoaded - Indicates whether custom fonts already loaded. 38 | */ 39 | 40 | /** @type {ComponentState} */ 41 | this.state = { 42 | answerStatus: false, 43 | answerType: 'correct', 44 | fontLoaded: false, 45 | countdownTime: COUNTDOWN_TIME, 46 | soundController: null, 47 | }; 48 | } 49 | 50 | async componentDidMount() { 51 | // Call the action to fetch quiz data. 52 | const { selectedCategoryId, selectedDifficulty, numberOfQuestions } = this.props; 53 | this.props.triviaFetch( 54 | selectedCategoryId, 55 | selectedDifficulty, 56 | numberOfQuestions, 57 | ); 58 | 59 | // Preload sound controller 60 | await Audio.setIsEnabledAsync(true); 61 | this.setState({ 62 | soundController: new Audio.Sound() 63 | }); 64 | } 65 | 66 | /** 67 | * Play the correct sound based on answer status type. 68 | */ 69 | playSound = async (type) => { 70 | try { 71 | await this.state.soundController.unloadAsync(); 72 | await this.state.soundController.loadAsync(AVAILABLE_SOUNDS[type]); 73 | await this.state.soundController.playAsync(); 74 | } catch (error) { 75 | // An error occurred! 76 | console.log(error); 77 | } 78 | }; 79 | 80 | /** 81 | * @description Call action to move to the next question or end the game. 82 | * @param {string} questionOption - The text of the selected question option. 83 | */ 84 | handleAnswerSelection = (questionOption) => { 85 | // Ignore if already selected (it can be a timeout) 86 | if(this.state.answerStatus) return; 87 | const { 88 | currentQuestionIndex, 89 | currentQuestion, 90 | questions, 91 | nextQuestion, 92 | totalScore 93 | } = this.props; 94 | // TODO: Lottie will release a onAnimationFinish event handler, replace later 95 | const app = this; 96 | const type = (questionOption === null) ? 'timeout': (questionOption === currentQuestion.correct_answer) ? 'correct' : 'incorrect'; 97 | this.playSound(type); 98 | //console.log('---'); 99 | //console.log(currentQuestion.correct_answer); 100 | //console.log(questionOption); 101 | this.setState({answerStatus: true, answerType: type}); 102 | setTimeout(function(){ 103 | app.setState({answerStatus: false, countdownTime: COUNTDOWN_TIME}); 104 | nextQuestion( 105 | questionOption, 106 | currentQuestionIndex, 107 | questions, 108 | totalScore 109 | ); 110 | }, 111 | 1500); 112 | }; 113 | 114 | render() { 115 | const { 116 | currentQuestionNumber, 117 | currentQuestion, 118 | questions, 119 | totalQuestionsSize, 120 | } = this.props; 121 | 122 | return ( 123 | this.props.startGame()} 128 | > 129 | {(this.state.answerStatus) && 130 | 131 | 134 | 135 | } 136 | {(questions.length === 0) ? ( 137 | 138 | 139 | No Quiz Available 140 | 141 | No Quiz questions available for "{this.props.selectedCategory}" category, 142 | "{this.props.selectedDifficulty}" difficulty, and {this.props.numberOfQuestions} questions. 143 | NOTE: Sometimes lowering the number of questions for the same category and difficulty works. 144 | 147 | 148 | ) : ( 149 | 150 | 151 | Question {currentQuestionNumber}/{totalQuestionsSize} 152 | {this.props.selectedCategory} - {capitalizeFirstLetter(currentQuestion.difficulty)} 153 | 154 | 162 | {(!this.state.answerStatus) && 163 | 164 | this.handleAnswerSelection(null)} 173 | />} 174 | 175 | )} 176 | 177 | ); 178 | } 179 | } 180 | 181 | /** 182 | * TriviaScreen component StyleSheet. 183 | */ 184 | const styles = StyleSheet.create({ 185 | countdownContainer: { 186 | flexDirection: 'row', 187 | alignItems: 'center', 188 | justifyContent: 'flex-end', 189 | alignSelf: 'center' 190 | }, 191 | noDataContainer: { 192 | flex: 1, 193 | height: '100%', 194 | width: '100%', 195 | paddingTop: 0, 196 | borderWidth: 2, 197 | borderRadius: 8, 198 | borderColor: '#ffffff', 199 | justifyContent: 'center', 200 | alignItems: 'center', 201 | alignSelf: 'center', 202 | backgroundColor: 'rgba(255, 255, 255, 0.9)', 203 | }, 204 | answerStatus: { 205 | position: 'absolute', 206 | width: '100%', 207 | height: '100%', 208 | zIndex: 9999 209 | }, 210 | noDataText: { 211 | fontSize: moderateScale(20), 212 | padding: scale(10), 213 | textAlign: 'justify', 214 | }, 215 | container: { 216 | flex: 1, 217 | paddingTop: 0, 218 | }, 219 | headerContainer: { 220 | //flexDirection: 'row', 221 | alignItems: 'center', 222 | justifyContent: 'center', 223 | paddingRight: scale(24), 224 | paddingLeft: scale(24), 225 | paddingTop: scale(12), 226 | paddingBottom: scale(12), 227 | backgroundColor: '#00BCD4', 228 | borderWidth: 2, 229 | borderRadius: 8, 230 | borderColor: '#ffffff', 231 | margin: scale(8), 232 | marginTop: scale(36), 233 | }, 234 | headerTitle: { 235 | fontWeight: '300', 236 | color: '#ffffff', 237 | fontSize: moderateScale(28), 238 | fontWeight: '900', 239 | }, 240 | categoryText: { 241 | fontWeight: '300', 242 | color: '#ffffff', 243 | fontSize: moderateScale(18), 244 | fontWeight: '900', 245 | }, 246 | }); 247 | 248 | const mapStateToProps = ({ trivia }) => { 249 | const { 250 | categories, 251 | currentQuestionIndex, 252 | error, 253 | loading, 254 | questions, 255 | totalScore, 256 | selectedCategoryId, 257 | selectedDifficulty, 258 | numberOfQuestions 259 | } = trivia; 260 | 261 | return { 262 | currentQuestion: questions[currentQuestionIndex], 263 | currentQuestionNumber: currentQuestionIndex + 1, 264 | selectedCategory: categories.filter(category => category.value === selectedCategoryId)[0].label, 265 | totalQuestionsSize: questions.length, 266 | currentQuestionIndex, 267 | error, 268 | loading, 269 | numberOfQuestions, 270 | questions, 271 | totalScore, 272 | selectedCategoryId, 273 | selectedDifficulty, 274 | }; 275 | }; 276 | 277 | export default connect(mapStateToProps, 278 | actions 279 | )(TriviaGame); -------------------------------------------------------------------------------- /src/components/screens/TriviaSelection.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | View, 4 | Text, 5 | StyleSheet, 6 | } from 'react-native'; 7 | import { connect } from 'react-redux'; 8 | import RNPickerSelect from 'react-native-picker-select'; 9 | import SegmentedControlTab from 'react-native-segmented-control-tab'; 10 | import * as Font from 'expo-font'; 11 | import Button from '../Button'; 12 | import TriviaLoader from '../TriviaLoader'; 13 | import * as actions from '../../actions'; 14 | import { scale, moderateScale, verticalScale} from '../../Scaling'; 15 | 16 | const SELECT_FONT = require('../../../assets/fonts/BadaboomBB_Reg.ttf'); 17 | 18 | const DIFFICULTY_OPTIONS = ["Mixed", "Easy", "Medium", "Hard"]; 19 | const NUMBER_OF_QUESTIONS = ["10", "20", "30", "40", "50"]; 20 | 21 | /** 22 | * @description Trivia setup page screen. 23 | * @constructor 24 | */ 25 | class TriviaSelection extends React.Component { 26 | 27 | constructor() { 28 | super() 29 | 30 | /** 31 | * @typedef {Object} ComponentState 32 | * @property {Object[]} fontLoaded - Indicates whether custom fonts already loaded. 33 | */ 34 | 35 | /** @type {ComponentState} */ 36 | this.state = { 37 | selectedCategoryId: -1, 38 | selectedDifficulty: 0, 39 | selectedQuestion: 0, 40 | fontLoaded: false 41 | } 42 | } 43 | 44 | async componentDidMount() { 45 | // Call the action to fetch quiz data. 46 | this.props.triviaCategoryFetch(); 47 | 48 | await Font.loadAsync({ 49 | 'select-font': SELECT_FONT, 50 | }); 51 | this.setState({ fontLoaded: true }); 52 | } 53 | 54 | handleCategorySelect = (value) => { 55 | console.log(value); 56 | this.setState({ selectedCategoryId: value }); 57 | } 58 | 59 | handleQuestionSelect = (index) => { 60 | console.log(index); 61 | this.setState({ selectedQuestion: index }); 62 | } 63 | 64 | handleDifficultySelect = (index) => { 65 | this.setState({ selectedDifficulty: index }); 66 | } 67 | 68 | handleStartGame = () => { 69 | const { selectedCategoryId, selectedDifficulty, selectedQuestion } = this.state; 70 | this.props.startGame( 71 | selectedCategoryId, 72 | DIFFICULTY_OPTIONS[selectedDifficulty], 73 | NUMBER_OF_QUESTIONS[selectedQuestion] 74 | ); 75 | } 76 | 77 | render() { 78 | return ( 79 | (this.state.fontLoaded) && 80 | this.props.startGameSelection()} 85 | > 86 | 87 | 88 | Select Options 89 | 90 | 91 | Category 92 | 99 | 100 | Difficulty 101 | 108 | 109 | Number of Questions 110 | 115 | 116 | 119 | 120 | 121 | ); 122 | } 123 | } 124 | 125 | /* TriviaSelection StyleSheet */ 126 | const styles = StyleSheet.create({ 127 | gameTitle: { 128 | fontFamily: 'select-font', 129 | color: '#000000', 130 | fontSize: moderateScale(60) 131 | }, 132 | gameTitleContainer: { 133 | textAlign: 'center' 134 | }, 135 | container: { 136 | flex: 1, 137 | justifyContent: 'center', 138 | alignItems: 'center', 139 | alignContent: 'center', 140 | backgroundColor: '#FFFFFFDD', 141 | width: '100%', 142 | height: '100%' 143 | }, 144 | parentContainer: { 145 | flex: 1, 146 | width: '100%', 147 | height: '100%' 148 | }, 149 | tabViewText: { 150 | color: '#444444', 151 | fontWeight: 'bold', 152 | marginTop: scale(50), 153 | fontSize: moderateScale(18), 154 | }, 155 | titleText: { 156 | color: '#444444', 157 | padding: scale(20), 158 | fontSize: moderateScale(14), 159 | fontWeight: '500', 160 | }, 161 | headerText: { 162 | fontFamily: 'select-font', 163 | padding: scale(8), 164 | fontSize: moderateScale(24), 165 | color: '#444444', 166 | }, 167 | tabContent: { 168 | color: '#444444', 169 | fontSize: scale(18), 170 | margin: scale(24), 171 | }, 172 | Separator: { 173 | marginHorizontal: scale(-10), 174 | alignSelf: 'stretch', 175 | borderTopWidth: 1, 176 | borderTopColor: '#888888', 177 | marginTop: scale(24), 178 | }, 179 | tabStyle: { 180 | borderColor: '#D52C43', 181 | paddingHorizontal: scale(10), 182 | }, 183 | activeTabStyle: { 184 | backgroundColor: '#D52C43', 185 | }, 186 | tabTextStyle: { 187 | color: '#D52C43', 188 | }, 189 | }); 190 | 191 | /* RNPickerSelect StyleSheet */ 192 | const pickerSelectStyles = StyleSheet.create({ 193 | inputIOS: { 194 | fontSize: scale(24), 195 | textAlign: 'center', 196 | fontWeight: "900", 197 | paddingVertical: 12, 198 | paddingHorizontal: 10, 199 | borderWidth: 1, 200 | borderColor: 'gray', 201 | borderRadius: 4, 202 | color: 'black', 203 | paddingRight: 30, // to ensure the text is never behind the icon 204 | }, 205 | inputAndroid: { 206 | paddingHorizontal: 10, 207 | paddingVertical: 8, 208 | borderWidth: 0.5, 209 | borderRadius: 8, 210 | color: 'black', 211 | paddingRight: 30, // to ensure the text is never behind the icon 212 | }, 213 | }); 214 | 215 | const mapStateToProps = ({ trivia }) => { 216 | const { error, loading, categories } = trivia; 217 | 218 | return { 219 | error, 220 | loading, 221 | categories 222 | }; 223 | }; 224 | 225 | export default connect(mapStateToProps, 226 | actions 227 | )(TriviaSelection); -------------------------------------------------------------------------------- /src/reducers/TriviaReducer.js: -------------------------------------------------------------------------------- 1 | import { 2 | TRIVIA_MAIN_MENU, 3 | TRIVIA_SELECT_OPTIONS_GAME, 4 | TRIVIA_START_GAME, 5 | TRIVIA_FETCH_CATEGORIES_SUCCESS, 6 | TRIVIA_FETCH_SUCCESS, 7 | TRIVIA_FETCH_ERROR, 8 | TRIVIA_NEXT_QUESTION, 9 | TRIVIA_GAME_OVER 10 | } from '../actions/types'; 11 | 12 | const INITIAL_STATE = { 13 | questions: [{ 14 | category: '', 15 | correct_answer: '', 16 | difficulty: 'easy', 17 | incorrect_answers: [], 18 | options: [], 19 | question: '', 20 | type: 'boolean', 21 | }], 22 | currentQuestionIndex: 0, 23 | totalScore: 0, 24 | startTime: 0, 25 | endTime: 0, 26 | loading: true, 27 | error: true, 28 | categories: [{ 29 | label: 'Any', 30 | value: -1 31 | }], 32 | selectedCategoryId: -1, 33 | selectedDifficulty: 'Mixed', 34 | numberOfQuestions: 10 35 | }; 36 | 37 | export default (state = INITIAL_STATE, action) => { 38 | switch (action.type) { 39 | case TRIVIA_MAIN_MENU: 40 | return INITIAL_STATE; 41 | case TRIVIA_SELECT_OPTIONS_GAME: 42 | return INITIAL_STATE; 43 | case TRIVIA_START_GAME: 44 | return { 45 | ...state, 46 | selectedCategoryId: (action.payload.categoryId) ? action.payload.categoryId : state.selectedCategoryId, 47 | selectedDifficulty: (action.payload.difficulty) ? action.payload.difficulty : state.selectedDifficulty, 48 | numberOfQuestions: (action.payload.numberOfQuestions) ? action.payload.numberOfQuestions: state.numberOfQuestions, 49 | currentQuestionIndex: 0, 50 | totalScore: 0, 51 | loading: true, 52 | }; 53 | case TRIVIA_FETCH_CATEGORIES_SUCCESS: 54 | return { 55 | ...state, 56 | categories: action.payload, 57 | loading: false, 58 | error: '', 59 | }; 60 | case TRIVIA_FETCH_SUCCESS: 61 | return { 62 | ...state, 63 | questions: action.payload, 64 | totalQuestionsSize: action.payload.length, 65 | startTime: (new Date).getTime(), 66 | loading: false, 67 | error: '', 68 | }; 69 | case TRIVIA_FETCH_ERROR: 70 | return { 71 | ...state, 72 | startTime: (new Date).getTime(), 73 | loading: false, 74 | error: true, 75 | }; 76 | case TRIVIA_NEXT_QUESTION: 77 | return { 78 | ...state, 79 | currentQuestionIndex: action.payload.currentQuestionIndex, 80 | totalScore: action.payload.totalScore, 81 | }; 82 | case TRIVIA_GAME_OVER: 83 | return { 84 | ...state, 85 | totalScore: action.payload, 86 | endTime: (new Date).getTime(), 87 | }; 88 | default: 89 | return state; 90 | } 91 | }; -------------------------------------------------------------------------------- /src/reducers/index.js: -------------------------------------------------------------------------------- 1 | import { combineReducers } from 'redux'; 2 | import TriviaReducer from './TriviaReducer'; 3 | 4 | export default combineReducers({ 5 | trivia: TriviaReducer, 6 | }); 7 | --------------------------------------------------------------------------------