From 8949f30f38df1a57c1a08c8a57dae9a51f7c77f7 Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 00:07:59 +0200 Subject: [PATCH 01/12] feat: friends --- comrade-client/google.html | 53 ++++++ comrade/comrade_core/consumers.py | 98 ++++++++--- ...end_requests_sent_user_friends_and_more.py | 53 ++++++ comrade/comrade_core/models.py | 166 ++++++++++++++++++ comrade/comrade_core/sse_render.py | 0 comrade/comrade_core/urls.py | 8 + comrade/comrade_core/views.py | 105 ++++++++++- dump.rdb | Bin 1091 -> 88 bytes 8 files changed, 460 insertions(+), 23 deletions(-) create mode 100644 comrade-client/google.html create mode 100644 comrade/comrade_core/migrations/0003_user_friend_requests_sent_user_friends_and_more.py delete mode 100644 comrade/comrade_core/sse_render.py diff --git a/comrade-client/google.html b/comrade-client/google.html new file mode 100644 index 0000000..86b9898 --- /dev/null +++ b/comrade-client/google.html @@ -0,0 +1,53 @@ + + + + Google Login + + + + + +
+
+
+
+ + + + diff --git a/comrade/comrade_core/consumers.py b/comrade/comrade_core/consumers.py index 50d8d6a..3619bca 100644 --- a/comrade/comrade_core/consumers.py +++ b/comrade/comrade_core/consumers.py @@ -5,10 +5,10 @@ from channels.db import database_sync_to_async from django.contrib.auth.models import AnonymousUser from rest_framework.authtoken.models import Token +from .models import User class LocationConsumer(AsyncWebsocketConsumer): async def connect(self): - self.group_name = 'location_updates' query_string = self.scope['query_string'].decode() query_params = parse_qs(query_string) self.token = query_params.get('token', [None])[0] @@ -16,55 +16,113 @@ async def connect(self): token = await database_sync_to_async(Token.objects.get)(key=self.token) self.user = await sync_to_async(lambda: token.user)() if self.user.is_authenticated: -# self.group_name = f"user_{self.user.id}" + # Create a unique group for this user's location updates + self.location_group = f"location_{self.user.id}" await self.channel_layer.group_add( - self.group_name, + self.location_group, self.channel_name ) - await self.accept() # Accept the WebSocket connection + await self.accept() else: - await self.close() # Close the connection if not authenticated + await self.close() except Token.DoesNotExist: await self.close() async def disconnect(self, close_code): - if self.group_name: + if hasattr(self, 'location_group'): await self.channel_layer.group_discard( - self.group_name, + self.location_group, self.channel_name ) async def receive(self, text_data): data = json.loads(text_data) + + # Handle preference updates + if 'preferences' in data: + await self.update_preferences(data['preferences']) + return + latitude = data['latitude'] longitude = data['longitude'] - await self.channel_layer.group_send( - self.group_name, - { - 'type': 'location_update', - 'latitude': latitude, - 'longitude': longitude - } - ) + # Check sharing preferences before broadcasting + if self.user.location_sharing_level == User.SharingLevel.NONE: + # Only save location, don't broadcast + await self.save_user_location(self.user, latitude, longitude) + return + + # Prepare the location update message + location_update = { + 'type': 'location_update', + 'user_id': self.user.id, + 'username': self.user.username, + 'latitude': latitude, + 'longitude': longitude, + 'timestamp': timezone.now().isoformat() + } + + # Handle different sharing levels + if self.user.location_sharing_level == User.SharingLevel.FRIENDS: + # Get list of friends to share with + friends = await database_sync_to_async( + lambda: list(self.user.get_friends()) + )() + + # Send to each friend's location group + for friend in friends: + friend_location_group = f"location_{friend.id}" + await self.channel_layer.group_send( + friend_location_group, + location_update + ) + else: # ALL + # Get nearby users who share their location + nearby_users = await database_sync_to_async( + self.user.get_nearby_users + )() + + # Send to each nearby user's location group + for user in nearby_users: + user_location_group = f"location_{user.id}" + await self.channel_layer.group_send( + user_location_group, + location_update + ) + # Save location regardless of sharing preferences timestamp = self.user.timestamp - - # Check if enough time has passed since the last save if timestamp is None or timezone.now() - timestamp > timedelta(seconds=30): - # Save the user's location to the database await self.save_user_location(self.user, latitude, longitude) print(f"[{timezone.now()}] Location saved for {self.user.username} at {latitude}, {longitude}") + async def update_preferences(self, preferences_data): + """Update user's location sharing preferences""" + sharing_level = preferences_data.get('sharing_level') + if sharing_level in dict(User.SharingLevel.choices): + self.user.location_sharing_level = sharing_level + await database_sync_to_async(self.user.save)() + + # Send confirmation back to user + await self.send(text_data=json.dumps({ + 'type': 'preferences_updated', + 'status': 'success', + 'preferences': { + 'sharing_level': self.user.location_sharing_level + } + })) async def location_update(self, event): + # Send location update with user identification await self.send(text_data=json.dumps({ + 'user_id': event['user_id'], + 'username': event['username'], 'latitude': event['latitude'], - 'longitude': event['longitude'] + 'longitude': event['longitude'], + 'timestamp': event['timestamp'] })) async def save_user_location(self, user, latitude, longitude): - # Create a new UserLocation instance and save it to the database user.latitude = latitude user.longitude = longitude user.timestamp = timezone.now() diff --git a/comrade/comrade_core/migrations/0003_user_friend_requests_sent_user_friends_and_more.py b/comrade/comrade_core/migrations/0003_user_friend_requests_sent_user_friends_and_more.py new file mode 100644 index 0000000..19e5e1c --- /dev/null +++ b/comrade/comrade_core/migrations/0003_user_friend_requests_sent_user_friends_and_more.py @@ -0,0 +1,53 @@ +# Generated by Django 5.0.9 on 2025-05-19 21:52 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("comrade_core", "0002_alter_user_latitude_alter_user_longitude"), + ] + + operations = [ + migrations.AddField( + model_name="user", + name="friend_requests_sent", + field=models.ManyToManyField( + blank=True, + related_name="friend_requests_received", + to=settings.AUTH_USER_MODEL, + ), + ), + migrations.AddField( + model_name="user", + name="friends", + field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL), + ), + migrations.AddField( + model_name="user", + name="location_preferences_updated", + field=models.DateTimeField(auto_now=True), + ), + migrations.AddField( + model_name="user", + name="location_share_with", + field=models.ManyToManyField( + blank=True, related_name="shared_locations", to=settings.AUTH_USER_MODEL + ), + ), + migrations.AddField( + model_name="user", + name="location_sharing_level", + field=models.CharField( + choices=[ + ("none", "No sharing"), + ("friends", "Share with friends"), + ("all", "Share with everyone"), + ], + default="all", + max_length=10, + ), + ), + ] diff --git a/comrade/comrade_core/models.py b/comrade/comrade_core/models.py index 3a09b0b..000e516 100644 --- a/comrade/comrade_core/models.py +++ b/comrade/comrade_core/models.py @@ -1,4 +1,5 @@ import datetime +import math from django.contrib.auth.models import AbstractUser from django.core.exceptions import ValidationError @@ -7,7 +8,34 @@ from django.utils.timezone import now +class LocationConfig(models.Model): + """Global configuration for location sharing""" + max_distance_km = models.FloatField( + default=1.0, # Default 1km radius + help_text="Maximum distance in kilometers for location sharing" + ) + last_updated = models.DateTimeField(auto_now=True) + + class Meta: + verbose_name = "Location Configuration" + verbose_name_plural = "Location Configuration" + + @classmethod + def get_config(cls): + """Get or create the global configuration""" + config, created = cls.objects.get_or_create(pk=1) + return config + + def __str__(self): + return f"Location sharing config (max distance: {self.max_distance_km}km)" + + class User(AbstractUser): + class SharingLevel(models.TextChoices): + NONE = 'none', 'No sharing' + FRIENDS = 'friends', 'Share with friends' + ALL = 'all', 'Share with everyone' + def __str__(self) -> str: return self.username @@ -18,9 +46,147 @@ def __str__(self) -> str: timestamp = models.DateTimeField(auto_now_add=True) + # Location sharing preferences + location_sharing_level = models.CharField( + max_length=10, + choices=SharingLevel.choices, + default=SharingLevel.ALL + ) + location_share_with = models.ManyToManyField( + 'self', + related_name='shared_locations', + blank=True, + symmetrical=False + ) + location_preferences_updated = models.DateTimeField(auto_now=True) + + # Friends management + friends = models.ManyToManyField( + 'self', + blank=True, + symmetrical=True + ) + friend_requests_sent = models.ManyToManyField( + 'self', + related_name='friend_requests_received', + blank=True, + symmetrical=False + ) + def has_skill(self, skill_name): return self.skills.filter(name=skill_name).exists() + def get_location_sharing_preferences(self): + """Get current location sharing preferences""" + return { + 'sharing_level': self.location_sharing_level, + 'share_with_users': list(self.location_share_with.values_list('id', flat=True)) + } + + def update_location_sharing_preferences(self, sharing_level=None, share_with_users=None): + """Update location sharing preferences""" + if sharing_level in dict(self.SharingLevel.choices): + self.location_sharing_level = sharing_level + + if share_with_users is not None: + self.location_share_with.set(share_with_users) + + self.save() + + # Friend management methods + def send_friend_request(self, user): + """Send a friend request to another user""" + if user == self: + raise ValidationError("Cannot send friend request to yourself") + if user in self.friends.all(): + raise ValidationError("Already friends with this user") + if user in self.friend_requests_sent.all(): + raise ValidationError("Friend request already sent") + if self in user.friend_requests_sent.all(): + raise ValidationError("This user has already sent you a friend request") + + self.friend_requests_sent.add(user) + return True + + def accept_friend_request(self, user): + """Accept a friend request from another user""" + if user not in self.friend_requests_received.all(): + raise ValidationError("No friend request from this user") + + self.friends.add(user) + self.friend_requests_received.remove(user) + return True + + def reject_friend_request(self, user): + """Reject a friend request from another user""" + if user not in self.friend_requests_received.all(): + raise ValidationError("No friend request from this user") + + self.friend_requests_received.remove(user) + return True + + def remove_friend(self, user): + """Remove a friend""" + if user not in self.friends.all(): + raise ValidationError("Not friends with this user") + + self.friends.remove(user) + return True + + def get_friends(self): + """Get list of friends""" + return self.friends.all() + + def get_pending_friend_requests(self): + """Get list of pending friend requests""" + return self.friend_requests_received.all() + + def get_sent_friend_requests(self): + """Get list of sent friend requests""" + return self.friend_requests_sent.all() + + def is_friend_with(self, user): + """Check if user is friends with another user""" + return user in self.friends.all() + + def has_pending_request_from(self, user): + """Check if user has a pending friend request from another user""" + return user in self.friend_requests_received.all() + + def has_sent_request_to(self, user): + """Check if user has sent a friend request to another user""" + return user in self.friend_requests_sent.all() + + def distance_to(self, other_user): + """Calculate distance to another user in kilometers using Haversine formula""" + from math import radians, sin, cos, sqrt, atan2 + + # Convert latitude and longitude to radians + lat1, lon1 = radians(self.latitude), radians(self.longitude) + lat2, lon2 = radians(other_user.latitude), radians(other_user.longitude) + + # Haversine formula + dlon = lon2 - lon1 + dlat = lat2 - lat1 + a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 + c = 2 * atan2(sqrt(a), sqrt(1-a)) + distance = 6371 * c # Earth's radius in km * c + + return distance + + def get_nearby_users(self): + """Get users within the configured distance""" + config = LocationConfig.get_config() + nearby_users = [] + + for user in User.objects.exclude(id=self.id): + if user.location_sharing_level == User.SharingLevel.ALL: + distance = self.distance_to(user) + if distance <= config.max_distance_km: + nearby_users.append(user) + + return nearby_users + class Skill(models.Model): name = models.CharField(max_length=32) diff --git a/comrade/comrade_core/sse_render.py b/comrade/comrade_core/sse_render.py deleted file mode 100644 index e69de29..0000000 diff --git a/comrade/comrade_core/urls.py b/comrade/comrade_core/urls.py index a35b897..6a4a532 100644 --- a/comrade/comrade_core/urls.py +++ b/comrade/comrade_core/urls.py @@ -14,6 +14,14 @@ path('task//start', views.TaskStartView.as_view(), name='start_task'), path('task//finish', views.TaskFinishView.as_view(), name='finish_task'), path('tasks/', views.TaskListView.as_view(), name='task_list'), + path('api/google-login/', views.google_login_view, name='google_login'), + path('friends/send//', views.send_friend_request, name='send_friend_request'), + path('friends/accept//', views.accept_friend_request, name='accept_friend_request'), + path('friends/reject//', views.reject_friend_request, name='reject_friend_request'), + path('friends/remove//', views.remove_friend, name='remove_friend'), + path('friends/', views.get_friends, name='get_friends'), + path('friends/pending/', views.get_pending_requests, name='get_pending_requests'), + path('friends/sent/', views.get_sent_requests, name='get_sent_requests'), ] websocket_urlpatterns = [ diff --git a/comrade/comrade_core/views.py b/comrade/comrade_core/views.py index d5201ff..0120ff3 100644 --- a/comrade/comrade_core/views.py +++ b/comrade/comrade_core/views.py @@ -2,12 +2,12 @@ get_adapter as get_socialaccount_adapter, ) from comrade_core.models import Task -from allauth.socialaccount.models import SocialApp +from allauth.socialaccount.models import SocialApp, SocialAccount from django.contrib.auth import authenticate from django.shortcuts import render from rest_framework import generics, status from rest_framework.authtoken.models import Token -from rest_framework.decorators import api_view +from rest_framework.decorators import api_view, permission_classes from rest_framework.permissions import IsAuthenticated from rest_framework.request import Request from rest_framework.response import Response @@ -16,6 +16,7 @@ from .serializers import UserDetailSerializer, TaskSerializer from django.core.exceptions import ValidationError +from .models import User def index(request): @@ -113,4 +114,102 @@ def get(self, request): return Response( {"tasks": serializer.data}, status=status.HTTP_200_OK, - ) \ No newline at end of file + ) + +@api_view(["POST"]) +def google_login_view(request): + access_token = request.data.get("access_token") + + if not access_token: + return Response( + {"error": "Access token is required"}, + status=status.HTTP_400_BAD_REQUEST + ) + + try: + # Get the social account associated with the Google token + social_account = SocialAccount.objects.get( + provider="google", + extra_data__id_token=access_token + ) + user = social_account.user + + # Create or get the API token for the user + token, created = Token.objects.get_or_create(user=user) + + return Response({"token": token.key}, status=status.HTTP_200_OK) + + except SocialAccount.DoesNotExist: + return Response( + {"error": "Invalid Google token"}, + status=status.HTTP_401_UNAUTHORIZED + ) + +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def send_friend_request(request, user_id): + try: + target_user = User.objects.get(id=user_id) + request.user.send_friend_request(target_user) + return Response({'status': 'Friend request sent'}, status=status.HTTP_200_OK) + except User.DoesNotExist: + return Response({'error': 'User not found'}, status=status.HTTP_404_NOT_FOUND) + except ValidationError as e: + return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def accept_friend_request(request, user_id): + try: + target_user = User.objects.get(id=user_id) + request.user.accept_friend_request(target_user) + return Response({'status': 'Friend request accepted'}, status=status.HTTP_200_OK) + except User.DoesNotExist: + return Response({'error': 'User not found'}, status=status.HTTP_404_NOT_FOUND) + except ValidationError as e: + return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def reject_friend_request(request, user_id): + try: + target_user = User.objects.get(id=user_id) + request.user.reject_friend_request(target_user) + return Response({'status': 'Friend request rejected'}, status=status.HTTP_200_OK) + except User.DoesNotExist: + return Response({'error': 'User not found'}, status=status.HTTP_404_NOT_FOUND) + except ValidationError as e: + return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['POST']) +@permission_classes([IsAuthenticated]) +def remove_friend(request, user_id): + try: + target_user = User.objects.get(id=user_id) + request.user.remove_friend(target_user) + return Response({'status': 'Friend removed'}, status=status.HTTP_200_OK) + except User.DoesNotExist: + return Response({'error': 'User not found'}, status=status.HTTP_404_NOT_FOUND) + except ValidationError as e: + return Response({'error': str(e)}, status=status.HTTP_400_BAD_REQUEST) + +@api_view(['GET']) +@permission_classes([IsAuthenticated]) +def get_friends(request): + friends = request.user.get_friends() + serializer = UserDetailSerializer(friends, many=True) + return Response({'friends': serializer.data}, status=status.HTTP_200_OK) + +@api_view(['GET']) +@permission_classes([IsAuthenticated]) +def get_pending_requests(request): + pending_requests = request.user.get_pending_friend_requests() + serializer = UserDetailSerializer(pending_requests, many=True) + return Response({'pending_requests': serializer.data}, status=status.HTTP_200_OK) + +@api_view(['GET']) +@permission_classes([IsAuthenticated]) +def get_sent_requests(request): + sent_requests = request.user.get_sent_friend_requests() + serializer = UserDetailSerializer(sent_requests, many=True) + return Response({'sent_requests': serializer.data}, status=status.HTTP_200_OK) \ No newline at end of file diff --git a/dump.rdb b/dump.rdb index 510a47b0afba4237d9e489cd8e58a4847be6b934..6b34189b8751e9106eb7e6e7e0444c16b4626808 100644 GIT binary patch delta 46 zcmX@i5i!9)LzFKg{TD}RacYWgZffqK3+qK0esLt`r|Bjo7N;Iy_&?#9;i*#&y>|ho CCKML{ literal 1091 zcmb7@KZqPu5XRSogG6k_!fH#4J7(US_wTScL5nChD$y>?%$v7v$lWcscafBV6s8V> zB4}e_r3l)FZ~=n~76A(@V`XP$wF&AhX|id=@=fuZ@B8L^Z@u>Fg|`6^SLctd&zCz_ z?RdNFhFw}c`*Of0#N3)ZCgd73!!} z>*x^ul{>XuCKo?{XU%-{(tEp)t-Sbzl`BWeC-bAjOQ(y@C$>EQ#A=0tT1v8%5?RQt zP;0Fwpj2ZRJmt|#QLfTBQ0~UQuxG_$p-q*KreO6(UX8D(0j~0A&CWPshMPPKvGh zGjXF>Q5v;?t&A8C>6@ERGs_?wz){60mR57%u4PmoM*^H$GL8}?k|k=<6=SF_0IPc& zte4@!x4&)bBuFiDUEB6_#*pMo7%^}z$S|gnE7Lkl6JHZTjik(_Sccdk;O*S*{<6tb zHWO&37&>)Nt%3FiP(+23=`_MHaX@P&Q;;s)b0iNnCJ#g4^6dM2_cxjUS>rG~@>GHc z>Q#47DoIMIxofm6@W<6pp007N*>t3W8G#I%P{{y-Lhq6*`QPxsNnEY9HoR9}h9-FZ VgM06;ng4wE!<&15efrsre*uljVW$89 From 3b200778592c41b535ebde49a9b88b4ee42e5d3d Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 01:10:20 +0200 Subject: [PATCH 02/12] feat/login-working --- comrade/comrade/settings.py | 99 +++- comrade/comrade/urls.py | 14 +- .../migrations/0004_locationconfig.py | 39 ++ comrade/comrade_core/templates/login.html | 76 +++ comrade/comrade_core/templates/map.html | 514 ++++++++++-------- comrade/comrade_core/urls.py | 1 + comrade/comrade_core/views.py | 227 ++++++-- dump.rdb | Bin 88 -> 8486 bytes 8 files changed, 683 insertions(+), 287 deletions(-) create mode 100644 comrade/comrade_core/migrations/0004_locationconfig.py create mode 100644 comrade/comrade_core/templates/login.html diff --git a/comrade/comrade/settings.py b/comrade/comrade/settings.py index a0458a3..10e306a 100644 --- a/comrade/comrade/settings.py +++ b/comrade/comrade/settings.py @@ -12,6 +12,7 @@ import os from pathlib import Path +import socket # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent @@ -26,9 +27,14 @@ # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True -ALLOWED_HOSTS = ["knowing-massive-macaw.ngrok-free.app", "localhost", "127.0.0.1"] +ALLOWED_HOSTS = [ + 'localhost', + '127.0.0.1', + '934c-77-240-102-76.ngrok-free.app', +] SITE_ID = 1 +SITE_URL = 'https://934c-77-240-102-76.ngrok-free.app' # Application definition @@ -82,7 +88,31 @@ }, } -CORS_ORIGIN_ALLOW_ALL = True +CORS_ALLOW_CREDENTIALS = True +CORS_ALLOWED_ORIGINS = [ + "http://localhost:8000", + "http://127.0.0.1:8000", + "https://accounts.google.com" +] +CORS_ALLOW_METHODS = [ + 'DELETE', + 'GET', + 'OPTIONS', + 'PATCH', + 'POST', + 'PUT', +] +CORS_ALLOW_HEADERS = [ + 'accept', + 'accept-encoding', + 'authorization', + 'content-type', + 'dnt', + 'origin', + 'user-agent', + 'x-csrftoken', + 'x-requested-with', +] ROOT_URLCONF = "comrade.urls" @@ -115,10 +145,28 @@ HEADLESS_TOKEN_STRATEGY = "comrade.token_strategy.ComradeTokenStrategy" -CSRF_TRUSTED_ORIGINS = ["https://knowing-massive-macaw.ngrok-free.app"] +# Get local IP address for OAuth +def get_local_ip(): + try: + # Create a socket to get the local IP + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + s.connect(("8.8.8.8", 80)) + local_ip = s.getsockname()[0] + s.close() + return local_ip + except: + return "127.0.0.1" + +LOCAL_IP = get_local_ip() + +CSRF_TRUSTED_ORIGINS = [ + 'http://localhost:8000', + 'http://127.0.0.1:8000', + 'https://934c-77-240-102-76.ngrok-free.app', +] LOGIN_URL = "/accounts/login/" -ACCOUNT_DEFAULT_HTTP_PROTOCOL = "http" +ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https' WSGI_APPLICATION = "comrade.wsgi.application" @@ -177,4 +225,45 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" -AUTH_USER_MODEL = "comrade_core.User" \ No newline at end of file +AUTH_USER_MODEL = "comrade_core.User" + +# Social Account Settings +SOCIALACCOUNT_PROVIDERS = { + 'google': { + 'APP': { + 'client_id': '838713168413-ntjqd2o22eihod384btlheuc07g5glai.apps.googleusercontent.com', + 'secret': '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', + 'key': '' + }, + 'SCOPE': [ + 'profile', + 'email', + ], + 'AUTH_PARAMS': { + 'access_type': 'online', + }, + 'OAUTH_PKCE_ENABLED': True, + } +} + +# AllAuth Settings +ACCOUNT_EMAIL_REQUIRED = True +ACCOUNT_UNIQUE_EMAIL = True +ACCOUNT_USERNAME_REQUIRED = False +ACCOUNT_AUTHENTICATION_METHOD = 'email' +ACCOUNT_EMAIL_VERIFICATION = 'none' +SOCIALACCOUNT_EMAIL_VERIFICATION = 'none' +SOCIALACCOUNT_QUERY_EMAIL = True +ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https' +ACCOUNT_LOGOUT_ON_GET = True + +# Login/Logout URLs +LOGIN_REDIRECT_URL = '/map/' +LOGOUT_REDIRECT_URL = '/login/' + +# CSRF Settings +CSRF_COOKIE_SECURE = True +CSRF_COOKIE_HTTPONLY = False +CSRF_USE_SESSIONS = True +CSRF_COOKIE_SAMESITE = 'None' +CSRF_COOKIE_DOMAIN = None \ No newline at end of file diff --git a/comrade/comrade/urls.py b/comrade/comrade/urls.py index 7219cfe..c7f213f 100644 --- a/comrade/comrade/urls.py +++ b/comrade/comrade/urls.py @@ -16,13 +16,13 @@ """ from django.contrib import admin -from django.urls import include, path -from rest_framework import routers +from django.urls import path, include +from comrade_core import views urlpatterns = [ - path("", include("comrade_core.urls")), - path("admin/", admin.site.urls), - path("api-auth/", include("rest_framework.urls")), - path("accounts/", include("allauth.urls")), - path("_allauth/", include("allauth.headless.urls")), + path('admin/', admin.site.urls), + path('accounts/', include('allauth.urls')), + path('login/', views.login_page, name='login_page'), + path('map/', views.map, name='map'), + path('api/user/info/', views.get_user_info, name='get_user_info'), ] diff --git a/comrade/comrade_core/migrations/0004_locationconfig.py b/comrade/comrade_core/migrations/0004_locationconfig.py new file mode 100644 index 0000000..d5d24db --- /dev/null +++ b/comrade/comrade_core/migrations/0004_locationconfig.py @@ -0,0 +1,39 @@ +# Generated by Django 5.0.9 on 2025-05-19 22:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("comrade_core", "0003_user_friend_requests_sent_user_friends_and_more"), + ] + + operations = [ + migrations.CreateModel( + name="LocationConfig", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "max_distance_km", + models.FloatField( + default=1.0, + help_text="Maximum distance in kilometers for location sharing", + ), + ), + ("last_updated", models.DateTimeField(auto_now=True)), + ], + options={ + "verbose_name": "Location Configuration", + "verbose_name_plural": "Location Configuration", + }, + ), + ] diff --git a/comrade/comrade_core/templates/login.html b/comrade/comrade_core/templates/login.html new file mode 100644 index 0000000..7baa795 --- /dev/null +++ b/comrade/comrade_core/templates/login.html @@ -0,0 +1,76 @@ + + + + + + Login - Comrade + {% load socialaccount %} + {% csrf_token %} + + + + + + \ No newline at end of file diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index c1559e1..a8bcd82 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -1,260 +1,330 @@ - - - Comrade Map - - + + + + + Map - Comrade + + + + +
+ +
+
+
+ Your Location +
+
+
+ Friends +
+
+
+ Public Shares +
+
- - - -

User Location Map

-
- + \ No newline at end of file diff --git a/comrade/comrade_core/urls.py b/comrade/comrade_core/urls.py index 6a4a532..909bc0a 100644 --- a/comrade/comrade_core/urls.py +++ b/comrade/comrade_core/urls.py @@ -7,6 +7,7 @@ urlpatterns = [ path('', views.index, name='index'), + path('login/', views.login_page, name='login_page'), path('google/', views.google, name='google'), path('user/', views.UserDetailView.as_view(), name='user_detail'), path('user/token/', views.login_view, name='login'), diff --git a/comrade/comrade_core/views.py b/comrade/comrade_core/views.py index 0120ff3..4ad7da6 100644 --- a/comrade/comrade_core/views.py +++ b/comrade/comrade_core/views.py @@ -4,7 +4,7 @@ from comrade_core.models import Task from allauth.socialaccount.models import SocialApp, SocialAccount from django.contrib.auth import authenticate -from django.shortcuts import render +from django.shortcuts import render, redirect from rest_framework import generics, status from rest_framework.authtoken.models import Token from rest_framework.decorators import api_view, permission_classes @@ -12,32 +12,60 @@ from rest_framework.request import Request from rest_framework.response import Response from rest_framework.views import APIView +from allauth.socialaccount.providers.google.views import GoogleOAuth2Adapter +from allauth.socialaccount.providers.oauth2.client import OAuth2Client +from allauth.socialaccount.providers.google.views import GoogleOAuth2Adapter +from allauth.socialaccount.providers.oauth2.views import OAuth2LoginView, OAuth2CallbackView +from django.contrib.auth import get_user_model +from allauth.socialaccount.providers.google.provider import GoogleProvider from .serializers import UserDetailSerializer, TaskSerializer from django.core.exceptions import ValidationError from .models import User +from django.views.decorators.csrf import csrf_exempt, ensure_csrf_cookie +from django.utils.decorators import method_decorator +import json + +User = get_user_model() + def index(request): return render(request, "index.html") +@ensure_csrf_cookie +def login_page(request): + """Render the login page with Google sign-in""" + return render(request, "login.html") + + def google(request): - try: - provider = get_socialaccount_adapter().get_provider(request, "google") - context = { - "client_id": provider.app.client_id, - } - except SocialApp.DoesNotExist: - context = { - "error": "Google social app not found. Check Sites in configuration.", - } - return render(request, "google.html", context=context) + return render(request, "google.html") def map(request): - return render(request, "map.html") + """Render the map page""" + if not request.user.is_authenticated: + return redirect('login_page') + + # Create or get token + token, created = Token.objects.get_or_create(user=request.user) + + # Prepare user data + user_data = { + 'id': request.user.id, + 'email': request.user.email, + 'name': f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username + } + + context = { + 'api_token': token.key, + 'user': json.dumps(user_data) + } + + return render(request, "map.html", context=context) class UserDetailView(generics.RetrieveAPIView): @@ -45,21 +73,122 @@ class UserDetailView(generics.RetrieveAPIView): permission_classes = [IsAuthenticated] def get_object(self): - return self.request.user # Return the currently authenticated user + return self.request.user -@api_view(["POST"]) +@api_view(["GET"]) def login_view(request): - username = request.data.get("username") - password = request.data.get("password") - user = authenticate(username=username, password=password) - if user is not None: - token, created = Token.objects.get_or_create(user=user) - return Response({"token": token.key}, status=status.HTTP_200_OK) + """Redirect to login page""" + return redirect('login_page') - return Response( - {"error": "Invalid Credentials"}, status=status.HTTP_401_UNAUTHORIZED - ) + +@csrf_exempt +@api_view(["GET", "POST"]) +def google_login_view(request): + """Handle Google OAuth login""" + if request.method == "GET": + # Handle the redirect from Google + credential = request.GET.get('credential') + if not credential: + return redirect('login_page') + + try: + # Get user info from Google + adapter = GoogleOAuth2Adapter(request) + client = OAuth2Client(request, adapter.client_id, adapter.client_secret, adapter.access_token_method, adapter.access_token_url, adapter.callback_url, adapter.scope) + user_info = client.get_user_info(credential) + + # Get or create user + try: + user = User.objects.get(email=user_info['email']) + except User.DoesNotExist: + # Create new user + user = User.objects.create_user( + username=user_info['email'], + email=user_info['email'], + first_name=user_info.get('given_name', ''), + last_name=user_info.get('family_name', '') + ) + + # Create or get social account + social_account, created = SocialAccount.objects.get_or_create( + provider=GoogleProvider.id, + uid=user_info['id'], + defaults={'user': user} + ) + if not created: + social_account.user = user + social_account.save() + + # Create or get token + token, created = Token.objects.get_or_create(user=user) + + # Store token and user info in session + request.session['api_token'] = token.key + request.session['user'] = { + 'id': user.id, + 'email': user.email, + 'name': f"{user.first_name} {user.last_name}".strip() or user.username + } + + return redirect('map') + + except Exception as e: + return redirect('login_page') + + # Handle POST requests (if any) + access_token = request.data.get("access_token") + if not access_token: + return Response( + {"error": "Access token is required"}, + status=status.HTTP_400_BAD_REQUEST + ) + + try: + # Get user info from Google + adapter = GoogleOAuth2Adapter(request) + client = OAuth2Client(request, adapter.client_id, adapter.client_secret, adapter.access_token_method, adapter.access_token_url, adapter.callback_url, adapter.scope) + user_info = client.get_user_info(access_token) + + # Get or create user + try: + user = User.objects.get(email=user_info['email']) + except User.DoesNotExist: + # Create new user + user = User.objects.create_user( + username=user_info['email'], + email=user_info['email'], + first_name=user_info.get('given_name', ''), + last_name=user_info.get('family_name', '') + ) + + # Create or get social account + social_account, created = SocialAccount.objects.get_or_create( + provider=GoogleProvider.id, + uid=user_info['id'], + defaults={'user': user} + ) + if not created: + social_account.user = user + social_account.save() + + # Create or get token + token, created = Token.objects.get_or_create(user=user) + + return Response({ + "token": token.key, + "user": { + "id": user.id, + "email": user.email, + "name": f"{user.first_name} {user.last_name}".strip() or user.username + } + }, status=status.HTTP_200_OK) + + except Exception as e: + return Response( + {"error": str(e)}, + status=status.HTTP_401_UNAUTHORIZED + ) # POST /task/{taskId}/start @@ -116,35 +245,6 @@ def get(self, request): status=status.HTTP_200_OK, ) -@api_view(["POST"]) -def google_login_view(request): - access_token = request.data.get("access_token") - - if not access_token: - return Response( - {"error": "Access token is required"}, - status=status.HTTP_400_BAD_REQUEST - ) - - try: - # Get the social account associated with the Google token - social_account = SocialAccount.objects.get( - provider="google", - extra_data__id_token=access_token - ) - user = social_account.user - - # Create or get the API token for the user - token, created = Token.objects.get_or_create(user=user) - - return Response({"token": token.key}, status=status.HTTP_200_OK) - - except SocialAccount.DoesNotExist: - return Response( - {"error": "Invalid Google token"}, - status=status.HTTP_401_UNAUTHORIZED - ) - @api_view(['POST']) @permission_classes([IsAuthenticated]) def send_friend_request(request, user_id): @@ -212,4 +312,25 @@ def get_pending_requests(request): def get_sent_requests(request): sent_requests = request.user.get_sent_friend_requests() serializer = UserDetailSerializer(sent_requests, many=True) - return Response({'sent_requests': serializer.data}, status=status.HTTP_200_OK) \ No newline at end of file + return Response({'sent_requests': serializer.data}, status=status.HTTP_200_OK) + +@api_view(['GET']) +def get_user_info(request): + """Get user information after successful login""" + if not request.user.is_authenticated: + return Response( + {"error": "User not authenticated"}, + status=status.HTTP_401_UNAUTHORIZED + ) + + # Create or get token + token, created = Token.objects.get_or_create(user=request.user) + + return Response({ + "token": token.key, + "user": { + "id": request.user.id, + "email": request.user.email, + "name": f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username + } + }, status=status.HTTP_200_OK) \ No newline at end of file diff --git a/dump.rdb b/dump.rdb index 6b34189b8751e9106eb7e6e7e0444c16b4626808..2d9f5f91d9f293f599372ebbd8b398fbc7acbefb 100644 GIT binary patch literal 8486 zcmc(keUMdU9mg-uEG!Tr1t_{O+(w6V*~|0(vV*ZJppbK1iG{DLFGZ{ntYq$0ZUaGfaD3ePvx+ zOJ{3kV~aH%^)1ac_>!tmwYPd(AL?yNFk+ErmJ+2H(^zw*P~ce8V7=iusj*~MVjTtU z7{WqJtG$#?D1vmP>}4DJuX}gW;pz)CrQ$RSOmLw=l8}h;NIEK&W)Y%DB(Xup3v7Ha zf;lFYWzG_3F(XcDEpFMh@yq~do>~0$*9QI#lFEXNebARy4cxl*y6(irhHpOCUw8A` ztsVEa`lruVptIGP4!<3$*j7{T#_z};G@B;B&6#`Z9oo?dh3e>ZzOQO|g3N#QrS#6m zmgc&VQ}bUxyl3IAnLD%XXzwsht^IQeBD@0e3anQWT8U&OV<|~FQm7oEN`#)NsmYGN z#->ekvu~`aS>OME>_GD!3tHdHc3|M-wO75_)W6~~wq)G{#bCxn5*!QjH$GQ7!n`$o za$?uxZ+(B>p&u@apP8mOfrY^0==19*j{C;qWata>GOfB7l{|t+O_P|VEoKDCEytr zPoK9POph?HoB7C>KKjZh?)b=}JUJPbTsNk_Yw*54`)8 z^e}U~Yj`2OyW*}l7uC)z3bT?ro^O)Z9vWu;Z;tGumJb|R`oNaGA3Szs<=d$n6R}q- zA4hgkn2Y(>oFkjEqwXEK|M3T_|1#@nF__2f$O>l8IkHDKm49*D!u$80I6bi}e&#$J zS;5RXN4DqrrHAhu()SozY~)ldxPF*~w?nRAZp)S)e| zclX)BOn3R}*qQTjWCb(l9N8PIYw!O3*ZzD&b-r93KXV?AtYGGxBYWkO&mJxNJb$(O z#N1`^Gw0#R3TDnZvR~Hqtx}u%*57j5tU1MC9Fmuk44fIb~^}E42r+59S>*d&)^KoPaGv^%HV0FXUvM0(ezv1jZdWyn4R!3Ga z^La;hKJ2^vg0K&grjD9A-|X8=?R0U%=Wu6N|kPQJDjHseE3Y)f%M00!p z_SgTBF^VY{+*Erjl;&D+uUPOzQ>TRw$^?k}XduZzv=>(4Af#a|*z9g3$DT;70@9e5 zT~jff_T*AC84(^KrXh$7ECi~g(TWkntk4iSqNIfLa6?Z-1R0~l+6Dm`rVm~zVi~>W z*tF-4e>k@k5W_}>K*Wh7h()=v-0KKyqhLS98I>f=a25;}%0d>3tk&E!DJej4Ya(&U z@!NhfN;8sDMjk7}9c;b{17$D}pW2|f;>_EmP*gjn5pu*qJPMU?&TT|P!xzj%thHlsVI|Cpc?*be^Gh+Q=>E` zR$3CJ6^blVAt)&%G(tNK(n0W~BAz2mLDV}&O%yreEd;_`U?r4OpLy}#TSsY%-~xr9 z*m90pqyxxW;vElA4h&68I%~0|m|zGR7=iu}!I*GJNlS!{$fG}RTs%rMk{%|BH;jXX z3@9=I+NHf`4*HKn(s~9XqDlyE808YW<-7~d2n+$Xu~Toz=+T-qC~uXghQY8f)>09u zqlMYRxMnCxp)S;7L`?9EK|QnATcW&zi=FYuuDI&jQJM-<>WL*9ImRT#k)zf@f&{CH zIT7ikLoky9Ayiu^ql4RP05>2m1q1Of-!wF5v?lZymM2`MBZf5Wcxk4&vj#`-2hEbo zdZA$c1n49a$ZHCPHx4pcNtjS*_P%AO20uLK)kQU-Ly*Zs?4KPM7s@!~rDgCefNpZ} wy$AX>)jT(8!gsrGoR&QHFSlR5#{d8T delta 46 zcmZ4H6fwa-LzFKg{TD}RacYWgZffqK3+qK0esLt`r|Bjo7N;Iy_&?#9;i*#&y>|ht CA`~ Date: Tue, 20 May 2025 01:33:02 +0200 Subject: [PATCH 03/12] feat: view multi user locations on map --- comrade/comrade_core/admin.py | 92 +++++++++++++---- comrade/comrade_core/consumers.py | 127 ++++++++++++++---------- comrade/comrade_core/templates/map.html | 29 ++++++ comrade/comrade_core/views.py | 7 +- dump.rdb | Bin 8486 -> 188158 bytes 5 files changed, 187 insertions(+), 68 deletions(-) diff --git a/comrade/comrade_core/admin.py b/comrade/comrade_core/admin.py index b36004a..9fb0409 100644 --- a/comrade/comrade_core/admin.py +++ b/comrade/comrade_core/admin.py @@ -2,7 +2,7 @@ from django.contrib.auth.admin import UserAdmin from django.contrib.auth.forms import UserChangeForm -from .models import Skill, Task, User +from .models import Skill, Task, User, LocationConfig, Rating, Review class UserChangeForm(UserChangeForm): @@ -12,30 +12,88 @@ class Meta(UserChangeForm.Meta): class ComradeUserAdmin(UserAdmin): form = UserChangeForm - fieldsets = UserAdmin.fieldsets + ((None, {"fields": ("skills",)}),) + list_display = ['username', 'email', 'location_sharing_level'] + list_filter = ['location_sharing_level', 'is_staff', 'is_active'] + search_fields = ['username', 'email', 'first_name', 'last_name'] + + # Add custom fields to the default UserAdmin fieldsets + fieldsets = UserAdmin.fieldsets + ( + ('Location', { + 'fields': ( + 'latitude', 'longitude', 'location_sharing_level', + 'location_share_with' + ) + }), + ('Skills & Friends', { + 'fields': ( + 'skills', 'friends', 'friend_requests_sent' + ) + }), + ) + filter_horizontal = ('skills', 'friends', 'friend_requests_sent', 'location_share_with') class TaskAdmin(admin.ModelAdmin): list_display = [ - "name", - "owner", - "state", - "lat", - "lon", - "respawn", - "respawn_time", - "base_value", - "criticality", - "contribution", + 'name', 'state', 'owner', 'assignee', 'lat', 'lon', + 'respawn', 'respawn_time', 'base_value', 'criticality', + 'contribution', 'minutes' ] - list_filter = ["state", "respawn", "criticality"] - search_fields = ["name", "description"] + list_filter = ['state', 'respawn', 'criticality', 'owner', 'assignee'] + search_fields = ['name', 'description'] + filter_horizontal = ('skill_read', 'skill_write', 'skill_execute') + fieldsets = ( + ('Basic Info', { + 'fields': ('name', 'description') + }), + ('Permissions', { + 'fields': ('skill_read', 'skill_write', 'skill_execute') + }), + ('Task State', { + 'fields': ('state', 'owner', 'assignee') + }), + ('Location', { + 'fields': ('lat', 'lon') + }), + ('Respawn Settings', { + 'fields': ('respawn', 'respawn_time') + }), + ('Values', { + 'fields': ('base_value', 'criticality', 'contribution', 'minutes') + }), + ('Time Tracking', { + 'fields': ('datetime_start', 'datetime_finish') + }) + ) -class SkillInline(admin.StackedInline): - model = Skill +class SkillAdmin(admin.ModelAdmin): + list_display = ['name'] + search_fields = ['name'] + + +class LocationConfigAdmin(admin.ModelAdmin): + list_display = ['max_distance_km', 'last_updated'] + readonly_fields = ['last_updated'] + + +class RatingAdmin(admin.ModelAdmin): + list_display = ['task', 'happiness', 'time'] + list_filter = ['task'] + search_fields = ['task__name'] + fields = ['task', 'happiness', 'time'] + + +class ReviewAdmin(admin.ModelAdmin): + list_display = ['task', 'done'] + list_filter = ['task'] + search_fields = ['task__name'] + fields = ['task', 'done'] admin.site.register(User, ComradeUserAdmin) admin.site.register(Task, TaskAdmin) -admin.site.register(Skill) +admin.site.register(Skill, SkillAdmin) +admin.site.register(LocationConfig, LocationConfigAdmin) +admin.site.register(Rating, RatingAdmin) +admin.site.register(Review, ReviewAdmin) diff --git a/comrade/comrade_core/consumers.py b/comrade/comrade_core/consumers.py index 3619bca..93aeddf 100644 --- a/comrade/comrade_core/consumers.py +++ b/comrade/comrade_core/consumers.py @@ -43,56 +43,58 @@ async def receive(self, text_data): await self.update_preferences(data['preferences']) return - latitude = data['latitude'] - longitude = data['longitude'] - - # Check sharing preferences before broadcasting - if self.user.location_sharing_level == User.SharingLevel.NONE: - # Only save location, don't broadcast - await self.save_user_location(self.user, latitude, longitude) - return + # Handle location updates + if data.get('type') == 'location_update': + latitude = data['latitude'] + longitude = data['longitude'] + accuracy = data.get('accuracy', 50) # Default accuracy if not provided + + # Check sharing preferences before broadcasting + if self.user.location_sharing_level == User.SharingLevel.NONE: + # Only save location, don't broadcast + await self.save_user_location(self.user, latitude, longitude) + return + + # Prepare the location update message + location_update = { + 'type': 'friend_location' if self.user.location_sharing_level == User.SharingLevel.FRIENDS else 'public_location', + 'userId': self.user.id, + 'name': f"{self.user.first_name} {self.user.last_name}".strip() or self.user.username, + 'latitude': latitude, + 'longitude': longitude, + 'accuracy': accuracy, + 'timestamp': timezone.now().isoformat() + } - # Prepare the location update message - location_update = { - 'type': 'location_update', - 'user_id': self.user.id, - 'username': self.user.username, - 'latitude': latitude, - 'longitude': longitude, - 'timestamp': timezone.now().isoformat() - } - - # Handle different sharing levels - if self.user.location_sharing_level == User.SharingLevel.FRIENDS: - # Get list of friends to share with - friends = await database_sync_to_async( - lambda: list(self.user.get_friends()) - )() - - # Send to each friend's location group - for friend in friends: - friend_location_group = f"location_{friend.id}" - await self.channel_layer.group_send( - friend_location_group, - location_update - ) - else: # ALL - # Get nearby users who share their location - nearby_users = await database_sync_to_async( - self.user.get_nearby_users - )() + # Handle different sharing levels + if self.user.location_sharing_level == User.SharingLevel.FRIENDS: + # Get list of friends to share with + friends = await database_sync_to_async( + lambda: list(self.user.get_friends()) + )() + + # Send to each friend's location group + for friend in friends: + friend_location_group = f"location_{friend.id}" + await self.channel_layer.group_send( + friend_location_group, + location_update + ) + else: # ALL + # Get nearby users who share their location + nearby_users = await database_sync_to_async( + self.user.get_nearby_users + )() + + # Send to each nearby user's location group + for user in nearby_users: + user_location_group = f"location_{user.id}" + await self.channel_layer.group_send( + user_location_group, + location_update + ) - # Send to each nearby user's location group - for user in nearby_users: - user_location_group = f"location_{user.id}" - await self.channel_layer.group_send( - user_location_group, - location_update - ) - - # Save location regardless of sharing preferences - timestamp = self.user.timestamp - if timestamp is None or timezone.now() - timestamp > timedelta(seconds=30): + # Save location regardless of sharing preferences await self.save_user_location(self.user, latitude, longitude) print(f"[{timezone.now()}] Location saved for {self.user.username} at {latitude}, {longitude}") @@ -112,11 +114,36 @@ async def update_preferences(self, preferences_data): } })) + async def friend_location(self, event): + """Handler for friend location updates""" + await self.send(text_data=json.dumps({ + 'type': 'friend_location', + 'userId': event['userId'], + 'name': event['name'], + 'latitude': event['latitude'], + 'longitude': event['longitude'], + 'accuracy': event['accuracy'], + 'timestamp': event['timestamp'] + })) + + async def public_location(self, event): + """Handler for public location updates""" + await self.send(text_data=json.dumps({ + 'type': 'public_location', + 'userId': event['userId'], + 'name': event['name'], + 'latitude': event['latitude'], + 'longitude': event['longitude'], + 'accuracy': event['accuracy'], + 'timestamp': event['timestamp'] + })) + async def location_update(self, event): # Send location update with user identification await self.send(text_data=json.dumps({ - 'user_id': event['user_id'], - 'username': event['username'], + 'type': event['type'], + 'userId': event['userId'], + 'name': event['name'], 'latitude': event['latitude'], 'longitude': event['longitude'], 'timestamp': event['timestamp'] diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index a8bcd82..c3a0596 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -227,6 +227,35 @@

Logged in as:

strokeWeight: 2, } }); + + // Add info window for user's location + const infoWindow = new google.maps.InfoWindow({ + content: ` +
+

${userInfo.name}

+
+ Friends (${userInfo.friends?.length || 0}): +

+ ${userInfo.friends?.map(friend => friend.name).join(', ') || 'No friends yet'} +

+
+
+ Skills: +

${userInfo.skills?.join(', ') || 'No skills listed'}

+
+
+ ` + }); + + // Show info window on mouseover + userMarker.addListener('mouseover', () => { + infoWindow.open(map, userMarker); + }); + + // Hide info window on mouseout + userMarker.addListener('mouseout', () => { + infoWindow.close(); + }); } else { userMarker.setPosition({ lat, lng }); } diff --git a/comrade/comrade_core/views.py b/comrade/comrade_core/views.py index 4ad7da6..0b733cc 100644 --- a/comrade/comrade_core/views.py +++ b/comrade/comrade_core/views.py @@ -53,11 +53,16 @@ def map(request): # Create or get token token, created = Token.objects.get_or_create(user=request.user) + # Get friends list + friends = request.user.get_friends() + # Prepare user data user_data = { 'id': request.user.id, 'email': request.user.email, - 'name': f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username + 'name': f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username, + 'friends': [{'id': friend.id, 'name': f"{friend.first_name} {friend.last_name}".strip() or friend.username} for friend in friends], + 'skills': list(request.user.skills.values_list('name', flat=True)) } context = { diff --git a/dump.rdb b/dump.rdb index 2d9f5f91d9f293f599372ebbd8b398fbc7acbefb..9777c59dbd313c0622b3aee67b1495e70e591946 100644 GIT binary patch literal 188158 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 F%^z{W_A~$h literal 8486 zcmc(keUMdU9mg-uEG!Tr1t_{O+(w6V*~|0(vV*ZJppbK1iG{DLFGZ{ntYq$0ZUaGfaD3ePvx+ zOJ{3kV~aH%^)1ac_>!tmwYPd(AL?yNFk+ErmJ+2H(^zw*P~ce8V7=iusj*~MVjTtU z7{WqJtG$#?D1vmP>}4DJuX}gW;pz)CrQ$RSOmLw=l8}h;NIEK&W)Y%DB(Xup3v7Ha zf;lFYWzG_3F(XcDEpFMh@yq~do>~0$*9QI#lFEXNebARy4cxl*y6(irhHpOCUw8A` ztsVEa`lruVptIGP4!<3$*j7{T#_z};G@B;B&6#`Z9oo?dh3e>ZzOQO|g3N#QrS#6m zmgc&VQ}bUxyl3IAnLD%XXzwsht^IQeBD@0e3anQWT8U&OV<|~FQm7oEN`#)NsmYGN z#->ekvu~`aS>OME>_GD!3tHdHc3|M-wO75_)W6~~wq)G{#bCxn5*!QjH$GQ7!n`$o za$?uxZ+(B>p&u@apP8mOfrY^0==19*j{C;qWata>GOfB7l{|t+O_P|VEoKDCEytr zPoK9POph?HoB7C>KKjZh?)b=}JUJPbTsNk_Yw*54`)8 z^e}U~Yj`2OyW*}l7uC)z3bT?ro^O)Z9vWu;Z;tGumJb|R`oNaGA3Szs<=d$n6R}q- zA4hgkn2Y(>oFkjEqwXEK|M3T_|1#@nF__2f$O>l8IkHDKm49*D!u$80I6bi}e&#$J zS;5RXN4DqrrHAhu()SozY~)ldxPF*~w?nRAZp)S)e| zclX)BOn3R}*qQTjWCb(l9N8PIYw!O3*ZzD&b-r93KXV?AtYGGxBYWkO&mJxNJb$(O z#N1`^Gw0#R3TDnZvR~Hqtx}u%*57j5tU1MC9Fmuk44fIb~^}E42r+59S>*d&)^KoPaGv^%HV0FXUvM0(ezv1jZdWyn4R!3Ga z^La;hKJ2^vg0K&grjD9A-|X8=?R0U%=Wu6N|kPQJDjHseE3Y)f%M00!p z_SgTBF^VY{+*Erjl;&D+uUPOzQ>TRw$^?k}XduZzv=>(4Af#a|*z9g3$DT;70@9e5 zT~jff_T*AC84(^KrXh$7ECi~g(TWkntk4iSqNIfLa6?Z-1R0~l+6Dm`rVm~zVi~>W z*tF-4e>k@k5W_}>K*Wh7h()=v-0KKyqhLS98I>f=a25;}%0d>3tk&E!DJej4Ya(&U z@!NhfN;8sDMjk7}9c;b{17$D}pW2|f;>_EmP*gjn5pu*qJPMU?&TT|P!xzj%thHlsVI|Cpc?*be^Gh+Q=>E` zR$3CJ6^blVAt)&%G(tNK(n0W~BAz2mLDV}&O%yreEd;_`U?r4OpLy}#TSsY%-~xr9 z*m90pqyxxW;vElA4h&68I%~0|m|zGR7=iu}!I*GJNlS!{$fG}RTs%rMk{%|BH;jXX z3@9=I+NHf`4*HKn(s~9XqDlyE808YW<-7~d2n+$Xu~Toz=+T-qC~uXghQY8f)>09u zqlMYRxMnCxp)S;7L`?9EK|QnATcW&zi=FYuuDI&jQJM-<>WL*9ImRT#k)zf@f&{CH zIT7ikLoky9Ayiu^ql4RP05>2m1q1Of-!wF5v?lZymM2`MBZf5Wcxk4&vj#`-2hEbo zdZA$c1n49a$ZHCPHx4pcNtjS*_P%AO20uLK)kQU-Ly*Zs?4KPM7s@!~rDgCefNpZ} wy$AX>)jT(8!gsrGoR&QHFSlR5#{d8T From ecc8bd850cd0773c89374585b7f60aef59e89981 Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 01:37:32 +0200 Subject: [PATCH 04/12] feat: display friend's skills and friends --- comrade/comrade_core/consumers.py | 19 ++++++++------ comrade/comrade_core/templates/map.html | 33 ++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/comrade/comrade_core/consumers.py b/comrade/comrade_core/consumers.py index 93aeddf..10c232d 100644 --- a/comrade/comrade_core/consumers.py +++ b/comrade/comrade_core/consumers.py @@ -55,6 +55,12 @@ async def receive(self, text_data): await self.save_user_location(self.user, latitude, longitude) return + # Get user's friends and skills for friend updates + friends = await database_sync_to_async(lambda: list(self.user.get_friends()))() + skills = await database_sync_to_async( + lambda: list(self.user.skills.values_list('name', flat=True)) + )() + # Prepare the location update message location_update = { 'type': 'friend_location' if self.user.location_sharing_level == User.SharingLevel.FRIENDS else 'public_location', @@ -63,16 +69,13 @@ async def receive(self, text_data): 'latitude': latitude, 'longitude': longitude, 'accuracy': accuracy, - 'timestamp': timezone.now().isoformat() + 'timestamp': timezone.now().isoformat(), + 'friends': [{'id': f.id, 'name': f"{f.first_name} {f.last_name}".strip() or f.username} for f in friends], + 'skills': skills } # Handle different sharing levels if self.user.location_sharing_level == User.SharingLevel.FRIENDS: - # Get list of friends to share with - friends = await database_sync_to_async( - lambda: list(self.user.get_friends()) - )() - # Send to each friend's location group for friend in friends: friend_location_group = f"location_{friend.id}" @@ -123,7 +126,9 @@ async def friend_location(self, event): 'latitude': event['latitude'], 'longitude': event['longitude'], 'accuracy': event['accuracy'], - 'timestamp': event['timestamp'] + 'timestamp': event['timestamp'], + 'friends': event['friends'], + 'skills': event['skills'] })) async def public_location(self, event): diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index c3a0596..529f103 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -283,7 +283,10 @@

${userInfo.name}

} function updateFriendLocation(data) { - const { userId, latitude, longitude, name } = data; + const { userId, latitude, longitude, name, friends, skills } = data; + + // Check if this user is in our friends list + const isFriend = userInfo.friends.some(friend => friend.id === userId); // Create or update marker if (!friendsMarkers[userId]) { @@ -301,15 +304,37 @@

${userInfo.name}

} }); - // Add info window + // Add info window with friend-specific content const infoWindow = new google.maps.InfoWindow({ - content: `
${name}
` + content: ` +
+

${name}

+ ${isFriend ? ` +
+ Friends (${friends?.length || 0}): +

+ ${friends?.map(friend => friend.name).join(', ') || 'No friends yet'} +

+
+
+ Skills: +

${skills?.join(', ') || 'No skills listed'}

+
+ ` : ''} +
+ ` }); - marker.addListener('click', () => { + // Show info window on mouseover + marker.addListener('mouseover', () => { infoWindow.open(map, marker); }); + // Hide info window on mouseout + marker.addListener('mouseout', () => { + infoWindow.close(); + }); + friendsMarkers[userId] = marker; } else { const marker = friendsMarkers[userId]; From 38ea25746355b649a842639666731789d52718b1 Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 02:11:37 +0200 Subject: [PATCH 05/12] feat: friend requests view --- comrade/clear_friends.py | 20 + comrade/comrade/settings.py | 12 +- comrade/comrade/urls.py | 5 +- comrade/comrade_core/consumers.py | 17 +- .../management/commands/clear_friends.py | 14 + comrade/comrade_core/templates/login.html | 1 - comrade/comrade_core/templates/map.html | 399 +++++++++++++++++- comrade/comrade_core/urls.py | 6 - comrade/comrade_core/views.py | 17 +- dump.rdb | Bin 188158 -> 11241 bytes 10 files changed, 452 insertions(+), 39 deletions(-) create mode 100644 comrade/clear_friends.py create mode 100644 comrade/comrade_core/management/commands/clear_friends.py diff --git a/comrade/clear_friends.py b/comrade/clear_friends.py new file mode 100644 index 0000000..00a17e3 --- /dev/null +++ b/comrade/clear_friends.py @@ -0,0 +1,20 @@ +import os +import django + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'comrade.settings') +django.setup() + +from comrade_core.models import User + +def clear_friends(): + # Clear all friend relationships + for user in User.objects.all(): + print(f"Clearing friends for {user.username}") + user.friends.clear() + user.friend_requests_sent.clear() + user.friend_requests_received.clear() + + print("Successfully cleared all friend relationships") + +if __name__ == "__main__": + clear_friends() \ No newline at end of file diff --git a/comrade/comrade/settings.py b/comrade/comrade/settings.py index 10e306a..7d9098b 100644 --- a/comrade/comrade/settings.py +++ b/comrade/comrade/settings.py @@ -75,6 +75,7 @@ REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ + 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.TokenAuthentication', ], } @@ -92,7 +93,8 @@ CORS_ALLOWED_ORIGINS = [ "http://localhost:8000", "http://127.0.0.1:8000", - "https://accounts.google.com" + "https://accounts.google.com", + "https://934c-77-240-102-76.ngrok-free.app" ] CORS_ALLOW_METHODS = [ 'DELETE', @@ -165,7 +167,7 @@ def get_local_ip(): 'https://934c-77-240-102-76.ngrok-free.app', ] -LOGIN_URL = "/accounts/login/" +LOGIN_URL = '/login/' ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https' @@ -241,8 +243,8 @@ def get_local_ip(): ], 'AUTH_PARAMS': { 'access_type': 'online', - }, - 'OAUTH_PKCE_ENABLED': True, + 'prompt': 'select_account' + } } } @@ -264,6 +266,6 @@ def get_local_ip(): # CSRF Settings CSRF_COOKIE_SECURE = True CSRF_COOKIE_HTTPONLY = False -CSRF_USE_SESSIONS = True +CSRF_USE_SESSIONS = False CSRF_COOKIE_SAMESITE = 'None' CSRF_COOKIE_DOMAIN = None \ No newline at end of file diff --git a/comrade/comrade/urls.py b/comrade/comrade/urls.py index c7f213f..0376191 100644 --- a/comrade/comrade/urls.py +++ b/comrade/comrade/urls.py @@ -21,8 +21,9 @@ urlpatterns = [ path('admin/', admin.site.urls), - path('accounts/', include('allauth.urls')), - path('login/', views.login_page, name='login_page'), + path('', include('comrade_core.urls')), # Include all comrade_core URLs + path('accounts/', include('allauth.urls')), # allauth URLs for social auth + path('login/', views.login_page, name='login_page'), # Keep our custom login page path('map/', views.map, name='map'), path('api/user/info/', views.get_user_info, name='get_user_info'), ] diff --git a/comrade/comrade_core/consumers.py b/comrade/comrade_core/consumers.py index 10c232d..487c997 100644 --- a/comrade/comrade_core/consumers.py +++ b/comrade/comrade_core/consumers.py @@ -55,7 +55,7 @@ async def receive(self, text_data): await self.save_user_location(self.user, latitude, longitude) return - # Get user's friends and skills for friend updates + # Get user's friends and skills for updates friends = await database_sync_to_async(lambda: list(self.user.get_friends()))() skills = await database_sync_to_async( lambda: list(self.user.skills.values_list('name', flat=True)) @@ -74,7 +74,6 @@ async def receive(self, text_data): 'skills': skills } - # Handle different sharing levels if self.user.location_sharing_level == User.SharingLevel.FRIENDS: # Send to each friend's location group for friend in friends: @@ -84,13 +83,13 @@ async def receive(self, text_data): location_update ) else: # ALL - # Get nearby users who share their location - nearby_users = await database_sync_to_async( - self.user.get_nearby_users + # Get all active users except self + active_users = await database_sync_to_async( + lambda: list(User.objects.exclude(id=self.user.id)) )() - # Send to each nearby user's location group - for user in nearby_users: + # Send to all active users + for user in active_users: user_location_group = f"location_{user.id}" await self.channel_layer.group_send( user_location_group, @@ -140,7 +139,9 @@ async def public_location(self, event): 'latitude': event['latitude'], 'longitude': event['longitude'], 'accuracy': event['accuracy'], - 'timestamp': event['timestamp'] + 'timestamp': event['timestamp'], + 'friends': event['friends'], + 'skills': event['skills'] })) async def location_update(self, event): diff --git a/comrade/comrade_core/management/commands/clear_friends.py b/comrade/comrade_core/management/commands/clear_friends.py new file mode 100644 index 0000000..974fc79 --- /dev/null +++ b/comrade/comrade_core/management/commands/clear_friends.py @@ -0,0 +1,14 @@ +from django.core.management.base import BaseCommand +from comrade_core.models import User + +class Command(BaseCommand): + help = 'Clears all friend relationships' + + def handle(self, *args, **options): + # Clear all friend relationships + for user in User.objects.all(): + user.friends.clear() + user.friend_requests_sent.clear() + user.friend_requests_received.clear() + + self.stdout.write(self.style.SUCCESS('Successfully cleared all friend relationships')) \ No newline at end of file diff --git a/comrade/comrade_core/templates/login.html b/comrade/comrade_core/templates/login.html index 7baa795..cbfef32 100644 --- a/comrade/comrade_core/templates/login.html +++ b/comrade/comrade_core/templates/login.html @@ -5,7 +5,6 @@ Login - Comrade {% load socialaccount %} - {% csrf_token %} @@ -72,7 +169,11 @@

Logged in as:

Loading...

Loading...

- + +
@@ -89,6 +190,18 @@

Logged in as:

+ + + diff --git a/comrade/comrade_core/urls.py b/comrade/comrade_core/urls.py index 909bc0a..ac903ca 100644 --- a/comrade/comrade_core/urls.py +++ b/comrade/comrade_core/urls.py @@ -2,20 +2,15 @@ from django.urls import re_path from . import consumers - from . import views urlpatterns = [ path('', views.index, name='index'), - path('login/', views.login_page, name='login_page'), - path('google/', views.google, name='google'), path('user/', views.UserDetailView.as_view(), name='user_detail'), - path('user/token/', views.login_view, name='login'), path('map/', views.map, name='map'), path('task//start', views.TaskStartView.as_view(), name='start_task'), path('task//finish', views.TaskFinishView.as_view(), name='finish_task'), path('tasks/', views.TaskListView.as_view(), name='task_list'), - path('api/google-login/', views.google_login_view, name='google_login'), path('friends/send//', views.send_friend_request, name='send_friend_request'), path('friends/accept//', views.accept_friend_request, name='accept_friend_request'), path('friends/reject//', views.reject_friend_request, name='reject_friend_request'), @@ -28,5 +23,4 @@ websocket_urlpatterns = [ re_path(r'ws/location/$', consumers.LocationConsumer.as_asgi()), re_path(r'ws/chat/(?P\w+)/$', consumers.ChatConsumer.as_asgi()), - ] diff --git a/comrade/comrade_core/views.py b/comrade/comrade_core/views.py index 0b733cc..ab82bfb 100644 --- a/comrade/comrade_core/views.py +++ b/comrade/comrade_core/views.py @@ -18,6 +18,7 @@ from allauth.socialaccount.providers.oauth2.views import OAuth2LoginView, OAuth2CallbackView from django.contrib.auth import get_user_model from allauth.socialaccount.providers.google.provider import GoogleProvider +from allauth.account.decorators import login_required from .serializers import UserDetailSerializer, TaskSerializer @@ -38,6 +39,8 @@ def index(request): @ensure_csrf_cookie def login_page(request): """Render the login page with Google sign-in""" + if request.user.is_authenticated: + return redirect('map') return render(request, "login.html") @@ -45,11 +48,10 @@ def google(request): return render(request, "google.html") +@ensure_csrf_cookie +@login_required def map(request): """Render the map page""" - if not request.user.is_authenticated: - return redirect('login_page') - # Create or get token token, created = Token.objects.get_or_create(user=request.user) @@ -65,6 +67,10 @@ def map(request): 'skills': list(request.user.skills.values_list('name', flat=True)) } + # Set CSRF cookie + from django.middleware.csrf import get_token + get_token(request) + context = { 'api_token': token.key, 'user': json.dumps(user_data) @@ -136,9 +142,14 @@ def google_login_view(request): 'name': f"{user.first_name} {user.last_name}".strip() or user.username } + # Set CSRF cookie + from django.middleware.csrf import get_token + get_token(request) + return redirect('map') except Exception as e: + print("Google login error:", str(e)) return redirect('login_page') # Handle POST requests (if any) diff --git a/dump.rdb b/dump.rdb index 9777c59dbd313c0622b3aee67b1495e70e591946..43cc3399ef61583defc7c2129b22884261193464 100644 GIT binary patch literal 11241 zcmd5?d9c-G8Rk;BK(e@`rgk}_V#eaPFH{aB3@)ezj*XdKzZI@tE_Cn3K&;fX62=5l zmch~#5e8>;48f*c0v%IxwA_M8Sw_=bfHo$OtmlWpg`?M>oZC$2pF8)QIp;m+eZJ>? zp7(vfGj8;#GsY7_>5hZjQfzJ?dUr#eq@gw2f4|4sCVt@ksj~$c(;H5ozJcA_13(G9zA*ubL|tF+oz<^ zoSVb2EP^#Y3Z1kOHfir&qKY~v81d5kO3#tKpLyb?k>A=#{b4=+`s&QZ9n+_zd!|hF zEzO~+WpZ#G&68V~;KSR_hzBfgb(7M)quk}qao~B6Elj>ST(;)Hr7d_-$JCgf8gWJs zHn8FBIm=omw@&!)Q$wC#_u})BEOjAFZF6Dz=av;owRgBlQ`Qb-gvp^q4rSy#LWUDF zoXBCq7$MZ);xV}^w>78M*gktn`(@27E$y@KZE7m=YYG!xYinw0YMQh5%#WX}ODr%d zbT-C`K(g0dXkGkKUW6bww>NG7OYe0fNA}L2IdR_hO$%jD#E82!Is@^sJl zG1>Y14`-M*lKU)_R8|Pfm>1IP$hEP;6HZjYu=9_ty!_Cd;fK9(=U7!2Xx7TG(qyS4 zE}_0sc1ob^Ob{`!7^q-TTdP)Fw3}fk^j-ex-fw;4{yPT!d|X{%QY*u{jfs2p;$2nO zm4*o`GG$B(Be+ngT@#69+Ink1I+hBCoi=Lcfaxplyx_1u44GdSXx7TG(qx6?kt%7e z2oBt`K6+2Bp@b@{l2e@;cE>3%&RTWR)U|J(+vB9Vz@%1&bsLjC8rFqNIw6?wo@>tnD>IAM6%5Od95A!*#zQW)4-ScSfo81?D@`_PL%gto8qbB{)DQzyGO^4i zLV50FSjTIPw;j6e*<*gPa>+S$fk~|l>oz8346`5>BaQ@O6*>)VwNo^51-oRNMpiIv z@uJ%Y9kTwwZ_YULACv0>%~}~&nr!4;Wp0I~87`?g+A+zv$X-z?r45}7Yv}VF{nGVU zjaj$h?+fYzlUfXhNTJM|`Y+=#szVn%{X!BG~C zklCRp0mMqkKuPe4SERxT1nDGqS};m|vNU~H`tTINc5QL!y=^{3*vV&PuCfG6E+Gc7UPTICOBDXI6o%X|M4u z6P(9DLr`ei;3;Yufsh>j0GqSlF=1E9q!29DD*)Wng!7h;pqv;}>b#!vM^!PkXW&n9 zpeo}CxY5oUC==4O7@tW+<9Q^JnDQ`3KmdR|3NI%EdI^5w8v|Cpvv2MS%OvlZvYMiw zKyd__ET#fyG$YZO3KLF>?5Hx}Cn3RFhN{#uy~=D(K>|I%55RpH;<-9Ad0AaY{lF8N3M^mW;BI zqP&x;1Oq#A#Al`m3a$88qw*niun@w-W5dVYS``zDZ8b9%Ju9RKf}xepNHAK2&PrAc zOA>7>f~F|A^FA^d6QS@vqf9hsKQ#R-RWVTvsB3^FB^BOggbgf3nE^-93RfazK5)ul zK~gZB4}-_3NQ@3l1T9i7y5m9hpmnYJ4GoaR1v-wrC=cgjsa{D(h5@Hz=gx?nafEC;90yrFp~^k z99??jsAEp9ifJh4#hT2LD1?TCMjoP}ii9kp^6(BQ2a1Yu3#}&*_+*hdY~JajwPiEL zZ24?;Oq{Q#2`{r=5DV)-?LVs$9K7u3r|k~CTpU!0~?w_Nws-2IJ7y@X%Nm?>P?dFXIb;4F=SDN` z5kn<{pNv>0)9oRdCERH+jINn=b3I} zvS*&@Vy|3U7GM~A`iT)^RNvMYE?G0PF3_x%VWr8IX+Y;*`8(JCX=C4+TTW^?{-1N} z0+U)9)@@A6_R6JG5*T)4!?t7BPQ0n#wO0>XSr=&5%COR81sY+_(aT^ED!NmP@x=s% zeohF2cA`_m7LLE?p(i)?8MA6}!_~6y=ZHG3NUHcx{)xGbCevM_rjn%sz z>|}H#n4GE0K$P`!Xs`mN;w*{@j_3`?pVi11S})9q%n^+a9aqBW*996!3?WQ%y}JV5 z2e0+uFWg@_b^hkztDffd0N$=5_+Nl`a3^>J$2DS6Rt?@h*!BFF;O!}uE*i?xH3P)B z?T;5c@cd44%SpeOG4I15FQaSS{7|7ZSxmIptzaO+M2XQ)*eGoh&T@xk1#YKyQ*mVP z@jpKK*iEa(_g^&IkFE<$Y8B&dV^YenvLzlE_MTHOoW6eScklbb>(A5$nzh<}>BdrF ztz)pGW%!MTu$EwZgiQvPV_11O>`OWscGZ$uTgj%?%f^fwd}>`_QZvKK2vCN}9)@jf z81xZWFs9F5W?y<;Qg#X%%G~jqufKBT z{>J=BXMwS_Ov}wxF-xyt%6{YZ!%JVkuj*=}^a=*Mes8V8I$5&fCdXmfiE9mC?6|S( zOjr3^Z>fse?cVa-$M5V@6|?lZr0lmL?+l&xRMjfJ+d?s6^wBp|$1J-tD6_Z4%ii7Z zD}%Bf%$l)$WwDCyYNJ(30@%Zj-yZ#`mwvTj$lEVpxV=p}W3s7uOvAerl9|IG+Td`X)uv-+n3)kPQ z%gh=5va|TR{hY=Be0)8w?!|r1%$d2~_uZsc%{om9LZkVbv4_bR+_OS2Q;)P-PtueA zn#uMX`ry!>2XtT48bX6Rn-2ZAzg*DQ3}HP@#tNNHoeykI#Xx*=w+ed-AwDvJ%UYLi~%8C4MJ#ek*-}L#D77L zI>rpkx(J<3k^T*Rz1{0}4KZ~J4eqrv#N8uDXqeG-N>?WZb6mHu!>W+3T>=;9bSr=9 zPOE}*0#^zKLs$>N5PnKmrjkq5*rm%?S-)D(P&c7-w`=YsK{6Exrh z>AJU#*Y>b>hLWW+6qOyl&4Ono-H?bjoTS_G%T%6KD^c~ z8m8d2C*pcG|LV_j%plWhpu8Tn8}e1jD}RQQN?y+z_G;vE(?NYPA}@mHx#Yvk5M4vT zi|se<#E8~C+$v=r=L6;S`N*DA3SLcJ+pbdZD))VsYh_b92fS!2FOH;=53ji$QYY{# zD(?4L9tQIrZ@=}g_|5+ql-IX_5uXxxWfS-NCKpEzmU+47aPt`dwMh9F3A_^7?%k~W zJtgv@v;pbsS+`wfn*@el1ma?IPFnL` zQC^Kgj`_*BPU$MNp7H2$)_D%fixe-99Le#?r@T5;8>ZmZ@>+%-wU!+(uwiVrk5FE@ zJYIV$d9_<{PsvN~5%-l{?0}cXy4_RBiPxjcH59zGV@}r{_kHP>0Vh7?2lLu|wuO>c zgK24$yn-Y49AXwa;6;e_#S_|Obo*s&n_9u^BVnHOVov|CPoqYRgYu%X9xbWhRX_Wo zbP8Uc@qK!HX*yJ$7sXrai`FEg?SAy0s7Gl3I(0JJ^#!kQR4thLOm8T!Hk)>bDtOht z`K7ah7ZH}x+~>zw2fVDe_YA|+$!PzoGEBj%M9Alvl{WU;u=>%<7%;D!-TjojVpete zh1ZWv!o3|1c!{_798GE2&XBcgt)J?XYr4!#Xj=Yr%OL2K~Zo_3&SL-HN<$ z-Z3wRCp5|E_P%!hnhIW~x>%yesS3TNanS1(0NE;}xPJMgiSMsV{zo3%Wg)Hs-ytNK^S&u`! zMyp9a>+#&^!w=DZKg>j}Xc%?0PvsWG7bvgp?=HMn@ba1Trh}5#$I5*MXAE$_OFRy- zTAoivyb2Bi%IDHJ>yqDZG?hX+hKXDDtPHqF4)oh>nz8-#H%Bd zjP57K+ zOg4`TkKC=1P+!*LcEOMHa|GAR^K3>g-!o8NEt}Wwrr_lteXNp_7o9J|x~RhmymBXU z-lj~pZvQ-OXI4Bz{tL(LAum%amSfk#G3!%(Or;4= zRWS&PtCi4lv=Z0+i8++G>YnD9X>Jb6%X)mIC@L9U9zRWsdVse3f!`mdIy$s{{#;-B z9)j{3&?Y=e!K<;Qlk#a{&AOK09J3ZU;3Xa(#iw7%>Gtb=mthKCH#$sRb?wvV)u&_j zc|v&&G;Hdl+r|wdRzZIHw@Bd}IzNFZXP5 zE(%^m_~@PrUJZ)%nV&MUj{{!T@Jf0w}Z-+RFNk)%X{lBMH@EV`}X5p$Qh2zaj-iGe?Z2kJ4 zcNM%^k)vBFc-3v<;Wg(a>!7}V-rgsx`>z)lqVA#n>&}NbcNd>pof~#Jbpl#n7eD(> zQ}C*})4#5Q7d7yG*`>Nn4tR;LhghDVlhJYe+~VO1UhTi+sB*1*iT*s7@fna86Pjaf zEd{S5#H{TKUd>~?Z$BB)*fB4Lp_9|=j)wP#DR^zTH)>v*jXldwOFt(Ql-C^phrtS7 zdqVq%DtNWHTkH5|%E99a(s~}^ST-3wzHj=hhJsh>x_KV7zPlqw_W50)_5`a79Mo39 ztIL!H2Nb+oJ&zkPWpcQK`m&yfC^|Xa-*<~kt>D#b>)7#IzXkDY>z^71tS`2cODE;) zp@F?VZ&vW~&k)-#=*vcRUK;D`G@8*Qqw8b9tEjtZzkjpVgQ^}}ylSe0Bi2KCtv)nk zy`sKqmp*V%!K;~vYi`ZhAP2mDo`7JCw_c<3SaTH0>vr)G zyA-@yjb5m<3#s@=u^o%YIN)VH4{1qlGO`PAd!$kD>NEb;@uI<1D`s6d@2y@x-T^P#lhum*eKNZLy0~i19khQnzn1Ql&x>vA%C;Dk8p_M7 z)!fDkUTb|fZBp>^SkQM_(^Vl3d5N$%Z8BPq&**syUQcUk4jw97w12Uu8_vOb#kW`T zs$0rS$!jXPksQ;)F)vZhVUyAG!m2grDtJXO_XlpxHDUO^M<(d=dp2L+Rk;zb`$YTF zeHFZl&g;JN%b_+&;6-S;WV9arugy{Likfx)<(t(NbA9o7ksDfHe}|Xo%8_I;dY<#N zu8o(yoCD3%W(`R)w5Z9@teN9Dqi8f}c|FfDEKiy|%13z@7hl9Z>hd`xbK#!Xgqac0 zlREyKgZh`uDt=3z;2D-OF|@|$-Ykbv%W-1ngENy9Cx$?bjOlK%x^8AO$C9*x)|)tr zrUhEyNV7?65)6z$(_%gZ1szI=z_y)#^C8WQn;x;5=bZ(XCWAfbpbpIKS72h`~RN7#8BYDy75nF>o??bns;mOcHcJ_N(^`4;r{@0 z`~B*s*!O>KW7+YeuiS3$lZ+@BGZbAL#O&J8Ov0S)g515Fd;DeP|*^d2Q zR(UAYZMpQ(6euz5!3RvlQ1rn{?B+BO8U}0u#d;e#m6-l!>_$ZiyZQ6_?7~|M!+ZiFf=c{a`JzMbTvadhNH3u90u% z5jZf+=?58Dq9^CScBw@92WyEH8M|z5S=NxXU^CN0C^5YGhun%1L&V%GyD6SEC`t@f zSf)QbhNA$4wZw+D_POi3?K-YqyiS^(4Y<$aULyQmizNrc&hCK#> zi5Ln(SU3JY&zHBW^x12BU^XreN(^@pB5`1Ued9+_2y2Pm&pv$MnnHILFVB4ddNamg zk3u9)OuAD3wR;N`hOiQQ*SzG(9oxzi#hCS*pe2Sq41tLlibGh5)qJwUa?Jd)_d4CQ z>QG|X;}DpLp+JO{*s~(_ua}G(Fl;aNDDPh&hBpv_i5QARScygZt!t2>lxKmWrN(A} z62l&ez(fp%BCN!|NA-HOq|n)@iKg=gATj)*2u#FKEW%2xQ*5`c6;jRNOKmIweUHRq zk40c2hJq1RViiBEI{36lRMW1xmoI?U81`TUCSoWWVI@{h)9={&xBZKk-{j*CC5Am3 zfr%IjM_7r~3h-+5d_we^ls!g$g%ZOaj=)3=#Urf5rsYlVTWRTqdb&M&GmsemcmyV5 zC?H`arad=*ihkDkPmlHgm4Fh%9+1F93`HcY#5lTg?6bqE2Nj9w3$;}6M$( zu|b_ZGcyP04kZUxgFd>zACkaC48+ zOqZ$A#B@h2aAKGP6PSph$b^;H(_8tc2W%j^FN}$p1ts=(A^usBH0TutV&UXA}oT@H}l0XrqDG8})h(&uIt^D^9u)*xKLb-nJ&+ zbYJ$jc--UMnMSp`E=heJjv(8QBV~U@aI=`U|Cb~pAb3wPnWE*fAb8<3C;`Fgvzw+( z?^8}!!jwMIHu-;61#kqESOp}GDi~3#|4#(=@y* zOtjdEk?<&^v-otVxVgw)(-d=^m>R0}llX`f#ri?fA$k3%k4Z^<9ib^HiMR1nt|NzE zP~5yY%Ag@g!EB;wy+N=7F_4^z6KNO)lN1ZmS*q+hcel@ubnEv&nULs<3AuN}bmbk57jZOQ zL~M8ZSNBONMWeI4thu*aXZ;w@g+lIbFb*g{gE*+p4Y5-X^4Jgz^&n+qbe4+m-nY5X zy!3-Ttr`^qa*$&&3Jz-XKo!^l-2QjW~-Xr(XACRlV?YMC;+SnIU9mFsLsc*!$BU8fq{dR`_Ne?1YJI8Df!@tSEgKv z_Nw@UdXOU@3Jz*>FYIuT$6jFIAf-8UmTAXpH@MTrrQYQ>oyP*}K@M^t4yyAk>~N6B zSzzEGWi)h_(%D-cA2RLTth@f}=D;|hcn0F2I;X-u2iuqm3>>87g?P?7W|(&=#qlF0 z9!Gx$a*#t8h=c0<2|FC*@e>$0NO=mKrC5VWZ3i##$u)**)fLD=j#3~Fs&ggma1hTI zYGWn->N!h_N$4yqJo?-Vdv{~~f`iRiAO|@iq2Qo4Fv1Q8d0qsDdXT~oI?Ll1+6nIp zeXT^9V-xM#ob>AjBj+9v2h~9kb~wm$ATV%{A`Lprwi368&B*^H^}B&n63t5f0S7tF zpx~f3;307iXubmm4pLA-XDKmcW?|pGD<`)e;g%V=E<_HtjDnJb%HRe&9OStT7&u7r z1Dz$+`YxC6bN+iP?yGqk$U#mXAP%Yn8SHS7=P_X5AcYEamI77hH%NPOe&&58BNL5a zBz;|=JOSdMI%vTT2YJo{1`bkGKxbK$BK&>sqH*Ik=9^RwRu3p8fH2pBj>TEEURtIL2>T+sT^1w~E_ z2Xc^&e#Aj_;DH?u^1K5K93)v^XX!QPUJi0y{c`Td=Rntm?CB#8s)G#daFFL1VBjDr z_&UqwbZm%6^eiT4wTxw9^?>Yq#6fjHfqf3P`2-j^NMgOt;-BFhRqcGh(vq`N?F4d= zoqEJUb?|^44)WXq3>+j~UT4XeYH0C67b|8vGizEa7zbp^BMzzq1?+H;=LuloAW85# z%a{ruS7dq7ct-z64-)MU@dx)0@{j<;L3L0-;vCSN01O-?wOwb~Jj?6xi(_pwEQlUc zA6O5v)s8r*4gj#jLGJ&LfrBKh>nye7+-p=Qwx!zWC3z&46r`9s@bZ20G%P+OXda2f1HA1`d*3uCrXEsmKCfS9$*!QtAhg zgY1>d9Ml`}+u;W!x*hED*{!PZQ9ur| z*)4NWZ-}qL;iuenvmE9Qbnlt?71=iWRaa7Y+%^HUPZ2w2|j%joE6To;sH8QJJ-cHJ5Ij_y-MCM_K%+!GH|Z8Li$I%{!{e+u}7h0L=;1lU`m?cmCG~DwG241| z(IrPy;JR>vfePh-4Ad8!^NqiKc9_vS0XaCqK!tKZ25Qfv}i{AyiL=UTuwVXPAjR44~zpiT_%ZLsWe zv89nKSC@v>gEI_NCZ12Rx^zE5$|bo=6*HSM`; zKn_kYP@x=&ZUYs{0U4-YM#NR? zaL+_f={o*3kb@HpR44~zp!RN0?cHB%W{7LM&5L0ioME6sIUobo(xY)mmcH!f59=2| zImmsg(Q}ypwSfxdfDF_HHBYu2@^Nvj@ko(ozpa!YNiFz1vj*rnyY!^XyE%z)(HkGlmjwQTh2`JJi6$Sp+eaB-mrRbhJgy@ zfDF|16?WzEFJ04X;^+fFvx;$ofePh-4Ag^{UR2X`Sn_ga^%v@$%N%xGa)yBl<$w&- zHlYVbS1jMM-jyN8pTX7z>cEVyoBwMA70Lk_sD+zUTQ_SgqwCuvJ{^#Q6AV-+2V|gb z_dI=d+toTV{T6)(CSX}77^qMV$Uq&Qrt#|7!8^(~eMteY7pxNuR44~zpq8yhoW0xC zr_`VVm8SyNg%b=^Cuc*h zi#}7m_c3YmFq=7+qz$y*#8EUY&;m!AOH7ztndnSr#YpCH z^)8?I?K2rlFHizYYDrN)HR>5Xp)r_DW~10=*i0GCf``UPY8g&%=17B)Hkibg#(D#z zXGM*dGcgRI?c-Z=&7Xdzfi!_5FP?W=rwv1FB-)JZ8nP^OK3@rpw${!@!POW<_>lH z{Pvj)$1w&{bZ{A#qm86lFY*(#W-TL_2vSc_9(sx;%&hpe#lM#}8hO3=)isP@7C)8J z69Q2)DqF|jKGP^R*d;l=!AOW*b`55hV<<{6vs%t1{=>vS??EsGqoru0*l$)#8^ppg z8F@mlHIaHzg{B3z&8#siURql@qn|r(68}G*;aSGS(Pk4VR)<)jW==4ZMlEF~J;W~4 zTD?~MSDGkZtWmRIFo=Jn_*)vDBv_iry@Q8}Ch_OZ2!zHc zkR;1COT|q5?K8D{Qmh~A50o{FKLU!=3Zm6biX2#;CrQFXEB?OtB}^o%XGNYGUIe5U z7oOR~iRDF8C7$Hi_Tty?&Jr4pULaXf6W7zExHt@qi5Gic3!IiDi~{FD(gH)9MU9#h z>ysc1JTG=L7Joh>D8?Y@*;FqYZ~E;s^;)e~Z_;oAW8`TKD~MC_ zQM{4n3BpJkX+1&mCZo~75PH_2wf;Ao=T46Qe)~)#MNs0RAOx1t(gbM`OGx}XIF>hR z#N};bJq(>OtOTy(5%1IiYs5MH&eX$XAMUxHCgoAXKKaz){rI; zWwmDU3mSRxqs=Vi!I370(1?X^HW_J3(Cdw)$v_htMpVpM&dAl@7vAW%&lDGfxUNN5 z45Oj-yjlEM18FicW)X+j6x!@zG#E4nN<(T`N^Dy#{(MN5rdcDwX$>T6(36w*ht&A( zGsWsvxB4AP@7bz<<$wQ7N4=^YwQ_!vuV9(qK9kc>l!-KuJYl41Ev3;LDT9&Iu!O-( z8(BT?VH9@`aZ!;JFYfh(xWSuv@rw)M4@=9^VxQ=KzORb>{+Z&>SF16J{~NET30}N( z@HEee+owh^{sEr$;0z{KT;oQw_>-hr@p?ju-~}V85w|Cr<%q(^YJYkDYt3^GKU4e( zX~n-wYq0*i#NA6U5+<#IHt4NCO@^I6;?&eX{Y;IXG0-$)G;0JghoBetVG}FXtj1`d z#9y1qlkuUGtex@HZC+b3oA!V(g@0yZZ0F-y^UG zFg)jkXa|@BigpBiPSLPpuH(@udYo_p)&u@%2bcqjcGPvdv$tT2aVMD?7g7T`;E#5I zIiP4q##SRoZ}(c1YRjpnYhWCl5bXeSK+%qoyl?OKQM2}PC-~h!4)~)TU=AqSG1+iM zyLoikoS$EvEC%I(y}3A;1B!MGEl6=&jrkho>t4A5kOTf`2bcqjc0BXZjVjo!!D~Z$ z-$bXC{)x)JX?N(alaB8EkDH5wIiP4qT*$ep>jrdrYk7DL7!76dHx~zUK+%pjod*rQ zG-ZC%fcGIYfa?N(v;)imMLSCIz0>Z#{p3~VEWZ1I9Pmdwz#LGtBeL*=-MW0==ckQ1 zLI647k9L4LplHYYr?ImZ)NncJTD{CdAP4->4loB4?I@ihU_p>;iSqN?t%oYAe)ZEv z{C2(gA2$~Vb3oCKk^L4IjV`sORpY}mGr{VC!5{4ab3oCK)NQs`pFHa8_RqEUtOIhu zAMF5hK+z8OWoayB>rC62s?-hWy1*ap0CPamj%=Rn%1$2Vt5+&TUIo?z{%8l71B!M8 z40vTI8QJUel1=-7sttob+5zT(q8+afJwE3%Hv72dzNK0K>j8graWDrI?bvhe#qEHR z6))equy7QR1O8|Sm;;J-%wQ)xDKcyM_pUd5fRQIBL_5G7P_!e*M+5B|ykbjBU5~Y} zdT>H>aWDrI?bsT#r@+G-IhJd?rfdu3fIr#+=76Fdj~_%urmGPDpqhJ)i9incqa9!l zDB4kN$E`6B#%^2OGKDV(~=MyW& zhqnfDz~5XP%mGC^D%>BEqbN0_bnY2Tf#+@(f3yS40Yy8eP1u{C9not{xgeo9upaP7 zJHQ-Jv}12qx8k)YFJhy^d#wO+z#r`Zb3oCK!G+`f-qyIS8JQsf*wT^3AMF5hK+%p{ zc?YN1lHv8yqx6;sz?8J`;B~bs{crTMd1mg+JN>=76Fd{YSnXysbd- ze7*aQg*M&CAMF5hK+z7bsD2FxHW*TW?OtE#Fp9s%A<5AWFb6r>@jUm1SN5YFnp6sP zo)w*Of~O4>$#G)TKuj-i9ARcOJY_bR1V-b*YeWlQ^yEbiUDU@lqGxX4MHgH&q)CF; zbB63wua$lFtDdVBoqoMlWEWLmTJ+lWG^5uVDJ{o~Za77-9vXoVOsqyQnFUdEr?s4c zHX2ByK|_nazGw(HTr)F1PDQ14=+TQRZNdNESM_UG;^o>ggQ4^Oj_Ve7`0Z6ztAcX^ zSBfcuupWXT{FJUtC6}tPOP8+-4eo5}8Jc*%ecC!#U9{<$a*q4VJN$x)p zl@`nask9v@)baa~>O42)K-W7k4o*;M!5olEJLLPkzTF}++}Y5+-fEd0%Om!TgL1&G(te@;8$tE9FR(Tv_q5V+^uh| z3VIi80CK?JB^}HGskD90xSVBfzCUnuVfGLx2kc$a!5olETWbt|U|W;-epHcD!1INu z6dMNpcD|?`vwFDVd_jc$xD|Qfyz2Ravd%r^35^!V`2wl5eKL)^|8@;I@9K{b=&K9- zDlNDkkV+dCn`6X(j|x;Yz0ZChxGwOkv|tWMrLDiVbJ)J>tm+ZWs3bjVyF z2mC56m;+L2Z+>iDedg9KX$CH;{}RXnze)?{fK=K(x#KD}n3;QFw(_}w-P){5G3GAm zU=B#7J=lHs*Xcr^MZ-UB&H}6l{39a&Vc(5u$ffE@6vv|tWMrEQ!3&DmwOnwLIV)C)RY1iwlP=73b%FCo$O zEA@R}CnEJGXiF6QDlM1;Qfd1vJbdWnrcy&XFIjU7xGwOkv|tWMr7eiY)aqdPcZSCtP%A_n+wtTQY6ngIdYaEiS(t_(jR%xgAd=&RnrS-ISNtZjK zJM26x8mQ4-AGLT{F+eDEbqR0|g%g^&I{bo;S}P+1^>y0NquFZudfgh^`!;N6afX2k zZ841u)VFoNm+dxt_n;A8cbfw_IKe=LazF;^8>NvRU?7!(NSCZmK@nq#5gzO`hkHvcp0-AOm%N9+pdefn|W4vuoGxbFitQ~p&XEbN~gXvGxkQ~&DrB3cfsnx83rnp12Rx^u=|Tg zyu9OGuuZeNKn_kYP@x=A7NazF-ZhjWppj&pWB3mh|GC~#dk!9ay_KnCioqX)x|Xe_CQW?It&$^pND z3gv(d)R!eU%`R3g%JWXXD1Sng&OGTRQ;A!3hQ`lmjwQXZ#?ZoSxme@w*>$P5?PL!9ay_KnCiGd=afipFU;! zkhj`57zbwpa!Dw#9IiSmb=jxC+8#5^DeCm5(u4#+?q zc4@k(7G#f8UiFb+;=<_dm)feh3@KHH^^rD{clUEgvD z$iY2ZoXc;|tBLT@Jr&QZ8x-p^KV@Ve)#ufu^?9{8Xcx=#YGj}mt$c7?!P(W#UgJtY z&lgTGP@(Gr8K@Q7+&)r|tGj6Y)~(a3cg+-1GV1f zG*1ikELx>m;io_o*BJ&Xv>uRwO7tt(rqS&JbD#LGz6o0w&M;7+9FTz;ylLs$@jFt# zWt-mG2jt)c0~N{v8K|q)Zo3j&(WlVKar$5&2PYV)P!7mIE!p$Zj)Tvd-S8@KYBG?6 z6AV-+2V|h;OF6fA^@dmT9W6B170AH}1}c;TGEhHXTG_?W;boPO*!$~&9GqaFLOCD< z)#vf@A7$3(^DWmf^%5`#>;@{712Ry{yiC8QXqMDhsx)i<1jym9nU_g7P@x=3fRI(v+kqKz8fD7L6&InHF{3BA@t>dm~C7FcAU z*3)S|J-J@xYMM@C!hsxa&Ft3vw+c!E>5uWyrU8Plsi!J)-oO)Q}$i6j_@ zU=GMY9aq0)zw*TW^<}bb1orM?@EfRL4#+^wmThaJM-MoQpVA{M`a3g&f;k`q zH52_d-OwCIS~Mk%-Jl$>8>nCo$Uv>3?f$)O$~jpl)Ts(Iik#2`70dw{s8mG12_aQW zmD({@hy>OHeghTE0U4-`O&Lm7-MTx&o@eA z2mA&qm;*9UceLCwW$KcEB5nnGZ-Q}ff`JO=fDF_f>8r#~UmBIK;DYI6fgJD~s9+Ar zKn;qGpVcQQZHZTzZa|+u;5Sgg9FT$fQizM0+A?s{2c0jlmpp^tKm~I^2I`j`B`hml zBNpTx^8q*>n!#_Nf;k`qwP9~#$xFkSb`b{`LwiNzH&DSGkb&wqdv(D%-bMTLJaZFj zUgGb83g&z>8@-PlgFi^o9 zkb!z`%Iuom25;RrRl6N%s5_wtDwqQ@P|Nn<-=8bB`og3Ar)~l30l$F?=70>;J!P`i zj?7+jL+Mf5w*fieH&DSGkb%0Tg}GuCj{}b)+GOtu_KYL>j^+t#1gvV!GX zYoKxH1OpY!0U4;};y$%~TQozO9iuJ+J0>`x2P&8YGElXxW*y1oTCjGe@w=hP4PD@% zw!gja?lNV;0mb|7R?p)`Oqm?6`o5ba#KZzclS%0v4(5Oi)OnZtjrWQ8qTxn; z;$4;kCD&s?lpB7 zpV|K@w4;hwE8GSum;*9UXLt7R)Z*EpFIyk;Uch?zYvyH=4OB1(WS}1EnnDvAzhjh!j2%SwEY6`uAjqc5k%rWVM4V|L) zt_%@EgG0lNrc=5)DadIqDGUF4D|Kt?{`RBfTdC6Ow@`#9t>ML+sK233GFF<5fn>}i zNt^T(CvYZ~(eMPNH&Oy6)c!X2_Nz?Sy>(x1?i_bN>XcXAs8Q?Iz!7Boair|82yPbB z_WzPZ1O)HNbBvb9g5ZVEpacZ^*Zta04Vdbky~K3&zFSGE0yqLntO6286^y9W|0ja@ z=eaMu`q>QF)!GcWQecm+VcjYjf`rh3KvNe}4Bn)OVA!rDSqYQfUycIL!Jf%6c15YN&TDs(bK8bi(eAsJQ6Hp9=A8|mNB*W0~r z*AP>u(BNLbEL$fS;10haNec{Z7BnnpFpAd)1J5%iS}Qu?W)ou&^a=xf|HiP{r+q41 zia47e`X(B`0S@MX4De>}mzVf5zkGxE6S*D%>jA$34(5Oi@B{VgANSqXrCil@y`UWM z8{l9L$N(?zl5RpH|14pBbM+emtOxuCIG6)6z`I?Xc)DWSTtTz5-JApDfZqTIb3g|8 zg0mghjlPvDUB>D{J{Sil7~o(I$N+D!yn68!d52anG=2y)vyI;X2XjCMIGr+WiNIX9 z2EMF(449O0LJwjv2V{WH@QFE5WLW(*aar;l0Im!CJ&3^^kO6*vz4<`kxpD`>E>(B~ zcI&HIG6)6z~d_%a}Qb>ws%K| zZySId@EhP@4#)s6p2urq>uOK@diuYA3FLs^00(nG26*${bHDfgbaU9Hm{I3|9Pk_9 zU=GLtU-P(M>8b&5X9d1*0!)}X!2kzyKnD2cbOQyKcl~OvJem6btwttfWHSZm;*AveRE_;-D3CI){8rgg7yf* zZ-9e2AOqa8@|Z5AOT?UIvx4#i>jA$34(5Oi@X&VCb^gm--w&?p`4z|kzX1;BfDG{G z#yur34l>v2Q}#q17zZa9;9w5O0B7pB^1Zb?8eRyecpwM-J&3^^kOBU=p?BWthaQsS z0w?8^ zfP*<813c=&X17K8nnVx1Mil{az;A$qIUoc4`=oB`GjF(bY)bAYP_q%g0S@MX4Dc#n z_Lr*gWyJLhnMVVYwk&=F9Lxb3;7u-V-&tzN%d}PgTkHZ{7x)cuFb8CSGj%eaEwHqj zaPySg5HJVa1~`}lGQhR&?*}wKbSD3bDHn19Ip8@dVfl_BDU|Mjl+z< zJ5eVXs1CoNKoNS4-o%SNmkHWzrg^Q{)mI~EwFcH~G_VZnLA*Ecylc4SXv&~H7l2n9 z2ETy{=70>;Y&{1>gvTtodh=U4sA-4aKm~I^2I|Gb%VVy%3#A4vuMX{Xg5N*|b3g_v zlRA89o7pi9YD{?l2CC-e?QPA|wY-8XPnr3x4Yl3X~a9VV^(#M(}<^ZMA(l^!o3};!Awe=X~EHy zHYq(mz#Nc)I;7{iU3Wi3z8&~(-g{_0+{A65f;k`qwP)0~yj?E!srn*f4m7)t-#`U( zKnCiBYUigMFL8Ix$5Hk5ze=M0cc&-LGO^d;Apn^Fd19k0~kalH%WGHH^ zemNDe9`GBeU=GMY z4Ca6g)FBx^pWB&Y|C=o-QUIU$Gx!ZuFb8CyR=qyx{pox8=5ocd0%uxSIbb$W!5ol* zN{zX{C4B1V_@ft7P6VzC{01tR12RzC7)wkW_uxapn^Fd19e%+Zfy$} z`fy?E+Bm2&fZsp`b3g{_njt+mhu$9_?mGD!w6`XH0~O2x8K`mHbupddrbaR=<~9Vb z3;YHum;*9US5>ZlazubEf`AnCo$UuF#ENyJA?@jzGzWWc@GtLPHDwqQ@ zP#@4${yP&E9cdB5^1|xD2|b9x9FT#U!!+{l529XV!$V^>!#J?`4OB1(WS~~bp^NjH zR-E49m+mZ(1AYS)%mEpw^RvAUJDuZ4TEG8p#R56tH&DSGkb&A^yZPL>E|Wdpj-EIg z$N|5B3g&8r<{1a_ul@f)aM4#+^wmwimZ__$$j4ox1uA6O6g4OB1( zWT2)RqrKj2=iNu9j;=F-9Pk^cU=GMYJ-7aLyY~e`k5(Mkv=o>FZUYs}0U4+lM|?fF zkv_ks>#Rtfp42y3m1m3wL8CVqNS^j66XoseJ<~01*EPXDwQ@EMns_8pd!k6!E)iipO+D%u z6K{m-?vX?4UyL-=#W~%|U%Jz(;G96ktMW3HT&l({U7ql&+)e1*?V3ADkW2-Fsi5JT zkyIs$tVDC31WjvLrkoo=R3eBC0Rh&IvH@Z**)Cm7Aprr?u1Sq#-3*@UU$U_HEj4<^ zK+}xTtPzZ~Aoek)Oss)3Ym5fUJ#$JkdAC^IG@QmjY26L3T7#CQ4GhZ(M#7{u&|;@q z@yEolcZ=68Vlc6s$!IidNseX-6HhT3S}>9tQEH`Gj*x6t8`JOM0r|J+O5Jfk_AXI_ z@lTk_N~?`&^T!X*Dwvk->)Yg7#`F%Div9sB{zHl6#njavQ}@rQtxP2|*2c8|T2t?! zVXLQ2eN+2PV!Pg-FqQS#1g57`R#P$^Q{v{eyN;N$;=B?KOKX!CQ%7|wS++K&c?wQH z_hsJcz_zWQhC!Lis%-+({25LvnLcaStC7o12X)GbOvSB=bIjD`x3%w1x&5CF?zg3% z`G2+cC1cmdbi~*6$5t-rbH^*oszm#p{Yjn5jbm+0o4U4LrC?g_`z+VWrgRRN(pIJ% zNjYYkoc2@6{LF-gjfEVY?CSIeOTpT%AX6l~9&13x6BIREs zFiqqV?i#C>HKJ7B7@UZccY(tnGoWH{THrikly#V6CA z3iC@i#y9;+|hJ zuWd}1TyXzhZM093p0l4O+E3w6n9BOKjcM(hUpgz85@8w5eSVB}z|?w4hxq{Jgaem|D-Kyhf|}x0p)SyNzj}HcRa3b|V5)U%FTT%2Zb0ZA^V8z3HH2 z`mu7K!5IS_Fcr_Htd{37GEHrL*5^Je9}jreCmHlMruY84-0AzB0k3M8z0nQG6lwG} zrfrAit*T(EOSxc2^RKfUGZnA;OftKda`aqEvhi(9Zx(*`R&zQwJIxIL=bqtZ~Oa#SFJ>HLW~luYZM=9p=24(il;-lr() zAG_{Li31x`Z}QBl;MGg7x)&R|4a!uG9oU#QwscZHldf6U5}ae!0tZa3^VtdRU%Nk* z(hD}G;cM4yzOZ8V!Az!eouN$S2txwXW8YIN>a=FS`2xYETdOlA#q&O^(TFqe|EY77 zl!UM`t&k%2TE-~NhBoE{zJGzKEe;_ujsNy5(;SPI^>e^fJnu6cP5xu&C@EE8V>+yB zc$@ItXALXe`-1mVIa*<3>b3Yo83j|n_@_6T@0;U*sr9|7M#KMO&rhXlDQ_Y)t8sZM+ps>t}O~-SflM0aNSQlpz1LYm}7surbYdq2ZzomZddv z9y{3s%2bYg*q9RGqkAftHYnC-e#*!`4wzccrW%e;!h6%?^o~zTj@X#aIX-H@TWm$h< zWJ)MgIf`Oq+KL?AO2M>l6A!OBFIfk5`tuz1&)uI&i545v*9}fA-VmMdPLaj!_d=P< zu@)QCnmhgLDwt9O-oa++0yiTVJK6%;k%9L zp3wfG3Z^aY);j)~a`0S=w4O~lmi@=xM@gw28`H`~ujU#Y*t>Myfpy9NnWE^9jcJ!D z3l1olwt5~nV#?%j2X$&an^N?@c8-z~KnZnPTDSYa*@ySry{lk?GL>UMHl_o6ecr5K z>YpLDUC@_}>P$7(chNMX`NyvNQkuxdGKzThCCWl#`9AiNC6?7V2@f;fMLpp=)1`I@y@E8of~INmKEU zVmlU(alq7iHr0~aWaddbdUqlvrff{>xOAb~K7XB~cf_rAP^NNh>L=5C*&n|vtEkh8 zolozrUO(OeQ`(c&ir1)r?EX|rU)h+F^A38MK9=#!^sOn>=V#>zmW}CJ-%XnoOg$F# zUDk9}h(o3#P)_@gt$iuUWnFL1LYymsY28v@N~TlEjpUdX zj+u&9AN!9zla^9pHl~vw4sO%)oY(tt9uL7zuN;Z`$@D(azI0y&)1vdbul#bTO%j+A zV#E7?>l!5`%xp|Am+HM`*9K$zdHFL_(Ear9Fipsq{ZsEw9HrItTCG-Z(r^M} zRZILG_7pj)X7F_Q1zC>bjiOmh7)c|oCrDmQn;95F&l1bQaeFqji}hTc6E0A3eTI!0$PH#W8A zTnty(jK_fe=|m2==OutSNQoAmB`4kL)LC&%zy;4Gi5f#mKWDLWm<6p1)j*4#bs^_j zFsutHg`%?*pWz)*d`X&33%eI}2kw({07bz;Ereo+gPcLZz(Gom=q#ge#Fe|;EijEf z=la1w4svJ&aZnA8*x?}OMlf)Y(jGd?{8BGdH9gj@LdDZ16E#1QzAjME194Cdd)Vh- z%X(noASE<(mTk|!JX=sB%+t`s4LFAkg)w=L36^MgssKO2h@qD3{sraksEGY@0vy_=uy7`G#9_x$HbE*J2$RP*?2elxC z9S(910z*AW=>?r7L(WN)$DVt>le}@KDv*O5TtFOD!wYse$k_!99Hhj7&ceEUePyUP ztC#jc&;%d{Ic%WdpcXhtoCC@mVBjF71ay{ljc<(F&)t3EHv2yGISl@J3E=xl$?O;R zN&l`JAC-%F7yo6n0IUaD>PPjUD)!r{2ifb#P!E!gud^7>6q=Xq?)y{o8)S}yaX=zI z;-D(y+uk1*DakUxG=Vk-egDkuw4yw|-9S*Ydj)8+@s_QI2&M)1ut^BG+v$aDKwJVZ-U(L#r zI^v)zs@vfpd+HcCNOrl-;%-RYAZ|>m<{7(^b%FIDi{*%es$6b|gY1@L;2;^{I?EZ) zF?>WcllsJxn~5gslU@%<21guJg>d^EY(6*!4wA(!zTdntIZxdw?eqGVaD~o|kOgkU zK~>_m!$EeqF>sK~Yn>(i^{q3XReT;1e(&iE;JUy+F9CcXCE3zC%awaWZ;`FrWuN}S z6?o2KWlV?!Re zTE?Y{h0bG>WnIKURoJ!5A;H(hz(KNXMK8!ar`i055d|vt>ar2IE@Z)0!9h*3wa>xk z*ka%ynXx*{#82@DjV=ql&$b=D49GziIAsp%Vyp^>pI$5m4wB6(`cWw(ixnEZK5)R; z(+!dfha}HS0ADv98K?}$F=DfStswUQr;Vgp&l9|$HES8cM38!d@+hyfxDaXPluegQ zGsIHE3?qm}CCHVeJ}x2gN_KYTu5V zf9%M!=W;&GnjW=)beCZ@nqut%3D`-#`U(KnCjCQa9rJ4Ox(~ zz?D_wfgJD~s9+ArKy8rylCWJDn$DQHMpGCECm5(;4#+_Le5q*P@a_xCRc)9C`eYNo zfePk;4Ae_?PGpSk@Mz5X`PT~q>jA%k3g&xnpI9P zP{ACKf%^5uxAKo0Ri5nOP1#>_KYLi@>Ti$5=Hh14{J)mYbeghTE z0U4;HQe>&Naq-pXJG$2z1lu2+V4#9IAOm&5xA_M;nQGkZ68#Wrm^BZg4*YiA{2v>r zU=GMYoqsR3;Pj7Mckiq3(-l|`_zhGr2V|h;>rng6Ip8-?!5ol*x`-9Ng-t#=qgBY^PCyR$4OB1(WT1Y0dDydiuT81P z6`t}Q&cW8A8r@enKBm&9I`R8zQtncX;l3Ifs97KSr0Y!AZvS?3U+8mt{01tx9*}{0 zAzj#p8qZe+=JIbg0#*-BFi^o9kbzqI%9J$p`%9J?zLoVr4)_gJFb8CyK5*TAxMY@% z=A-ok|2+d0%mEpwed*;T;!9;OIq`n~-N1UlZ=ixXAOp2gnSHIUT)E)C`F0>M*~Q{F zP{ACKfm-rK^Z;_*$Fmb3eE^zvPB2ix9FT$f-YYij$m@6h&%C@NVC#axZ=ixXAOkhW zCqLJ1Zwu!2>HZyP;-a>{=srrd^{<`#D7o`5hWjXFpf)PdciP^7N?z-$f}g|SH&DU# zfDBZP$L^zbN3Gnmuj0Gjuyujj>!Ny4ZLynpJ!s?(yBO*L8K@1@cJbQj(L8R%?DLg@ z9Pk^c;Ces?>cD>c^QXBpH7lJZyb+KCeghTE0U4-a(evHbS6W~5mhXm{Ko0l~R4@l* zpt@W-a?99e%IB)1edYo=;5Sgg9FTz;nR?He8?*D&ncD2izh|I=IUob|Zt-r@gpL`n zWHNuv1*`}B1}c~XGElc~8u8lm<7oM-7ZiPg{_ zjJZHQ_Rn_L>Mpih;wuTs*mhboPnG)ti(}Z-zoeV^Ee))JWmuDz*3&f2YmIudkzq-W z(vwDtOGOF9-C}j!G)7X(aC$RG8bov3B(7x9+SaqIR^UtwLujS8!8T%tw+K5=Js;v7 zw}xv6B_^BOHe#xMgY6NM8wV#NVv^o%BbImQqxVM|#+Pp%R?r7ZOm@5zh^ciLwnt2E zF`SHuNg}w7*beXZ&9BE-e%o~G!mLnYvJIXyiOkA%&m$X zm>=iGLy5`WxQ&=<*J69b#Hi&^4gMWW#)M&TL{I z_+R=PyXSCo)Zf_6QG;VQvBNRi`4idr-G0Bk{l4*M`(@`(;>Iso=(ZAzsNyCeCU-(kMkOZs>NaAlax^n!9e6&&oBX;Lz!GC+X+43M zTFYd6#N?jI$%vR_w%dpuS`;_Je{27t_oL%hgNbcE+v4X9eFCut)6&Q{^QUwbf+O}E zViu}TAECu(%aE+jI~f=vIuV@rrL(tPK}{H z%*m+6BwOA_tjE<0F)qQc4(5o-J`GAtZrW@krmD-^BPMrjPDaEeuii%N^s`4>ZgTx_2_ZFb4kMb1Y&B9rR@=uJ4+`c zVv_%FBbK4m#cy{`z0B6Jk;iZ-F*yWaBc|Gd+8!~v2X!(cCM5-I#E!Nr6}jL-(AD8W z({n&#C@x?lrrNApg_x~dbuuC*WeRM>CT!?%W#+>hW#TI|j)W4Eg9SEXs-XgV#N@u# z$%vSgKCm6c2hKZPhtTY+lIq&?L}vy3!L<@K!L|`oZGfFS(MPcEsoc~%U{Af~=I7us zvzy{M^X~`opXcyQ(j(X;9>k@Xf~~}cFJ7_At6S>4SC_|ShL)I|RY(A))+yUwiOH?9 zlTnFDfd(6~(HFYw2Glz-y8^KxQ5o+~N=!~Q*odk2)V4=VZmOM(h)K~08?l}*ySZ+R zSX-@K+b%DmH74gD5{RjF-?l>xwck!g#H5gfjo6_v9)8VyR__gcllJjnAZANSNW@f9 z684D6F^ObEOo~(3h^@X8Ipq2t!`BA87A87G>Q7dsoT;!8Q|;(&kC^pMl19Vx$?1?J z1utyGMuj#Dx!mEHw&(TwJApNZ(ib*js=dGM5tEyLC!-pZA{sVgewt5T`2xM36qvua zFqD{_)36a!?GkQ}nA|2j84;7h95!M_ayRJg*XZb?Z|-wlp~U2#;x=Nc{lx7NlN*XB zBVtnQ!$xe+xCfW(zGlB}kJf#L5|gtZHe#xs$L$f5TaPCrVp2fFMvTZ8bltsr{Gg5* z_a-XC|H00WQX)2Dsy)i>5tEygCnI7~l*C4?cbe?_ai6|tn_F+da$t?2Jc*5%YBzHg zVzzeX$%vQ~I0hE}WJh2f|?R##InB4e084;7>DK=tJ@AoqW zKWI;9&vN+|kQmCS*odj-Q|u9w11iagm=t8O5xd`O+~vTI17?P`+ns20l|R|X-jEG6$7#p$m zg+{v0+d+7ptTdt&bXCd;85=Rx{_OUMSzjel6iX(jQ<4;;u@TGoG1A2|tW4;~J1G)v z9r-7#QqI!Yh^cmRw?|BF<(`acObXm25PK4}yWtFpEZHBP=s6iTf+Rz@&#Jk|(N zrNACt!@5-p>1q%Ia$UOwaA|eueXm$oX5P%0^sE?8GxA2B7sE9aXQa#oVd6E62PYU= z6Ui7vK}}CbT>X*3x)lG7WE1SQZ0Gs}rb3&G54Ig?&ZfE?3P{q7<0pRtyfmpn)^927wTFLzWPeaMoXHIf~Zm%@i-fF-YkyaVT1| zqmz$4d3;BE??!Xg&CoFiIoO3bsD`@|RWT~j);Ds5mL!spCBQgBd9IN9MK2b?f) zkb+A(OQue3rheP)T7N+#aT&@%$}A~3sO6UIaFAn57&u6AByl+0=(CLjxubg<Kx=llGc;6W6UOxwvgOnOla8OGQ+2J7GPuhY*7&u6QAf2VnrPIS_ZT2q}9pHN( z%mMdE4)AqTiuvd)gKo8~UgUY*iLuL`sy}RTeBG22KByj4Q$BX;K@Ry~s0S&$qq8g> z7&O?@tJwPj^)e(H-1&q12RXN+;GmY>vBN=*?qJ{`MRIhOtXD^^-W6JC?6c5^`+)00 zPU9dBs)-ys9OOU_1`bltMm%4%yA_tfI3Zhlm%0yO98ksvaZt_K*ymu2*F2RS^0frAu^5ud{Z9%qi;-F?$-EL#A`0slx2 z@byBrAO|_-g6hFvE$U*Y9^|A8hI)_^EILaz`qP1Vul$>7iiO!Nfv*-QW=M7OSTe9ik959dM0Phb{hD2u><9&SS>#KXBa%FCjXd{QD-$yZW zd<4~lYJ|j2J;(_X4D}!-Lv)roJ4bq5OVhq-p8V&5?=Mg&1aVLehS=dC=Rz=Wkn$cn z%guY-xJ`{859(RSkQTNsSUKu}IH<-w>~N6N9vC=CDGr?_zy4#p;=OB^I{oNz9v}xf zz=1fZhB)kSkTV<@I7rzHo#mT%-l^%AkDK}5p^n}_4st95aZrtB*x?{2Gca(F5*Iql zxL&VEHEWwbb8BMp6CeltBRRm=3n@pTv(&5Cx8vbEUcRTFFvVdUP=o^2gKCVzPCbav z?QJOv4D}$TBXpLCHgyWc2lVahf2)%g$UzQ9AP%bG2s<3)Yy<`lQszNtX;7?<BaF9|5I!opO-$t~4w6$g7 zh;L91a^L`QPz@c};UH%YFmRBv1UgIfxX*6W`(`_Ob-{qDzhh+52J}vBU`z#xd z06ECYKjNUO{oCb`VEtp@Aldxl{xH+y{)36-eM>*BkZ4*Y>E~|Nt5t%?ui&62^V{cO zbNMlFkQ{xT<$j?BWg48C)&BB4ZWFK`WIbQzpswhvaQJEHW8ff}_d1K#y>;K9_)E=N z3}}^Tv%^2Ahrh-l$s;+y=L^ZFw`ZWTW}`T9faMILd`|0mGiNp%NRyEwFIb$r|(|GEi@4 zpR>yEWyMU-Ja0S&a=>q(f;k`qHGQrdBZf3o6d(B?HNGE1gHiYa+3(aO@4)TWMRX=9=G zgBmU`nNmy2RK%pHTqI!zE>;)>^fdp!dTLo`+SM0o} z*kJ*@F4zlHxC05)SA%^{4x?vcW=&->v;%X23U?rZYOT#2i`*QQqc*g8z#Ui%RJa2P zR8M0}_i&A>|6cPq9oT`rK!rPyKz;c$QD3yJUQ(>)oCQ0u7pQOt5~y5x+*1QToiiv1 zTylQX3Z5721uEQu1nR~Vt;|136dY|o)Q7Eybr7g<2NI}u4;z#V**&Fx30>#F4(tUg z+<^q@;XS)E-0g1o%gU!pzz*yMD%^ntsvzvDy0mqU!#k1){(Rbty+DOKkU%X??lkW$ zbP0W%k%FGfu@|Ut2NI~Rg6!=I3-R#5_}8J}b-`Ys!W~GUCg1+5>aFsR$g<(+@eYgy zD%^ntYTx5c(?Qqjs(qaJR$vGA0u}B+0(I(3MMtt=$j9S!ixBIu4gwYKKmv8_9oOX8 zeW}DPT6Yudz+Rxj9Y~;B2Th*O+rn$s^ruFH9oP$0xC04Pt)yW*vRs!s*3^^%c3>}1 z;SMBFZTCqp&bc1zjrHg?f*sfkRJa2P)c4MA&raNFRBwG`L??-)aT~>dMAvgBF^{~bQ74AR+ z^}~w*J+K$3a0e2odMWo!QNd7minzxNc3>}1;SMBFpZm^CAGQB1O0cYI2RpDAsBi}o zs1x==h3AyGGFz-)aw6~w&a2rARJa2P)U5upU!evQzx9x09$XLX1uEQu1gbj3E5F7! zf5fU*HUM^5HF+sIuuOppcOZePl1vsm+%2o!Q1SqsJhf^amMu`>4*vw|?>K=^`pCyz F%^z{W_A~$h From f03d04b5ec6b8122dca6c9b115c86d7009177b7e Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 02:23:52 +0200 Subject: [PATCH 06/12] feat: friend visibility when publicly sharing fixed --- comrade/comrade_core/consumers.py | 88 ++++++++++++++---------- comrade/comrade_core/templates/map.html | 56 +++++++++++++++ comrade/comrade_core/views.py | 37 ++++++++++ dump.rdb | Bin 11241 -> 647688 bytes 4 files changed, 145 insertions(+), 36 deletions(-) diff --git a/comrade/comrade_core/consumers.py b/comrade/comrade_core/consumers.py index 487c997..eac4f03 100644 --- a/comrade/comrade_core/consumers.py +++ b/comrade/comrade_core/consumers.py @@ -49,52 +49,60 @@ async def receive(self, text_data): longitude = data['longitude'] accuracy = data.get('accuracy', 50) # Default accuracy if not provided - # Check sharing preferences before broadcasting - if self.user.location_sharing_level == User.SharingLevel.NONE: - # Only save location, don't broadcast - await self.save_user_location(self.user, latitude, longitude) - return - # Get user's friends and skills for updates friends = await database_sync_to_async(lambda: list(self.user.get_friends()))() skills = await database_sync_to_async( lambda: list(self.user.skills.values_list('name', flat=True)) )() - # Prepare the location update message - location_update = { - 'type': 'friend_location' if self.user.location_sharing_level == User.SharingLevel.FRIENDS else 'public_location', - 'userId': self.user.id, - 'name': f"{self.user.first_name} {self.user.last_name}".strip() or self.user.username, - 'latitude': latitude, - 'longitude': longitude, - 'accuracy': accuracy, - 'timestamp': timezone.now().isoformat(), - 'friends': [{'id': f.id, 'name': f"{f.first_name} {f.last_name}".strip() or f.username} for f in friends], - 'skills': skills - } - - if self.user.location_sharing_level == User.SharingLevel.FRIENDS: - # Send to each friend's location group + # Only proceed with sharing if not set to NONE + if self.user.location_sharing_level != User.SharingLevel.NONE: + # First, always send detailed updates to friends + friend_update = { + 'type': 'friend_location', + 'userId': self.user.id, + 'name': f"{self.user.first_name} {self.user.last_name}".strip() or self.user.username, + 'latitude': latitude, + 'longitude': longitude, + 'accuracy': accuracy, + 'timestamp': timezone.now().isoformat(), + 'friends': [{'id': f.id, 'name': f"{f.first_name} {f.last_name}".strip() or f.username} for f in friends], + 'skills': skills + } + + # Send detailed update to all friends for friend in friends: friend_location_group = f"location_{friend.id}" await self.channel_layer.group_send( friend_location_group, - location_update - ) - else: # ALL - # Get all active users except self - active_users = await database_sync_to_async( - lambda: list(User.objects.exclude(id=self.user.id)) - )() - - # Send to all active users - for user in active_users: - user_location_group = f"location_{user.id}" - await self.channel_layer.group_send( - user_location_group, - location_update + friend_update ) + + # If sharing level is ALL, also send basic info to non-friends + if self.user.location_sharing_level == User.SharingLevel.ALL: + # For public users, send location without detailed info + public_update = { + 'type': 'public_location', + 'userId': self.user.id, + 'name': f"{self.user.first_name} {self.user.last_name}".strip() or self.user.username, + 'latitude': latitude, + 'longitude': longitude, + 'accuracy': accuracy, + 'timestamp': timezone.now().isoformat() + } + + # Get all non-friend users + active_users = await database_sync_to_async( + lambda: list(User.objects.exclude(id=self.user.id).exclude(id__in=[f.id for f in friends])) + )() + + # Send to all non-friend users + for user in active_users: + user_location_group = f"location_{user.id}" + await self.channel_layer.group_send( + user_location_group, + public_update + ) # Save location regardless of sharing preferences await self.save_user_location(self.user, latitude, longitude) @@ -139,7 +147,15 @@ async def public_location(self, event): 'latitude': event['latitude'], 'longitude': event['longitude'], 'accuracy': event['accuracy'], - 'timestamp': event['timestamp'], + 'timestamp': event['timestamp'] + })) + + async def friend_details(self, event): + """Handler for friend details updates""" + await self.send(text_data=json.dumps({ + 'type': 'friend_details', + 'userId': event['userId'], + 'name': event['name'], 'friends': event['friends'], 'skills': event['skills'] })) diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index c794b0f..2f192b7 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -423,6 +423,62 @@

Friend Requests

updateFriendLocation(data); } else if (data.type === 'public_location') { updatePublicLocation(data); + } else if (data.type === 'friend_details') { + // Update local user info if it's about us + if (data.userId === userInfo.id) { + userInfo.friends = data.friends; + userInfo.skills = data.skills; + localStorage.setItem('user_info', JSON.stringify(userInfo)); + + // Update the user's info window content + if (userMarker) { + const infoWindow = new google.maps.InfoWindow({ + content: ` +
+

${userInfo.name}

+
+ Friends (${userInfo.friends?.length || 0}): +

+ ${userInfo.friends?.map(friend => friend.name).join(', ') || 'No friends yet'} +

+
+
+ Skills: +

${userInfo.skills?.join(', ') || 'No skills listed'}

+
+
+ ` + }); + userMarker.addListener('click', () => { + infoWindow.open(map, userMarker); + }); + } + } else { + // Update friend marker info if it exists + const friendMarker = friendsMarkers[data.userId]; + if (friendMarker) { + const infoWindow = new google.maps.InfoWindow({ + content: ` +
+

${data.name}

+
+ Friends (${data.friends?.length || 0}): +

+ ${data.friends?.map(friend => friend.name).join(', ') || 'No friends yet'} +

+
+
+ Skills: +

${data.skills?.join(', ') || 'No skills listed'}

+
+
+ ` + }); + friendMarker.addListener('click', () => { + infoWindow.open(map, friendMarker); + }); + } + } } }; diff --git a/comrade/comrade_core/views.py b/comrade/comrade_core/views.py index ab82bfb..31eca1e 100644 --- a/comrade/comrade_core/views.py +++ b/comrade/comrade_core/views.py @@ -28,6 +28,8 @@ from django.views.decorators.csrf import csrf_exempt, ensure_csrf_cookie from django.utils.decorators import method_decorator import json +from channels.layers import get_channel_layer +from asgiref.sync import async_to_sync User = get_user_model() @@ -279,6 +281,41 @@ def accept_friend_request(request, user_id): try: target_user = User.objects.get(id=user_id) request.user.accept_friend_request(target_user) + + # Get channel layer for WebSocket communication + channel_layer = get_channel_layer() + + # Get both users' friends and skills + current_user_friends = request.user.get_friends() + target_user_friends = target_user.get_friends() + + # Prepare friend details messages for both users + current_user_details = { + 'type': 'friend_details', + 'userId': request.user.id, + 'name': f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username, + 'friends': [{'id': f.id, 'name': f"{f.first_name} {f.last_name}".strip() or f.username} for f in current_user_friends], + 'skills': list(request.user.skills.values_list('name', flat=True)) + } + + target_user_details = { + 'type': 'friend_details', + 'userId': target_user.id, + 'name': f"{target_user.first_name} {target_user.last_name}".strip() or target_user.username, + 'friends': [{'id': f.id, 'name': f"{f.first_name} {f.last_name}".strip() or f.username} for f in target_user_friends], + 'skills': list(target_user.skills.values_list('name', flat=True)) + } + + # Send friend details to both users + async_to_sync(channel_layer.group_send)( + f"location_{target_user.id}", + current_user_details + ) + async_to_sync(channel_layer.group_send)( + f"location_{request.user.id}", + target_user_details + ) + return Response({'status': 'Friend request accepted'}, status=status.HTTP_200_OK) except User.DoesNotExist: return Response({'error': 'User not found'}, status=status.HTTP_404_NOT_FOUND) diff --git a/dump.rdb b/dump.rdb index 43cc3399ef61583defc7c2129b22884261193464..31ba2aeba26bb709d43d25995333cf0e3cbf3ba8 100644 GIT binary patch literal 647688 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 delta 2596 zcmeA;qW&^`f`P`<-@>QVla7PwTiTXg_VJ+o{5EpiHVuEfq|8Q!Sb}C%+$P;;t7)#dD6t+703Vl$aTxn zktbW$wB;*IHz=h%>=VzK_U?(MOqH(&WPsFPwe7C(TEM#KdyHBI;Y z%?6H)v;%Bid=Gi!Ecfc9kYW`UUrYuD*K~glc1NT{Rq|ARfzY=L(sQ>h^CQK0EIxr7 zkHt4@X0U^Ovt;%nHQxK|h1FhP^GUG|i*KeUE@4NG6GraKhPIsz?zbL%nL&!tSbPFD z8sQ5c6Yc4YW*jn1vJTT93bA-^-(<;Q$vIhL!AWL#bnP)<1beWz&2qx67PU3s794p% ziYu^ru+WAP*@KHd*Y3V>{w2S{iq;xZjK=0ckkJSa!U}-tT7Dd0Ul^S|>ELe0mv=Sc za2F|7VethdRa9^w7XfuG&mQu1y;o;c{xOLZ8w{d zsu8KI>Mw_)2-9Il1IIA=BPps|a++^#Tk~LXQPBmU_VnK(_PVYLv%>O4;C zt%`Qj-&t)xYfO^WU?1bMS_ot{r=g{ZQDSnMWtxdXko@$H`RpV2j|!hs~t^aN`AGjivwW^Kw|G7a!aY0Em3;L;wH) From 3eb5d0d21baa4b239783b5b8e637b127cf23ce73 Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 02:47:02 +0200 Subject: [PATCH 07/12] faaak --- dump.rdb | Bin 647688 -> 14213 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dump.rdb b/dump.rdb index 31ba2aeba26bb709d43d25995333cf0e3cbf3ba8..7d625fabbc74b63a9d133dd24c8a75abdaa5c531 100644 GIT binary patch delta 3584 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 From f2e75b1979456970e108802abe884b7d3c9c6db8 Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 03:37:11 +0200 Subject: [PATCH 08/12] fix: locations are updated on exit and reconnect --- comrade/comrade_core/consumers.py | 81 ++- comrade/comrade_core/templates/map.html | 643 ++++++++++++++++++------ dump.rdb | Bin 14213 -> 1335374 bytes 3 files changed, 551 insertions(+), 173 deletions(-) diff --git a/comrade/comrade_core/consumers.py b/comrade/comrade_core/consumers.py index eac4f03..0c07542 100644 --- a/comrade/comrade_core/consumers.py +++ b/comrade/comrade_core/consumers.py @@ -30,6 +30,37 @@ async def connect(self): async def disconnect(self, close_code): if hasattr(self, 'location_group'): + # Get user's friends and sharing level before sending offline notification + friends = await database_sync_to_async(lambda: list(self.user.get_friends()))() + + # Prepare offline notification + offline_message = { + 'type': 'user_offline', + 'userId': self.user.id + } + + # Send offline notification to all friends + for friend in friends: + friend_location_group = f"location_{friend.id}" + await self.channel_layer.group_send( + friend_location_group, + offline_message + ) + + # If sharing was set to ALL, also notify all non-friends + if self.user.location_sharing_level == User.SharingLevel.ALL: + all_users = await database_sync_to_async( + lambda: list(User.objects.exclude(id=self.user.id).exclude(id__in=[f.id for f in friends])) + )() + + for user in all_users: + user_location_group = f"location_{user.id}" + await self.channel_layer.group_send( + user_location_group, + offline_message + ) + + # Finally, leave the group await self.channel_layer.group_discard( self.location_group, self.channel_name @@ -42,6 +73,13 @@ async def receive(self, text_data): if 'preferences' in data: await self.update_preferences(data['preferences']) return + + # Handle heartbeat + if data.get('type') == 'heartbeat': + await self.send(text_data=json.dumps({ + 'type': 'heartbeat_response' + })) + return # Handle location updates if data.get('type') == 'location_update': @@ -55,6 +93,10 @@ async def receive(self, text_data): lambda: list(self.user.skills.values_list('name', flat=True)) )() + # Save location regardless of sharing preferences + await self.save_user_location(self.user, latitude, longitude) + print(f"[{timezone.now()}] Location saved for {self.user.username} at {latitude}, {longitude}") + # Only proceed with sharing if not set to NONE if self.user.location_sharing_level != User.SharingLevel.NONE: # First, always send detailed updates to friends @@ -70,15 +112,18 @@ async def receive(self, text_data): 'skills': skills } - # Send detailed update to all friends + # Send detailed update to all friends - assume they're all active + friend_count = len(friends) for friend in friends: friend_location_group = f"location_{friend.id}" await self.channel_layer.group_send( friend_location_group, friend_update ) + + print(f"[{timezone.now()}] Broadcasting location to {friend_count} friends for {self.user.username}") - # If sharing level is ALL, also send basic info to non-friends + # If sharing level is ALL, send basic info to all non-friend users if self.user.location_sharing_level == User.SharingLevel.ALL: # For public users, send location without detailed info public_update = { @@ -91,23 +136,22 @@ async def receive(self, text_data): 'timestamp': timezone.now().isoformat() } - # Get all non-friend users - active_users = await database_sync_to_async( + # Get ALL users except self and friends + all_users = await database_sync_to_async( lambda: list(User.objects.exclude(id=self.user.id).exclude(id__in=[f.id for f in friends])) )() - # Send to all non-friend users - for user in active_users: + # Send to all non-friend users - assume they're all active + public_count = len(all_users) + for user in all_users: user_location_group = f"location_{user.id}" await self.channel_layer.group_send( user_location_group, public_update ) - - # Save location regardless of sharing preferences - await self.save_user_location(self.user, latitude, longitude) - print(f"[{timezone.now()}] Location saved for {self.user.username} at {latitude}, {longitude}") - + + print(f"[{timezone.now()}] Broadcasting location to {public_count} public users for {self.user.username}") + async def update_preferences(self, preferences_data): """Update user's location sharing preferences""" sharing_level = preferences_data.get('sharing_level') @@ -160,6 +204,13 @@ async def friend_details(self, event): 'skills': event['skills'] })) + async def user_offline(self, event): + """Handler for user offline notifications""" + await self.send(text_data=json.dumps({ + 'type': 'user_offline', + 'userId': event['userId'] + })) + async def location_update(self, event): # Send location update with user identification await self.send(text_data=json.dumps({ @@ -177,6 +228,14 @@ async def save_user_location(self, user, latitude, longitude): user.timestamp = timezone.now() await database_sync_to_async(user.save)() + async def group_exists(self, group_name): + """Check if a channel group has any members""" + try: + group_channels = await self.channel_layer.group_channels(group_name) + return len(group_channels) > 0 + except (AttributeError, KeyError): + return False + @database_sync_to_async def get_user_from_token(self): token = self.scope['url_route']['kwargs'].get('token') diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index 2f192b7..7eef4f1 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -1,6 +1,6 @@ - + Map - Comrade @@ -221,6 +221,228 @@

Friend Requests

let accuracyCircle; let friendsMarkers = {}; let publicMarkers = {}; + let ws; + let reconnectAttempts = 0; + let maxReconnectAttempts = 10; + let reconnectTimeout; + + // Variables to track location watching + let watchId = null; + let lastManualUpdate = 0; + let heartbeatInterval = null; + + function getReconnectDelay() { + // Exponential backoff: 1s, 2s, 4s, 8s, 16s, 32s, etc. up to 60s max + return Math.min(1000 * Math.pow(2, reconnectAttempts), 60000); + } + + function clearMarkersAndConnection() { + // Stop heartbeat + stopHeartbeat(); + + // Stop watching location + if (watchId !== null) { + navigator.geolocation.clearWatch(watchId); + watchId = null; + } + + // Clear all markers + Object.values(friendsMarkers).forEach(marker => { + marker.setMap(null); + }); + friendsMarkers = {}; + + Object.values(publicMarkers).forEach(marker => { + marker.setMap(null); + }); + publicMarkers = {}; + + // Clear any pending reconnection + if (reconnectTimeout) { + clearTimeout(reconnectTimeout); + } + + // Close WebSocket if it's open + if (ws && ws.readyState === WebSocket.OPEN) { + ws.close(); + } + } + + function initWebSocket() { + clearMarkersAndConnection(); + + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + ws = new WebSocket(`${protocol}//${window.location.host}/ws/location/?token=${apiToken}`); + + ws.onopen = function() { + console.log('WebSocket connection established'); + reconnectAttempts = 0; // Reset reconnect attempts on successful connection + + // Start heartbeat to keep connection alive + startHeartbeat(); + + // Start sending location updates + startLocationUpdates(); + }; + + ws.onmessage = function(event) { + const data = JSON.parse(event.data); + console.log('Received WebSocket message:', data); // Debug log + + if (data.type === 'location_update') { + updateUserLocation({ + coords: { + latitude: data.latitude, + longitude: data.longitude, + accuracy: data.accuracy || 50 + } + }); + } else if (data.type === 'friend_location') { + updateFriendLocation(data); + } else if (data.type === 'public_location') { + updatePublicLocation(data); + } else if (data.type === 'friend_details') { + // Update local user info if it's about us + if (data.userId === userInfo.id) { + userInfo.friends = data.friends; + userInfo.skills = data.skills; + localStorage.setItem('user_info', JSON.stringify(userInfo)); + + // Update the user's info window content + if (userMarker) { + const infoWindow = new google.maps.InfoWindow({ + content: ` +
+

${userInfo.name}

+
+ Friends (${userInfo.friends?.length || 0}): +

+ ${userInfo.friends?.map(friend => friend.name).join(', ') || 'No friends yet'} +

+
+
+ Skills: +

${userInfo.skills?.join(', ') || 'No skills listed'}

+
+
+ ` + }); + userMarker.addListener('click', () => { + infoWindow.open(map, userMarker); + }); + } + } else { + // Update friend marker info if it exists + const friendMarker = friendsMarkers[data.userId]; + if (friendMarker) { + const infoWindow = new google.maps.InfoWindow({ + content: ` +
+

${data.name}

+
+ Friends (${data.friends?.length || 0}): +

+ ${data.friends?.map(friend => friend.name).join(', ') || 'No friends yet'} +

+
+
+ Skills: +

${data.skills?.join(', ') || 'No skills listed'}

+
+
+ ` + }); + friendMarker.addListener('click', () => { + infoWindow.open(map, friendMarker); + }); + } + } + } else if (data.type === 'user_offline') { + console.log('User went offline:', data.userId); // Debug log + // Remove the user's marker based on their relationship + const friendMarker = friendsMarkers[data.userId]; + const publicMarker = publicMarkers[data.userId]; + + if (friendMarker) { + friendMarker.setMap(null); + delete friendsMarkers[data.userId]; + } + + if (publicMarker) { + publicMarker.setMap(null); + delete publicMarkers[data.userId]; + } + } else if (data.type === 'heartbeat_response') { + console.log('Heartbeat response received'); + } + }; + + return ws; + } + + function initMap() { + map = new google.maps.Map(document.getElementById("map"), { + center: { lat: 50.0755, lng: 14.4378 }, // Prague + zoom: 13, + }); + + // Initialize WebSocket connection + ws = initWebSocket(); + } + + // Handle page visibility changes + document.addEventListener('visibilitychange', function() { + if (document.hidden) { + // Page is hidden (inactive), clear everything + console.log('Page hidden, clearing connections and markers'); + clearMarkersAndConnection(); + reconnectAttempts = 0; // Reset attempts for when we come back + } else { + // Page is visible again, reinitialize connection + console.log('Page visible, reconnecting...'); + initWebSocket(); + + // Force an immediate location update + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition( + function(position) { + console.log('Sending immediate location update after page became visible'); + const location = { + type: 'location_update', + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy, + userId: userInfo.id, + name: userInfo.name + }; + + // Wait a short time to ensure WebSocket is connected + setTimeout(() => { + if (ws && ws.readyState === WebSocket.OPEN) { + console.log('Immediate location update sent after visibility change'); + ws.send(JSON.stringify(location)); + } else { + console.log('WebSocket not ready, cannot send immediate update', ws ? ws.readyState : 'no websocket'); + } + }, 1000); + }, + function(error) { + console.error('Error getting immediate location:', error); + }, + { + enableHighAccuracy: true, + timeout: 5000, + maximumAge: 0 + } + ); + } + } + }); + + // Handle page unload + window.addEventListener('beforeunload', function() { + clearMarkersAndConnection(); + }); // Friend requests modal functions function openFriendRequestsModal() { @@ -337,160 +559,6 @@

Friend Requests

// Initial check for pending requests fetchPendingRequests(); - function initMap() { - map = new google.maps.Map(document.getElementById("map"), { - center: { lat: 50.0755, lng: 14.4378 }, // Prague - zoom: 13, - }); - - // Initialize WebSocket connection - const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; - const ws = new WebSocket(`${protocol}//${window.location.host}/ws/location/?token=${apiToken}`); - - ws.onopen = function() { - console.log('WebSocket connection established'); - // Start sending location updates - if (navigator.geolocation) { - // First, get initial position - navigator.geolocation.getCurrentPosition( - function(position) { - updateUserLocation({ - coords: { - latitude: position.coords.latitude, - longitude: position.coords.longitude, - accuracy: position.coords.accuracy - } - }); - }, - function(error) { - console.error('Error getting initial location:', error); - }, - { - enableHighAccuracy: true, - timeout: 5000, - maximumAge: 0 - } - ); - - // Then, watch for position changes - navigator.geolocation.watchPosition( - function(position) { - updateUserLocation({ - coords: { - latitude: position.coords.latitude, - longitude: position.coords.longitude, - accuracy: position.coords.accuracy - } - }); - - // Send location to server - const location = { - type: 'location_update', - latitude: position.coords.latitude, - longitude: position.coords.longitude, - accuracy: position.coords.accuracy, - userId: userInfo.id, - name: userInfo.name - }; - - if (ws.readyState === WebSocket.OPEN) { - ws.send(JSON.stringify(location)); - } - }, - function(error) { - console.error('Error watching location:', error); - }, - { - enableHighAccuracy: true, - timeout: 5000, - maximumAge: 0 - } - ); - } - }; - - ws.onmessage = function(event) { - const data = JSON.parse(event.data); - if (data.type === 'location_update') { - updateUserLocation({ - coords: { - latitude: data.latitude, - longitude: data.longitude, - accuracy: data.accuracy || 50 - } - }); - } else if (data.type === 'friend_location') { - updateFriendLocation(data); - } else if (data.type === 'public_location') { - updatePublicLocation(data); - } else if (data.type === 'friend_details') { - // Update local user info if it's about us - if (data.userId === userInfo.id) { - userInfo.friends = data.friends; - userInfo.skills = data.skills; - localStorage.setItem('user_info', JSON.stringify(userInfo)); - - // Update the user's info window content - if (userMarker) { - const infoWindow = new google.maps.InfoWindow({ - content: ` -
-

${userInfo.name}

-
- Friends (${userInfo.friends?.length || 0}): -

- ${userInfo.friends?.map(friend => friend.name).join(', ') || 'No friends yet'} -

-
-
- Skills: -

${userInfo.skills?.join(', ') || 'No skills listed'}

-
-
- ` - }); - userMarker.addListener('click', () => { - infoWindow.open(map, userMarker); - }); - } - } else { - // Update friend marker info if it exists - const friendMarker = friendsMarkers[data.userId]; - if (friendMarker) { - const infoWindow = new google.maps.InfoWindow({ - content: ` -
-

${data.name}

-
- Friends (${data.friends?.length || 0}): -

- ${data.friends?.map(friend => friend.name).join(', ') || 'No friends yet'} -

-
-
- Skills: -

${data.skills?.join(', ') || 'No skills listed'}

-
-
- ` - }); - friendMarker.addListener('click', () => { - infoWindow.open(map, friendMarker); - }); - } - } - } - }; - - ws.onerror = function(error) { - console.error('WebSocket error:', error); - }; - - ws.onclose = function() { - console.log('WebSocket connection closed'); - }; - } - function updateUserLocation(position) { const lat = position.coords ? position.coords.latitude : position.latitude; const lng = position.coords ? position.coords.longitude : position.longitude; @@ -500,7 +568,7 @@

${data.name}

if (!userMarker) { userMarker = new google.maps.Marker({ position: { lat, lng }, - map: map, + map: map, title: 'Your Location', icon: { path: google.maps.SymbolPath.CIRCLE, @@ -543,7 +611,7 @@

${userInfo.name}

// Hide info window on mouseout (only if not locked) userMarker.addListener('mouseout', () => { if (!isInfoWindowLocked) { - infoWindow.close(); + infoWindow.close(); } }); @@ -593,7 +661,7 @@

${userInfo.name}

if (!friendsMarkers[userId]) { const marker = new google.maps.Marker({ position: { lat: latitude, lng: longitude }, - map: map, + map: map, title: name, icon: { path: google.maps.SymbolPath.CIRCLE, @@ -638,7 +706,7 @@

${name}

// Hide info window on mouseout (only if not locked) marker.addListener('mouseout', () => { if (!isInfoWindowLocked) { - infoWindow.close(); + infoWindow.close(); } }); @@ -671,7 +739,7 @@

${name}

if (!publicMarkers[userId]) { const marker = new google.maps.Marker({ position: { lat: latitude, lng: longitude }, - map: map, + map: map, title: name, icon: { path: google.maps.SymbolPath.CIRCLE, @@ -720,7 +788,7 @@

${name}

// Hide info window on mouseout (only if not locked) marker.addListener('mouseout', () => { if (!isInfoWindowLocked) { - infoWindow.close(); + infoWindow.close(); } }); @@ -804,8 +872,259 @@

${name}

return cookieValue; } + function startHeartbeat() { + // Clear any existing heartbeat + if (heartbeatInterval) { + clearInterval(heartbeatInterval); + } + + // Send heartbeat every 10 seconds (reduced from 15) + heartbeatInterval = setInterval(() => { + if (ws && ws.readyState === WebSocket.OPEN) { + console.log('Sending heartbeat'); + ws.send(JSON.stringify({ type: 'heartbeat' })); + + // Force a location update with the heartbeat + forceLocationUpdate(); + } + }, 10000); + } + + function stopHeartbeat() { + if (heartbeatInterval) { + clearInterval(heartbeatInterval); + heartbeatInterval = null; + } + } + + function forceLocationUpdate() { + // Only force update if the last update was more than 10 seconds ago + const now = Date.now(); + if (now - lastManualUpdate > 10000) { + navigator.geolocation.getCurrentPosition( + function(position) { + sendLocationUpdate(position); + lastManualUpdate = now; + }, + function(error) { + console.error('Error getting forced location update:', error); + }, + { + enableHighAccuracy: true, + timeout: 5000, + maximumAge: 0 + } + ); + } + } + + function sendLocationUpdate(position) { + if (ws && ws.readyState === WebSocket.OPEN) { + const location = { + type: 'location_update', + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy, + userId: userInfo.id, + name: userInfo.name + }; + + console.log('Sending location update:', location); + ws.send(JSON.stringify(location)); + } else { + console.warn('WebSocket not open, cannot send location update'); + } + } + + function startLocationUpdates() { + if (watchId) { + navigator.geolocation.clearWatch(watchId); + watchId = null; + } + + // Track consecutive failures to adjust settings + let consecutiveFailures = 0; + let useHighAccuracy = true; + + if (navigator.geolocation) { + // First, get initial position with increased timeout + navigator.geolocation.getCurrentPosition( + function(position) { + updateUserLocation({ + coords: { + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy + } + }); + + // Send initial location + sendLocationUpdate(position); + lastManualUpdate = Date.now(); + consecutiveFailures = 0; // Reset failure counter on success + }, + function(error) { + console.error('Error getting initial location:', error); + consecutiveFailures++; + // Try again with lower accuracy if we had a timeout + if (error.code === 3 && useHighAccuracy) { + useHighAccuracy = false; + console.log('Switching to low accuracy mode due to timeout'); + navigator.geolocation.getCurrentPosition( + function(position) { + updateUserLocation({ + coords: { + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy + } + }); + sendLocationUpdate(position); + lastManualUpdate = Date.now(); + }, + function(error) { + console.error('Still failed with low accuracy:', error); + }, + { + enableHighAccuracy: false, + timeout: 15000, // Even longer timeout for low accuracy + maximumAge: 60000 // Allow cached positions up to 1 minute + } + ); + } + }, + { + enableHighAccuracy: useHighAccuracy, + timeout: 10000, // Increased from 5000 to 10000 + maximumAge: 30000 // Allow positions up to 30 seconds old + } + ); + + // Detect Chrome browser + const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); + console.log('Browser detection - Chrome:', isChrome); + + // For Chrome, rely more on polling than watchPosition + if (isChrome) { + console.log('Using Chrome-specific location strategy'); + // Set up more frequent polling for Chrome (every 10 seconds instead of 5) + setInterval(() => { + // Adjust accuracy based on previous failures + const highAccuracy = consecutiveFailures < 3; + + navigator.geolocation.getCurrentPosition( + function(position) { + updateUserLocation({ + coords: { + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy + } + }); + sendLocationUpdate(position); + lastManualUpdate = Date.now(); + consecutiveFailures = 0; // Reset failure counter + console.log('Chrome polling location update sent'); + }, + function(error) { + console.error('Error in Chrome location polling:', error); + consecutiveFailures++; + // If we're getting timeouts, try again with lower accuracy + if (error.code === 3 && highAccuracy) { + navigator.geolocation.getCurrentPosition( + function(position) { + updateUserLocation({ + coords: { + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy + } + }); + sendLocationUpdate(position); + lastManualUpdate = Date.now(); + console.log('Low accuracy fallback succeeded'); + }, + function(error) { + console.error('Even low accuracy failed:', error); + }, + { + enableHighAccuracy: false, + timeout: 15000, + maximumAge: 60000 + } + ); + } + }, + { + enableHighAccuracy: highAccuracy, + timeout: 10000, // Increased from 5000 + maximumAge: 30000 // Allow positions up to 30 seconds old + } + ); + }, 10000); // Every 10 seconds instead of 5 + } + + // Still use watchPosition as a backup + watchId = navigator.geolocation.watchPosition( + function(position) { + updateUserLocation({ + coords: { + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy + } + }); + + sendLocationUpdate(position); + lastManualUpdate = Date.now(); + consecutiveFailures = 0; // Reset failure counter + console.log('watchPosition update received and sent'); + }, + function(error) { + console.error('Error watching location:', error); + consecutiveFailures++; + + // If watching fails, ensure heartbeat is running + if (!heartbeatInterval) { + startHeartbeat(); + } + }, + { + enableHighAccuracy: true, + timeout: 27000, // Increased significantly + maximumAge: 30000 + } + ); + + // Fallback using stored location for emergencies + setInterval(() => { + // If we haven't updated in 30 seconds and have failures, use the last known position + const now = Date.now(); + if (now - lastManualUpdate > 30000 && consecutiveFailures > 2) { + console.log('Using last known position due to failures'); + // If we have a userMarker, we can use its position + if (userMarker) { + const position = userMarker.getPosition(); + if (position) { + const fakePosition = { + coords: { + latitude: position.lat(), + longitude: position.lng(), + accuracy: 100 // Default accuracy + } + }; + sendLocationUpdate(fakePosition); + lastManualUpdate = now; + console.log('Sent last known position as fallback'); + } + } + } + }, 30000); // Check every 30 seconds + } + } + // Initial WebSocket connection initMap(); - + \ No newline at end of file diff --git a/dump.rdb b/dump.rdb index 7d625fabbc74b63a9d133dd24c8a75abdaa5c531..a1a4fc914541a93478c6bddfc104a36c5027eac9 100644 GIT binary patch literal 1335374 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
    aVP}!7@WSjtk9nJ;TU?hDBb?ffe= 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 OJ{&Q3Z^2gUn*1MUN2~7u delta 2272 zcmX?iAh0!mf`P`f3)&gKI7*9CQ*?7va}OD85@Yzqk(i&Ro0M3bdVt{{!*406Ke2B# zra#Q#5Sz|_m0O;d(NRhCPUge%R_zzOfzt~Paym;GxrV&5S(%fcm!4Ttnv#0jLFdZ# z(wN%f$%W-gJO)-KW>!X)dKMPOrjrGK_)Rz9<8kCUy1K&h3)d}2u;GdN93m5Q6#0Ng zHyjL0FVHnI=hKRxo>;*sH~E0N3Q6YsPo7}ufG|E0=ys6tlTTGD@-sU84Al};4K6gl zUVdVM$YjMTN4#e9A>3|eU}-pcVR;JAyH{uqpWJ-}XtJZy)8i_#4wL7)|6mPXIayE~ zzscyK(vNU4D6}s&@tA_lRPEVtt;c2>@A64kPmye<-}Hd_*g|^xzGJ-Lus;4K$UiIK z>w)N*JEt2iXCpnV{ic67!HXp>r&qn?1Bc07t4kfh({1ZQHoC7R!~G2c{FtVTPPgV} zQUIlujZ0JRPdn$tIXf|U`avyWC%kcq9^$}s_>mFG^ykMsr{9_^Aj72VFrD!nv$kf6 zQA&z|Wn!9XvVob2k+F$IvUy6XX>zi8szHjWMOvyZv&*~Bz!dB-UC@Kwd;5vG0;+s0 zZ$vJ>pMHC?fYfx8Z%nJ1VX1HWtj_}A9;ai zz|r}tHe%;>wHLq7Opu-aQJ0a_;5gvUf)pH}R0zs9)6a;pf=xFMR8rsIc=nUH=f&wC zpYe!Jo*=7BQh@tU|KQK+zzWXz(}P?DtC`_;oLbKUPA+~r0(b3>$UXm_YI%^1m7MXMeu?rnZ4J;~~|_d?B=O0@hXF z(z85dUr!2~MZlJHhc{#xoY2XEWbnjO;POG5*+Rl$`bJk^j(6o2p306$#91GN!5Kxf zw81G)?Zn25@($AjdD%(Lh6&e%k!*!$kyUnFyweR93Wx{+<38PSm;CLOVY7X Date: Tue, 20 May 2025 04:02:38 +0200 Subject: [PATCH 09/12] fix: location update rates etc --- comrade/comrade_core/templates/map.html | 231 ++++++++++++++++++++---- dump.rdb | Bin 1335374 -> 420168 bytes 2 files changed, 197 insertions(+), 34 deletions(-) diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index 7eef4f1..bebeed4 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -230,6 +230,7 @@

    Friend Requests

    let watchId = null; let lastManualUpdate = 0; let heartbeatInterval = null; + let consecutiveFailures = 0; function getReconnectDelay() { // Exponential backoff: 1s, 2s, 4s, 8s, 16s, 32s, etc. up to 60s max @@ -878,7 +879,8 @@

    ${name}

    clearInterval(heartbeatInterval); } - // Send heartbeat every 10 seconds (reduced from 15) + // Send heartbeat every 5 seconds for default browsers (reduced from 30) + // Chrome still uses its own strategy with 30-second intervals heartbeatInterval = setInterval(() => { if (ws && ws.readyState === WebSocket.OPEN) { console.log('Sending heartbeat'); @@ -887,7 +889,7 @@

    ${name}

    // Force a location update with the heartbeat forceLocationUpdate(); } - }, 10000); + }, 5000); } function stopHeartbeat() { @@ -898,21 +900,77 @@

    ${name}

    } function forceLocationUpdate() { - // Only force update if the last update was more than 10 seconds ago + // Only force update if the last update was more than 30 seconds ago (increased from 10) const now = Date.now(); - if (now - lastManualUpdate > 10000) { + if (now - lastManualUpdate > 30000) { + // Start with high accuracy if we haven't had many failures + const useHighAccuracy = consecutiveFailures < 3; + navigator.geolocation.getCurrentPosition( function(position) { sendLocationUpdate(position); lastManualUpdate = now; + consecutiveFailures = 0; // Reset failures on success }, function(error) { console.error('Error getting forced location update:', error); + consecutiveFailures++; + + // If we got a timeout with high accuracy, try with low accuracy + if (error.code === 3 && useHighAccuracy) { + console.log('Forced update: Switching to low accuracy mode due to timeout'); + navigator.geolocation.getCurrentPosition( + function(position) { + sendLocationUpdate(position); + lastManualUpdate = now; + console.log('Low accuracy fallback update sent'); + }, + function(error) { + console.error('Still failed with low accuracy in forced update:', error); + // Last resort: if we have a userMarker, use its position + if (userMarker) { + const position = userMarker.getPosition(); + if (position) { + const fakePosition = { + coords: { + latitude: position.lat(), + longitude: position.lng(), + accuracy: 100 // Default accuracy + } + }; + sendLocationUpdate(fakePosition); + lastManualUpdate = now; + console.log('Used last known position for forced update'); + } + } + }, + { + enableHighAccuracy: false, + timeout: 15000, + maximumAge: 60000 + } + ); + } else if (consecutiveFailures > 3 && userMarker) { + // Last resort if multiple failures: use last known position + const position = userMarker.getPosition(); + if (position) { + const fakePosition = { + coords: { + latitude: position.lat(), + longitude: position.lng(), + accuracy: 100 + } + }; + sendLocationUpdate(fakePosition); + lastManualUpdate = now; + console.log('Used last known position for forced update after multiple failures'); + } + } }, { - enableHighAccuracy: true, - timeout: 5000, - maximumAge: 0 + enableHighAccuracy: useHighAccuracy, + timeout: useHighAccuracy ? 10000 : 15000, + maximumAge: 30000 // Accept positions up to 30 seconds old } ); } @@ -946,6 +1004,81 @@

    ${name}

    let consecutiveFailures = 0; let useHighAccuracy = true; + // Detect browser type with specific iOS detection + const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); + const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); + const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; + const isIOSSafari = isIOS && isSafari; + + console.log('Browser detection - Chrome:', isChrome, 'Safari:', isSafari, 'iOS:', isIOS, 'iOS Safari:', isIOSSafari); + + // For iOS Safari, use a longer throttle period and queuing approach + // to handle batched updates from iOS location services + let lastSentTime = 0; + const minUpdateInterval = isIOSSafari ? 10000 : 5000; // 10 seconds for iOS Safari, 5 for others + let pendingUpdates = []; + let processingUpdate = false; + + function throttledSendLocation(position) { + const now = Date.now(); + + // Always update UI + updateUserLocation({ + coords: { + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy + } + }); + + if (isIOSSafari) { + // For iOS Safari, use a queuing approach to prevent multiple simultaneous updates + // Store the update + pendingUpdates.push({ + timestamp: now, + position: position + }); + + // If we're not currently processing updates, and it's been long enough since last update + if (!processingUpdate && now - lastSentTime >= minUpdateInterval) { + processingIOSUpdates(); + } + } else { + // For other browsers, use simple throttling + if (now - lastSentTime >= minUpdateInterval) { + sendLocationUpdate(position); + lastSentTime = now; + lastManualUpdate = now; + console.log('Location update sent (throttled to 5-second intervals)'); + } + } + } + + // Function to process queued iOS updates + function processingIOSUpdates() { + if (pendingUpdates.length === 0) { + processingUpdate = false; + return; + } + + processingUpdate = true; + + // Take the most recent position + const latest = pendingUpdates.reduce((latest, current) => { + return current.timestamp > latest.timestamp ? current : latest; + }, pendingUpdates[0]); + + // Clear the queue + pendingUpdates = []; + + // Send the update + console.log('Sending iOS Safari update (batched, throttled to 10-second intervals)'); + sendLocationUpdate(latest.position); + lastSentTime = Date.now(); + lastManualUpdate = Date.now(); + processingUpdate = false; + } + if (navigator.geolocation) { // First, get initial position with increased timeout navigator.geolocation.getCurrentPosition( @@ -961,6 +1094,7 @@

    ${name}

    // Send initial location sendLocationUpdate(position); lastManualUpdate = Date.now(); + lastSentTime = Date.now(); consecutiveFailures = 0; // Reset failure counter on success }, function(error) { @@ -981,6 +1115,7 @@

    ${name}

    }); sendLocationUpdate(position); lastManualUpdate = Date.now(); + lastSentTime = Date.now(); }, function(error) { console.error('Still failed with low accuracy:', error); @@ -995,19 +1130,15 @@

    ${name}

    }, { enableHighAccuracy: useHighAccuracy, - timeout: 10000, // Increased from 5000 to 10000 + timeout: 10000, maximumAge: 30000 // Allow positions up to 30 seconds old } ); - // Detect Chrome browser - const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); - console.log('Browser detection - Chrome:', isChrome); - - // For Chrome, rely more on polling than watchPosition + // For Chrome, use less frequent polling if (isChrome) { - console.log('Using Chrome-specific location strategy'); - // Set up more frequent polling for Chrome (every 10 seconds instead of 5) + console.log('Using Chrome-specific location strategy with reduced frequency'); + // Set up polling for Chrome (30 seconds) setInterval(() => { // Adjust accuracy based on previous failures const highAccuracy = consecutiveFailures < 3; @@ -1023,6 +1154,7 @@

    ${name}

    }); sendLocationUpdate(position); lastManualUpdate = Date.now(); + lastSentTime = Date.now(); consecutiveFailures = 0; // Reset failure counter console.log('Chrome polling location update sent'); }, @@ -1042,6 +1174,7 @@

    ${name}

    }); sendLocationUpdate(position); lastManualUpdate = Date.now(); + lastSentTime = Date.now(); console.log('Low accuracy fallback succeeded'); }, function(error) { @@ -1057,28 +1190,55 @@

    ${name}

    }, { enableHighAccuracy: highAccuracy, - timeout: 10000, // Increased from 5000 - maximumAge: 30000 // Allow positions up to 30 seconds old + timeout: 10000, + maximumAge: 30000 } ); - }, 10000); // Every 10 seconds instead of 5 + }, 30000); // Every 30 seconds for Chrome + } else if (isIOSSafari) { + // For iOS Safari, use a reduced frequency because of iOS batching behavior + console.log('Using iOS Safari-specific strategy with 10-second intervals'); + setInterval(() => { + navigator.geolocation.getCurrentPosition( + function(position) { + throttledSendLocation(position); + }, + function(error) { + console.error('Error in iOS Safari polling:', error); + }, + { + enableHighAccuracy: true, + timeout: 10000, + maximumAge: 30000 + } + ); + }, 10000); // Every 10 seconds for iOS Safari + } else { + // For other browsers, use the standard 5-second interval + console.log('Using default strategy with 5-second updates'); + setInterval(() => { + navigator.geolocation.getCurrentPosition( + function(position) { + throttledSendLocation(position); + }, + function(error) { + console.error('Error in default browser polling:', error); + }, + { + enableHighAccuracy: true, + timeout: 10000, + maximumAge: 30000 + } + ); + }, 5000); // Every 5 seconds for non-Chrome, non-iOS browsers } - // Still use watchPosition as a backup + // Still use watchPosition but with throttling watchId = navigator.geolocation.watchPosition( function(position) { - updateUserLocation({ - coords: { - latitude: position.coords.latitude, - longitude: position.coords.longitude, - accuracy: position.coords.accuracy - } - }); - - sendLocationUpdate(position); - lastManualUpdate = Date.now(); + // Use throttled function to limit update frequency + throttledSendLocation(position); consecutiveFailures = 0; // Reset failure counter - console.log('watchPosition update received and sent'); }, function(error) { console.error('Error watching location:', error); @@ -1091,16 +1251,18 @@

    ${name}

    }, { enableHighAccuracy: true, - timeout: 27000, // Increased significantly + timeout: 27000, maximumAge: 30000 } ); // Fallback using stored location for emergencies + // Set to 5 seconds for Safari, keep 60 seconds for Chrome setInterval(() => { - // If we haven't updated in 30 seconds and have failures, use the last known position + const emergencyInterval = isChrome ? 60000 : 5000; + // If we haven't updated in the interval and have failures, use the last known position const now = Date.now(); - if (now - lastManualUpdate > 30000 && consecutiveFailures > 2) { + if (now - lastManualUpdate > emergencyInterval && consecutiveFailures > 2) { console.log('Using last known position due to failures'); // If we have a userMarker, we can use its position if (userMarker) { @@ -1115,11 +1277,12 @@

    ${name}

    }; sendLocationUpdate(fakePosition); lastManualUpdate = now; + lastSentTime = now; console.log('Sent last known position as fallback'); } } } - }, 30000); // Check every 30 seconds + }, 5000); // Check every 5 seconds for Safari/others, but logic inside handles different intervals } } diff --git a/dump.rdb b/dump.rdb index a1a4fc914541a93478c6bddfc104a36c5027eac9..18719d77302e717a769b216ddfb3279da9c5deeb 100644 GIT binary patch literal 420168 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
      aVP}!7@WSjtk9nJ;TU?hDBb?ffe= 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 OJ{&Q3Z^2gUn*1MUN2~7u From a6174856b9fe170a1dd34ec01e0829241a98230b Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 04:32:44 +0200 Subject: [PATCH 10/12] feat: tasks are on map --- comrade/comrade_core/models.py | 8 + comrade/comrade_core/serializers.py | 19 + comrade/comrade_core/templates/map.html | 476 ++++++++++++++++++++++++ comrade/comrade_core/urls.py | 3 + comrade/comrade_core/views.py | 78 +++- dump.rdb | Bin 420168 -> 167954 bytes 6 files changed, 583 insertions(+), 1 deletion(-) diff --git a/comrade/comrade_core/models.py b/comrade/comrade_core/models.py index 000e516..a5c45b4 100644 --- a/comrade/comrade_core/models.py +++ b/comrade/comrade_core/models.py @@ -330,6 +330,14 @@ def review(self, user: User): self.state = Task.State.DONE self.save() + def debug_reset(self): + """Debug method to reset task to OPEN state""" + self.state = Task.State.OPEN + self.assignee = None + self.datetime_start = None + self.datetime_finish = None + self.save() + class Rating(models.Model): task = models.ForeignKey( diff --git a/comrade/comrade_core/serializers.py b/comrade/comrade_core/serializers.py index 67bce52..bc788ce 100644 --- a/comrade/comrade_core/serializers.py +++ b/comrade/comrade_core/serializers.py @@ -32,6 +32,25 @@ class Meta: class TaskSerializer(serializers.ModelSerializer): + skill_execute_names = serializers.SerializerMethodField() + skill_read_names = serializers.SerializerMethodField() + skill_write_names = serializers.SerializerMethodField() + assignee_name = serializers.SerializerMethodField() + + def get_skill_execute_names(self, obj): + return [skill.name for skill in obj.skill_execute.all()] + + def get_skill_read_names(self, obj): + return [skill.name for skill in obj.skill_read.all()] + + def get_skill_write_names(self, obj): + return [skill.name for skill in obj.skill_write.all()] + + def get_assignee_name(self, obj): + if obj.assignee: + return f"{obj.assignee.first_name} {obj.assignee.last_name}".strip() or obj.assignee.username + return None + class Meta: model = Task fields = "__all__" \ No newline at end of file diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index bebeed4..1fed889 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -161,10 +161,61 @@ .friend-requests-button:hover { background: #357abd; } + .tasks-panel { + position: fixed; + top: 20px; + left: 20px; + background: white; + padding: 15px; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + z-index: 1000; + width: 250px; + max-height: 80vh; + overflow-y: auto; + } + .tasks-panel h3 { + margin: 0 0 10px 0; + color: #333; + } + .task-item { + padding: 10px; + border: 1px solid #eee; + border-radius: 4px; + margin-bottom: 10px; + cursor: pointer; + transition: background-color 0.2s; + } + .task-item:hover { + background-color: #f5f5f5; + } + .task-item h4 { + margin: 0 0 5px 0; + color: #333; + } + .task-item p { + margin: 5px 0; + color: #666; + font-size: 0.9em; + } + .task-status { + display: inline-block; + padding: 2px 6px; + border-radius: 3px; + font-size: 0.8em; + color: white; + background: #FBBC05; + }
      +
      +

      My Tasks

      +
      + +
      +
      +
      +
      + Tasks +
      @@ -221,6 +276,7 @@

      Friend Requests

      let accuracyCircle; let friendsMarkers = {}; let publicMarkers = {}; + let taskMarkers = {}; // New object to store task markers let ws; let reconnectAttempts = 0; let maxReconnectAttempts = 10; @@ -389,6 +445,9 @@

      ${data.name}

      // Initialize WebSocket connection ws = initWebSocket(); + + // Load tasks onto the map + loadTasks(); } // Handle page visibility changes @@ -1286,6 +1345,423 @@

      ${name}

      } } + // Function to load tasks and add them to the map + function loadTasks() { + console.log('Loading tasks...'); + fetch('/tasks/', { + method: 'GET', + headers: { + 'Authorization': `Token ${apiToken}`, + 'Content-Type': 'application/json' + } + }) + .then(response => { + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + return response.json(); + }) + .then(data => { + console.log('Tasks loaded:', data); + + // Clear existing task markers + Object.values(taskMarkers).forEach(markerObj => { + if (markerObj && markerObj.marker) { + markerObj.marker.setMap(null); + } + }); + taskMarkers = {}; + + // Add markers for each task with location + if (data.tasks && data.tasks.length > 0) { + data.tasks.forEach(task => { + if (task.lat && task.lon) { + addTaskMarker(task); + } + }); + + // Update tasks panel + updateTasksPanel(data.tasks); + } + }) + .catch(error => console.error('Error loading tasks:', error)); + } + + // Function to add a task marker to the map + function addTaskMarker(task) { + const marker = new google.maps.Marker({ + position: { lat: task.lat, lng: task.lon }, + map: map, + title: task.name, + icon: { + path: google.maps.SymbolPath.CIRCLE, + scale: 10, + fillColor: '#EA4335', // Red color for tasks + fillOpacity: 1, + strokeColor: '#ffffff', + strokeWeight: 2, + } + }); + + // Check if user has the execute skill for this task + const canExecute = task.skill_execute_names && task.skill_execute_names.some(skillName => + userInfo.skills.includes(skillName) + ); + + // Convert task.state to number if it's a string + const taskState = parseInt(task.state, 10); + + // Create action buttons based on task state and user permissions + let actionButtons = ''; + + if (canExecute) { + console.log(`Task ${task.id} (${task.name}) - State: ${taskState}, CanExecute: ${canExecute}`); + + if (taskState === 1) { // OPEN + actionButtons = ` + + `; + } else if (taskState === 2 && task.assignee && task.assignee.id === userInfo.id) { // IN_PROGRESS by current user + actionButtons = ` + + + `; + } else if (taskState === 3 && task.assignee && task.assignee.id === userInfo.id) { // WAITING state and assigned to current user + actionButtons = ` + + `; + } + } + + // Add reset button + actionButtons += ` + + `; + + // Get state text + const stateTexts = ['Unavailable', 'Open', 'In Progress', 'Waiting', 'In Review', 'Done']; + const stateText = stateTexts[taskState] || 'Unknown'; + + // Add info window with task details + const infoWindow = new google.maps.InfoWindow({ + content: ` +
      +

      ${task.name}

      +

      ${task.description}

      +
      + Status: + ${stateText} +
      + ${task.assignee ? + `
      + Assigned to: + ${task.assignee && task.assignee.id === userInfo.id ? 'You' : + (task.assignee_name || 'Nobody')} +
      ` : '' + } +
      + Skills Required: + ${task.skill_execute_names && task.skill_execute_names.length > 0 ? + task.skill_execute_names.join(', ') : 'None'} +
      + ${actionButtons} +
      + ` + }); + + let isInfoWindowLocked = false; + + // Show info window on mouseover (only if not locked) + marker.addListener('mouseover', () => { + if (!isInfoWindowLocked) { + infoWindow.open(map, marker); + } + }); + + // Hide info window on mouseout (only if not locked) + marker.addListener('mouseout', () => { + if (!isInfoWindowLocked) { + infoWindow.close(); + } + }); + + // Toggle info window lock on click + marker.addListener('click', () => { + if (isInfoWindowLocked) { + isInfoWindowLocked = false; + infoWindow.close(); + } else { + isInfoWindowLocked = true; + infoWindow.open(map, marker); + } + }); + + // Store marker reference + taskMarkers[task.id] = { + marker: marker, + infoWindow: infoWindow, + task: task + }; + } + + // Function to start a task + function startTask(taskId) { + fetch(`/task/${taskId}/start`, { + method: 'POST', + headers: { + 'Authorization': `Token ${apiToken}`, + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + } + }) + .then(response => { + if (response.ok) { + // Reload tasks to update their state + loadTasks(); + return response.json(); + } + return response.json().then(data => { + throw new Error(data.error || 'Failed to start task'); + }); + }) + .then(data => console.log('Start task response:', data)) + .catch(error => { + console.error('Error starting task:', error); + alert(`Error: ${error.message}`); + }); + } + + // Function to finish a task + function finishTask(taskId) { + fetch(`/task/${taskId}/finish`, { + method: 'POST', + headers: { + 'Authorization': `Token ${apiToken}`, + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + } + }) + .then(response => { + if (response.ok) { + // Reload tasks to update their state + loadTasks(); + return response.json(); + } + return response.json().then(data => { + throw new Error(data.error || 'Failed to finish task'); + }); + }) + .then(data => console.log('Finish task response:', data)) + .catch(error => { + console.error('Error finishing task:', error); + alert(`Error: ${error.message}`); + }); + } + + // Function to pause a task + function pauseTask(taskId) { + fetch(`/task/${taskId}/pause`, { + method: 'POST', + headers: { + 'Authorization': `Token ${apiToken}`, + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + } + }) + .then(response => { + if (response.ok) { + // Reload tasks to update their state + loadTasks(); + return response.json(); + } + return response.json().then(data => { + throw new Error(data.error || 'Failed to pause task'); + }); + }) + .then(data => console.log('Pause task response:', data)) + .catch(error => { + console.error('Error pausing task:', error); + alert(`Error: ${error.message}`); + }); + } + + // Function to resume a task + function resumeTask(taskId) { + fetch(`/task/${taskId}/resume`, { + method: 'POST', + headers: { + 'Authorization': `Token ${apiToken}`, + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + } + }) + .then(response => { + if (response.ok) { + // Reload tasks to update their state + loadTasks(); + return response.json(); + } + return response.json().then(data => { + throw new Error(data.error || 'Failed to resume task'); + }); + }) + .then(data => console.log('Resume task response:', data)) + .catch(error => { + console.error('Error resuming task:', error); + alert(`Error: ${error.message}`); + }); + } + + // Function to debug reset a task + function debugResetTask(taskId) { + fetch(`/task/${taskId}/debug_reset`, { + method: 'POST', + headers: { + 'Authorization': `Token ${apiToken}`, + 'Content-Type': 'application/json', + 'X-CSRFToken': getCookie('csrftoken') + } + }) + .then(response => { + if (response.ok) { + // Reload tasks to update their state + loadTasks(); + return response.json(); + } + return response.json().then(data => { + throw new Error(data.error || 'Failed to reset task'); + }); + }) + .then(data => console.log('Debug reset task response:', data)) + .catch(error => { + console.error('Error resetting task:', error); + alert(`Error: ${error.message}`); + }); + } + + // Refresh tasks periodically + setInterval(loadTasks, 30000); // Refresh every 30 seconds + + // Function to update the tasks panel + function updateTasksPanel(tasks) { + const myTasksList = document.getElementById('my-tasks-list'); + const userId = userInfo.id; + + console.log('Updating tasks panel with user ID:', userId); + console.log('Tasks:', tasks); + + // Filter tasks that are assigned to the current user and in progress + const myTasks = tasks.filter(task => + task.assignee && + task.assignee === userId && + (task.state === 2 || task.state === 3) // IN_PROGRESS or WAITING + ); + + console.log('Filtered tasks:', myTasks); + + // Clear current list + myTasksList.innerHTML = ''; + + if (myTasks.length === 0) { + myTasksList.innerHTML = '

      No tasks in progress

      '; + return; + } + + // Add each task + myTasks.forEach(task => { + const stateText = task.state === 2 ? 'In Progress' : 'Waiting'; + const stateColor = task.state === 2 ? '#34A853' : '#FBBC05'; + + const taskElement = document.createElement('div'); + taskElement.className = 'task-item'; + taskElement.innerHTML = ` +

      ${task.name}

      +

      ${task.description || 'No description'}

      + ${stateText} + `; + + // Add click handler to center map on task + taskElement.onclick = () => { + if (task.lat && task.lon) { + map.setCenter({ lat: task.lat, lng: task.lon }); + map.setZoom(15); + } + }; + + myTasksList.appendChild(taskElement); + }); + } + // Initial WebSocket connection initMap(); diff --git a/comrade/comrade_core/urls.py b/comrade/comrade_core/urls.py index ac903ca..d557682 100644 --- a/comrade/comrade_core/urls.py +++ b/comrade/comrade_core/urls.py @@ -10,6 +10,9 @@ path('map/', views.map, name='map'), path('task//start', views.TaskStartView.as_view(), name='start_task'), path('task//finish', views.TaskFinishView.as_view(), name='finish_task'), + path('task//pause', views.TaskPauseView.as_view(), name='pause_task'), + path('task//resume', views.TaskResumeView.as_view(), name='resume_task'), + path('task//debug_reset', views.TaskDebugResetView.as_view(), name='debug_reset_task'), path('tasks/', views.TaskListView.as_view(), name='task_list'), path('friends/send//', views.send_friend_request, name='send_friend_request'), path('friends/accept//', views.accept_friend_request, name='accept_friend_request'), diff --git a/comrade/comrade_core/views.py b/comrade/comrade_core/views.py index 31eca1e..96a35ce 100644 --- a/comrade/comrade_core/views.py +++ b/comrade/comrade_core/views.py @@ -30,6 +30,7 @@ import json from channels.layers import get_channel_layer from asgiref.sync import async_to_sync +from django.db import models User = get_user_model() @@ -251,18 +252,93 @@ def post(self, request: Request, taskId: int): status=status.HTTP_200_OK, ) +class TaskPauseView(APIView): + permission_classes = [IsAuthenticated] + + def post(self, request: Request, taskId: int): + task = None + try: + task = Task.objects.get(pk=taskId) + except Task.DoesNotExist as e: + return Response({"error": "Task not found"}, status=status.HTTP_404_NOT_FOUND) + + try: + task.pause(request.user) + except ValidationError as e: + return Response({"error": str(e)}, status=status.HTTP_412_PRECONDITION_FAILED) + + return Response( + {"message": "Task paused!"}, + status=status.HTTP_200_OK, + ) + +class TaskResumeView(APIView): + permission_classes = [IsAuthenticated] + + def post(self, request: Request, taskId: int): + task = None + try: + task = Task.objects.get(pk=taskId) + except Task.DoesNotExist as e: + return Response({"error": "Task not found"}, status=status.HTTP_404_NOT_FOUND) + + try: + task.resume(request.user) + except ValidationError as e: + return Response({"error": str(e)}, status=status.HTTP_412_PRECONDITION_FAILED) + + return Response( + {"message": "Task resumed!"}, + status=status.HTTP_200_OK, + ) + class TaskListView(APIView): permission_classes = [IsAuthenticated] def get(self, request): user = request.user - tasks = Task.objects.filter(skill_read__in=user.skills.all()) + # Get tasks that are: + # 1. IN_PROGRESS or WAITING and assigned to the current user + # 2. OPEN and user has the required execute skills + tasks = Task.objects.filter( + ( + models.Q(state=Task.State.IN_PROGRESS) | + models.Q(state=Task.State.WAITING) + ) & models.Q(assignee=user) | + ( + models.Q(state=Task.State.OPEN) & + models.Q(skill_execute__in=user.skills.all()) + ) + ).distinct() + + # For debugging: count tasks that have location data + tasks_with_location = tasks.exclude(lat__isnull=True).exclude(lon__isnull=True).count() + print(f"Found {tasks.count()} tasks for user {user} ({tasks_with_location} with location)") + serializer = TaskSerializer(tasks, many=True) return Response( {"tasks": serializer.data}, status=status.HTTP_200_OK, ) +class TaskDebugResetView(APIView): + permission_classes = [IsAuthenticated] + + def post(self, request: Request, taskId: int): + try: + task = Task.objects.get(pk=taskId) + except Task.DoesNotExist: + return Response( + {"error": "Task not found"}, + status=status.HTTP_404_NOT_FOUND + ) + + task.debug_reset() + return Response( + {"message": "Task reset to OPEN state"}, + status=status.HTTP_200_OK + ) + @api_view(['POST']) @permission_classes([IsAuthenticated]) def send_friend_request(request, user_id): diff --git a/dump.rdb b/dump.rdb index 18719d77302e717a769b216ddfb3279da9c5deeb..673b945e51acd0e7a31e9f266c540dc1503d677c 100644 GIT binary patch literal 167954 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
      tW-*)X=pb^ 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 Uc{wR$`S&H$zJK!2f-7JBKP~TxfB*mh From 14ed5c93b35f1a514580d3afffefb03a47951584 Mon Sep 17 00:00:00 2001 From: David Trebicky Date: Tue, 20 May 2025 13:18:07 +0200 Subject: [PATCH 12/12] security: remove secrets before push --- comrade/comrade/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/comrade/comrade/settings.py b/comrade/comrade/settings.py index 7d9098b..3096433 100644 --- a/comrade/comrade/settings.py +++ b/comrade/comrade/settings.py @@ -234,7 +234,7 @@ def get_local_ip(): 'google': { 'APP': { 'client_id': '838713168413-ntjqd2o22eihod384btlheuc07g5glai.apps.googleusercontent.com', - 'secret': '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', + 'secret': '', 'key': '' }, 'SCOPE': [
      tW-*)X=pb^ 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 Uc{wR$`S&H$zJK!2f-7JBKP~TxfB*mh literal 420168 zcmdp<2Urxz630PBQN)B|7FaVXP7cOhbIv)>%g8fc#93@C+i9DyM` z$@5-Cb(#{-+;X2TlY7dM(%Bb|SrRm$mtnoJkFUXB-??Xizyy+2?!yTKO07)zp#p$KrJD&@=`x$FFsTDgk(hW%u< zCV@@o0Hd*|ufIV8W!ulWRjlOC&(Ud)UTKDW@vM-)g63rfYnU!J@Bf)Ddu(b=hxlL^ zj*+ygOjo~MwnSFf_XJlMR!*y&;Mkl4ZrvJ%+Ycy z^*o;L@prqq`Tc`y5>3Zr)fPQsKA&99jS9Ac>Av5pk=)HQd{~@XH)nhZ8YfvoRngqD z%e+KZ!aqJogtC{ezYjgQ-U_UKK!pUx2WL^1W>v*1#(S2DmG^N!e)`U#qgS=RH*Bsf zD@z&HFWDWXxiskrJ~YB2EU7AY-x>aL zu_-zJ~;@T|5w7oPH~i`_2sYK*(t#pI6fVqiyoNSY#4wiBNI`XG_j zxbst%xQ&~C2HmTzX?IqL4~1b2tFGj@?5pKJS!u%;-JhSamH&YZkq*my*e#6SZq*>s zbVbLx9DiTLCx5e#T}wcl4tpJ6^VY9!e*M{^_3cvW=7g9WGZ;=IstO5LJ{3u1)%Lg- zHtAu#Xa78V3Sa7gWhG_{41y!-VpWHHxaep2^d2*!=ZGy8zU4W6s=yvuzf#_wLuy_- z`Kwdi@PEIwuGy(hXi?_@FZjvJWVdI67L#KPqb!{!QrPaSlVK?($8~)UCNc}}xVzG! zOAkLfG@W}Kl38f$+P#u7>wkEXQ&MIw(Koh!4VGsnrZgxirt}sTq+OXIAIJY>rVVf1 z>(Q8)exDcRxzV|{-NNaETpdj&)I5E1!`U-)rYVM1P5a84Fa>R(siTz}FsiGNi) zW^fG~{7Bxv#BhpWG^)B2Vj09Wky*a&#f4qRyjGk&$4-#-FJ)%?kDYt)E3-Q*Z&!Vn zgjuP#rS{(~5F*PAqkM2NhB21%oD_WAI)0|KZEv_fGtv~tf?cb0iVhf7@79Wubs?Fp zUF);_S7vuhbj%x+gju;tOBQ+7FC@zhrG0ReA}r>Hc4ZbE*kX=}S^Sb`Z(4?AT|T1r z9>~~FS&5nGXB5k*k6FdTc}>hT?Pt8|-_HdfSZ4774_QA;!N$LYG|1cnO~@?>ic!~1 ztJAHQvrPNswX+jqw>hmpGPZNCi}q%Pi2Ec;lPbHeTj98FrioR*ryVL4>NB`h$m(-&WZQLDtFCQaw2l4!Dxrc(F|4}subi#@W+eF4H+Rd@DO$X_ z=8XhJQY=A;$sUO)*W6{cFlB7ZJ_5XEc>iYS665-T~jwMfyCCZUry z_RQTI_gu0xo^{H7SyrncfE7C72%07cxI(Up`lYM8HXaI?b#K_sAN6zF%_)aAHR+eM zvCZ==dQm<9jJDrg?^z{GK#3I+^h+$lBnmrh>y*7unPf@Y*lB%*B_VZAxxTJi!__KI z`NvAdL|GEWQi;_<+afp`BB_naSIJ&5uI88^{|e=CyE$dA1*Mv{cu7Qv5p zCT);5zGQ)8>xZq0nOnHL(-T<)%5@YgYJ*5r(pTD+!vjvz`_yW4_s)**y>4_{dDhEr zi&NXcr1#OrZpeA^Wz~PD6v;B@S|wStq~-{11-*}`;gmG_wzbIm;(VfvC*a-a(L+XV zXn8q@$1uBDWM&VOj7J;a;Ne)}PUiO6J5=&nA#0ITEEMa>cnE|_lZ|{}p6rR+MnA`o zLy8a=9OA2Hmk$_e;h71=9SlPfB^0*x%&{>h#f>)h!}TlaTu=B8)90@qF6#=ZLSO~O z4MQ-ArFz>Uh%EKcBo2vPvp)F2{Dp7xw9|IFXLke%LK=d=5=$|*MNr;-MWQ|?cKYL8 z?J`}h^KiocOm>S;O_!SVG1}PO{R{N%8f853GGCcz&=yfFy2{JIe(GZgQ6giyaI>vN z;){DEI^~u^6Q89UQ?g2yaslw62^K+u>;+}8G>OjJ+nCfW+W5vJCvL>&cYQwR^zIk3 zUZA{7Sy9a*cJ!r5h~C%Vq)^euXFgS+)6!#;KO*1AL697*s8C_W%_=RHM0q44QFT&b zr(rJ9A$IzliDeMG1*tRjOsW%YZ24-V>bE+$xJmDE+1+K$lA4`UafK?YPB5_!k|sOn zl%^&zi8el@^2cb8W)YEdUJt1#i$HOOT2o9S-dv}NXF5MO2}HE9`J;`m}as=;C9Q#|&k#c-o+cdT?lEaDwDGa=pN~ygu`A|M;Xb9+!9mnq&=`iM$qA$6dy|er z8+)@-m4Q1t&)z$R_*XB>Aq_(0PaTCAB-5m3KD^MYpYjN8?4$Yp7k+eGIJf@t*YbH> z8X)*7k6;NbO?HX9J|@+JHn!f#V>SIk{rXXU%MaPx3lb2BvQsos$|joH*e{;1E%;CGiiJw~5l{fblNvm!ERqb+cdf9tR#`)-WBkn8E7f zU0_*(@h;=*tjIj2^Sg+s4SDNZg%zyo!Rq5(U|E6jE*(CN9(Z(e(8#GhmQJ>tn}hK# z>6wqgRSK7Qxp7jyA=WS*v^>J<<6U4)2gbXkKgNfZKD&3{>rEdPS%cM|hXh-VcY$S< zWW39hf9Hn2x>{%V;hA~t=H_6$OU*7LpVv6>;=_miF|-v-2QRp=`gj*u(}D3Wk8`!r z?AJPNzWKGeBWgJ8uV2|%*kpu(}D3W2PZs8AK}L5 zVT0GoN2*k;KI`d1Y%$(N$%IO)4~%yinDxqT2gW>yr>*kZg3EHg0PrSZQjdtaD1BiFXEl_%IO zoPzN#4<-)stoE_N))5nWMa!BnH3tgCaH=e{vHo}$CDSQoSYW)%xUL?krb%Bt|04RF zEGxwjVNFGjEylYjF;fZ=V7$u_WRlakpsQ80)${o*%PbB2%QoX(lvpYG7Z~r-Z1&2% zeY}t4d^Rg|zbq?7|FWjc#}?yVl$a^`7Z~qycnURQ)kyCdYib1TgJfn!NsukZyTCF7 z<6Yit>-`}5M($p39t^wy$;^84A)AbMfn^59yJU}8zLpHRHY&jJQ+IVRv(NoAEA6tdwFu81GW(d)pXC_e>5kBO{*Mo0V56qK+ORP+Wi?8t6d`ap zhoT&hh)*PlTyO(xWCRlD^fH9 z_Hgf~qoWJVu!iaWTqlt@2gcgcDQH$eIyGb2-4Fh2xBb|1%c+)CSgB1q1aas%~8vZ#Opw(y2^ku&j$}_=e27yLo^WOs78S z6twApbn1KmAGMD;t{7D-f7fMJU*cRQ|}JT$)q2 zbV`{Srsqh8H0T+g5z}Fwry0&b3%GaS>tblZiIVrSw{dKkBOO{RzWLYV1&+3*=DKk^po`G~~eYW&-&ri(K@=f-BXCRrW zTRH{J3`nP{a<%5Xc{G0&Q+?V~yMwNE}c>~ zokE5Mq*KPs-&f5&Q>o?N3?ct*>69`vg%AOxQ^c+AZKM6ST)NRBUtZY|kp}){6X}#P zD+T`o(y1+v!q{?C$6PV?oBBnTmGTy(?w7HYnJM@ekWT5Z9BA>a1$D1<@vQRl3}t5O zmQF!41JbD)iw!OR{rYTq@3}b(LHe1xrBl$%fOP7pd;jdZl4ZhX5854}4rVrzPC+vR z(y2uwc0_Efz<1qp+cyomT;yfhHjz##vr>rtKswb!*YU!W#uL|P9`<>xtbe7!K4}x_ z6f`R!of?&+Uxd%st<}z=mtLxYmDQzF(5!%TYT*dfdHp!|hr2^^X0SUeTS%v%S(&9% z6EpZfpYG`3;N-&vcJ&SHWe|LgzJd=U(1i zn$CO3jpB1_zBr$LA{t%~mYJ&WL!g>a2rgrtTsYG&8A4rSm@D<)PlAd%17TE?kp;Pf;y z-nIvi_cw3!r1cg^KU4SV9hw<9z0cloBG;QC{MLn&+(ZsYWmM-Yg6cJ;3*QL7~Ejci>-GY!?CE5#f$<;FszXkP(wmr zgXU0$4o^cOHl2v9;Uv3YQggIcV_$cuy7 zL0?0EqHxa_F=J-VtGRx2%0|y9Yjo((0euZ6$6e-+9s1OfEX!MG%;_JCm~GV80L=>Y zHG~fuTlUdM|D2l|o|$9~H;+|YUjsBN(AQAvnfs!%?Fw%%)8pu1ySX{&YnZ!XbIHo{ zG8~Bub$M+K)2Xhn0ort+uOUWrXYBkR?Se+un{mP#tp2>!$wnh#p;>{xhHtH3pS(FF zF3)%|Ty-=PuWw3wnNDAHVLBHKIA3nls@IUTcqpg*F}NYY4A0rsts1!h*qj zO36=hN@dal6%uUG*8t55^fkPD{48Joer@X&etN2vY)DY7R#57$zA7?9S=`7HlwhO; z1HquEm>H88#_D+k#~FBmlB%!T@JuC%W?P#NKr3(G5^T570QwqU?4C({K4Z9edg~WX z)`Y2Zcev1Ci@pX$(<$ZXps!)m-Z`CHR=_rQo>}~b-Ao7i8ctJF;?g(wszQI686#`D zRIEN#*YOoisI>abb$pFs(xB5`6Zg)ZG*fd-mRVZ3yDj<}6j>>`JLqd@_Oj01Ik^rj z?znZzN_bW(>}!B#1^OC>wy1S~!ZX*}IeTP-AB2ZOva&^A12ikp*Rc4@*^N7gU;ex` zqRxH0g;CJgFucs@_%joZF1?TK3W0WWHTE??n-26fjQD)|{evevnilM{RpWyQ~eK^uqi67WhVK#c(RGJ+w(*gQDq_ zGAz*7z+EY|q4%_hpPTPEv=q+WResyA$V@3jm~Zo%z!ci>p1N@*T?mo=9sJe1Cq*qW~Ezx@kMD{jD&?|29y!yPfflQw(@() zW@kpMg7h;hF|&~}0-BkmjL>OL)AP-8XBBFc6$#ITR5%jHC%cM8=bdI6#-g3=FGB&?J2gJFlGW z+`#Sg37615r(l_>`aT4jnfX4%J6q)Bh1ow4W(JB>A&cAgTirVQ zRbys-PDp0zE>b}=lZsS2Z|8C|Lwh{VSz@9Xzp92vkYoA7-` z|8#K7RQ{j~G&68|U+2ot$Cj0Tx2R^sCP-%LKD|RT1E=@K-%2zb=HK-Qan@rkBr_|W zL~V3>hh_#&@50E_J@%DYJtuO*%=hYGW~0+PG&AY+t_|V@!C@n-?GW7L#)^J*Nyb&ggL?f*4rzXVbC1%Y~bjJ5OmnIkWRF zNaL$JIah?iQVc^=g7}UF$`A-i@J58C^#VhPkD;S_S})1oblxmS6Wg8A#edh((_opY zIyr}C29op9Uut?ytM#z1i^mmjNM`Cz&Y_usBBJJ+8LbvLoXn(N(FUatwA#b$$7JRg<3i- zZadOgdANL|lyXr^-N`vLGmxCOu040kvl#~_fA6{!wozN%$vHGLket6A<}=algX`&U z1f*;a~sh5l)B4*fYw$vK1KxIw%EV-YEQbOVh2cO>Q2s~ znStcoYvQ3-9X}Kg-TrA`CrD=MPR^m3f#f{4_@}MQ2F%jW&G)hq95aW z7EwXIn@pLRl@d)GRnDQAf#ke-uE{g1#Ln#J*QR!R$hB!DW;ROBp_zf?+&AaC${F9y zYLuwNF5BuL?Z_1TM%oz`rw^PFv4B!jmE} z0bvR8eK&?72o_~YhCz(tQ7m)Bizb9zQE&O1sNZFE2L zku8~?E=*#OjsWrrzs3AgCG?UWVx}Aufbm*IBEDIU%jQ&Xjxzn-<~}KC(2Gc zgJuOr8+na1vRhKY&6;kniUvrL`QU8-ZAr`+cU8X=j|5F!Du6Y zr=>$5<;mTybM@|w6-);=zr+@!ji5~jMjI8b@bAdFWtK;GY(KuX68;fO_z$*r|Js{ zMH4EmKJ$fy=Hs`ri%X!*i{wK!?y}6%!rg5#+DMU=lDmV^M$W5y=kA_j%HPr9D~tD_cmy=&YwIX-I9`CJ?+lQ7Nd=z{R)gWia5JuS;6gmCl`0a z3cH0-FxqJRja6S9?tS~bw&3SF(56%Dm$k!_&CsR;qm8X{DC3tdzHBb>Dp}GE>@~!QD5Jc}_J?$HR=vIn7Z>X6nBC zhGr(+eQU!Pbm+)8ZTDE0rR$2mb_=Iqw9%5#Rz=?HKWx3#@lAGF6Q(A^QVged7;U6z zI;9K?j5hjrTjowZD}9`C?A7iAvaA$Cgvwg>2pjUwBhDXTtfH$|W9(%#{2KNIc2~uM3QiI&pl)kEs5T z%+#&FhGqsN9v?1;49_)d^!h$;_8B3WSxK&7BZ&tzGa&I8qv_G_cKp5Z(?&bVzx$&Y z`&F*LhGr&7Jan41RjPXSyHff?WX`tm)f>p%0u`$_C?PgLs;VLZMjPEeysXQ8KIqc1 zVwKy;uE{jmCv7s?NYSs9_DL|>s6*E3@$&|+GP>mbzCaDEtUlTZniUvr)WdPdooT%; zV&CUf8f$k}wis;$&B{F5C=ia9NT<%u z+cT|P?8pK68fPY;DXURBr3k?&c9-)UEncFLJb@SpULf@tY7}*EjGo6421uv=y_|3M z&OrD6Zx2lf|I-67^ydKS)S!7EZjImcrA_0*r?XhYbgGk1L9+tVskUW4^ozf~Zqa+q zl8#nkr8emlG%FyT8rm&7wAtP1Kc4J8klSu<4y04>HoL936O4Tt7yWIsHB6^E=@hi- zfOP6!S?!%3+?|NU#P>jJu=?|mU?b@iG%FyT+BI$B=^H2K6|Q(XS7p1oIgm~@%6qTr z>AlTQYo@x%EAdm4Mx)!{^bxj@PC=UvNT*_Y*Chu99G&wbPgJNi+#D(-*y2? zt8ib*B5~Jh?{vRfrR_nxg$5v<8o$|b>e%^Qy1Yy74wN-vT7(8$NT(D{r<9`u>C~B+ ziZNMTDhcspCX#kD9gt3uBPO=@+thMi)$oYu8mZ=FbhkTm_z$3Z+xftblZCX^EHq4?doa z8(Y}%jNMt;LOKP_3P`7R_g&ET>ixl!gzvRzyM<98otif&bGi~s`i$`IUN{YE%yy7Y zL7NUpr~JNpdt@)+7B+cKiN4Tou6TE$z{(cVDQH$eI(2VshCZho6+E|oR8x61rSkTy zZt0XFGo|erNT=$D=ML=ivh9W|9en1?`j;{@bxWt9nE~n4Fy}8h-LvL#KV2$!wB5of zkWL-$b8ddcj8jXGYT+e6XFfFPJQS1K}7@-HBrN`J|>M2E988o0X7ohR#G%FNU)oq}ctq*KNJDO+so-V#xBURQVy z$xPkSDQIRuIyLN!f9B6I7h4TyTf&aXwh}WNO~-*|2BcHR{mz`%Rvoq>`;H7{W&JD- zV!utKQ;MvVVn2{h^{sv}aQ3Q zGBQMhbP5;8DkaReJ$gG!;b$iuf3)jd7`iR`(!{eXdj|M-O`KCu_Ttroy*kWX!3jce zA5Iu>LR+%$TGw?@FMZXo$)~^6vJ@~O3@Ue zZK`IwD8j%{H0Iqfow#f zG^)N2fo5jD5AjBBb)0km^%tMK?okhASF>`qtL`EdG&4}7dJx*7$O2~Dkvo+-*N0@L z?jjX5GpR@=J_>WWR*{0pfXB5yAE^w-Oy!jhXlCY0hxeydi$_hJ^UP~(#nL`-%v9d^ z1kDVb-k0U;ImUP38ocuDAQF<9x=-)W%)se=WtD+#iacG>u8`;Fs*udAbP}~u;}bM9 zaC+wp?#dAyJQdyBWzr*cFtgF=9h#YRde??G(rvnS{#7~y^4WV*$`=*#ufjopj(N6i z3duQ*GAxZTEQ9dkTW3b2_~;pJ6jE|JccyBx@B*Q zFc{20A}EgVMuVQfIiA;J2Jr<7l%!CGV)P71&JVU3Uox=Zj8XqES72YaQFn3<%?u>x z)xPB#R=8ooSsrc<*C72&-N`vLGmxC0ns6;sY{|Q=pYzpMLo!o$at_T5B3+zU6S-#`3d?*2l9{@bb7*EDIrsNi7o79vu`g}1Quo!t%tpyM zG&7K#Pn)o|kjs6x=Jhi9sXtB5p+Co*oTt!qtTzY@#_(dF1KLoZS}hH9)fhO~-vsd@p^qEm1UIv36Um;^u05uK}7B zXgbd2wxe}S%jT=Lbc=gsw`dNUjvLRd|NQm)^1ihj&G>8u)2XlN7}|88={R%l-TjL^ zpV|H3K~Jl=x$2sZp;>{ZczL! zD26fUS%jwz;$vMbO>jw?jt90X({-=+t_W&N)?s!F4WQ|`XqPpEA9NYmFnivh?Xo6J zU5*YH8f?*YtY|u=933 z_=+Y}T7Bj^zUBzOt$dAU-CD&(c*}P+rG>lOqUl(Xm6E%IrsG=fVb!AY4gacZI^GJ& zu?m}xp;>{Z>miX~crG(^3wVDqSbE=|I!*`q!OjdpFaR zZ4>PVA3kAO*`nzfniXg|9`kf*WbD>V!7tXuos{(}ONRZW^hv4v%2<(^()J9lj5~(8 z_pNyGe2L(bvxh=5Q}>lIG&AYSSR4Mfem!nIcSDJLyZs8O(9Y2}*_0*|P^oc7g zH`%>`gAg+;lp(GA%9En$lrk*PbR5vuWkbLH-A73G5$4-|O&7;q zK}7@VQ+WTGXu&9YUHZ8rrY`zFpk#kfb=tUD9G#Pu(%1wj{Y-29n5T`jDTh)DI;{61Z>}QhY|(TK&C1+#oPu-;VJHKM8&QHIFoI)^jDQ+A24_%= zz$uJE5~Nd^sC}LO4O)Gj`_FBM$it=W=H@^;Rk;o2z7U_b zywRC{AFN?ID4m2Yq*KtQ1JbGLIm5R#$S`_r{P>)mt-j5Z&_B#WhQk?rxcl?7)E0>&Qf}kB*ecs zT(75SLF^+Scu_2GZd}!df6YB+y7pc9DkY;r?%FLh0O{0<+9$i57fd)LJ+N=CqrKxdc*FY@Br97;r=VE@=~U>3A&W}1S(0Vc zQ`*^XVH8NG>g8}QL=HciKZnzrP0*%OtTEd`It6VyAf4(O)oIb@7o|h9znTu89K*7* zg>(v<6_8FXs5W78hB%Mv6X)^!W&KKddseq}N|Bk;_6(#`dtcNYo}*%~Sq%cit3onU zw{!}c8IVrBI-$`SikvD~t$A2_yM7@wr{ZR}-#@5f^uekvJHQUEQ1^Qcip-S!3rMHRzx*+IUA~W=s{>wk zlJzgeHA$&kIt9%PNT-gSKHP5p+t7ZO`*phj$xPkSDQIR%q*K>#jN9klb^rLvj{Via z%tq2FXl6hDRNt@=qT}nj+we68dH+fS zRyL7NL9+tVse4cMu8Aw$uu}iEf$;sqkU6VOq*KtWfOKkMzedkiEf~A<_R#0@a_qG5 zD_cmXpjjzNr;H3m2nb4`Bu|SsMHqt%tdZhSJ&h5J-pD3Mr`QpP>(tnI_4~80(Hhy^ zAvKiMD4kM-K=3q*l&l1QhTL~okiv&Qw;nlZz^{OJK0 z`g4GEs!he_P4pMNn2Y7N#9G62f3B0T(bOquRzNz{u4u-P4;7mfT)z0Ge4j!p-CT9j zDQH$eIu)Ax4DKfof72Ixa4y02zoobJFzm#e0 zwnhzlSiyAalTJaK4oIiI_#ApOqxsmS8~c{#tiTFx5S=ZgQ_!q{bn4RSc&7i6ocVG& zjL0v`O1aFWZt0XFGx56D`BlyY<+ovK;6?SwTus%hL9+tVsWtiwmj}1)6>xiAC}a=4>?BSS95NSc8`E$rf%sJG&3NbdiLs`FF41 zfpOWiv1bO#nlLpPmSTvogLF#KbV?Z(kWS?td`OtLZlxpYdAnNo-V z(y3u3qlXq)lkI}jsV^n$?O!&LPARfd@-HBrx)t9>tAD*s`y`@oKUr3a{-yG%Q;N)# z{0m5@P7UZ3oBnLg*sk~7OG7eKw{!}c8IVpje>e;4Tiq?Mk-9zwl9{@tQ_#$SbSiG_ zn;Lb8y1VauM9DXCDX&c{F|(0$3Yr;^PB~q0-nw#A@0qRZc89-}hRiK&BArrXr4;*t zbjq!MXhqNaxxY5p65u4eCet7fvx#&HniY^vl_~6s)pyt%mvu+oH0Yj^&sl9Eoq}cs zq*K0RWZy+0(e*+NWk%ZFuWTWmf@Y;8ok9>CGw>*(M@WId#5ej7gZQ2{!eR+GNCHB6 z6^+s9bp9SL3uk5-w>$D(%i&Kg*7rRE{Fem>8v4}Lr?7+_SM>BOmNO_=Z#bc?>i`5) z3vzjsy?DEuoG zMZS9HE<-)mwryNn=UG3Xr=drXZ{Po)gYLok`x|<8?mYQgy}(`u!Pn?3`22#v!x96% zIEMfuNtQK`1~&pnIbM8noX2s7B56#IA;jHc^*yV&vx1(%aU)L{c|AvR97_`7ONf+b zPDhlL=2FFIS830AG~ab3?|@v`ioOFjb+>d()@Jn(K}L1%%msG!?JRV&@YNo_e71$J z_V7yj*%rRqAr+r3iLgvg!2ZboY307B@l}OR7N=AEz7r(sE+i+&9-B%h$b$G_7><#& z=mefw9hUzcP9Vv&OfIVszESxSEeydNOKE{;-RKZ~bE(CrFfiB|3p)`t&I} zLE$8E75S-S!f~3y{;t3(X~Il6Cr-;a`Px5E;;Q$E+hrY`sgF?qj}sH0zeWEpoRVzJ zw5WV4_1@r0E|}DJc8_(cUR092%;W{fhS04S1k9q|&zYCQDqbKdNfH-Th7XHVy{M86 z=lVM~DoKH6!dd>)sC?<(1?(8yjIlWE?DsdSKaWw#L}-5pPD!K|qidk+>v6>S!^Y~x zhR(a-Nmz_gMa-$Rs9{a|9U3)R=K-D`Va;e%2B=MXnDgn^WMQW3z@=wUA3q)-EJ{*BUwB*HV{%(?aX=!32i-?IDccx(-vW_g(@w<_~$ zjJw%alNW-LXV}Sfc-F;ft4ffh(=*{bB9v{kB)E*5Z|DZA)YV{cCX?#@9XKT^pDFmS z2`^W#$-B@U{Pdx`s)N5I`7?RJt%^&^zc@HL-RW5ugRQWrz-`jcMRonzqV?@kyQqj{ zZ%zIkULdIgO*kK9br`tsXyf=%pRV_`H_l|jz`p~hBpfuQCOcdQy>aT=Xve%f^SvzL z{GHUqtRDR7nK%63FRg3#%oAGFdB6*P@-q3^o^}wgB8GvIUh=*1oan!l_ZF!ZD7L6Y<*wXO&0-UcM8qA6~5AKvh+&`P`k(?-;^wSFP-);$?6WKNXikaz9OW21u@Yw634#k&aYJ zZ^ZSqXP*Lzx4{;!Ra0@RDv2UvboIr0;OaFW7d&q@dtRF?t1?-l`5SHul#xH(^y-`I zPg*8%(`v^Iu3>{8CAw)o%k@B!sHa10~_4Y55l^x5cny_m4txl_N&O zay6?be{#LE@^;mCNw}7JTWbH^0wMCt9}^{Q;-kY1@)s_DNnL3ITX^8)93wwQmtOIt z!2npWX1U-`uy;#z%o~&hY`IEH7J1e$Bo7v)eQ>ec8TlK*N)k*H*aiV}gM#x%-S#N( zB8wWpnnjp@-_3xe(=;Vk<2S`Uc4@uohn_im-4a-c#Oil9tmINn>uy-KDq2ZWP7}@u zZsjOvZPOLShitrPXPn8^oPP&SN$qLEx%E=}lC=*%3tJu?)=&jFlRh*0ci@x+p(dPp zx9pn0qVIOi$V=<=RNxIm6I*X zHPfxl>0(jF`x|~{t~vr{vX#dan3)TYDq|*96?NXb9p;Q~9(;cC*Vax5oS%VGl9`!& zImt3JP)$-9GpSUh^Im)V;*sW6jeISfECa_3)HTe^`MX|6kjVRntYE38SWe$#Pxy%`K;4|w*ItR3htnpJwj92tblAnWCF7uj^Z|6#SL=p!oCu`?Q z8j~&QUsIKoD?$($nl^}(#9`q^g68x*%d#kKLlgHtoWiuSNt{h=EH9Yz4T`jTNJ!R(qz+b6n~~0Y{;99CJ=(V(UuE8)#j>m{Wmvyt zcPg*GDuxCU;Ryz#5t0)7^7Smva$@aTY$YjOBNu=X#y6TWF9v zgLIm@lOs6kbWNks}aCfQgM;qQ`^A^{EJ+Q3>b9UciH`7V& zJUZ_jua{KolX+q6v8V0j9|}vw>Qi+cAA0qf>-d^mn~H}P)y`SC`7E>4?(UwfO-CK> zF16w4G|TJwbnbez?%vShyR4A#nL9>6)*#!2lPqgU)`O!CR#K0R`0Q7qWhDnzFEhk( zbeD?oeg(-YS%Zx_SV;{u+VI*ZTSrH|>%Bj4+=YMb7DlDU7@g)$*RY!lpG0=*+91z= za~8H@_*AM=NnI~GP4>#)7Y^~8b#lt$eDc@rsmT_AZrmIae%0hA@5}o&B#1YlB!l3h z9`FAvxt4akw5jMxEiF3lHe(*lrd+)$4W0aU23g3C6ViETo>ttCeh6t74 z_Cve7`L2PJGoX1RS!QYAU&*^d)RAdPZ67-Cj`QwJ+1_$;qn7vcv9hcb z{Y&M_2x$KT%81pz_3E9Qnyu{fqG#o2$SN~aw=x2n8Bj)C|4}Qv$4W(JB>8`BjV{UFb49QI0MJi}!QjtpMowve?otH-TdzU@0 zLp?ZVDz9`vGc#8@yyt4yFCBjFiu;Y)r3b??Q~Bu~ni)8~Bm20k;Su}qIusx03du~} zr*~*(;Pk%y$n3k52d=!|XYuZnkj&J5dWU8PPVd|HPssP6aKM>n{vof`!OTXdcW7qP z>0KKhg}z^Qy@qb-4`PDFX<4c1Yk>Y7rM?CPC0K?v5Clh|Vn;2{;0Cd^8X@#FW7Olc zA)&9Kc=a5sYrR{4apgnpL0RLcrVOFRz6M1Iw1G5IxIr)qgg_Vt@eG5~s6Y@X&WVGk z5Crr!6wvpNTHi2#jISbTye@i8CSW)|qr0eua0^PBPOJ-3(K8TzmM>yW85-Jgq? zZPeEQ%?k82Od9F1cYR=i@X3MhORVAMs_ScjW(E2h9!~J8ia2b^-Ee(~#cAMa;^v^Q zq1U)#?t{l?Z1FP8>z*}Cr@FodXw!kdhIVrs_d0ec_+B~ZvzM*G>d!-hjrtm(S%JQW zMiq(pjH9~j>^42;%sbV6OP2E}FxMmu=D40L=>Y zHH^&mV|G)A`~z0TPLqFTK6R{qK!pTb^ff@U0(}iG^GhAOxJJ9I#IXz=WJAK=UVT+$ zh8PTlL3{*Jj~WC*FQB}@kSK37h$UD`e8^Fds;}DcAA{bq>7I7zR)Dzr$1)_v&r!-d zL0?0EzagJHhBWKhGPd+sSrewt-QhxmE&3XuS%JQWjAI6rsXcqd&EkdARkd4G2Yn6K zruTBZBfx#)^w>@eX6eGE1FPg^_lDVn)3T|%!uw-XnLuhf%#;arG>lOqOU=b zl~QN`eGRLYGdCNa=zewBI##|Gohnw4T76seH9)fheGPHjsG5c7ss&%yoa+ehSCFi1 z(boXY3iLHh?S)jy*X6C>LFY?N?G{EsUqh5*)GfDj`)h^em>vslI#{iKve!PWB5Hs( z9q4OVv2*mn3}0K<%v)^|yqm+avPEA5G%L{8;C$#~k&m~RY}_!xFk9BIl(%PfUl}Vh zQ`(-vm2s8sySkydJJDgdMrlu)ylL>+R*IR4Fr4w=x2n8Bj)$RC@#c3UwGUt? zi>g~00nH33BebnYtefj__<3wdpF;aDZoJkV zehe98Zef$Y21Qm%u^;p`lx;Tcr0dl$(<@YN5-sarX|PY)q^|**73gb-={M>@OpamE z*N*?#p$1k~?`wc&1^OD+x5+T1Pbuuc3AdqN?9R#-eGSm8%zX_hjD$rw9Ov|yk)~;s zFc?wJz;K9x!NlJoNCQeHNT)_DuXVp_vGW%@mYSOlnz9Ap%b_I3Y=MZ{W3m2e-PF@lOxH(4PaOQ;l73IeA7$*37*9^ki$8 z?$31+Hj++3vjWno4c`NXt&Vyd;B@ONeC<_qbJa>ML-0%AL%)9O8 z=0G|X?ONlc;lY?w>-nx$nB=q#PA9?o;5bcTs5R$TK${Lor^+43SnNSXde^BTnJm71 zYCeajCKpR^^Smp22KaY1H>!yPzO%=g-|3Sd2Sly0})bbZK9#^Sd^Wvr! zW3$@L&4F}^T;<#7RtwKzhqCH>EQGcwvbLiyE%|fbs3iLVZClaLwl@$gIZ(f zQ=N1QniY^vv0}fc3!OEvX!FN)vPPHY>=qh;bgHU<$oA?@ktR87M!&OyyTgSBTS%uAO{bKj z1L;(qOfS1U$e5v2i@S6E?PfY4oeCdxwPo{gHd_V0*k@VOrDFA|S~{g@LZ#IQq*EpN zF7Eo%c_zI)H%ETvTw3gewvbLKvQlz)Af0k)w|z;jiYGesn9zxr^{-U1f|LW!Q($zp|1dvl`W)G(5!%T>gD*);U&KtoJqW<~q7EXb5Dqqc+$H^7>hA4@=d!l@v}4`dVsWy}(!jrLBArrXrQ}~g zI`#bgYwy?zMLDKJhAy(K6#Yx((kVq|O8y0;Q-v24F1mgG}OVz0nt70 z`x4~PPEVH5_GV=h=@c|8Ae}1RZu`l&eHkB&7!q|u4Xms#oq}csq*MNn=bdm#U*50% zx6Xa+&dL_jDQH$o(kUK8d9kaW634>QgdV}f$F&Jg97Bb0;yfjaq`Zp8=nT4@9%BwK zsI~h@%|?sEb6l`Q+C%Ba-El=v&tf@)g7t z&o2l(EHS{1i1>cCIAu!D>)i+=!SF01KJJ0*Nr6RpoHyJpT0b3OL_H1pC_RRd9HA$T zy!c8vAr6ieUnNIan!H=Aejy{TXHh{ErZEUcU_8ngP+A~(TucZ_+LMba)N!gaU5T8a3$pNbiYc(xZQs%8G4ID+ETe~-8%EHf?N?Z?r#bj1xB%a4ve^Vct5 zNu(B|Gm3k`o{HPKlaa9Ix|Bp`a!j8-MQ19UWG_H|j;;Ddr}p1jzmnF? zgnX`Jmg0pArE4>&OM8pY-~ImfoBD|P|HyxlyZv{NOOiR$0*;K?z})G3=0da2CtLpY z3s{ohnY^ig6KAZ9Tldv--7+?|$^w>@Hi-*Z?oIaO-jqy%_uug*NyTSE{?E%2WmZ&k z*~NdHVsZTE?=Rp#kD1A4ps578BVqL1lb?V|pd~S2j4nWTz~jguuOsC$-5i|mz$rgV zUS7m}WU*Wc^z2oOdth9*Z%#wT{Pn?85-6Hh^1fr~H)KBMsa+qw zzm+Ao`t6kr5j>M=6jid4t#A~UbdDx(qWT0}D$^%gb0f50!N1;{B+aBLNIh{|%78^}pjylE~GByw8<@A}?3>d(`~KnXXn?z);AO>0JLi z$R(|;DJ?5E?aiXR=MA~*)fr^*8H3+R%gln=pB{e0|NYXsW)DB1MV$w{;3qGWPs<2e zJUe0-#r`+Xj*{lq#J>8F$K|qX>&BKk(0qX1$<%qDi%r*Ra`n0V3a8J5}FSJ;xA*tC+5Wo6v5 zxwj{Xd0vs0kpIR?2AblZEBUez^m%HMm8{zl5`uS$lwZlX7)41^d?reLE7=+qI7yal za`zp54}8zmxX@6xDq?XENE*6(a%FNFySoh)8fPdBYx)AEq+ z4kXS$-TmsD>rYxHarbJ+46b2=A0@hbKFbAX5xb{bW*Wt%DD$7HH%lUEQ>0nwc%-Ce z!iN4goI{SnqBkq0f1BbVS%bY3~d(Fs!_x?dnYx?W#s=In4YH*c2Nz;ld94GJIEzP zy9s%%QpT&@_ID2SkC^SA)`2DKFQNs{bgn+)Bg71gNjc^s#!t-P|9rZmgM*U~ z7ueMosKUizqT&oCh9mVXfl{0(c;E~)EvmUmh9nGvR~DW3v0K^K6n$DE-Gm$-l`I)b zL14lKCC;0x>i`5M<`H!AA`{CgKWWyOm?S1iU%N@64Jnz<1jtM#C6&l4!JrtN)e|ft zib(VXk6^4puNO#!rvy6T*Oa6V(Rr7tp6O$uS!DMdo;xgN>c7KGy6;ZHOzzG*1!m?e zZ3WU)Frn5c`B!Zf{S1`r z%*^CVc9xleik-@sNwqeecjm>f>*r3FaaXN2{SA(?=)@^zmSn2COdV4&=y znms_O*yy}3wFx~JS*>TO5pIjdLozcLYs`KoU$C*v4Ag5>=4Vo+Md$6!zlhQK9oe`2 z{h~3D%*+RUGc)-@i)Ch@&Z07AQiVk4{j6ni=ipBt;`V2A>8%cC=K6@rm`RllZFty< zc4L}Gx9<49hAxMt8^GW|L!Y{O=cvw|6VhcHrHeijMos^c<+|=$3IqR1oabsd`2lP&F~sY=QfAyDGcg&}w&hTsUnvIvJ!B!RI%pVj6_@tZuGE=!=S4PR0^ zW1WS0*KRHR&*mK|8~y*AO_QDxpg%|I5!GonZa7knTk73#=JZAX&4K^WtfcNvohGlx zC!ag#_ttEfZx=2b<5KD7svGzZ%}VOa)P_67e1AQlTG?AKmQ6fuH#e7hDRr8aVcfM& z`v%_Gh4l%uhUuWDd)s2*KeXwjCP3 zv0LS=sBy{j#%Jy3=2FL@PUBFk#g-~ZkFC$QOVC@vbW*!al8sod-!SP$EcOd0Yd2KK zMl7`o>NHJXjooteK>Db4`D(4V0xP&TK$7(ds)H5i@oS*#>#@Di!<;2F+Gq!Kh{d$|jlpv03G0=oN zPY?u4>v^M|q%a2OF+I-UTtbhZ2P(GdkqmESFhNfU29zavf#fNQ<`{#hic0b-z<%#5 z-wNcN^}0v!^s#n}A5znuPIGMQ^e*h-7PBW%>8D#^O~A#EWF2?vSQApWoHjh_bL@lQ z!yjv3FER9)-Ao5M+!B^(`cs3)v)==1Y5GPCuw=g9TB1_LKXHl5Rr_t-;bw;=YQ7QB zX#9Nd`_&hY()XeUTY_r7MM+)O54R?g^{%O7O-OxbI!zQ&xI>{P*PFiDeDDxFD|5#g z$UkJe&XVOH$(qj8!Aj~E(`gpo8P#yp*}MxH)~Zt2?yQnEi>ZT^)aa!RKVQCh#KF=H z2h|PVI?!&hR%*`DX})Es_W60csb614RP=;49q17Ulz?$!<|30wNHMTaq zMcLe$_l+7BCy*1D+AT0k%||*-JWXl0N5(CH(ey$052|@~M0%#CawTp8P%Tr%;!lqw(T|0hsZ0`>E8paZ@-`VlZx(?H+)te?yJumOAFyD}0+F9!<;5W>fCcK1zYnY=ATfb`pUuaeczqXH@_b?eHGnlsNd7*s zlFCGsO20)$g|_GqSHcpUIK~re*$^ zyz50BtfY<=ohG_@);?7lAVc@g8V!Gc2I*G`tdh2?sDqW%YNFFDnO8rj^MOWn3b9^Z zcK54<8gi086Lqjs>Jbr@RRU)aI26+}1Zm_rir^{nsUK265rH@02|Xh2^*Wv3J97Hh zHzl^cm8EP+2lk5wP31iziZDnDHBth}kvK;a7>bIIAy618!eTh_X3{`_9ub#?kC>AB z#f6<-b}a|XOu8{L*Do-k-#7nhUR2>k>|X6E7>U?y9DOM#iW{-!c!QgKb^ zy;gJ7V|#_0iwtf7^0#S<@eCAa%*^BqG?tlx`i#n$nTs#pmr5+Ed#1zu{ms0yH-Pjr zb1lKlOieu^&}&mF7U;Yk4#)Q0va2OlIB+54bEK5HPGDvxUn{WeXP{J|GCz~*06OpQ zQH`fInzgEFg<_{$Li(Ax1Yl++Uk0$u3{(MB#!Ncm>%5mmJsr^U@t4JyUlvxjRtotqcTPv~`gA*As&mnNP~*1RXHAhf(-fPm1t##e-aiJ&k> z?A7Lsh}a;4G2*Cy!AN1a_&OP-M;MTtmpSROIY;3i=uE>``Gy0<1c1`0Iyr}C29om* zO@?PU-0@20GQ)ykn?%)}oI^7M$$6{pU$dXjP;+30k5}43u1$3(=g`bRa=xd|g8W~K zcPcs2f95JUW-3q4p_zf?yvbaj5A8m*F7~cZi4$TZC=QaQNc4*Ms zBL_+awcP;8Ox?*jG&7K#d)=$IPWW>Db=Ed@GeR;`cXAHR3?%34ZhoUXbibF;>%7N4 zbuhD0at_T5B*m{C+6iE{ZCRWiAaoQ3? zv3e9I2m|%Aa_*FwXw#B?_Jwpl0%?48C+CVV1V${JbBNf%?u>xhc;Y1!hQ2ck8C@TAC8&IlXGZhAUQu(ssgLYO}@)_ zzSM3wW-3q4p_zf?yzShUr*HV&+5Mrb<%ykUy@+ywM%~FdG&7K#w<$6&e?-TxyNmYy zei72o)Sa9|GXu$ae1QVG+Qj{e)6tYARzwQ<_}Sl0Nd zYe4-G=ksgv-0str6d|xADljO{Q@A)}i6dA>FBpwtYL1cOFKNO6rYm*%UL$nU^W!H5 zJUAt!Y;^hQO3lnk4b%PkC>3!q7UF|pI7ZTm^M$RV`+{Z# zrYn)NkD@t;EWY?}m+Ed-VKwgm+&tS0^OT9?FIFb)-7&F3P@Ga1D==Lt@xWQu&Ints++C^?dD**(u!6+yIq-?yY%HR?VDJ| z&GY`Bn`e(rm79wrdRQNfA#oH{RY(BSm3;E}T^c_4OJLNcCm-$R=3u%~*9q@$cKjcE zUjZJ~)vXP|-CZJhfN)&U3~nu6T#iB@1b3I94X!Qj4y8p(3oQgIRwz;m#fnp)xD>l< zGC6a?baGC@p2-~e?){(txzG3i{Z1$ElD+oY@4Hs&gB$q`-y8F>66WS;lOVh?T?yIE z_329a+gu4(U+0=Scw>_Vo^W%dl;Dl&O2}Ag)0J$&9e$ivc+SOPv-5RqS;Y`5^IN2~ zyRW90!Hgt33j#_ym7pY5u`?uCUgCL)Wid`AwC-zYWa-;g8ZOG*vFN_GtBdNItMur6YfhLybO5_wh|lXcm3WK7P>U^SLIc+*f-{(@^?vL(G!G-Mujr$rLLy zch_ekb^7(mpe?gT4Q)TX5xVvVx8O`9WUTa=NMhajyXIZk%uOA>Fa+JN5V7*cOeAEi z^qELCm$uxTr|j#qKacP1=d(1b&qOM5F?8*NMp3WC6f@8ZK2tfM(e)iK@0FQI$fnb0 zB8{&5wBCkXqsHE>G}xGLmyq;{ij_BJA|Yd?%|wEQJhyrWUtSWmW#n)BRKt{DUL0Hd z$=DP#v*THRGVZ){>-lecrC#`MNWUY9m|6SD7#TC|$v89;yLV{Is8!Ei9~-snh|kig zKFO$f*MAN*TYBlQoA+N{Gc=(`QiKmC8JU{StisYJ8QFp_9KK#_UX!!alYhU6F~rI= zMOgf`-xM>m6ybdB4|==)#{&hs@7vR5TAHv1xK~n{@oh9 z@mG6$Wi4fhm8pMOoEc$?nVEm-%!on5sbZPO?(dkX`0<{Im|2?{fsC2XjOae8PT|YP z18*+NyKX)rX4Ym#AY-O8BfeOaHt(4xML!R2K%#2#J%pK;m=VaBY0L;)P!F!yi9QFy z>wJH3sLyjhZl97!F`TttTJ?!Qjn)-e)hj=ByaWEayJ1Ww!8z%bi9n`)Wp+;L6M^oH zNcs2E%H`=yovv510#+WM2!xE4J`t!d_3(7IWp`fQ+J4ZO)teN4<&B9z$XJ<81Oja_ zDZ`>Q3cNP(k4+d$iO4YOL`$+YbI;eXW6*y_HaN19h|)_z$t1%rhN zKq4z)JTJf+KV0Qin&(6gww4IEz>0Au0;PT%J@IwM6?wvY&wPW5nWf)DkTG+sWs={b*hG-GV>Oq0Gs#LU`FDrC&GCY3FCXPGC9 zCl)?e9_Zz$+s6x zHsj3v3U6NKM8wS6w|8XB^xON1v3qx1*>?Nz-iGPhA!6pCnacQ zGF)WL^xON0iP!ztoNPw@S-HYfYhdQ3+dDF5+U-3wlCQS4`MIeLk9}3Ha%B7u6~+^R zkbjPut^rd?4(D-6AaRl6cuwGXj>afj5GhF(IV!M7v`w|`@MjO!kNWQItpa^cY+35g z0sNf`s(3s$`Ks`MqS<=)k(I-tb&~13qhrQt8!H>q$Kia3`ek<68$Enn>RwYvE(w#< zb{OivzGZ`2wt#xw!j&$)!}|U=O8kY02qnCI`{{9Z3BCt`zdH;_7+@;!vJ3-&s2r4i zZ?r0lA}fk8u#+PchOqAv6eU(>Fq~0fs1k)Un8+w9BMY>Gvy!5U_I-n?a0aJIHnd?b zm7*9N^vVJ!F*2`EvPvmDrpY6sLw~gu@_$qG&x%h2@Cljg_7dIsPiRK}I`V%N5^?`D z|M&hjH-DOcVBEjW&7YRcQ-7PLwQ#so`k}M#H9B49Yj*Msx7xDAyHl* zls=ByA|PY3m7kD1X_5^Gl^3)UiMhBGm_#;@8kwn`%!hz6gR79u6jDPsj^*b+m#+_oBxXypOt(&hYWau%?l5_>*7j)VTt_{G%!+NS8d~PnuFDHinIMkh}Vm zi%jMd@+VDe@X#Z}Jdg&4fg8qPC~XAh7*&@`1}qUrFc*egux4x{`xRTuh($pKCG z%~ixOsY~=ums^Z~d#O|GEoO$>TTJ12ZgQ~CoMjYJ=n#;eWN{AG4Tutt1q7#r!LO`x zxoEw@oIsMCs_+uUQ!FmPR&<=jLH16{il_*p{g%UXjKE-U>4ClJ6wYBF{831nBvhOc zaaJVl{|rNbD2Qe_S`rzGC2(GVO9rn<6pXeaW!CwG;YhHnvX&CQf3tbPv2j(t`S=s8 zrZjQ{dyf;#`cKZXqRDSR{P4Lu$4m4z2O+__h>bp>VAm8&4u5(lwM*GpWeQ%t=qG>t z{-nvD9EmLCPVF1{8f|&|=a}F3y7Q+*B{J>JFE)`GZ2*ZckvUg@{BI^Q?Oo9k?9ED) zsNZ*Zqf?{83%NaIk}}v`q*k9$uxolP2jPF?{aMl8vnr+DUTNqkTgDq>0)b zn7_%kzrelkzMr0R$mwdn#@t2M_6cFGiQ^o_+sU&vx@Y{nSM~7eecrmmJTb+alYA88 z3+qv?9!)*_xcPr~oL?+hhc`?CmysR&tVAr?x z{ci@lMgepLM8T?u{TgPgvj1SK5@UQE5UzU1PbeTX(PXr3GBn5wbRN1e&DMGahFz$} zxx+jW0ii1=V**-Kvc8@~YefE?*qoYWH0|5kroqjx%zm3oGreDU9HS=$#bN}$@t z$?=S_jq%3Ec#@UA^6`H&S!p~{hjFGaoALSKGCeBh$XsSWs&SlT(ir0yua=C*IQnkM z|4rj)gjI)e#*98){-@(PQ~Bs%GSgatV@);hO0#O6T)26**Y*E#m&Hn9@)8~ z%TE`)-rY30-`O#bE4BTEFxT|D4$Nn6+E(D74IOp{Mr0qK)VU?&d)&kTzf6ER!|{Yx z%6>X*bu-;Bqsl5NGn_=zI3@Bb2de-GMW$7pg9XH@YS;ay7S^xHz4?#q^q`xY-C4@1 zDlpZ_F+rAIHf#!pEJ?UT;snl+G)1V4NHCxgfGxwUL@<)*oTzIH&Rx4h>1>&w^>1~s z$YoT_G!B5ioU?!t55WC(jds!iJiDM788hvD-WL2KnY!fEu^eOf9!@?G5i@7&-HDlT z``tZediUL8m}zZsTX6Dn(*nN_{&MLE<#*Jj*3OQ&j+tRsJRZ!PO>v81rgf`r!F_UY zSu19&Saa8(yUL>Znci4*VrJZ2bdQIWg++(J9Yb=JD)<&@fW)ZsVv2o3bvS6l@L5oJ|yqVWxFA zLL*maJ5}B9e66VGS4K5(_gdMfm(sJ2Y^?i5P8DXlUxJ0TTr@1}qDUCZqq2e|F${+j zf`ChkBr5iOW@SrHEZnYevxepFmP=u1{CFh4tHOoeu>lfS@#~BkW7TimdlW2sa#8(y zWGR*@2nq;yK@bf}UYejVniB}n>N1R|!VDvs665SM%NtstY|7t83?DgvOuqPy{$I83 z)HoD=hm;)fyU^du!?{qm*Jwnafx;pSigvM70H7J9qllpxl}AZn6cH^n~e!;b&-M!^wLJDuexg|FzEk z-ad14O{-}O^8d2dx)T}CoV@?zKO;O~I!#0r=O8vxYQ{Z?!E`P{O>4Nhrm?gI&28{! z*71KHTDP2@yv74qY3j;2SQ#nP|AQ3?Yhs;*Dr;b+X(MgH#O>jODm1=U=<`zFe`ko* z$KHK4O${VPDkOnRyr|+7K`AhMkr(atF~*9jggd*hp^=ZerMSDK<%(*7JekI4sXz&=YU7-J)dXSXRL1Eip`kj?_zup+hmv$%#UYlKN%w*&-#<`(2`fW2xa#C_UJ5*x&zMI zPsYfYX-~$Xkux9MYCFF7h;Ji?ZA$C2bgF5RY(d$}hIBb_Y(;dPj%SQt7Cn+8Tp4RF z>C{D#WQ`P|X^CvXZ-#Z=S#{~G^ku8OFixkYDZ=8f{mAa_eC-d)l)uiUVfTVEm3uOK zqhVT20{?Q=_gKTfG--}4xO0vn*H<4sp@`Rqt~12S)W399jYR_3^Wu?D~hjL?NS zaRH0RUM|zC^x;*BdigTz&*;pEmcb9V=N`S}_+FyiEkw+$&5S^fNu3!{ujp4TQ}sEG zFG$(t9U^AdW=0@mrZXejs{h{4dj0vV!atWXejGQCO%Gw_C1wONW*RfX7PR@+kKwt? zE@=GE+uUwP5GSf5VR}_Ft}R?eA8}KeJCk`PkC_n)G`)r`XvmuL4+cF*_RUTj%V8Lk z@#Nk2$QOuMxr#Ncft9ASumug9MbiiJW%@CDqq9EWljkb3um)C|KEf8%>WgP(x69S5 zHL|s-?Q_4fcTnSqBdmdyQ`e9qTg2b9k|#@+Dn#hjF|1d2MG8~Hq!3Dgsrs0pkQ|G_ z6n~N@BvQgSj!+c=BPGdBovOV4%`aj6vLpVxi|0W`SzngmEZ%%hoiYVM!a(pLU^p&d z9HqkkH$i|MaH>LLga}I!cx~4~XylaLceV^`KjQb?zh6A~p%-A}pQBT!2DCqjHLXxM z*D_&FPEVNb!+8?GdW*B10RF>Dj|2!ZRyuX+P3_37tM|Rk-lbo(@oKPy98%!su^R>A zy1Bttfw;{A2Uglv0qbC;Q>UhVU2@a(9=40A^B&#dGdI_%QxV0B@E3jy-#X^`wqu@f zbIVbuklkFTPW_c`Z;K@>7U%0KmUTP1D^Yc;-Ocl?4(}GxF|L~%>??`u=3b&sA!DUe zr=~0oseTvNZ%>R<^K_|mtN2@=nNFupeSUvq zxtuF&rTd-=A8Kg21Vo>usZ*vVG>bl+I@K!ptNw#*rIIUGQWQ1BEGgXG8`LRNtjye9 zr%sJ2G-b+|z^4_dv0E5)tPtry-k?q)W2IB4mQI;b&+o#Q?@A7UZ{51BMs{=49&^dny~DaHy?VQU zTJ#Ea3fXizb!vau7qh!oT2p$!^1?NJj+Hm4Q^;89)G4CUrRFDYRSaNq^?6~4mHF{( zZR(UMW@g8;PMwO%{^f>)`zu_{x@60AM9i#BokGS;r%nYe+p@jgvtED5Uzc^eU(=zq zHWuBQ{v5NaL8ne7KNwx4$v-C-w%mPPG&EsCPD0akYW%$EI?LG_onxIkwPL_e<^TPy z%d^n!JMS1`Wtt)^PMtFKFS8V(Q>U(Pz0<8~i||2h$KIc7h*=W&mshA$rdXN9qE4L( zf4ePLJ>{8{YRi_5jNa*XJfySDZH}3>sZ+?9 z>C~y|nf~3bTg*{By#RQde?BwJP$Dud(t9bqX0PojTS3i=d-RdPiPd89D85D_|9OK5g98gv{eq~0TqDhG$1zEyGN}^yeEGH;5E|LT< zr~*l0q@6l7lkeVpW{y=ahty-xGo2NwQ>GxmyO|0HxGWH~NXZ1r3pkH)3{TNC#>p71 zQ>T8Po-Aa-sIYQx&p-X`L;H!yKS!rdweS0T?<2O75AKbsof0`fka!YaqD~=WrBkOW z)BiNOux##=@zL+ndju=1O`SreSmBsV-hTf3(HG1%LPV1Xh-#P9bBZQ>TW#ecP^NmK!@#zR7mO zXKt=jr~G<6U-S0MFaA0`_I7Izm=28};SK5(vgvf{)bSG0c=CqV+h4kyKGFkNS&uq} zjFnEEl5@>jf9mq}6ouYITrtGTUCsaAJ=WsXDO1dFi4rkRlvoCbX`%!pN&?JbRal1Q zC|Huf=+vpMJD!EkmiuHn+vJD2K1&Tcb*g0U@NHkUT$z0Mm08OTO_-2w1ilR|HF$$M zWokOJ8eOMO9jO1JIWwnN#tg3_D)`KFI(2I2;^IS7W-Q43+4w?rL(?T7`YcVIGBu%D z^y$>813UOEzfLbyFzYun_ZwoC6z=W~>Xa!~X6~+2r%I-OP3GTM^-A70ul>=nLZkzE zgF1zbl}?>HRq_?{P3vQ`az+gZ^Ep=DpiUuUrBkOG=epT>(~T)-I+xv5-)Cu5r%p}( z`Pk)A$s0+otpE{ z^FP0SH)m(#`m2p6TALrw)}~IGVrF(c>(r@@1MjELHu(!`aqD3N4E@U-Giy_)kTKJ# zQ<(<^T^TUs!SA)(mS5_#bgEOQQm21+`fdi{m%9DGzG`T~gj86j>C^|*DO1y#RaiQ8 z>TSKK#vOxxo0w%yn=OV|nYz2hsZ*wynWYGwI#qUu{FG_4f7+?E*A5zDmIVIg73!2J zR%ZUCQ>TLVEEv9W&8tcWmLD5qh?S{-S)4j$ikX>z>C~xTHtZ?PK8nh5@TVT75HYhh zbqX0XojO(d@tkkc&KWj&{@3|XG4l`&$V=2IWXyEx)ZSK4Pp_H4Js4WF;(A0s^AKiU zqD~=Wrcdsw#e(^r;DZirbDh{it>xQSS%_Xn9tEaEA z@(Ohd87rMSb?4Bz=Xa~5*_F3t3*)JIN#IvrnL34xl}???f4jimi{&!+d^%Y9#pizI z4eAs!R!-{Fl$36#PVtHald@=@p%s{?q!2tQ^RSnW6I4QGNtFmpA8o5^>+63e&-#JY z>(wl<_xl=|-637rgvA{Yn5}moSvee9Cz<}dwkW%QnNw#AbZ;|f6+BS&=_yD94u_WL zyFSwfu2!t7&)>bQ57q@?3{H?_=~Rw|jl-i-_nJC#Ntm3v!zlkv)rG!cazN94a}_a6 z>Jq)vh0^D*j|-g^XHlMxMV@%TpaYU+Q8-1Cc>7bDz=^n`1Y}PO^QeGTMKH|eqV+OU zG%KJn`>JW!=8dCMF3uTVf7a4fl4(2di^&w*_ELR1(k{W)4^< zyPHd(%KOYXI*jj*L35> zA8$-6H0eGns?MH7464Ta!Q*jOeL?ug=B!%B!r`oomQ*TNDqzq*?dq0sJ5Ve!snvM} zkAc;Ag?K!$>N~_g7Fbi*>#Kl2wVsB}q^0sA^TK z*7k@FT@!l3KV90!p;-g39+q;|{mI=cPiRJecbmxL*4qAhvF*OrP9B(mVmqfxu?@F~ z_lj+^b>$RKsW?H<6i1O1qjH>G2SKpB$a6Hq6EW+`!@nJzf5^1!spq{p^shS~a$bBA zav!&%aKsb@iY8^8p?RK?1WJZwma-_~JcnaA19wFM&b3A>9HZEJ-27|p#_(%Z>4{&} za_1Ncnw(%}6SJSA3rB{m?0Vzy>OA*X-5vAN6Q=ucmbjOMBgm%Hg(Inom6+NgWuB4& z4a+3+2v$}Tjv!;D3rF4z8`ApL(<;G#PFOJ1XKtyY`!Q|&qbQl>ICv7^RD$H-jXt18D3ptBYgj-)7o66_l)SVfR%fui8~ zKx=S^MsBZ^Y5%)s)mP6Lls$#d@`tW2xsz?{hBQ~6SMBhMH(srjutFX!e|SS(q8m6K z`CA8A3-3>SU%ygQ%#1W#@yzH$~J>PT;YtYZ_Xs<+ts70SjbPIYl zM775fTTqey$({_pkZ13)91rKX%X^8u+@i&VHzX)Jq8}I&x&-Cz+}YOy>Wz-Le($;Q z?5_mn4+~0Akg?JwC|3$EUi@3Tiv=GB26;fAjfj;uBq+#O=@Jy8f7h&2i*$*~Us7n` zvs|l7P=?O$opM>`X~WAGN!129C75!ieIP+WHk~d(X_G(O*7ss(Fdl!Mkovkg;LxA*eiy1f${^(! z;Fi6dq*!@FgM*BfnFdEBRnU}h3Mo)H@X>G(mk<=CNGh#RG*4lH>21M+fI3gTVFi4K)ND0RX zK~*RUX4~1plL$`X06AGuwD(6_@U2pfZ>q&H} z4?@9x+vLxeI`4uCSz0i45ixT%=$x1ti)Y+prfX*`hMCrYvjrdAo8^FC=_j=oAI^s% zV&?3<>6jTRW8%TgDU7igW?FB}7JPj`=ASyv4^TIBTUZMXGrc$C#LQUs;vO?y^UXAS!a@n8mih7r1?#WH7r)-13Eckj4SEx}HZ zMlURL2@x}ApTLQkv0}wNX1ZX-Vt%Ie0c^pU<~PjWOkMQyi`&myAY$fh0XQ);mZP}G zOjn~=3^VPDZwoGRE9%m^zf0ZxY<+9v2XFKG%tM$tFZdS2OuM~@MwZFQ5_7HvP?alibK~&^YnCCj4n%H zO);W;s9$D01f=LRjmNI)8a^&o8lSeqQ2+HU8`QD|)aw?mbm<+|_rDdnzYr0jgtu=$ zJx)pf9t2rjF$hSVK9CkjQlb=@qyma&=Ov!UWCAL3L10;2U~xPMx~_x?6t{%M+O#o!l+IB98}y~BFVz8sjR&_^G@njR%ccd;CHF`ftzQez^kU=)72$m|@L zfJ-DvW2!3Q6e~yqT!jKsq-80Y7HFDN;U<(8$3bN;!6hnSe0GXc1%VJ@A{&FVs;poP zak=Phe;#8=`=gP}F%rBElLAJwyoB*Mjfpsg3ED%5BT<(dQDnf@dM9=f#n0FI=o7Uj z>T)EF&>sq4uDN_rj#J5htmw{x6MgkYNYpO6u1_dwXyP!3JEeYfX6wo{I|gQz*RT8N z-ANak+4JGWTb;)5op|)(`m4RrM;&VKhOzn3=*=*`eCT{M{QrE2ln=E>PDj$fPFMXy zN?ZKNwP*jh-MXBVNyA0>_6a2oO+Dwpd{Owy6#FJe75{P8NVj7d6N|Z17v`w$O5dN5 zJHZvT%MK@NV4m|oZ7q9~G~jre#574Y6`lk0k@;%&`=V8y3DLO*FZ0CVh=RF`5HE=_ zPvvM#2aHbV`Np)S=5rj5X=l{f{nwAXPQL!V>9CLfaMYB64tILabq@V$^1O|8t4eP7 zuq85tbqPRB2%o#NWMiv@hA;(}VvZnL?9+Sa&=iJ_&UC8E(~5KrUVA+Gk$a6j5W+~9 zyNC=E6~fv6`?eI&D8Iq;T2ekO=|aV`Py;U7Iq&zzi>rhkT@#Yi9ps6*6FYfOF)nV* zfr_UF)JahPUjxR}fLUDc#DTjLawXO{ThTUqp`U8hvzw&{ovxW?^zdt_Ms^an97Z-I zZN+C~Cu_?qM$Y(N<0Bx<58kgo&BlkuGIJcpx$cnbb2W+>eywHj@sIv6*3_Vm!}!ow z;+a{m0$SP9ws%X`^yFdest0v>@SxxhgLBY;`t%NCT~%sN8jI$ayfotE#fIfGm70y1 zG<4=-OwurBEyj~HblRdp{1Tic)3yF?m*FL0WVy;*6IF6~ zjn0$B^`;tdIAfyeJi1oaUUQZ0dgG@5%kj;#UYmUdF|u@iYfNMrb6dSUul;}h8A9XY zI%=-`Oy2G7TV=0yyXy<&=BksB8)IZ+GHyKSQ)lD;fBHmfu4?RIhn0V-y}D7GzJs>T zVK1LT4P_@CHpa@v^x=4{tn-Ke-^xf<*7(j2D_{8HZm;nz&R)-zp9r*qm7R>||F<%d zl{JR8qZIllRh`$nM(4{_eVSO_ot2ZY6mpeVTcZ^62n|NlX*)14FrfY~-RezSdv);R z?|h88t5o|F!d%mPJ1}or_*~EZWq&zTs>r~{7Qh^1Dbh{=E{|ar;aq#f&o$k+1M}7S z>Xr7-UMkb$a=G1()bwU<$@m^iHoz}a2A|9mj-hK|%gGnx4cKw6SW5VWW0;TU)(W zne*-vTVhT3;VTckv;_qjD@_Pu3krEq^M`;J8F#I|vzhk@R#w}Bf{c}>;0TR;S!~E> zTRY!ddZ);{X+CpvO?6=lTGWZEoJVRntZ(H!l{{fOq?HGJ$a|6tYh)-*Eny2v6_)x^ zy=?dXAc9Lj@dQ>Mo)WyY1qIp7HI+kXWZ~-#|J}F2Hg;s&!fq7~Ns`SqWr8gz;_ahc zmuhEOP&ex6WDl55qq@d9h>dg!aSviJor^5N8g8yB3T#0w&Ia@vw{cvZdg7Mt9>7Y| z62!sENQU(vtUSL31=-CtC4enBI?ErOHg}kH!nXB(K0~bBRaoy;clv&BCs4*h0QaJQ zT?gP<0lO(?_7#Gd1RQ-<{GhN)nE8NyKcB0ikZkl4=pvg5aF$n8Z-`jXk_!N<*)a6k+b!0EA~(H zndvm%xh*)wAoljj%r`dN`QfE;rbB-hGoyIJ-1r=O4 zZ9;=xTRL$qlb`cBRxY$+Yha~Of^EUsdcRzI>hx5v79nTuW))w4hN8KI~Hy&JSbuz&1MtkRxV~&}VT&rVdNU)6uGbg{+Vwh=s)zHWr z_h#M7bS&^OvtU_!pQTfcV`>Xp_UrSjsRtb`K6YWIVTNv>kP6E*ow_niUDBxw!PFWl zLgR+of_vq9z6js5_FU;|(WwlvGIe*I7V30&V``{-ch{Mr7ISxvX=w|3H97T+-L=NI zx{~>2s3B%a;9ssZOKbR-#*nlHFI?KPQI*wlX7OMbxAWx^kxre9M4bL*OpuJnzaX7@ zWB4a>e?}u5+JfJGeWFL9IVY(cg?zY~5{``)Y7SJ>cdtX%nE z*1$@ma@m6N)GD*~_03126QWv7vjSFed0f`ON~2)ef{5(Lc3j4%kr;MItJXLXJ}dr8Fm+jYGuD+P8OP%=Fv)i|*Z%zx=-F{6!b{FR=z@Ub?*_W2W8SLnEsU zKfFHg<%YGY^|*X1{)YGXadI-2KK}evdVI* zy*Pi;xZ|h?TZ=8;@-jJUyUW_exhWVbEyMpv9K~WZ#q&T`q$vyta4L;S6vMN6aen4l zg$a1$)#<|D%tCEaXBmW7$y06!zbi;l;o824H;2m99MdzLl)X5mzy*Nkr|LI zU;L4&m*%}QKm4Ub%DV5_{4K|BjOm}UHX3I7 z)DgWsW1+2j$e8J+d9`AhgZ~}-SB9)(d$vZz%-W?nGG=;d9!&o8+ulY!T3vhi%2>Ez z-qNymX^xDUUYf7mnPuSE*CKy1>ag2kTM5r+jE6AuQfZEinO>T=KH28^x!gCG?A~7D z#)p>X$Un!dG>2sf3@a!CMGLS3LB&KtVHWu`m z2aL5#b5k%Rg<^2nh6h{y1d60t0cT`IR%L;~X_*ovy)++4?WjB_?CUuTQx0=mE+ryh ztX-NTW2Tqp0o$7h?5LB?!oN-41@SPmc4>}`nO2(Hg468k9J1j;yRe^5_l!Wq%vqH? zizegB+&xP~FU&p5ctFNXFV2sC7kD(J%AU8GJ3cX%XPM?Ri}%fuG1H6l9JV3fHY*WY z@M07_9MR9L-8Vp71m@JZaWhiW&CIokF&anFW>ze@;$5n=sVHF!E z&;&`TA{6B`%}e?`pgx<^jmp@jWU1^&_`vvYWdB`M9k)k_{B!hqKwB0@eO*iLkuQB< zHMhe#op*!;n(o7ge|Tvg5HeQ!JfI47*ngi5Q7=q8Q>?6Ej!P(3R+|TejFmnQ=*I%D z_ml|S@NHnk{UbhebA29AnSdbwsJc%_?rR<~$P=cs+&my;)9Leoa_??-vRt*{QImU) z!aRZ1ho=ND%>zQlN}mU`y;JFllQ$1rRQu?!ZGGnE`aGb&r_IOPL`FP*vc2g5510;Z z3W7K00U?`Cp9j>Z@2OFl3zX>=Wh+8?04wXw14711p9ggA+}%>&&l^|#(aj@>-3p7( z12V;ohwijO;xvIN5+%ukC~+iDN-U<(yg;g))_o0)+?0IhjNRXto!Ov8$HhKN4f;Hw z>*Y3&;cs>s^qK63E*n7|km8MbK&GZMtI_p&K&{7hTy~*LbHA^!HZ^@_I(;6{fKyYu zwhX!2xA&vPpEm#9)P!cy=j`JLZSAuCRj0m{KQHi8;jA9W?r0~WH|7DEVrAy;`aGb^ z6H?y6kFB4swit5&9V^5cH{O^Bgp8Fw52!=MaW!^?zP)!Rc`3JBwi0(=M#Rb+^MH`C z(&qtfzA(AyjA0F{++FIo#Aj(#p9i#X_Nk*k4Ldb7=P7@5H#Zfym0aCBtgF(icRVjt zF6&C;c68mn_#~*Ei)=c59?;|CxkerBLmX|Le@8{+lz@trH|7B$W2MgnI`wN=HtpRS z8T;>?oY4>~cZPkh^~qTK$=DP#v*THRGQK0M?===zbR&BDZ=^MA5?SUj!AzP!Fu(bdBf-0eXq;|GR4Zw zzw~)P|MZ&Ie(3Pd8;Ol6e?{{zi_?}(F*EZoof#1kHt)h|ni?`<#q*Acm|2?{fsC2X zjOhDAk?rH9af6QL$W;yzGix&=kTKJl5#Mg#(|*8yqE_k)FQcu2nU|Om$e3x&2wTvB z$z4aM9=!OodB<<%G{h_kY75*xYmj0%ZU2@vu4?)`pbM>AlwFeX?c-(Zb_e(xE3eE0 zGW9F7b5frNR4V!F1K|(yeerASh+|g3%H#8Zkg?L|0nItMZR?7&ldhhfb=~+{n*=fF zm3ctOSUKkb#Y3Iq6i(zghT{khR;po)C@GT2b0Ub237%#cJ9X;D+G3GkCof=i+OpQvtSEdkuUE16eZvN70 z)G1`Fbn4XIU(>SfU$0HEzy6hnK67)OIyGtdp^cZOhY!3E9^~%{(^-x>g={*VI`tR7 z_+E)#i_>Qe-jdxDSbca(@DgpWxQKyix(y3F}wE-J% zWL(GC?yN(dC}3^jswrkNiHVXZa1tR?lq@N{%o7;KiwvQVq{7fTbt>DF2j#fYGb$cP zxu>$vPC%VHb-L8*(`~o0^&gDf+uZ~1j+Pp{L7g%+omq{pQ>RLIt5~lGayC+=PIbe~Y=}aG97;8(QO-*PPeL8h&+q7s~tNVNSkfK$L-)0kX z@keC}dV@M;ij|qW>(r@{)f!!Ib-UTw{8N5Gf26_@=|J9~P9bBZQ>SJZ+_H01sXOn! z>Gks%!&pp^Um;@U4eAs!RyuWR|HS51GLD#h`i?E^gH>Y4KS!rdrFi{zeCZVvo~2uN z?9*JOhK!X?ohtUNL{(ZBp6z(#z6Qu{Zpw==p_zGuI)#jtPMum)c<$J&0&I(5oFU}@gW>&NDa8kf1h z&#F?LI#sLu*t#9|z00<$Ui;C8CQQglXqqB?K%Fu*omqvYQ>XgemYZhZl&VGHhC_@W zNK8|N#i>)Kn3<&rojRpdyt!P+T%ix!BiE<7O3f52Gyl@5Q_mLHW1}yvZ&l6JT)x^Vym|2@Tg^Za_o%$vH$W24B<2`MUlk2qsf<|XPBGG;n;s`Y2{#zrUGTYXc`S>GFCmISqh zSEy5_SefO1ojTQZLj4QJ%ajQC^W--}e2tY?s8h&T>C~ywpV>ZJyW~Z`(q(5?vjSEg zr%oYbrBkPxT|J)t+RIB@{j#S=7oQ^5_glUtb=^fVh zzhXXrAtFKvZ{I%dkf-+`$mtFPAs}Nw*1Q;v3o<1#5+`tsfU5*6Q!Fmam`J zm#YLx>eEw@2DtXf-Zxx&EQBCPg0}N}12QIC>3hRzv?&Kt*`(%|rY+6;;>n-z3G&z~O%)1JYa(eIX$7)sEF{kk8 zRXb{Jz3DSI*GW^~)|s30=-w4u)za1f@qp>jm=WF}O(C03Cr$0HdBQ(mzJtRj?eQz@ z0j$tc0v7@+op_dyEml0DX+g$HCruT9TmSKuLM@+fNq4EKAy(#1Ict-qOfi#Gfx`tA zgZZKyg|Qr`Vk*U9D%5!#i^;N1no51bZ$*g?8EZZJ=Ch?O@;Q^;89q^YRYUq0Hs zr_Jv4RU=;bERE`BwaF2uIfdcnDR0c1LN=X7nsPKc zPF_6R=-PljttyR};kLt^$d-_fSWKhi+?^#GTgBVxDC7c{3vVh>J)r_d&AfmXx!m?M zO?r7cW$Mq(_g9@fPp$p?$;LT`US(byTbnXv>Ro1svrd^x*XYE{bF$PWs#fJ)h?rTM zGKGwpPMKO;>OjxIFEYQ*(~er;vt+7MrfO`Rd#7~Hr;mSaQ6>pkl|GMJnDN~z64jq{io#*AZGlU-uu`=~9i&LgdF*EZooia6;zjpQN zj5L3oY5N?N{$p**6f$NyWva^1kQ8s$Tup|xChsBonYAfX$e8JrsR5aXche zMl`VoW?rI9A!DXfrY63>UGSFGDS)Xt5Ospu`1~6afN3Xo}h7H2azNpQM`THRGTTkk2n`xBW&4` zOYM8wYbLdHrbPE}CV8)d(VZjrJb zna=}QS&uk{jFm>5ini6W_4S|E=;wd^Dqk-DEF&}09bScZExk$ZCI8Vt8B}x>q;V3z@R!UZqaUvjRDi}TrBdK(9)#L`ktT*fZ zb9TE_tc%Z1Nu6Bv;PuHy=WopnTl)BoC)U}br4MhAt91LuYhL3zUME-etbVTVpwKA| z_g;>O@R{i}a+M=OXH$90t*E(B`l{BK&yXYZnypjJw)EHtect1T_agLh@?<~$YZ9SM z2&{7F_>V9`bpqBuQ4eb59dxG4Uw?dVykaFGO*~Y-p*ILv$RVKvYkAvm?Qjr#N*|4;vC_4 z+5vaPX)BD6aEgT@n;;ne<14Z?nwA6CnW2rIRex6MR*K=om#DZpxmpff`|qEcDlV=W zemKANRUZ>vp)`UPI>mSg*9>v1+kh~CtyS;5ytv$5(j?;YqEopdbNqC==HtqD-VPbL z#%F0+r*h3J5>l*F#f4EFQ~ZN|pEpf4##9>$Dm9#=Ju8GlPRkmV%MlWLiuUOHFsMbp z&3RugM+^y_&lM9AXQbZGXT%8!+xNqUksan6hXe_!hNdx|_D)E6^FFWBy$V;&ylrxR zHFv(rOfq+vCaMBP^g*xCy^wuSqkBc$>OxPc;g7vWZNK?fzHbj7y5%ON1kOkyO$Ks?mY~iD6DQS!_M`-7|+Td)fWv$=* z{q3)1P+@h_!eT=E(&~#<9>syR&TW{D-_)| zB|O`^A#Uf2CdOTz)Ug;`FBfl{r*|A&%T`>rB%oeFV_b1Igv1#N`v`H>m}L%J)1?~I z^i<#V^D7UMrlR_*CvbIg%Rai+vd%u+{o=)&mZg3fGpXATDcxb3lt+2V}m5=g3yOGmG;&ycaw*=Lpa&wSOWwX}RigIjxi?N@fJJkCBt#!6?O zjaq-TQPJ+9J;_qvqZ39D%R#RU>_W!M$v&Gla{7Z=$&)2Zl}qT=F|2&Yp56L%FCX4b z5_*Sqi)hb;)(O>L=~Rs4FkV&&nrA3QB1Hw~aTcdVT%>sT&w(<_N(==%5($_n#qctW zIv`}0!B`k+rARoL`pM@jUZg)~i}OvKBq)}YIE;`*N})+nWC<3CZZdp=rU@dDAb5sn zFcm0o3Pq_DFUo`p|F9sE6i10-?!_;zK70S0G^a>}NDCAti4?<%Fh`3Pcp2{fipawM z3gj`C7~I-N@FH*s8)MTsCdg~upP6$CBy#B=7_Q|Cgm?TA*o8?e=?${fYf1qcW_biZa8~ zDg}#r1R5Ss3E&rEBCB8&KJHo1pA!2`_-_jYyuz}8IwevRSRLaP7RY#nLZ|{;XkFVa ziT)-|;IK7P=0%aPzvl`(cpWd&GAEJ*C$i%Q`hDZ_P4GyJ7kHMSIgA2MAcr&X4yFhI z7l4OTfhri80N+p)yVt2AuTnUzaIiU4l^Gi6(sWp~#^swVCxIUWI0~*(Ds3Ow!7>W` zVc_08cxxaAJVQZMd5R$!N`-Zxn5^KW{oe#*+&ERfH}va;F5e^}Tv(Ro7#w_*huGQV%5rL;O3Uy+5=XHZP4PTfiKZ}~5>y(KApTjuMN=BMd{ZQFQB)O1 z06S4K{7ocB2^_Crf`IW1%>*TKF@=Xk3Yze2)%NIdR+n$`5D}2e1de1#FssCIBCS9|6Ctt75Tk(#uLugw;&7zU6dWcZ&x#^R z0_H43lO*2yXq(qh-#rwS_{ATiQe^Gz9~UqK#9S^I%JN*G1l&ujLK2= z*o2Zt3M3#0;DP{gD~c3kQeGlynNk@*3dl|}R(0U$8ZO_o)Bgp?>MRRe>=hLk6i&cm z4iA>16^Km?jG@A5g~5SBNt_C_DFKQc7J!8$D6(J8T7L8K`#!JAkPA7CR8`1JGQEz&!1gW~9qEAT}lWFix3?f=NES$Xa=zTm{ zz>6j@`&chKih{^N{fVgr`~;O_R5lRGOo}5Q*ccV;4(BGQ7ohrOK;&VEhtHp*#Tl1x zQt$y16Tkp02FDG_6A~#wJx)NxV5B6$?}P!nECJS2;cy|L@)aQSVKQLKsBrRi`?=kZ zF5iUT55Eaaj={l2s8EU6;fHFFr{KK7m_UNVDf=mhNieNUVc=vDMJU8X1`I?&BG}M= z+V;eLQ<6y71kQ5ckT|8{xBx4{;Sc}^g!5ie#KW~yZFBu5lpb)?kOXjTur(N-=V++# z1hAM4r$rzGHv)=gI9d`J3JyzNAQ>EPBv8tO41}e=9XN7gV!z45t$~3cQlL-+hr}Q+ zK{Sw1q%k567PgfcI6kr8geV{(loTE=GceRw;0OusPmmwMkHAMoa#h`NiT)C^*7+m4kSMgPFsjcxMO(3&aTm zj$x8#WSXYne*{v7h=R@VDka)OYUKJaUO#+4j#O|wL6PjY0EkMsQUSLUat=jHP{)c2 z8A!uIc}9Y}ko~NL+7vPqL%>N7vyAfe9ECFAOC~EDu=?m*FRh z6p-d*0`7*uDkY)n!N7kcS%4ah?aCk&+KHN1eX}7DljO&AOSK^n!#CZfBXbv!THKXKZqRU@=cYJpiF~t(r`6{ z+ceZdf`T*l1Bk#x8tyVGE5R*YqyYmc_#tVs;GzWl;}k}7lE_t$n6v4@`!*u%1Y7_d zr%0$3p{SE225tz10DmpyR3#9u*Kpgyp{B7TPbp9_LZX5H2F8kTttHAuJp0<^n~)?a z35sR#NY;Lt>0%9{_JSHDMMHN6Y-{gL%`td{gG( zD1>86gmVm1F5Hk91)2ad30Yi$drKe`%N)x{a9BYI!F5K2YcXrT+rTjg|7Q7qpMe+u zdH-*Rf3FH|4e&z~0S;eq7~8*A@wJKlro_N$3K-i{3tV?) z5vmLZObM3+xYojDuljcrUA_tTRRQjW6wQL6Av;131xiOa+~K&uVYhIg04s-a5t)@^dy&WvLY0%nBAZZ^h4laX5kV5nF;<(9=cOlAPfKR@JA?6(J_E0&I3Sj z-BwfuiWMkCi`~k$_1^n`JA*;$7NDcT!ud`>a7Z*<5aAT(SOSv;E)Y%>nu4nm!-0Qd z7+ek@xjQbBv?Pd(-@QhgUA_r7Ll&xFsJvu*s<3yD;5x}d0cP*8C{iF4l5o4_G3X1x zL5D%%1f2{h%-|+w|IbXWOW78?d=suzBm@N%70^O~>khaO{5v@41mO_g3KIzBHUsGp z8h`d%Jyf(%Z$somqJtv@ssNB_95Vmu^;R#bTlN9nDSG2HJ5Kfa}d%2^wMbf1n4cGGyrq)(6E5a z3W*=iBPdJZz=x#?0!2c=;S5}GRT+*~$U1_QrRu-D>o?&zg;0Xxg^DQ!!3zn%Q37v) zBAmhkp-lm~ABQU`T%1AI0UZNyR%o$8ZO=m`ek*T*QZC=*aOi0g62W7jnr7hyl}X8d z&%`7Zu74t&9gsO7s0fmWTo2_j^lRY{hhtt~?F9ibsMbG)UB3zTWpM@mFa3I4~kHZQbsQvQp`#ul7QIl_ig;@A^ zv2a78B*E+8-D9RR11*M`#{07clgDbbsK39%*xi4%X^ZG*9>UDY`m-2j z8mBKba`Ka~(I*$5Se_!s@w4$OF4Asl-`-v>d#PLunLKuuojmh8cQ&`hIRjT`czlN! zQ+UI$zp_E=15@GMl~ke23apnRp)WVgFLL86=7)>N?xoE>ZdvaE-Ia~q`-tITQhSZ^ zv!YKgrDq*Ep2FC5kJY~+G0bmg%p`hX6m$V&m)019XZp7R4~dfCJ_?-%=n&x0N|2zz z2~7%)z<8ijY^&YK!90q*dXG^QrfDoHF-WK8B*2o8Vu-I53EQ(WxXflcEP2vEm6kwAQKC=tBt1wz40 zu}&EgmUVW9FQO`EIWp~v&zy2-qua}4*m*A>y=u_2QZBXfrAOs)Pgn$bY7>ufR8m-^ z$I;WV5TtnW#k{XuFUruQePnM>K=9#l89R&#*gQ;9KyYx_Zw?3|v-cmI^P2^`Z=^l? z?+5D)krQ{$)azp{l6$=Tw)C70rFPZli+aE!XhTx$%jsz7;3b7cDn>4dgbvM_)ef0SM4XC)v4XNddvTR&yN?yzO(SN3{d9R_-3YdQ}rc2$HnDNJB3@DR8(Z zjE)V?Q`?rb-1+&gip55M{fFN?qHQR$cnbQsxGj+M)v;5R(dHq<69BG{@?6qysYWXS(|jnP zWG2NK{OG1hV(LSP!9o_zm=u@*_xvRqOm>vu=XIUsm@Z*%*;!!N(wvSuyU#Sj8hSMcPb zFkrRPNrA)op_yWF$a}K%U+lM&eqM5*Trxx)Jor@014A?^aQLh6-1&~wa6U!$Ny*+G zJ(njs_-8~MJoJh)Wn99)zHdAQm!gv4IJP}l_dx~Np2V= z9_Ml3@N#;{!CI$Zz1!Zl)3vUKI3z)ej2V3bNis=#<|7N`s<=w*S(^12QC630Sp|lC#s(1Ef6h(bF#%tykED6|eE19oSdz zoBbNmBze1SZ}*=?#$Ib!$IN&;Tfm3_9p9P@Cj%OB7MV4%*Lc(p?1TGuzP9a$0i|x# z96A#fduJOa276;7bv)SXOzKY(dyS9nz@BX1^~oVTjo4&5aoBjfvgyV6QW~KT7P) z^1a3nkG4g?S$io{huM|eomf(6(~Qp$vDdo^j(l%O5cl#3T5G0zjb`p}`&I$9cMX0R zRlCX3jYCkOcQ!C$pf~23$K&=o(fpHidyTH{zW_-Cxt-DXHfW4FW{z+o5(dVN>kJ$?O=L))*YW#P_ ztK4`_taA6T6PnS#j{IK+ecW{FuU}o<-&_g=IpMLNF%dr;oF~In*z+%l78s<6@Wk zrR^}(e|^gawQK?Px`iuUdWZG>uQ=A<%|^fXAn*1Q|57V1KuMbjN*zyOmb4G+Qm>>=ZO*PCqqM=|4aPa!0L)V3#@XuZl z|Fi$$Lx<|U!u{fPvj0;1<8C7KfA5F8`Q843aeug*-<>Q$KU~`c?Qn!bQ>NZ&O62xy zG_=b?&p1LX-&k{mEH9ly&RwYx?>j@WBP36eB3?%*6eq)CF)V%< zX$q5o9ldA|N0#?IL0eGmh^)rf%k7Ff(7Jb~N}Yy#2GE3Os{aB?K<60$AV71uKeGZF z`y0&Mipl)>W6vx%sXsxPUt41Bh^$u~PIkCc;jTRXpX>L4>?YitCgnEn3b!h za{`^OFfkQ$rwN@iH+&QB_w6w3mc`SNwm#btJsCDEUp2GRkmg0Yty|&F;E9eNgmmPx zLEEz>wD%7BeourL&4lA%+J5-Xm*b>MtCl@&`_kf`pl#!}1*b08I78QWujU+IT5GdA zFGx(-Yj22g!rtf|(fvRO+WCy=+2IDrVXr>`+RNlpWa@egt2FJGwnNn4?r=-W=y6%L z{jo%kwvOA8j!qt)79{=JC;9#~`)+yyP^aj|Q5}`OKOuL5t0R|<+#d^|+RknVpvjAk z?)CSyIam6OnQ+3_fV!;h{#XFj7JEDLd%1V1j%P3S^V`hr>#eYOe%DrjJ3L`uohkDk zwP-W={_V?t9`FR6UKJBs=k6@o*eao+MZv{`g9R0_+^Ub}O0Vq+cL2KV@}LyT_t$Tw zwoO^>Yd~FAg?}uer7aV;1#h~0p~=vCgV(g2Gq!{~FcVRMIGHrg3dERA zbKZC#zOmmhg*n;Oi`9JWgsv;YE#icxudmutaa(ZuZ3(07*&Ub(cS4=a<#a+T zP5eZ@cxzNFTW~Lm8@0D>-#PmRH*ibCN(5$37M2q;VuB4 zqrhGt*1q9|fYn{FD@%kWGK}(n-CcQjO;^`ff|$LilGJdoXh~Z+^Pp+vqNV1sgBNke zP$_C^q|{JB&9oFX&uWa8h)Qdy#!TDKR6|fjNl`?ow7zxwxY^t<&JO!t=RDs(@B7r# zZs-2i+H38-*YCF$1p^XcG@$7U^SEnPEYj@Rxx0ToQLNLgyv&fB$MU5G)8V0~Ka=!6;m4MFUfRU^Fbu2Bjq!M+Z~h zV63N)_ZX9uIYZkj$c5+jUf4#;>k;5yKWEEETg0E^V>5c(H;t<2g#xG5^nqm?1;TWX z-#7JMKjV8`#<~=>#2KdZF%>=T6OE`ok<>@)XYp~F0l|v2@$o&LqI0nFu@GaDKKg3n z_(5CO{=Dq9w%2WQb04?RXIQ z-(>vMcV^iE<9{C+0Mq$6HTNZAE1KW^i5N`h$MSQA>3keMkGsy+!h3VVUwAjWch}(o zz>2&%^L+$9XJF-{=fxy_D!s(M_i1EAwc#lPZF6%Ufz0FnF{)>Sc8ltyX1>2PHUOq0 zb8|oTm@`c0Mo{phcSDkqX-l}kxN(cF@jNw zsJ5Kz=GGLU2i@GCA><6x`S?E`_sn;1>}%OPGqrvDf|Bi6`H_E|ft8Qi6O+{Kz|M6g zdmJ7*ck`U@Y;$uTkpf;?PLvuSm9?~2YV5X%;G52$M&ak?-p2Nz)Ab2PoMF0Lj)Ysg zBg{D+JLJsrI$s~R8!P`}zcaAPE#-mBO}&2BgLU)s_=*jm)_&z*_i_eS zzN(hT&A&N(oqNUKjXM6PyI{9p`Ioeuft9ad<#F%TR{hAWy#CC*_g9g>b`tuP7pwcL zRnEZ5SBvtv8=uc;)@)m~k}X09AGF=CytkVB3Q^9$3R`AUIaw5WNuYU!lT}LAbk2|% z#-u44I!bV^8XkA)zlPtr<{5M~JnCL9QwK+}RDLlaHP;4}l;ZVH;g@`530 zUZPWOdySZ+t5=H6%Sf+ZYGKu3-#qr=hxBt$nJML5=hYp5UA47H#TuUwZxArumZB#R`>~!sdN9 zq0E8fPsLv?Io38eM`fmUWj`;r=vLo~%*mlK0Wcle`+HEzOr)kmWv0w;hGlPUmNPSF zAD!8ztBH)NNxm)+F-i66o(dV6w%C~VUGEOIg$7ibd#k{aIUgjfy*W6n z`a6~;%+G5CokA8Gf>N5pnGSbGN2R$FD?)Qh(>uP{{`JJ>wwW%sG#42@|6HP}Mts;| zT#@;frpw3fb96HX;@#(K#^7;(novwQKEKhJ(2$cJOU#~xy9cG5N$T#XoY`^D2#+@M zSglJ{(-)9q<-~F(DORYQdFzM1?Yn+6ee;EnA1}e zrrQ=qQ8{x@=tqYS6i@x_mvM20h)sumH}&rh>R0FSYj_Ztw?IpO6VeL9c&l%zR zX+}9~sZ)N!Cn;7zDQA*mDk$x3W(D)>Qs<4 z@Fa%7Wfxfk)6IlEH++_5^8sgs)7-Lo2VhbF>`j;0AkEg*MQP1HhjJ;YX2$maO1Xwm<31y4})rHfunql!|o6K z56L_E(-q?OChi>&bq$DLSz>#`j`bV2{j1Hp&cG~4T?2^y%-1!*cl%Ew6s?m)Mi%M;D5*on{ss>J%wfh&t7T zpV8^39w)Qa2?J-@?N`B}PLX1Ts8cT*KfX4!PQ;Z?CE_~Sj#W^oQ>0kos8hTo@fu8k zQDDptr!%H1Q?eqOBCi-wF``&6bxMhQzDL`RIZcXuDK;ZU*@@ICEC@0TSXU`S*C|Ql z6pfR0UN$&IW))gyWc5DkRBA|%l7nxjq`y&m@4Uyo026d2Exg2JB>I+>{W<3bt>!B)CD)wqWfrDb=#aA5vT6D<5zFYezt->=t_Jb zOy@Y_6tU?LajFov&NHWV+Y@P-g~^H8C=}%CrJ&o2ML2k{z`)CO9+>HK|HUY;N2Yw; ziioj7#Hq9}Zg7D@oocLDa5&mFH%G*&`rivZPLA(zX2H!1jFlNW8j4*L{NVc`EC9ggCz%AC{#3?LhDl1T? zpmUnc@tm&9s;coIDKHgLWK~L`5OHc@lZNxpjb_~$J5o#878($7YBslp&bpP>WzEHm z>H%Jq@D#uHO3o1X`7Df?q zihYi0b@=4_+d2>5vV+)k*w=U)h*QL-L&T|~QO7qVhhF<<>G;xlj?c>_0|lgVfx#*m z#3^E|5OFH3PvP&&$Nn>ALzDPCXA0+Hg-_4UCQe~7!=-0LoD%QkoEXz){-lDfcfV}8 z7x9=mn>a;`86r+y?-skLUPQgQQ~O_PU|Tpv#Hp=^NBwhf%8;|ii(X|cO&E|6VO`t| z3ULZ+I@}2h5vSfBkvQn+u}ghx&{6-f#0u-~4ku1wF~fxjM4bBY#g~h8co@*m>$fbde>t2ug~bf#Ux+wWt=zQocNQ1D zS)};70ha!S$IRKpDPqhJaq3Rax6OAXom{=U;+rc7F>^L?iWoCQoZ7RJYP0EDwRiR| zqg7{M79`>nF=mK3^~cSE>Ejpw*{F2GvwbZwdjhdPD8wl&R=C)Yh*OIOkM1%)ZfW$; zd8_lR-RE9Eo&Z)sAx;rvg@{u_ZXMmb=FOyr-Op^xu-mVKLYyMT3K6GnO#b0SDaEsc zijuNi0%vHfYS1z*(!5FojSK$SWf}&pu%e-e2E`dB zD+|1!>yl;)yiC)QLN$K+i(AEi@!Yp2@wko>p;OP_d~i)(GBieoURj)`a)JnhM-*NG zP7}=;stEt*QYhMFB@Sp{8qX;bE77XSiC`sG5?GB9cU7kMJnEVPt3y?d=LK0XI7VP( zhGAJwlub@jbe@uXtt$Kdqpry-EUR&b&T`(yUz#jaI>ShY0tGu-5frXf#jzXw*2FS^ zaje!?l!!ilYpM*bs-__*iY#(E@a6zJMUo9lQ7Es8UC@F-rZs3uCQ%H>sI+9zqQaquPhP;+B^^+ewDtWczcqQU(J*0y2;hOTCP^x97yyEzOS+-c zF4!;7al_Q1=bFsXoTi8x&B8<!!{8(u z;sdQ~rb~f;fIpyMv=U5I5;RGH?Ms`CsB3`Nh!&u`3naK9^xE~qR|vASt+2E!<{ zCIXcaK2bCkm;>Wdbwia6R%8@jf+UoqttlBWut*Xl@M(rq zDM8f?%{$*okZ71@D}c{K_dQ0@Mb?D4qEV_s>(Fmbp&9S)r%gKXS8BB1nl#PJfRN5` zG|ve)qvEah>2W?~m zrIeN^)-+)s>9V27FfdC8s7&b5$LJjR5)92!G=_%X%dw&Y+l!|dNn{N&^eO)ny2#3BnXzVPGHW3@Zblm68OYKk(ol6hCcD z#00-JVOKH&Y;tgK0fL+&)27UrkR~MAlr`FLG4Mq!L|?;%%?k|%Rrp-lWT6`)%j=XV zOW*W=)o)En1lNQ83?2kuDnRar-6T>JxFEz*UUz}R=-~CHYN!-P(=wpVP!em3oJupa z%zrgA=gPGQ@r2+20g;j@llG#hs1oEjK+sSjKnkYl(!7Jo;9uYr267u1T9zSMn~)S4 z1NNXc{Lt$Cers~D081$b>}rY=XjX~6QUPnPaWdFLc#I| z1Q1o>4Y@UaW|QBV6ve_ffypUe;}{dVR~n)qQa~%_z>6rsr9)7HhL#e`nkom01b&7h z^APfM0se%R>+X(BedIMo_;#L`WrH_3FqSHaCInMS;6(-!3Kz00JH>xZI1s>T2K*Wh zGm;F3mnEKpybBi7Rfz+ir+HR{z#_nQ6KGLl6-g7olR4ew44D$nw;27XYpUMmDCkjsey;BnH~}_f*7itiTAAOVT8sXEZ@$AquImcW47LkwL@pN|9)V-`Z^5 zoj)J+PZ^eDfK#Nw34zlzQ5GSA>ad&&$p=E9OJ`XDPKXc!O#!kgD}e(ukh)aB8BC|W zcP3+s-)HNZ*LxNHn@O|(do>3r&z_C*@Au#a(s| zV~9Furr(+neBf`VA;YO69GV#K(ZGZRu8YvCOE+Z~2S$U`WC{$NB4rU+Xz+JxUf&0I zg-MDn(-)QSTa%OFFvu_vgE>f+@B_WEn-RUo1~_grhKu7_2-mRR;RwR%nyiA$({QGM ztp%rXMfl^Tgxyyj{OvphZdQTg62n6t0t6}e&4#JN0w$az6qmq5Naj=%qP=$)L7ao> zg%Gt29&#&B(Q&U;9_PO%PHcjE7+JXN&bxkV>V^hK5Qv5p3uZM1I4iP>DTr_jfMBX> zE;u_vtOJdU$uMxgVd1=F2yhytSXF1?CvI!TuD=YwJ?9}aEU||tP{;@kyNp|2p;P)> z*)dNOKRq~6A%g`0cY;JSEJONbjR?P4hk zZV80x9>0@lkeUk-sr<@c=hF(vMA+h|f6QgFw|2J`UAh3G;kPxKi z!o*l1jZF5Yki|o|m_5yZu36kRH%A(oC5;CDcDnkMn09m5rv|`uWJLI2Xk>^@hcq%H zb}s2&;PmnJbFVxb0Jdw2^E5KVSRswfH#bh}Uv=ht3$?SX>7{r+fwP+nV=>biL4((2 z6`u9rF3iAPLexM9EyCb(0bUMeq><^|?8T#h(G7B*J^#-8wuJ_yk*R!T?V6hWDfcsV z_J!IW8iJvb!I}Z4gEb*;_aTjp;0}59bi&fG9j)W-&xFCy$Y8O;xjWLx>>fKiX~?FHBii>ZY0VbP z56gmfphkumE2NQmcFlqV3w!k`?dn%9*>W#F39N#lks-zkX=Kj#nbfZL^6g!IKUk`T zZDAB?WLE#2l6kaggBnd=dtW0q9hUTg(R~D?xiGQmkVd9msCj@Z5?|)2kWKw;$0`^a z8DgxEMkamjs56nRW`_UqdHr>kSmD#Nvo$hU%y8)$X=LV%>Gf=*0ZRvLxzYApLd=}4 zks-zmX=JhrjGY$C#$A5ra(B0F;S_0PD$h!;U5}ks;qAV0S1e7KpG=4ir`8<0plD>U zro)}EkVd9N_{x~90$t9o-5_C?U(g>nf<$x^`I=Qe>q$ugT)NzUq~Y};)fUKXAElb&&kVm zSxf)IW9Dp)3^8U%Bh%^o_*Pxlm0VlygG1Kc6!4fiTO&h^8Pdqyz20W!sDba!pUyRD zN$6(*!YoJ{8Dh+kM&{-V+62AnUuT=0&F*T6*%OHULD9%yvBJfEq>)xQ4St~rg1 z{uI8OP|ad##x@T5BdtANjCC&mhCWC}lDZd}X78=o7zB{s!& ztb(DDA;v0KBQr6i$EANYGIhKfnOr>#C}5zQFp#=<37Dd)2^4PN92#D^0&wYQ&Q;tK z`OB>jqX)iMCi&v3s@7^id`5M4Wep1k(5EQ|ggJ%*ItSq6f-;8Y4PZUfrVfO)+_9aW z$SR@FA6S22VDatp52_^linW)8o-6Jv&M@2_?jCoNfhu48tMui6n}=Iq-$F=puY{#>o+ zG7DXFebS+7gW-gj1?VOkq|rdcn4#PI^eMF(noP>>*_q3ZI0LgF-QI~Y^WENKk}ejn zK5lx}E8}*i-LUA57`i4l)_Yuz)w<>}+JN|T>P#3p)vG0cn63dUx&vLqie4AqnahP$ zXsS!z5cb>py1*V~U$X|Kx{gsYiO02T>fB{xQ|1PA~s8%f~0F8 z#tP{gT84c+<)1L|#icu%h1=%lNY`+q&!O=BXQv$6HnGz80dRBY=^BVlhja}SPM>p^ z8++hvfg6hg63vN1f>eiv9u}hf0!7uOs3idzaYKw1(lz|gt=FrU*t!3eh)?QS&y>Nx ziaGoB6^og!K<^V!O~YHO$Z3qOfJhj0)S%@zp+$pkAYDW1u z?nu|L|HenP{~TsC{Jq)vpUAOtpss-!E2L{+J0FkefAr7Wg%4C+XggNH&@~Wag>((G zD_=-<|1xiCyt_hO+rlW)HT+Oct90Pv;yc^2PtGMa9hQh|gRX(tbV%2boN%>m`R1GC zoTLHPWrO^LPg1Ocp=%(<3h5f67Y|r_sDJpe;yaToTKW|}Jv+N(jKvI>o>9s8mt#{V z%zN*XyZf3~^$=p_?2<7tX1Fl{vDfb3#Uleu<7MlM^f){X9|`n zG}+RG0SOT{=o+x5!=12@uHnB)P5KNt(zoEwb_sHkZr$GEQmiFbSpRZ3GXjel&c6^d z;^jGaUT>b*Z}=|Pkpx1_oXw0N#tbnduEa$!ljaUC95cNWDGSrt%m`x45HsTSQJ>Da zAQf#G^JA3twFAF51B6+Sm=VO7`Ir$Ncc;0x`}gVb=GeI%zj?-TZ$5$89~4~!7Asur zN4kbXjW@5aw4r@sk(ybh?Zzr7x&~sbkgkEf^v2s~>Q*oIl+bae6R--nu7MaUq-(fP zzSyk(tKSIeyyE@wwqq3xT>~*zI9-DX4g7TpMj{xr34N9&C=rPQG(=|vS(jPpH4M52 zS4c+V$*G+uewTJau|yf49h_ZR!-4_TGet2?=z-4)oC!^uDd>#NdesgvzyP|~`zmXm z$cRH_!Y6k<{%PX8&mu@Mb96m~7_;1ZNaVEtetCDqp&mkwh}g9DaKz#thxwN4{BWO0nIe+m#u)j8rY|?AtprX6W{w*t%AB>G1x` z+Z|2*|9yKW#thxwH-8i*r48*~irW>voN#YC`}R(ZneX-*B>ih@NBt+{{ Date: Tue, 20 May 2025 13:15:49 +0200 Subject: [PATCH 11/12] feat: location preferences --- comrade/comrade_core/templates/map.html | 228 ++++++++++++++++++++++++ comrade/comrade_core/urls.py | 1 + comrade/comrade_core/views.py | 26 ++- dump.rdb | Bin 167954 -> 157152 bytes 4 files changed, 254 insertions(+), 1 deletion(-) diff --git a/comrade/comrade_core/templates/map.html b/comrade/comrade_core/templates/map.html index 1fed889..f6ed3cf 100644 --- a/comrade/comrade_core/templates/map.html +++ b/comrade/comrade_core/templates/map.html @@ -206,6 +206,107 @@ color: white; background: #FBBC05; } + /* Location sharing toggle switches */ + .location-sharing-controls { + margin-top: 20px; + padding: 10px; + background-color: #f5f5f5; + border-radius: 5px; + } + .location-sharing-controls h3 { + margin-bottom: 15px; + color: #333; + } + .toggle-container { + display: flex; + align-items: center; + margin-bottom: 10px; + } + .toggle-container span { + margin-left: 10px; + } + .toggle { + position: relative; + display: inline-block; + width: 60px; + height: 34px; + } + .toggle input { + opacity: 0; + width: 0; + height: 0; + } + .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + transition: .4s; + } + .slider:before { + position: absolute; + content: ""; + height: 26px; + width: 26px; + left: 4px; + bottom: 4px; + background-color: white; + transition: .4s; + } + input:checked + .slider { + background-color: #2196F3; + } + input:focus + .slider { + box-shadow: 0 0 1px #2196F3; + } + input:checked + .slider:before { + transform: translateX(26px); + } + .slider.round { + border-radius: 34px; + } + .slider.round:before { + border-radius: 50%; + } + /* Account info window styles */ + .account-info { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: white; + padding: 20px; + border-radius: 8px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); + z-index: 2000; + min-width: 300px; + display: none; + } + .account-info-content h2 { + margin: 0 0 15px 0; + color: #333; + } + .account-info-content p { + margin: 5px 0; + color: #666; + } + /* Add button to open account info */ + .open-account-info { + background: #4285F4; + color: white; + border: none; + padding: 8px 15px; + border-radius: 4px; + cursor: pointer; + margin-top: 10px; + width: 100%; + } + .open-account-info:hover { + background: #357abd; + } @@ -224,6 +325,7 @@

      Logged in as:

      Friend Requests +
      @@ -257,6 +359,32 @@

      Friend Requests

      + + + diff --git a/comrade/comrade_core/urls.py b/comrade/comrade_core/urls.py index d557682..69cf8bc 100644 --- a/comrade/comrade_core/urls.py +++ b/comrade/comrade_core/urls.py @@ -21,6 +21,7 @@ path('friends/', views.get_friends, name='get_friends'), path('friends/pending/', views.get_pending_requests, name='get_pending_requests'), path('friends/sent/', views.get_sent_requests, name='get_sent_requests'), + path('location/preferences/', views.LocationSharingPreferencesView.as_view(), name='location_preferences'), ] websocket_urlpatterns = [ diff --git a/comrade/comrade_core/views.py b/comrade/comrade_core/views.py index 96a35ce..ff587a9 100644 --- a/comrade/comrade_core/views.py +++ b/comrade/comrade_core/views.py @@ -462,4 +462,28 @@ def get_user_info(request): "email": request.user.email, "name": f"{request.user.first_name} {request.user.last_name}".strip() or request.user.username } - }, status=status.HTTP_200_OK) \ No newline at end of file + }, status=status.HTTP_200_OK) + +class LocationSharingPreferencesView(APIView): + permission_classes = [IsAuthenticated] + + def get(self, request): + """Get current location sharing preferences""" + preferences = request.user.get_location_sharing_preferences() + return Response(preferences, status=status.HTTP_200_OK) + + def post(self, request): + """Update location sharing preferences""" + sharing_level = request.data.get('sharing_level') + + if sharing_level not in dict(User.SharingLevel.choices): + return Response( + {"error": "Invalid sharing level"}, + status=status.HTTP_400_BAD_REQUEST + ) + + request.user.update_location_sharing_preferences(sharing_level=sharing_level) + + # Get updated preferences + preferences = request.user.get_location_sharing_preferences() + return Response(preferences, status=status.HTTP_200_OK) \ No newline at end of file diff --git a/dump.rdb b/dump.rdb index 673b945e51acd0e7a31e9f266c540dc1503d677c..718e67ec16121db3fad7663eb90d480e6d8e37ee 100644 GIT binary patch literal 157152 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
      h%dkG9H>nwv$ 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 literal 167954 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