From 655ec485994229235294e034fdcbcfda5cd0efc6 Mon Sep 17 00:00:00 2001 From: nagathan26 Date: Fri, 5 Jan 2024 17:57:03 +0530 Subject: [PATCH] pushed the code to the repo --- teamTechTitans/facial-landmarks-recognition | 1 + teamTechTitans/techtitans/db.sqlite3 | Bin 0 -> 131072 bytes teamTechTitans/techtitans/manage.py | 22 ++ teamTechTitans/techtitans/techapp/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 140 bytes .../techapp/__pycache__/admin.cpython-312.pyc | Bin 0 -> 184 bytes .../techapp/__pycache__/apps.cpython-312.pyc | Bin 0 -> 448 bytes .../__pycache__/models.cpython-312.pyc | Bin 0 -> 181 bytes .../techapp/__pycache__/urls.cpython-312.pyc | Bin 0 -> 471 bytes .../techapp/__pycache__/views.cpython-312.pyc | Bin 0 -> 4520 bytes .../techtitans/techapp/__pycache__/views.py | 31 ++ teamTechTitans/techtitans/techapp/admin.py | 3 + teamTechTitans/techtitans/techapp/apps.py | 6 + .../techtitans/techapp/migrations/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 151 bytes teamTechTitans/techtitans/techapp/models.py | 3 + teamTechTitans/techtitans/techapp/newMain2.py | 183 ++++++++++++ .../techtitans/techapp/templates/project.html | 153 ++++++++++ .../techapp/templates/static/active.jpg | Bin 0 -> 39851 bytes .../techapp/templates/static/lead.avif | Bin 0 -> 43654 bytes .../techapp/templates/static/project.css | 266 ++++++++++++++++++ teamTechTitans/techtitans/techapp/tests.py | 3 + teamTechTitans/techtitans/techapp/urls.py | 12 + teamTechTitans/techtitans/techapp/views.py | 188 +++++++++++++ .../techtitans/techtitans/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 143 bytes .../__pycache__/settings.cpython-312.pyc | Bin 0 -> 2538 bytes .../__pycache__/urls.cpython-312.pyc | Bin 0 -> 481 bytes .../__pycache__/wsgi.cpython-312.pyc | Bin 0 -> 637 bytes teamTechTitans/techtitans/techtitans/asgi.py | 16 ++ .../techtitans/techtitans/settings.py | 124 ++++++++ teamTechTitans/techtitans/techtitans/urls.py | 12 + teamTechTitans/techtitans/techtitans/wsgi.py | 16 ++ 33 files changed, 1039 insertions(+) create mode 160000 teamTechTitans/facial-landmarks-recognition create mode 100644 teamTechTitans/techtitans/db.sqlite3 create mode 100644 teamTechTitans/techtitans/manage.py create mode 100644 teamTechTitans/techtitans/techapp/__init__.py create mode 100644 teamTechTitans/techtitans/techapp/__pycache__/__init__.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techapp/__pycache__/admin.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techapp/__pycache__/apps.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techapp/__pycache__/models.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techapp/__pycache__/urls.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techapp/__pycache__/views.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techapp/__pycache__/views.py create mode 100644 teamTechTitans/techtitans/techapp/admin.py create mode 100644 teamTechTitans/techtitans/techapp/apps.py create mode 100644 teamTechTitans/techtitans/techapp/migrations/__init__.py create mode 100644 teamTechTitans/techtitans/techapp/migrations/__pycache__/__init__.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techapp/models.py create mode 100644 teamTechTitans/techtitans/techapp/newMain2.py create mode 100644 teamTechTitans/techtitans/techapp/templates/project.html create mode 100644 teamTechTitans/techtitans/techapp/templates/static/active.jpg create mode 100644 teamTechTitans/techtitans/techapp/templates/static/lead.avif create mode 100644 teamTechTitans/techtitans/techapp/templates/static/project.css create mode 100644 teamTechTitans/techtitans/techapp/tests.py create mode 100644 teamTechTitans/techtitans/techapp/urls.py create mode 100644 teamTechTitans/techtitans/techapp/views.py create mode 100644 teamTechTitans/techtitans/techtitans/__init__.py create mode 100644 teamTechTitans/techtitans/techtitans/__pycache__/__init__.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techtitans/__pycache__/settings.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techtitans/__pycache__/urls.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techtitans/__pycache__/wsgi.cpython-312.pyc create mode 100644 teamTechTitans/techtitans/techtitans/asgi.py create mode 100644 teamTechTitans/techtitans/techtitans/settings.py create mode 100644 teamTechTitans/techtitans/techtitans/urls.py create mode 100644 teamTechTitans/techtitans/techtitans/wsgi.py diff --git a/teamTechTitans/facial-landmarks-recognition b/teamTechTitans/facial-landmarks-recognition new file mode 160000 index 0000000..d37b6a7 --- /dev/null +++ b/teamTechTitans/facial-landmarks-recognition @@ -0,0 +1 @@ +Subproject commit d37b6a7426e98094e28fa99254e270a3e9b6d591 diff --git a/teamTechTitans/techtitans/db.sqlite3 b/teamTechTitans/techtitans/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..5178b7a50b300a52528cf01eff03f9a13a540e4b GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/teamTechTitans/techtitans/techapp/__pycache__/admin.cpython-312.pyc b/teamTechTitans/techtitans/techapp/__pycache__/admin.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d874a70cd560c5f0ea503044662a2e98bbe17c16 GIT binary patch literal 184 zcmX@j%ge<81bcQ)OLYR$k3k$5V1hC}3ji6@8B!Qh7;_kM8KW2(87i4HnO}mWH5qTQ zCZ^TZlX-=wL5eHBsBM=vZ7$2A!85!>}C={^)IRG=y BE++s0 literal 0 HcmV?d00001 diff --git a/teamTechTitans/techtitans/techapp/__pycache__/apps.cpython-312.pyc b/teamTechTitans/techtitans/techapp/__pycache__/apps.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..382cf319926d477cce5423c60186b1d797b829e2 GIT binary patch literal 448 zcmXv~Jxc>Y5S_idXiRb<5(Ntj8|9j-MMQ`O#U_>25m?sjCON&_#rr6dPRI|iGX4ee z7YP0X8_RHDWo0Ksn^ex+T^4rcy?yhB*?Bk33gCHreN<1FzlbbPsQ~kR1XGY8nFj;r zFa{c2fYc@+b;Vxvyw1@^hE@6|VzG3sF&v%+e%I}FaygHzAoDtcDJXE51V@w1(WT}X zBi%Am^GbF4Vrd`m${XSL0$X0&gFq@TvQOP!BZ-4^S9vmBjq~c3RZ7d8`(mItPb-{b zapDoKaekKwuTVCn>WajRxxf~@oAoeAdxkj;w>W4XwfmxTE8>3Ox2b#V#=?&>h-0QpZX-+ bKuXJsXi+~pW9$?5epfWM^>FzIm@?Nt?R#sfP<`nyBGTq`#$x6&i&(}*yDq;pou4MQOQu9mG#VRHvF*!T2BqKjBrX)2vqa?E= wF|QcROe`pffta9IQ2C3)2FNbWNwq8D0P17};$jfv12ZEd<2?qMA~qlg0D_k+=p-O?Chf(4zg25UPkHY8-SGqS+GGP|hQ*1kq$#_sGQ*uqPIBroVn*dGOw9T3h+3XcIX$+pF*rcU6Sb|CmlclfiCc%1tB03 zL9XN>3qc?O3W-cnU0*e>Gf`gD9$M(RPvgG%# z2NOBOu``AXpwROlTN;^#fms-t#{={D%{=WFOGEi`qM%LbKFv1xoL_gXaLE7w literal 0 HcmV?d00001 diff --git a/teamTechTitans/techtitans/techapp/__pycache__/views.cpython-312.pyc b/teamTechTitans/techtitans/techapp/__pycache__/views.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb24e8dbbd8dd8541844bd43d0a558e6e8f068f0 GIT binary patch literal 4520 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 U8p8<0#URE 0.25: + return 2 + elif 0.21 < ratio <= 0.25: + return 1 + else: + return 0 + + # Open a video capture object + cap = cv2.VideoCapture(0) + + # Check if the video capture is opened successfully + if not cap.isOpened(): + print("Error: Could not open camera.") + exit() + + while True: + _, frame = cap.read() + if frame is None: + print("Error: Could not read frame.") + break + + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # Detect faces in the grayscale image + faces = detector(gray, 0) + + for face in faces: + x1, y1, x2, y2 = face.left(), face.top(), face.right(), face.bottom() + + face_frame = frame.copy() + cv2.rectangle(face_frame, (x1, y1), (x2, y2), (0, 255, 0), 2) + + landmarks = predictor(gray, face) + landmarks = face_utils.shape_to_np(landmarks) + + left_blink = blinked(landmarks[36], landmarks[37], landmarks[38], landmarks[41], landmarks[40], landmarks[39]) + right_blink = blinked(landmarks[42], landmarks[43], landmarks[44], landmarks[47], landmarks[46], landmarks[45]) + + if left_blink == 0 or right_blink == 0: + sleep += 1 + drowsy, active = 0, 0 + if sleep > 6: + status, color = "SLEEPING !!!", (255, 0, 0) + elif 0 < left_blink == 1 or right_blink == 1: + drowsy += 1 + sleep, active = 0, 0 + if drowsy > 6: + status, color = "Drowsy !", (0, 0, 255) + else: + active += 1 + sleep, drowsy = 0, 0 + if active > 6: + status, color = "Active :)", (0, 255, 0) + + cv2.putText(frame, status, (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1.2, color, 3) + + for (x, y) in landmarks: + cv2.circle(face_frame, (x, y), 1, (255, 255, 255), -1) + + cv2.imshow("Frame", frame) + cv2.imshow("Result of detector", face_frame) + + key = cv2.waitKey(1) + if key == 27: + break + + # Release the video capture object and close all OpenCV windows + cap.release() + cv2.destroyAllWindows() + + +# p = "shape_predictor_68_face_landmarks.dat" +# detector = dlib.get_frontal_face_detector() +# predictor = dlib.shape_predictor(p) + +# # Initialize variables +# sleep, drowsy, active = 0, 0, 0 +# status, color = "", (0, 0, 0) + +# def compute(ptA, ptB): +# return np.linalg.norm(ptA - ptB) + +# def blinked(a, b, c, d, e, f): +# up = compute(b, d) + compute(c, e) +# down = compute(a, f) +# ratio = up / (2.0 * down) + +# if ratio > 0.25: +# return 2 +# elif 0.21 < ratio <= 0.25: +# return 1 +# else: +# return 0 + +# # Open a video capture object +# cap = cv2.VideoCapture(0) + +# # Check if the video capture is opened successfully +# if not cap.isOpened(): +# print("Error: Could not open camera.") +# exit() + +# while True: +# _, frame = cap.read() +# if frame is None: +# print("Error: Could not read frame.") +# break + +# gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + +# # Detect faces in the grayscale image +# faces = detector(gray, 0) + +# for face in faces: +# x1, y1, x2, y2 = face.left(), face.top(), face.right(), face.bottom() + +# face_frame = frame.copy() +# cv2.rectangle(face_frame, (x1, y1), (x2, y2), (0, 255, 0), 2) + +# landmarks = predictor(gray, face) +# landmarks = face_utils.shape_to_np(landmarks) + +# left_blink = blinked(landmarks[36], landmarks[37], landmarks[38], landmarks[41], landmarks[40], landmarks[39]) +# right_blink = blinked(landmarks[42], landmarks[43], landmarks[44], landmarks[47], landmarks[46], landmarks[45]) + +# if left_blink == 0 or right_blink == 0: +# sleep += 1 +# drowsy, active = 0, 0 +# if sleep > 6: +# status, color = "SLEEPING !!!", (255, 0, 0) +# elif 0 < left_blink == 1 or right_blink == 1: +# drowsy += 1 +# sleep, active = 0, 0 +# if drowsy > 6: +# status, color = "Drowsy !", (0, 0, 255) +# else: +# active += 1 +# sleep, drowsy = 0, 0 +# if active > 6: +# status, color = "Active :)", (0, 255, 0) + +# cv2.putText(frame, status, (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1.2, color, 3) + +# for (x, y) in landmarks: +# cv2.circle(face_frame, (x, y), 1, (255, 255, 255), -1) + +# cv2.imshow("Frame", frame) +# cv2.imshow("Result of detector", face_frame) + +# key = cv2.waitKey(1) +# if key == 27: +# break + +# # Release the video capture object and close all OpenCV windows +# cap.release() +# cv2.destroyAllWindows() diff --git a/teamTechTitans/techtitans/techapp/templates/project.html b/teamTechTitans/techtitans/techapp/templates/project.html new file mode 100644 index 0000000..c4ba376 --- /dev/null +++ b/teamTechTitans/techtitans/techapp/templates/project.html @@ -0,0 +1,153 @@ + + + + + + + + + + Tech Titans + + + + + + + + + +
+ + + +
+ + + + +
+
+

Face detection model

+
+ +

+
+
+

Solution description

+
+

+

Creating an effective online learning environment involves not only delivering + content but + also ensuring active student engagement. To enhance this interaction, incorporating head movement + tracking + into the web camera becomes a valuable tool. By leveraging computer vision technologies, we can detect + and + monitor students' presence during online classes in real-time. This feature not only helps educators + ensure + that students are actively participating but also provides insights into their level of engagement. + + content covered in previous classes. This serves as a reinforcement mechanism, promoting the retention + of + information and encouraging students to stay mentally active during the entire session.
+
+ Image 2
+
+ + In essence, the integration of head movement tracking and the incorporation of spontaneous MCQs + contribute + to the creation of a dynamic and engaging virtual classroom. These features not only serve the practical + purpose of ensuring student presence but also enhance the overall educational experience by promoting + active + participation and reinforcing learning outcomes. As technology continues to evolve, such innovative + approaches play a pivotal role in shaping the future of online education, making it more interactive, + personalized.

+ + + +

+ +

+
+

+
+ + +
+
+ +
+ {% csrf_token %} + +
+ + + + +
+ {% if result %} +

Script Output:

+
{{ result }}
+ {% endif %} +
+ +
+ + + + + + + + + + + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/teamTechTitans/techtitans/techapp/templates/static/active.jpg b/teamTechTitans/techtitans/techapp/templates/static/active.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7023fd57dd823121520b2041fc82af27d20c645 GIT binary patch literal 39851 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 A5C8xG literal 0 HcmV?d00001 diff --git a/teamTechTitans/techtitans/techapp/templates/static/lead.avif b/teamTechTitans/techtitans/techapp/templates/static/lead.avif new file mode 100644 index 0000000000000000000000000000000000000000..214a852593d3288006a0ee1f8325719df14c70ef GIT binary patch literal 43654 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 O6eIoZiO)hD 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%0Du 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 0.25: + return 2 + elif 0.21 < ratio <= 0.25: + return 1 + else: + return 0 + + # Open a video capture object + cap = cv2.VideoCapture(0) + + # Check if the video capture is opened successfully + if not cap.isOpened(): + print("Error: Could not open camera.") + exit() + + while True: + _, frame = cap.read() + if frame is None: + print("Error: Could not read frame.") + break + + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # Detect faces in the grayscale image + faces = detector(gray, 0) + + for face in faces: + x1, y1, x2, y2 = face.left(), face.top(), face.right(), face.bottom() + + face_frame = frame.copy() + cv2.rectangle(face_frame, (x1, y1), (x2, y2), (0, 255, 0), 2) + + landmarks = predictor(gray, face) + landmarks = face_utils.shape_to_np(landmarks) + + left_blink = blinked(landmarks[36], landmarks[37], landmarks[38], landmarks[41], landmarks[40], landmarks[39]) + right_blink = blinked(landmarks[42], landmarks[43], landmarks[44], landmarks[47], landmarks[46], landmarks[45]) + + if left_blink == 0 or right_blink == 0: + sleep += 1 + drowsy, active = 0, 0 + if sleep > 6: + status, color = "SLEEPING !!!", (255, 0, 0) + elif 0 < left_blink == 1 or right_blink == 1: + drowsy += 1 + sleep, active = 0, 0 + if drowsy > 6: + status, color = "Drowsy !", (0, 0, 255) + else: + active += 1 + sleep, drowsy = 0, 0 + if active > 6: + status, color = "Active :)", (0, 255, 0) + + cv2.putText(frame, status, (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1.2, color, 3) + + for (x, y) in landmarks: + cv2.circle(face_frame, (x, y), 1, (255, 255, 255), -1) + + cv2.imshow("Frame", frame) + cv2.imshow("Result of detector", face_frame) + + key = cv2.waitKey(1) + if key == 27: + break + + # Release the video capture object and close all OpenCV windows + cap.release() + cv2.destroyAllWindows() + + +# @csrf_exempt +# def execute_on_click(request): +# if request.method == 'GET': +# try: +# return JsonResponse({'success': True, 'message': 'Button click functionality executed'}) +# except Exception as e: +# return JsonResponse({'success': False, 'message': str(e)}, status=500) +# else: +# return JsonResponse({'success': False, 'message': 'Invalid request method'}, status=400) diff --git a/teamTechTitans/techtitans/techtitans/__init__.py b/teamTechTitans/techtitans/techtitans/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/teamTechTitans/techtitans/techtitans/__pycache__/__init__.cpython-312.pyc b/teamTechTitans/techtitans/techtitans/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e0b3420ff0832f009f5a3c39ce3e1759131608f GIT binary patch literal 143 zcmX@j%ge<81QT~oO9j!7K?FMZ%mNgd&QQsq$>_I|p@<2{`wUX^OV7nBCL=L9JFz4q zKQE>vH94asvm`OE7?~L#pP83g5+AQuQ2C3)CO1E&G$+-rh!v=v5r~UHjE~HWjEqIh GKo$V&r6Pd< literal 0 HcmV?d00001 diff --git a/teamTechTitans/techtitans/techtitans/__pycache__/settings.cpython-312.pyc b/teamTechTitans/techtitans/techtitans/__pycache__/settings.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d30412c63983387c2981555634941b2871f9b3f5 GIT binary patch literal 2538 zcmb7GJ8#=o6ejh4TUM0VNm_t`kvei}Du$a!gCGqp(T)&Va`lK?A^<__UQ4w3kjbk! z=A^w#w{*yqt?1rA(IrNQ7@Q1rX@L%Mf-aeQNJ*9;8>lPTJdCN<)N?#dw-$(UOVAo*y#PsK-_V2 zjP#Clo=ylLuMk8&A=IRVaFas*x3my}cL3f|6cl0zEXao(TjVV*(jV`&*wEMg)(@md{L|24qG$W)S-zE4@qgmlHx++{b zxR$vtWno*9{EnnGb;iVm$Xe56wsnIcxX~gqku;NO8~P4z5H=E7!x}auf)TTIz|12z zY*9k0tT85$3^MSXXF4VTF$3JY>>YLqqE`V{)eX$Z8e~uLy!o| z2J=!-~vZBw%s84i45ppxkgfax8Fi6GP6%gV*~!jz!%&XA_Ft*xivDyD$~(cdLe^;&R(* ze{(EuYBX|e$52cwI{+eBZ7VQ!>=qzk4GpJ)&AS6w8<q5!3iiVeAO7Qv6T#g1uv z>$RK}gexD0CTo2@fCVO19bv^}SL7xPmA)!t1(h;0c2E@IHWx)Z*oHe(k+%#lP-}-o z(Ya?Fy@5?#d5P^n8*Ubj*r64!$~%W`N2+|T!q>!S{P(s$&#%^N5}mN)sl__SQD zRqaHfRIPyu6wo16JF;HL=ZpL%SK;kgrChFw^-3{UF0I<(8o$0#^E?0+)_GAV zL(7EfP;g=CLCFp{QcZx$Yk-_{vfHUVzsl8%H4%`@;%b2}=6|L>I^QIp*!;s6EtqUz zM%P}98hTtDe$BD%gHNGHz;Z{ykBxZF$k<1l*T_vqaF=)z%i;eB-JFuK$Y^%7K~LU$v*02PjR{m02vH~t|KN_o1859v_C z1C}(EywQ#ILR6ZkkCLgQ^z3nr`9S&S5Q5Y{ z*rVj^Pmd0h^Cy095`6rw&owGM^)4y&ydH=Pxr>eQ#kb>&N`G-V{+Z_;HQW1wnx5^( ik7Lu_@Nsmi8#;!f1HBlPn1Mng)Rnu3RLZysT>J|n2~My8 literal 0 HcmV?d00001 diff --git a/teamTechTitans/techtitans/techtitans/__pycache__/urls.cpython-312.pyc b/teamTechTitans/techtitans/techtitans/__pycache__/urls.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02d66f725c44c5799bbe94ee825973561b486edd GIT binary patch literal 481 zcmYjMzfZzI6uxV(<(CC?ay80O2Ao`ok;U27q#=^pyFj76HrJ~Pn~4K%F!gUR{15&E zj!brOFb-}Q;=<$|(BK>1``-7y@7=pM!zcm~ub&B7iTWv055$Q%=>)Xnc&;-T>1*w23PyXJI6XTI8!_{u zE3=rEao?uhpy33RGxwIMVtZQJl2XKwV3;OpBQxK*joEFfwT)9#~!(0`@$;!A2mfm literal 0 HcmV?d00001 diff --git a/teamTechTitans/techtitans/techtitans/__pycache__/wsgi.cpython-312.pyc b/teamTechTitans/techtitans/techtitans/__pycache__/wsgi.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3a04d14518752f398ec38ad9ffd4c20d6cb9fd64 GIT binary patch literal 637 zcmYjPF>ezw6t?d|Q(b6;fOfVJOAy?Jfu%x7NJ*n0NQV?5MU^h@`Q^^3&pw^qlyvLF z%mNcX0QDE}8(4}!Lb?fr7}!ABI^k;?C2#Qio}a$=eb4gejSUakc>C!ce833(DvL!_ zuE6ZTg7=7_0b-ar0uQjwu5eO!;9>-LyuP3;^SHLe3&bky+L<%2Fme#MXIHJk+SF;R zofO`yey2+!B}Y6aBb5^aQDV5EQj;uKV~C9Jd0j)`b*40EViF*84i$nP2q07wN>as+ z1UwKh0YN4-=a(%>Q($B`q**3-L=9JRIJEP2tWc_QAY59_^s+&ew8Ob3BQD@R(Ewgz zOs2PkfT>9PY)oaW7M>!N1|Wk+eltkau~7koOsHuJ(gepk=7IO8+_cxg#qAhOSl)#z zHj1s*v!}hzZrE?{?R9&de)wXy_40Z95d=18M8S6&1sD`0+5r&1Mba7+u#gFU? zemOaJtyWP5IpMjIg=dKjM)XLSqP8OX5zR_d7x!A*`w5K>sY#UFUka|ma;%?CFV-K= zpY};!w^aLMkZ#)JuZuDM=TvcJb`xRmH+uL3Id8mE?>pN3f;P{${PSk}8`}9