{"name":"João Marins","description":"Software Engineer, Entrepreneur, Angel Investor and Open Source Maintainer","url":"https://joaomarins.com","email":"hello@joaomarins.com","image":"https://joaomarins.com/avatar.jpg","work":[{"period":"Feb 2024 — Present","role":"Software Engineer","company":"Sunrun","location":"San Francisco, California, United States","description":"A US-based clean energy company that designs and installs residential solar and battery systems, making home energy more affordable and sustainable.","tech":["React","TypeScript","Node.js","Python","AWS","DynamoDB","GraphQL"]},{"period":"Sep 2023 — Feb 2024","role":"Technical Leader","company":"Woovi","location":"Brazil","description":"A Brazilian fintech platform that enables businesses to accept instant payments through Pix, automating invoices, subscriptions, and checkout experiences for merchants of all sizes.","tech":["React","TypeScript","Node.js","Relay","GraphQL","AWS","K8s","MongoDB"]},{"period":"Apr 2022 — Sep 2023","role":"Co-Founder & CTO","company":"bem.te.vi","location":"Brazil","description":"A Brazilian insurtech focused on simplifying property insurance through technology, offering fast, transparent, and fully digital coverage for homes and rentals.","tech":["React","TypeScript","Node.js","Relay","GraphQL","AWS","MongoDB"]},{"period":"Apr 2021 — Apr 2022","role":"Software Engineer","company":"Curebase","location":"San Francisco, California, United States","description":"A US-based health-tech company that enables decentralized clinical trials through a virtual-first platform connecting patients, physicians, and sponsors to accelerate medical research.","tech":["React","TypeScript","Node.js","Apollo","GraphQL","AWS","Postgres"]},{"period":"Oct 2020 — Mar 2021","role":"Technical Leader","company":"Sallve","location":"Brazil","description":"A Brazilian beauty-tech company that develops skincare products co-created with its community, combining dermatological science, sustainability, and digital innovation.","tech":["TypeScript","Node.js","AWS","MongoDB"]},{"period":"Feb 2020 — Oct 2020","role":"Founder & CTO","company":"Angora Labs","location":"Florianópolis, Santa Catarina, Brazil","description":"A Brazilian product analytics and data pipeline platform that captures user events via SDKs and routes them to warehouses and dashboards for real-time insights.","tech":["React","TypeScript","Node.js","Relay","GraphQL","AWS","MongoDB"]},{"period":"Aug 2019 — Feb 2020","role":"Founder & CTO","company":"Confy","location":"Florianópolis, Santa Catarina, Brazil","description":"A Brazilian events platform that lets communities create, discover, and manage meetups—handling event pages, RSVPs, scheduling, and attendee engagement.","tech":["React","TypeScript","Node.js","Relay","GraphQL","AWS","MongoDB"]},{"period":"Jul 2018 — Apr 2019","role":"Software Engineer","company":"Feedback House","location":"São Paulo, Brazil","description":"A Brazilian HR-tech platform that helps companies foster a culture of continuous feedback, performance reviews, and employee engagement through data-driven insights.","tech":["React","TypeScript","Node.js","Relay","GraphQL","AWS","K8s","MongoDB"]},{"period":"Jul 2017 — Apr 2019","role":"Software Engineer & Technical Leader","company":"Entria","location":"São Paulo, Brazil","description":"A Brazilian software consultancy that builds and scales web applications using modern technologies, where I later led technical teams and architectural decisions for client projects.","tech":["React","TypeScript","Node.js","Relay","GraphQL","AWS","K8s","MongoDB"]}],"education":[{"period":"2013 — 2017","degree":"Bachelor's degree, Computer Science","university":"Universidade de São Paulo","location":"São Paulo, Brazil"},{"period":"2011 — 2012","degree":"Bachelor's degree, Physics","university":"Universidade de São Paulo","location":"São Paulo, Brazil"}],"talks":[{"title":"Beyond the Basics: Leveraging MongoDB for Fintech Disruption","description":"Exploring MongoDB database solutions and best practices for financial technology applications.","url":"https://mongodb-for-fintechs.vercel.app/","date":"2024"},{"title":"Relay Local State Management: Replacing Redux","description":"How to use Relay for local state management as an alternative to Redux in React applications.","url":"https://www.slideshare.net/slideshow/relay-local-state-management-replacing-redux/166288251","date":"2019"},{"title":"Serverless Deployment of React Apps on AWS","description":"Guide to deploying React applications on AWS using serverless architecture and best practices.","url":"https://jgcmarins.github.io/serverless-deploy-react-aws/","date":"2019"},{"title":"The Golden Stack","description":"React Conf Brazil 2019 presentation on building modern web applications using React, Relay, and GraphQL.","url":"https://jgcmarins.github.io/react-conf-2019/","date":"2019"},{"title":"How to improve CI/CD for any Node.js application?","description":"A comprehensive guide on improving continuous integration and deployment processes for Node.js applications.","url":"https://www.slideshare.net/slideshow/how-to-improve-ci-cd-for-any-nodejs-application-136556000/136556000","date":"2019"},{"title":"React Hooks","description":"Deep dive into React Hooks, exploring how to use them effectively in modern React applications.","url":"https://www.slideshare.net/slideshow/react-hooks/124367107","date":"2019"},{"title":"CI/CD for React Native","description":"Implementing continuous integration and continuous deployment pipelines for React Native mobile applications.","url":"https://www.slideshare.net/slideshow/cicd-for-react-native/116570963","date":"2018"},{"title":"RTL Everywhere","description":"React Testing Library best practices for testing React applications and improving test reliability.","url":"https://jgcmarins.github.io/rtl-everywhere/","date":"2018"},{"title":"GraphQL Security","description":"Best practices and strategies for securing GraphQL APIs and preventing common security vulnerabilities.","url":"https://jgcmarins.github.io/graphql-security/","date":"2018"},{"title":"Building a Cryptocurrency App with React Native","description":"Learn how to build a cryptocurrency mobile application using React Native and modern development practices.","url":"https://jgcmarins.github.io/react-native-cryptocurrency/","date":"2018"},{"title":"Git: From Commit to Merge","description":"Workshop covering Git fundamentals, from basic commits to advanced merging strategies and workflows.","url":"https://www.slideshare.net/slideshow/git-from-commit-to-merge-semcomp-beta-2018-workshop/284000756","date":"2018"}],"links":[{"name":"GitHub","handle":"github.com/jgcmarins","url":"https://github.com/jgcmarins"},{"name":"LinkedIn","handle":"linkedin.com/in/joao-marins","url":"https://www.linkedin.com/in/joao-marins/"},{"name":"X (Twitter)","handle":"x.com/jgcmarins","url":"https://x.com/jgcmarins"},{"name":"Instagram","handle":"instagram.com/joaogracinha","url":"https://www.instagram.com/joaogracinha"},{"name":"Strava","handle":"strava.com/athletes/jgcmarins","url":"https://www.strava.com/athletes/jgcmarins"},{"name":"Substack","handle":"joaomarins.substack.com","url":"https://joaomarins.substack.com/"},{"name":"Medium","handle":"medium.com/@jgcmarins","url":"https://medium.com/@jgcmarins"},{"name":"SlideShare","handle":"slideshare.net/JoaoMarins1","url":"https://www.slideshare.net/JoaoMarins1"},{"name":"Dev.to","handle":"dev.to/jgcmarins","url":"https://dev.to/jgcmarins"},{"name":"Bluesky","handle":"bsky.app/profile/jgcmarins.dev","url":"https://bsky.app/profile/jgcmarins.dev"},{"name":"Mastodon","handle":"mas.to/@jgcmarins","url":"https://mas.to/@jgcmarins"},{"name":"Keybase","handle":"keybase.io/jgcmarins","url":"https://keybase.io/jgcmarins"}],"avatarArt":["⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⣸⣿⣿⣿⣿⣿⠀⠀⠀⠀⠈⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⡿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣴⣶⣶⣶⣾⣿⣿⣿⠟⠉⣫⣿⣿⠟⠉⠀⠀⠀⠀⠐⠟⠛⠉⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣧⣴⣾⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠃⣠⣿⡿⠋⠉⠁⠀⠀⠀⣀⣤⣦⡄⠚⠂⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠉⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠉⣿⣿⣿⣷⠟⠋⠉⠀⠀⠀⠀⢀⣴⣾⡏⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠻⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠻⠟⠁⢠⣾⠿⠏⠀⠀⠀⠀⠀⠀⠀⠀⣶⡟⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⠛⠁⠀⢀⡀⠀⠀⠀⢀⣀⣤⣤⣤⣤⣤⣤⣤⣤⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⠛⣿⠉⢹⣿⠁⢀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣦⣤⣤⣤⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿","⣿⣿⣿⡻⣿⣿⠃⢀⣷⣶⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣯⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿","⣿⠁⠀⠈⣿⣿⣿⠃⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿","⣿⡇⠀⣸⣿⣿⠏⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿","⣿⠁⠀⣿⣿⠇⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿","⣿⠆⠀⢻⡏⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠸⠿⢿⣿⣿⣿","⣿⣦⣀⣾⣧⣼⣿⣿⣿⣿⠟⠋⠉⠀⠀⠈⠉⠛⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⡐⠀⠀⠀⠈⠉","⣿⢯⠙⣿⣿⣿⣿⣿⣿⣿⣶⣦⡄⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠛⠛⠛⠛⠛⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⢸⣷⡄⠀⠀⠀⠀","⣿⣦⠀⣿⣿⣿⣿⣿⣿⣿⣿⣥⣤⣤⡀⠀⠀⠀⠀⠀⠰⣷⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣇⠀⠀⠀⠀⣸⣿⠁⠀⠀⠀⠀","⣿⣿⣷⣿⣿⣿⣿⣿⣿⠟⠋⣁⡀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⠷⠀⠀⠀⠀⠀⠀⠀⢀⣴⣶⣦⣄⣀⣀⣈⣻⣿⣿⣿⡆⠀⠀⢠⣿⣿⡀⠀⠀⠀⠀","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⢿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⣾⣿⣿⣧⠀⠀⠀⠀","⣿⠟⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠏⠁⠀⠀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⢰⣶⠀⠀⠀⠀⢀⠈⠛⢿⣿⣿⣿⣿⣿⡇⠀⢰⣿⣿⣿⡆⠀⠀⠀⠀","⣿⡶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣤⣤⣤⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠂⠀⠀⠀⠀⠀⠈⠻⠧⢀⣀⣾⣿⣄⠀⠈⣿⣿⣿⣿⣿⡇⢠⣾⣿⣿⣿⣷⠀⠀⠀⠀","⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣷⣿⣷⣤⣀⡀⠀⠀⠀⠀⠈⠻⡿⠛⢀⣤⣬⣿⣿⣿⣿⣇⣸⣿⣿⣿⣿⣿⠀⠀⠀⠀","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡈⣻⣿⣿⣿⣿⣿⣿⣷⣶⣤⣶⣦⣾⣿⣷⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⢩⣿⣿⠀⠀⠀⠀","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢻⣿⣤⣿⣿⣿⡧⠀⠀⠀","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠙⠉⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⢸⣿⣿⣿⣿⣿⡇⠀⠀⠀","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⠆⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀","⠈⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣾⣿⣿⣿⡇⠁⠀⠀⠙⠛⠀⢾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣠⣼⣿⣿⣿⣿⣿⣿⠃⠀⠀⠀","⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠉⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣸⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀","⣦⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⣿⣿⣿⣿⠁⠀⣤⡀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀","⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠸⣿⣿⣿⣿⠿⠿⣿⣷⣾⣿⣿⣶⣦⣤⣀⠀⠀⣤⡿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠁⠀⠀⠀","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣁⣀⣀⣀⣀⣀⣀⣀⣀⠀⠈⠉⠉⠉⠉⠉⠙⠛⠿⠿⠻⠇⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⡧⠀⠀⠀⠀","⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣶⣶⣆⣠⣀⣀⣀⠀⣰⣶⣿⣿⣿⣿⣿⣿⣿⠿⠟⢀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀","⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠉⠉⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠴⠇⠀⣰⡿⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⡀⠀⠀⠀","⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⡀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃⠀⠀⣼⣿⣇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠈⠉⠀⠀⠀","⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠛⠀⠀⢀⣼⣿⣿⡏⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣅⢀⠀⠀⠀⢰","⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢣⡆⠉⠉⠁⠀⠀⢠⣾⣿⣿⣿⡇⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠻⠦⠀⠀⠘","⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡙⠻⢿⣿⣿⡟⠛⢻⣿⣿⣿⣿⣿⣿⣿⠟⢿⣿⡿⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠘","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠈⠻⠇⠀⠘⣿⣿⣿⣿⣿⣿⣇⠀⠀⠉⠀⠀⠀⠀⠀⠀⠸⢟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠋⠳⠄⠀⠀⠀","⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠠⠀⠀⠀⠀⠀","⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠋⣼⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣄⡀⠀⠀⢈","⠛⣟⠀⠀⠹⠟⠛⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⣀⡀⣀⡀⠀⠀⢀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⣰⣾⣿⠃⣰⣿⣿⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣄","⠀⠈⠀⠀⢠⣶⠟⢻⣿⣿⣿⣿⣿⣿⣿⣶⣾⣿⣿⣿⣀⣤⣶⣿⣿⣿⣿⣿⣆⣠⡀⢀⠀⣀⣰⣿⣿⣿⣿⣿⣿⣿⠿⠋⢁⣨⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⣿⣿⣿","⠀⣀⣤⣾⣿⠁⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣥⣶⣿⣿⣿⣿⣿⣿⣿⣿⠁⠛⣿⣿⣿⣿⣿⣿⣿"]}