This Flutter project is a chat application inspired by WhatsApp. The app features a familiar interface with a functional chat page, a Local Auth Screen, and user registration using email/password or Google Account.
![drawing](https://private-user-images.githubusercontent.com/75115429/311638731-7c602d05-8f31-4d3c-8d68-c565cedbb167.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTE2Mzg3MzEtN2M2MDJkMDUtOGYzMS00ZDNjLThkNjgtYzU2NWNlZGJiMTY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRiZDRmOWI2YmJjNDQ2ZTYyNDZlNjE2NTdmYWVmNjJlMzJlOTljY2FjN2EyYmRlODdjYzgyNTBmMGMwNmZmYzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.hWz_8IoHZbE8FpDnMDDaEnXwyEA-4r8__Z74Tl7GCOw)
![drawing](https://private-user-images.githubusercontent.com/75115429/311638799-05f671fa-1307-4998-ab9a-0f4c073aae74.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTE2Mzg3OTktMDVmNjcxZmEtMTMwNy00OTk4LWFiOWEtMGY0YzA3M2FhZTc0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA1M2RkMzMwNmRjNGI1ZjM0ZjE2ZjA0NTMyMmQ3MTFhZGNiNGRkZDYwNjM5M2JhMmMzYWJlNDdmZWY3Mzc2ODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oVLwrbUpLWy3ie3_eVhS8j-v93oG8fr7UiGD1LHPnGI)
![drawing](https://private-user-images.githubusercontent.com/75115429/328134514-56647ac8-b9fd-41f4-9aa9-e531b6b6607c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzQ1MTQtNTY2NDdhYzgtYjlmZC00MWY0LTlhYTktZTUzMWI2YjY2MDdjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFhODJmZTcyNmUzOWM5ZTRjNzI1ZTAzNjIxMzRhZTU3YzJiYjMwYTg3ZmZmNWJlMmYxMDdhNjliMDdkOWFhMWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.LCVYkkw7XcRwr06kerPhPKEyNaZGHriY1wd4NmvZ2WM)
![drawing](https://private-user-images.githubusercontent.com/75115429/328135653-6a7407df-504c-41f2-94f2-5668a14e685b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzU2NTMtNmE3NDA3ZGYtNTA0Yy00MWYyLTk0ZjItNTY2OGExNGU2ODViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBmMWQ4MGJlMzcwY2RlZDE2MDAxN2JhYjM5ZjdjNTBmNjA0MTA5MmFhZmViMTAyMjg4YzE3MTY5ZGMzYjE5YWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.dCKak223BX086tf20D8zFwherFELlAeJQDnBQ6Fvdgk)
![drawing](https://private-user-images.githubusercontent.com/75115429/311364914-1cc7b06d-f7b2-4ea8-8895-faa002588433.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjQ5MTQtMWNjN2IwNmQtZjdiMi00ZWE4LTg4OTUtZmFhMDAyNTg4NDMzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBjZTRiZmQ1NDQ1Y2Q3MTJiZTkzMWVkYjEzYzdkZmUyYWJmNDU1NDhiYzY2Nzk5Mjg1NzYwY2YxZTM5Njk1NDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.1nBO-MY3O8plWYVHL-TTzyPUs_pmwKbnxzmJVyHv-SQ)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365053-6898582c-fe9f-4168-acd1-55e15219fdfb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjUwNTMtNjg5ODU4MmMtZmU5Zi00MTY4LWFjZDEtNTVlMTUyMTlmZGZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ0NzJkMDY4MWU3YTJkMGY3ZTk0ZTM0ZGQ0MTVmNjBhZThkNGUxYzM0OTMyOTFhMmMzNTU3NDQ2MmY4ZTJhZGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.rVSSz9ReP9j7eTafzoU5Ol017-PDRzNlrAtjEHFQSts)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365108-e12a3e09-384f-4ae7-af0d-159c87be9ec9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjUxMDgtZTEyYTNlMDktMzg0Zi00YWU3LWFmMGQtMTU5Yzg3YmU5ZWM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQyMDhlYzBmZjNmYThkNzVhYzVlMmMzOGI0MzQ3NGRiNzczMmYzN2Q4ODY4ZGRhZDU2NWNhMmU1Mzc4NWQ1NjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3mguqCOuyw_zZ60F8pERmdhW-BdcJpVKYboo0_NtfLY)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365196-9e1f9c54-a438-4e4e-a3a8-c7f84a63466a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjUxOTYtOWUxZjljNTQtYTQzOC00ZTRlLWEzYTgtYzdmODRhNjM0NjZhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhMzU2NGJjMGI1YTFiYjk3MjI2YzgzM2E4ZmU2ZDVkMTEyZWNlNGFhMjA4MjM5YjlhMWViMjcyYmQ4MWY5Y2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bWdOpaF5s06sYj3g5aM1tCVHkGTFBowY7vKuGJO-U5U)
![drawing](https://private-user-images.githubusercontent.com/75115429/328136075-e9154925-34bb-4aa7-86a2-0031c540d444.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzYwNzUtZTkxNTQ5MjUtMzRiYi00YWE3LTg2YTItMDAzMWM1NDBkNDQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU3NmY5NzhiZDJiOTQ3MjdhZmQyZDY2ZDJmM2VhM2RjYzNiZWY4ZmQ1ZGE1MTljODkwZWY1NWFmNGFlMDk5NTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BJv9xTJLq5zBtj5HLKfUrDD87z7PR80PE_1eyf13PMk)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365612-c950c7dc-f50c-4c9c-975e-f7e6abd60ba6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjU2MTItYzk1MGM3ZGMtZjUwYy00YzljLTk3NWUtZjdlNmFiZDYwYmE2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM3NWQzMjZhNTE4ZWNkN2FmZmYwZjU1ZjJiN2Y5ZjlmNjQ4ZGQ5ZDA3ZDQyYmY0YmYxOWY1ZTU1NTkxYmU1NjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.UUx_myDLXiojP6I_ZAb5JYa0WUfN6VyFGLf0ibLs0rs)
![drawing](https://private-user-images.githubusercontent.com/75115429/311365664-472d4063-88a9-488d-9a77-96bb16e5432d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjU2NjQtNDcyZDQwNjMtODhhOS00ODhkLTlhNzctOTZiYjE2ZTU0MzJkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNiNjU2ODFmODg1ZmIwMDQzM2E2MWM5OWFlYWZiNzcyNDY2MTUxZjE1YzZiYTQwZWQ1NWVmNjA3ZjRhMzNhY2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.zNUuJ36BR4h-w999ClLOpmJ5PKOU-ztfKfrwmWZoyj4)
![drawing](https://private-user-images.githubusercontent.com/75115429/328136375-817baebb-6dcc-4acb-a121-2b40bc279acb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzYzNzUtODE3YmFlYmItNmRjYy00YWNiLWExMjEtMmI0MGJjMjc5YWNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdlOTc2ZGNjMDBlMzUzNTA0YzI2Y2Q5YzU3NjNhYjRkMTU5OGZiNmI4YzdkYzdlNGRkYTJmYmVhMTBhYjUxNzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.t0uC8kKD_K5UVEegI0_LAM9M0d8zdsxoJzzUVqspYI4)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366392-f611aabb-3a7a-40d3-9913-34d82c49ff14.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjYzOTItZjYxMWFhYmItM2E3YS00MGQzLTk5MTMtMzRkODJjNDlmZjE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNlNjc0MzA2ODMzNDVkMjMwMjg4NTBmNmE3YWMyN2NhYTc5YzU1OWIwNWMwMzU5YmI0ZTQ1NjA1ZmIwZmFjMzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.wdscDSyB3XibLGcdKBoqMZPC9w41c0EMhRsseH-oy3s)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366479-cad93a1c-538f-4e31-b19b-a6ba890ee6e6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjY0NzktY2FkOTNhMWMtNTM4Zi00ZTMxLWIxOWItYTZiYTg5MGVlNmU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZiN2UwOGJiZmYyOGM5ZDU5YWYyYmEyOGY1MTAyNmFiZjg2MWY3NmU2YTQxMjNmMDM0ZDU5MjkyNWM3ZmFkM2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.apf18hnMnHOIscWTukeu4cEDGd8xERU2X_sVNbzb0bI)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366550-9bd02d42-86a9-4195-a9b1-7aeaaed92f2e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjY1NTAtOWJkMDJkNDItODZhOS00MTk1LWE5YjEtN2FlYWFlZDkyZjJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU4MzFiYTQ4YjlmNDZiZmIzN2MxNmI1MTIwMzEzNTFkOWJkZWI1MDg4NzZkYmI5NDI3NjdmYTM5NGE0NGJjZTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.udlirW8M_zy98DCxUlm16tetgtHvxL1MojM43A62vHc)
![drawing](https://private-user-images.githubusercontent.com/75115429/328136671-066c809b-f7a1-4a02-94b5-48aa9b06f6fc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzY2NzEtMDY2YzgwOWItZjdhMS00YTAyLTk0YjUtNDhhYTliMDZmNmZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFmOTZlZmZiNzliOTQ1YzAyMDY2MjA0ZjA1NTBiZGFlOGNkMTE4MzJiMTRlNTNkZGZjNmMwMjRmMTQ1MTY0YTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.cSTGyZsK96WhaMsavfJzLavEcS769VEZneObnKHw22w)
![drawing](https://private-user-images.githubusercontent.com/75115429/311366899-e112a7fe-be28-40a8-b108-8f7d0def4556.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjY4OTktZTExMmE3ZmUtYmUyOC00MGE4LWIxMDgtOGY3ZDBkZWY0NTU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM3MWM4ZjcyZTc1YTk2YTYxNWJjZjU0ZGM5YTQ1ZGE3NDU2OTdkZDZmM2YyOThhNDkzNzBjZTFmYmUwYjNhZGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.gZzlGf2V9IwtEKqyfgGdODRWLmcwn_2FxUARI_3H9hI)
![drawing](https://private-user-images.githubusercontent.com/75115429/311367016-7d3ff005-98f6-483c-9c5f-b476eda97c18.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNjcwMTYtN2QzZmYwMDUtOThmNi00ODNjLTljNWYtYjQ3NmVkYTk3YzE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2N2NhNjNkNWYxMDRmNWYwYTg4ZjhiZmVlOWZmNTUwMThhNTZkZjAyYTU0MDU5MWQ1YWQ3ZDdkZjM2ZTM3NzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.5HPJ1C7N0AHdBSETaAZcGPUetmwWR6uHiawzCY2G4D4)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137397-728643a7-dae5-4afd-843f-cc52c782cc1b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzczOTctNzI4NjQzYTctZGFlNS00YWZkLTg0M2YtY2M1MmM3ODJjYzFiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFmZWYyYmVmZDg3OTU5MGEzMjhhOWZjNGEzODIwMGVhOWE1ZDdhNWZiMjg3NjAxODQ3MzkxY2FlNmI2NjU3NGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.rFtSDCpyCuT668edEUPlHHwaP3Ju0XfTc4KEqSsQNgU)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137315-fca11d40-e36e-467b-aeb3-fd7c71d2d3d4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzczMTUtZmNhMTFkNDAtZTM2ZS00NjdiLWFlYjMtZmQ3YzcxZDJkM2Q0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVlZWEyMTJhODRlM2QyYWZhZDQ4MDI4NGI2YjBhMjdmNmE1MTU2NDU0ZTI0NDJjYTJkOTBlZWFjNGNlMjhmOTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.N2kJbHGUQtZR0JYaoJbz0OV-dyI0mQqmt8kKN_bm5oY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137167-c7730983-4dbf-4f5a-82bf-3d7ebd420958.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzcxNjctYzc3MzA5ODMtNGRiZi00ZjVhLTgyYmYtM2Q3ZWJkNDIwOTU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzZjFjMzM2MDY3MWIzYmY5MWY5NmJmOWYxZmFhOGEwNGZlMTY1ZjI0YTczOTM0MWFhMmJmNmUwZTNhZTI5OWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.1vSkGt7JgVddVBDGTaTlwQ81D27eS9t9IyA4dFJRbWg)
![drawing](https://private-user-images.githubusercontent.com/75115429/328137970-0903c423-ae48-4e4f-b824-35e66b95859a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzc5NzAtMDkwM2M0MjMtYWU0OC00ZTRmLWI4MjQtMzVlNjZiOTU4NTlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM2YzBjNjgzN2NhZmNkN2FlMzA2YzY2YjEzNThmZjg5MTNjZGQzNTE5OWU3ZmVlY2M0MGJiNGJjOGRhYmEwNjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2O7FxmcjOOvBfnNaN7GJBVQCDt5KxDVeBUUwSlABgVk)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138093-961764ab-aa39-4358-9c49-46642c61a25b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzgwOTMtOTYxNzY0YWItYWEzOS00MzU4LTljNDktNDY2NDJjNjFhMjViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAxZTNmMWUxNmUzMDg5NjQ4NzIwMGE2MWE2NTUxNjVhOTRkYjg2NGQ0MTMxYTY5NDEzOGU4OTVkZGQ0NTY3MTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.GwFIajFnIZWwxbCePJVEvAPPmEUPrhIA9tZsHNR_JRI)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138201-5c4007b0-e594-468c-94e8-2fb7d46aacb4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzgyMDEtNWM0MDA3YjAtZTU5NC00NjhjLTk0ZTgtMmZiN2Q0NmFhY2I0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE5NGIzMmZjNGY0NDNmNDQ4MGUyZjAxNWY0Yjk2Y2RiMTk0YTk2Njk3YmY4ZDg5MzMxMDNmOGMxNjY3MjMzNjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Rgmpd_cgaHjkAdeuE4vULkyL06CN0BX_J9FFiHbKEOY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138755-05581d7d-1543-47df-a42b-9c076effdc6f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzg3NTUtMDU1ODFkN2QtMTU0My00N2RmLWE0MmItOWMwNzZlZmZkYzZmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyYzg0ZGE2YWI4Yzc3N2I0ZGU5ZDUyOWVlMWJlOGQzOGYwNzBkMGZiNTFlYjM5MzIwYTUyODUxZDU3MzMyMjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.kInAX9oVzuQjHx_91mMsl9Z8SlCAlApCHkkZ-VQaUkY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138876-3d138ba2-cd1f-4cb4-bb4c-afc56cc72387.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzg4NzYtM2QxMzhiYTItY2QxZi00Y2I0LWJiNGMtYWZjNTZjYzcyMzg3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY2ODhjNzU0YzA2YTg1NGY4ZmRhODk1ZDA2NGJjMzJlNzYyN2UxZDdmN2Q4ZGYzNTMyM2VkNjNlMDY1NmJmNjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3FhBzlJw7sclMjRnA5CttgA45loBfgdr2iYxLetReq0)
![drawing](https://private-user-images.githubusercontent.com/75115429/328138975-5d4b01b8-8aeb-43ab-935c-0fd57077eb80.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzg5NzUtNWQ0YjAxYjgtOGFlYi00M2FiLTkzNWMtMGZkNTcwNzdlYjgwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFjMWU4NzIyYzBkMTdjZjQ3OWRiOGY2MDdlOWIwNTcwNDQ1MWI4ZGNkZjgxMTRjOTIzMjNjM2U3ZmRkMWM1ZGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Kn5Vuw5q-GE5e7uCclMNNeykP7_b8R-cSvufUJPLrHY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328139100-c5917daa-66dc-4ccf-9d04-67384061609d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzkxMDAtYzU5MTdkYWEtNjZkYy00Y2NmLTlkMDQtNjczODQwNjE2MDlkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAzYzVhMWFmNjJiNTBiYjBjODU2Mjk1MzE0ZDBiMjU2YWJhN2E5OTEyYTAxNDNjN2FlZjVlNjA3YmFkYjcyYTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.aY2K3_6Drx0sGS-qEG_oSh24V3dbUvDhTkX1h8DC4nY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328139699-bcce51d3-1d24-4819-977d-33a939f32dfc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzk2OTktYmNjZTUxZDMtMWQyNC00ODE5LTk3N2QtMzNhOTM5ZjMyZGZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI3MzJiYWJiNDg3MjdiZDcxNTNiMzdhM2JmMDM1MmFiZTRjMGVmNzY3ODFkYTEzZDQyNzllZGQxOGVhZGY3ZWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.0rAVKRcYxr9_iQ3lYwV4Km53Ae_z6ltrtTrlArRWdMQ)
![drawing](https://private-user-images.githubusercontent.com/75115429/328139800-1b4345a9-0057-42af-b4de-59b2d3b6ef67.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxMzk4MDAtMWI0MzQ1YTktMDA1Ny00MmFmLWI0ZGUtNTliMmQzYjZlZjY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJiZDE1ZDU1OWIzYmVjNzdjY2JjZjZlOGVlYzMzZTg5YjE3M2ZjMWQzYzMwOGYxYjE1N2UwODg2YjViYTZjMGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.lVOOgEKjBH7rcmEkSPU0bSXs2VdS8Q13AyXUE3plL8s)
![drawing](https://private-user-images.githubusercontent.com/75115429/328155786-029149ef-bfd5-48ae-8cf7-fb0fd2c8fc92.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxNTU3ODYtMDI5MTQ5ZWYtYmZkNS00OGFlLThjZjctZmIwZmQyYzhmYzkyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgzMzVmNDcwZjAxNmY5NGMyNThiN2E3Yjc1NjJiMTVkNmQ1NjliZTAwZTAxOWEyNDA3Yzc4YjQzYmIyZDg0NmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.dZqrLKObmwyueijy9pzmww1ggGLrqrcl2lz9qgJ6ifE)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140048-9e93edda-23f3-47ca-9ed8-bdab22389e0c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDAwNDgtOWU5M2VkZGEtMjNmMy00N2NhLTllZDgtYmRhYjIyMzg5ZTBjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThmNGQ3Y2QzMzRhYmI1MGExYzQ2YTk5N2ZkMDhmM2QzM2E4NjNlNmZjYjBiZTU5NDVmMDY0Y2Q3YWY2M2Q4ZmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.SLvzjQSPzNf75UUFcK8m1BOJAueiowkmzXFDH7Bo2_k)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140384-5031ade5-8105-4467-af19-09077cf56091.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDAzODQtNTAzMWFkZTUtODEwNS00NDY3LWFmMTktMDkwNzdjZjU2MDkxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRlN2M4N2MyNGZhYTNkZjU2Y2ZmNDZhZGQ1MWJmMzM5ZmExNjBjYzU2YWNkNmY1ODJlOWEyYWRhNWFhODJkNWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.isehGx1rWBYiqmHcJxuDhgh7hLAzFHmz7ZOs6_gVPG0)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140407-9c160fa2-3247-472d-a0e2-709bf87fbad3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDA0MDctOWMxNjBmYTItMzI0Ny00NzJkLWEwZTItNzA5YmY4N2ZiYWQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY5OWQ3ZWJiNzM0NGVkNTc0MGQ1YTYyMjI5MDdjNDBiODc4MDc4ZjAyNDkxMTNlMTEzODg3MmQ1YzE2ZjI0YTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.jHHYm9dH6NCsECxOZMJb5cRQkhMkaL3nP2mKUhAW4EY)
![drawing](https://private-user-images.githubusercontent.com/75115429/328140422-0a3a969c-c2f7-455e-8ed7-f8b374eb05f2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMjgxNDA0MjItMGEzYTk2OWMtYzJmNy00NTVlLThlZDctZjhiMzc0ZWIwNWYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ2NmRhMDQ1N2I4ODEzZWQ4ZTRmZDIzM2NiNDIwNjFhOTVmYTNjZjU2YmZlMDdhMzZiYjcwNzI0ZDg2MjlhMmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.U_FDMVSL7PuRjqISVy3ShjyTPfWFso3UNmkUN34BcAs)
![drawing](https://private-user-images.githubusercontent.com/75115429/311374817-6c78984a-d83e-43c4-b1db-bb16e58b12d4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTEzNzQ4MTctNmM3ODk4NGEtZDgzZS00M2M0LWIxZGItYmIxNmU1OGIxMmQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThlOTE1MjJmNDhiM2EyNmQ4NmZjOTNhYjNmMWNiODYyMjU0MjUzMTQyMDJiNDFiODhjOWIxNjYzOGU3OGJmMTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Lgq5bZsDTWqwznEM45Jyd__QYGxwAn3kGzNhdLDPBgQ)
![drawing](https://private-user-images.githubusercontent.com/75115429/311640091-5089d0cd-27b4-4fce-9bfd-d4390d85a69a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzNDE2NDgsIm5iZiI6MTcyNTM0MTM0OCwicGF0aCI6Ii83NTExNTQyOS8zMTE2NDAwOTEtNTA4OWQwY2QtMjdiNC00ZmNlLTliZmQtZDQzOTBkODVhNjlhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTAzVDA1MjkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzOTVhNTdhNjZiNWY3ZTEzZTg2ZjA2NTMyM2YzZDIxZjcwNWMxZTdmZWFlNDk4N2E2ZDk5OWJjNWUzMWY4NTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.kY_WCcd91DkUhjnjKbzBTCKmVIxw2oaxJFO19S3aMr0)
-
User Authentication:
- Email/Password registration with placeholder image.
- Google Account registration with profile image.
-
Chat Functionality:
- Display all registered users on the home page.
- Clicking on a user tile opens the chat page.
- Chat page displays saved messages from Firebase store.
- Input text field and send button for sending messages.
- Real-time updates using Firebase Cloud Firestore.
- Push notifications using Firebase Cloud Messaging.
-
Notification Handling:
- Display notifications when the app is in the foreground using
flutter_local_notifications
package. - Open the chat with the sender when the app is in the background or terminated.
- Display notifications when the app is in the foreground using
-
Security:
- App lock feature using fingerprint or face ID with
local_auth
package. - Fingerprint/face ID attempts are limited to prevent unauthorized access.
- Lock screen request after multiple unsuccessful attempts.
- App lock feature using fingerprint or face ID with
-
Settings:
- Accessible from the home page's three dots menu.
- Option to enable/disable app lock with a Cupertino switch.
- Option to Change App Language
-
Camera Integration:
- Capture high-quality photos using the device's camera.
- Save pictures on the device.
- Send photos
awesome_dialog
: Provides versatile dialogs for various use cases.cached_network_image
: Library to load and cache network images.chat_bubbles
: Simplifies chat message UI creation.cloud_firestore
: Integrates with Firebase Firestore for data storage and retrieval.dio
: HTTP client for making API requests.easy_localization
: Internationalizing and localization App.firebase_auth
: Manages user authentication with Firebase.firebase_core
: Initializes the Firebase connection.firebase_messaging
: Enables FCM for notifications.firebase_storage
: Plugin for Firebase Cloud Storage.flutter_local_notifications
: Presents local notifications when the app is in the foreground.flutter_native_splash
: Customize the App's default white native splash screen with background color and splash image.flutter_offline
: Handles offline connectivity scenarios.flutter_screenutil
: Adapts UI elements to different screen sizes.flutter_speed_dial
: Plugin to implement a beautiful and dynamic Material Design Speed Dial with labels.flutter_svg
: An SVG rendering and widget library.gap
: Simplifies spacing management in layouts.google_sign_in
: Facilitates Google Sign-In authentication.googleapis_auth
: Obtain Access credentials for Google services using OAuth 2.0.image_picker
: Plugin for selecting images from the image library, and taking new pictures with the camera.intl
: Internationalization and localization support.local_auth
: Enables fingerprint and Face ID authentication.logger
: Assists with logging messages for debugging.shared_preferences
: Stores simple data locally on the device.pretty_dio_logger
: A Dio interceptor that logs network calls in a pretty, easy-to-read format.modal_bottom_sheet
: Create awesome and powerful modal bottom sheets.lottie
: Render After Effects animations natively on Flutter.package_info_plus
: Querying information about the application package.pub_semver
: in this App to compare versions.url_launcher
: Plugin for launching a URL.
- Clone the repository:
git clone https://github.com/MoazSayed7/Flutter-Chat-App-Firebase-Authentication-Messaging-WhatsApp-Like.git
- Navigate to the project directory:
cd Flutter-Chat-App-Firebase-Authentication-Messaging-WhatsApp-Like
- Install dependencies:
flutter pub get
-
Configure Firebase:
- Create a Firebase project at https://console.firebase.google.com/.
- Enable the required Firebase services for your app, including Firestore, Authentication, and Cloud Messaging.
-
Set up Firebase for your project by following the Using Firebase CLI.
I have made custom modifications to the chat_bubbles
package
I have already uploaded the edited files to my project. You can find it in the following path:
removeable/bubble_normal_image.dart
removeable/bubble_special_three.dart
removeable/date_chip.dart
removeable/message_bar.dart
-
Download the edited files.
-
Replace the existing files in your Flutter project with the downloaded files.
-
For
bubble_special_three.dart
andbubble_normal_image.dart
, navigate to:%LocalAppData%\Pub\Cache\hosted\pub.dev\chat_bubbles-1.5.0\lib\bubbles\
-
For
date_chip.dart
, navigate to:%LocalAppData%\Pub\Cache\hosted\pub.dev\chat_bubbles-1.5.0\lib\date_chips\
-
For
message_bar.dart
, navigate to:%LocalAppData%\Pub\Cache\hosted\pub.dev\chat_bubbles-1.5.0\lib\message_bars\
-
- Update the app's launcher icon:
dart run flutter_launcher_icons
- Update the app's splash screen:
dart run flutter_native_splash:create --path=flutter_native_splash.yaml
- Run the app:
flutter run