From 8866e906b6dcb79700934acdda75be4be99c097c Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:13:36 +0530 Subject: [PATCH 1/8] The Main Code for the project --- projects/Ai_Attendence_Project.py/main.py | 76 +++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 projects/Ai_Attendence_Project.py/main.py diff --git a/projects/Ai_Attendence_Project.py/main.py b/projects/Ai_Attendence_Project.py/main.py new file mode 100644 index 00000000..cd0f8960 --- /dev/null +++ b/projects/Ai_Attendence_Project.py/main.py @@ -0,0 +1,76 @@ +import cv2 +import numpy as np +import face_recognition +import os +from datetime import datetime + +path = 'Images' +Images = [] +PersonName = [] +mylist = os.listdir(path) +print(mylist) +# for separating the name from their extensions +for cu_img in mylist: + current_Img = cv2.imread(f'{path}/{cu_img}') + Images.append(current_Img) + PersonName.append(os.path.splitext(cu_img)[0]) +print(PersonName) + + +def encodings(images): + encodelist = [] + for img in images: + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + encode = face_recognition.face_encodings(img)[0] + encodelist.append(encode) + return encodelist + + +encode_list_Known = encodings(Images) +print("ALL ENCODING FOUND!!!") + + +def attendance(name): + with open('Attendence.csv', 'r+') as f: + myDataList = f.readlines() + nameList = [] + for line in myDataList: + entry = line.split(',') + nameList.append(entry[0]) + if name not in nameList: + time_now = datetime.now() + tStr = time_now.strftime('%H:%M:%S') + dStr = time_now.strftime('%d/%m/%Y') + f.writelines(f'\n{name},{tStr},{dStr}') + + +cap = cv2.VideoCapture(0) + +while True: + ret, frame = cap.read() + faces = cv2.resize(frame, (0, 0), None, 0.25, 0.25) + faces = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + + faces_currentframe = face_recognition.face_locations(faces) + encode_currentframe = face_recognition.face_encodings(faces, faces_currentframe) + + for encodeFace, faceLoc in zip(encode_currentframe, faces_currentframe): + matches = face_recognition.compare_faces(encode_list_Known, encodeFace) + faceDistance = face_recognition.face_distance(encode_list_Known, encodeFace) + + matchIndex = np.argmin(faceDistance) + + if matches[matchIndex]: + name = PersonName[matchIndex].upper() + y1, x2, y2, x1 = faceLoc + #y1, x2, y2, x1 = y1 * 4, x2 * 4, y2 * 4, x1 * 4 + cv2.rectangle(frame, (x1, y1), (x2, y2), (255, 0, 0), 2) + cv2.rectangle(frame, (x1, y2 - 35), (x2, y2), (0, 255, 0), cv2.FILLED) + cv2.putText(frame, name, (x1 + 6, y2 - 6), cv2.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255), 2) + attendance(name) + + cv2.imshow("camera", frame) + if cv2.waitKey(10) == 13: + break +cap.release() +cv2.destroyAllWindows() From 4c1a9eb9da297c36ccd9b79f14dd5a7886fee32d Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:13:57 +0530 Subject: [PATCH 2/8] Create Images --- projects/Ai_Attendence_Project.py/Images | 1 + 1 file changed, 1 insertion(+) create mode 100644 projects/Ai_Attendence_Project.py/Images diff --git a/projects/Ai_Attendence_Project.py/Images b/projects/Ai_Attendence_Project.py/Images new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/projects/Ai_Attendence_Project.py/Images @@ -0,0 +1 @@ + From 198a27264b77e5ca6dbe0bced4ba1c82e7452669 Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:14:32 +0530 Subject: [PATCH 3/8] Update and rename Images to Attendence.csv --- projects/Ai_Attendence_Project.py/Attendence.csv | 1 + projects/Ai_Attendence_Project.py/Images | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 projects/Ai_Attendence_Project.py/Attendence.csv delete mode 100644 projects/Ai_Attendence_Project.py/Images diff --git a/projects/Ai_Attendence_Project.py/Attendence.csv b/projects/Ai_Attendence_Project.py/Attendence.csv new file mode 100644 index 00000000..d8b94f87 --- /dev/null +++ b/projects/Ai_Attendence_Project.py/Attendence.csv @@ -0,0 +1 @@ +ELON MUSK,20:12:05,08/12/2021 diff --git a/projects/Ai_Attendence_Project.py/Images b/projects/Ai_Attendence_Project.py/Images deleted file mode 100644 index 8b137891..00000000 --- a/projects/Ai_Attendence_Project.py/Images +++ /dev/null @@ -1 +0,0 @@ - From 6642e90f4f3df60c9746774a5665c1b908da164b Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:15:18 +0530 Subject: [PATCH 4/8] Create hie --- projects/Ai_Attendence_Project.py/Images/hie | 1 + 1 file changed, 1 insertion(+) create mode 100644 projects/Ai_Attendence_Project.py/Images/hie diff --git a/projects/Ai_Attendence_Project.py/Images/hie b/projects/Ai_Attendence_Project.py/Images/hie new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/projects/Ai_Attendence_Project.py/Images/hie @@ -0,0 +1 @@ + From 023162e2117e677b09f6a0d7fe9728e5012e4b24 Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:15:53 +0530 Subject: [PATCH 5/8] Add files via upload --- .../Images/elonmusk.jpg | Bin 0 -> 25412 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 projects/Ai_Attendence_Project.py/Images/elonmusk.jpg diff --git a/projects/Ai_Attendence_Project.py/Images/elonmusk.jpg b/projects/Ai_Attendence_Project.py/Images/elonmusk.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f7053e94b935318912dca809c13084807984f971 GIT binary patch literal 25412 zcmb@tbx>SQ^Dn-OyF-H8B8vqN?zS7;-3jhafGqCru8X^Sut1RDuE7HYmtarw<9XlT zt#94GZr!TewR_HIx_i54=ggd%)7|Iq%HLfC35c|`iK@Da97ItT00aU62%M5KQnCnm z0Dz;Dhnu>*6pgN)J`L&&01bc%AO!FLgv~76T_jai6#=j0-Ta z{a;)EyX^ni!mx00^LW*IdHr%*TDe;Q06@-HZ13&i^2!J1zG5PC`~TpEf3cgUy7Vi5 z_!Z+={}(U(i_QOw_y5IiuYclI=k{NH>;GT`w12Vre=)_s*u%=_U%vopXBS^LTWcE+ z8g5QbP8vx|XLBnW4PSQ;D@S)4h?9l0n~SrXnTM6-tL}gM_wTO&`2SV>cf^>v1O)}a z|Ka{WJp6kd{%h_=?LXrSB$@ml-v2nV@O1O~|64!=9suC~)czkExo-gg6*vHZ^zuJE z-Z%iDkPQI9P5U1nBNqUG_YMH)%l*3!kOm+jBL4e9LPSDFLPAEtKt*{aY;+7X3|wqH zJX~yC9DKsJMEC@62yk$TDTv>Yl9H2?;}KC(Q<71?B_k*M*9Z^^85so`1q&4wiwqwZ zpX~pd{`Ld#(SR2~C?b#!fPfD~#0UNz22j3EXdv>x^ZI`g0wNHAgp7)Yg8nL2#sdHm z5s(m(k&#ee-6Nm^fCz~AuW|xfE)+>MR6;s4S2QB-pd@;!qDEqM^MTo&OA;Qp;A9Z5 zw1!17gL}x}6?*fVw=yXuO+&Bt$bbMu;4A$vXRqg1gRf)qDg)!c@(~aafJle{Ao71S zfC%`ATm-a|NOat4gl4Yv$U#Momw(p)Sg(D272yNK0o#CCWK~&3d%X}~HW)4sO@agZ z?LKDk(ZN3YS=g_nC=g?SY?v|Agc)IVwt##ODVURA?)(RoGMHdxVP<7kA&y;{jj!f+ zfR-j7rww{`R7G?Jy&pCov6d!5uU!>Odm&@tg5RPlo|4S0CcXrEcCbw`3vL2zF;iOwJA%WykSu&xD44@O#l6|YBt-J0ApeqK4@#)zhTUAXgWg!$Z1L9lp50s+c z7Ls@zNJ*B3|7G|YhLVxjL;xhL2Fx>yVt z^Pnw~EFPgIA@4r@v4oU?$j|2n=KiXvQeehw*VR;&03ZxR8ReG~BBJo2c({V(s;m&T zatj$jvdwi6f&`PJ-O>eq)6lQ;cdq0?&bAJ#o(FiAAaoG0a>ju*%~fpcAtc5%xd-_V zO-lpxjjMC$kJzTc-YpQv;c))40ZJGbpO(5PCXeZnnHjpoqU&*&75STq^bckUFmtb@=qgjvy9;bY45*FI_8r&vYM z&FWU`X6wf$nDZZd?w8V&GNd0eUfP74DTnPYzxBp98}mNX z>upu>fhmuuCPjXSMmT+Hdm;NVS4T3V3g5+h&)(lD#LY_Ya>cYBTEQEjE7dnJ1r}t0d@Q7!G|pBT_&q3OG>4MuOiX>pqez7lO7tM zYC|MR#F#6e22_EXHi0cQG=)@?BtX#w;9*r3m|798ZQ#aUPV!h0go<*T|t#ti%Sh(LKdCKGj5dYlfxV2 zuUxEO;aFz(bsNHrNVLeRD)|Nah`5ngWrP-SfuZl&jds7a8tr9%!bI8Yl)@N0pHzTB zLO8Jy4Q0c;B1TN$T5Io)Bf`1-G9qz=vr;*wQqV2Or5(Qoky+s}D*16xp84-l7VjED zVrW*(1QySF=iAvz58DkCpyZAi>Q;K{NKuMmY}ns~en)9@_UI6{>^Nv|J%@iEFEA@x zRkJN8GL!5Xglc8}^d)#tsJFIczTs2v+}`mUZP$n4oc`irLPhjryXbb;hd8N04oO7t z%t?MJ*^G_d`P!nkuH)AU{u5{Vi#Jf|J?Ye_FnOhNcWs5v&h}Pc`7P)<1@f}ieImW> zK|@NfVQugrp{M`cwj@+N{<69oDzQRK$8=e_b+W%;J~J@Io_Ion@eQip&}40{a@T8F z%jxdz6tN;5)){7{tsZqK=7(==P3Y3-$=C?$&o906hXDE^C$?rvhY(tcNPSI|moM|BWZ^z)4L5n$X;e3xvVswgjGWD?^+f(LKSzSfRmUe$++9!(1}Oe*w51tvbPn zcMASdi#FhcISR;K_BZi_)>sDZx@4j@s&{NzG?|8xw+Q*gUTXpQ_Za~pW)43#q)z@> zy(1DBs$^*gXMOly16}dOL4ziNgOfFi@@8Yr?faQ{bj-(~F`n=Xoes3LF z{t4aLcg3o0gQ0)A0Qqvh4&fzD&*FPb4>4iCoUX#?w_|`RY-kwz%JQJkk(9m)d8Zra ziq{}n8=MiJyc!+ANFJ->5$W)v#~!*Qu%!o1dpJghrw(#YebPQ1a7zB!*>d6DX}(*# zfniuL3q?Qup}L%}-xt_Y*`pZfpsir&aKaV;sZ6CA2`-cy?@hw)u*+LKjS9Fl^@n3EtM-Q#l>3I z@d{f*#lA$ra_SgA#^P}cW2olY^*Rt{rDGbVlVn6?d7O^fQ!?+UZd)PKu?>bhle6le zF>W?NuMtb5l7X2kWD_j&XkV)iM%WjfCaSU72alzQ%rxe8$(`$2ZnbgN)&b8`83%y2 zwQ$RMHJRi#l^Flo!dbFbF|FmN1%&4d`y_tj31iNA!m5C>(*qbBhKo*PCwNg-GTvnYxOW(#Ff)Fdun9)^ zwDPT1v495TT-Tb>cyHeo0Pax7Ak$b4LAMDb8HRNTK_gL*K8%?R?tAI`o@zGLM~WFa zLJz=zWIqLz+S;Xq-mmjbsvndY8ov=EWIhqz)(v;xn|8HZwIwEZC%3-oZrcx&3B`V- zyw5Z3uYVW&iF;RDSKSrF*-lD_w>Fz3Gg76x1w827mXyy`x$F#Tr)ueL_x!Fv3rdz5 ziTE=o%JOt_XER8q!9w5LCC1J>ZXQ@1*qXOXh1NS@;96drYu%y8%Bo19K#o{}2mI&m zV9UV}g}v1(#;a%(^dbw@d#wJgHNlG2*wH?1X=okcvgZREcG~(27}j;XqeWK_b`svL z$D32ImAUAG)wYIvT}0^TYW{feJY@3pbj<@_AQ&iXCJ>|-da$xm;eV4@>VRi#_Y51d zah`-!A@Nfn%K#80gK@`uzb6nH?_d{YTpsB0W&#)6;F2pqvH(ccW*+^B@uqCVCpioD zZDiLsxa)l3T?C)*wV}1Cyxcq#KTb<=^q01NYy{p!IZ}M(V54Yk?bIWQt$`~OF=ZDX zK!l)@^U7%>J{-I;?fAZ*?EcV%*7F1nmV)O#0)>I~?Ea5BQkQS=T#28~bRtaCy?o49 z&)20hMl?09@Uqlz*O}4DA?4ha6Qq}${fC4{wHRT9EV_;jPXy~(C{dbmoxWPEYJF)X zbdg28AHyq1WU)NU@L!)}o0zeAqY01!T@}SNnzDda#*lYuVnQ>ciDhr_)lu~mnTr!; z)MPa^&m=xL9`d=RhQ_gMVooUGD5q9%+lFXB71A&qWbtV7(})eUoE6#X=dKNK^}xvc zlw|HdT-+h_Y9jGn*L;;%PV*fRVHec)1Uszp`;`i2&!a>WQ2e3`02sw1-UUrKsN?#W zjGC?4*d(Uo6yrx*qH9dcTCJ^mqG9?P0FqJt2YN0DIisxC!X0&x0Vb%AzAP)^QDNA?+ z-P8sR`oI0ds9L-nC1n6@gVIY=L{W$NZei>k?CE9;-yT{q8iH&j4vaJgbP)_3nYu|c zfD#F!5qDFKM+cX8lqM=eN8TzwoTl~KY!ji;yHMEC3$l|4d1$RW&iy7XQK?n>0nIh1 zN7m6qnt1qS>Ar%rDgP?8%bt3wcZ*8Ut>wfaI- ziW`bHGq1X*kc#Yg+RDzrB8*iIP2(pr#Y0t7S>r=EU9)!HK~$q&SnMtp2-Zw3U~!KE zlM;#SYn4Pvp)r7zo0po~3StIax2@lPeq;KZWEC$%JB<(> zk;#`X$7?v7K6HTZ~m=cdwD-2QGS3#BD0Vgn5Nar z_0P@)0*ylu-`c%1_=hJ>(9y0!J$19b2k};Ow2*5)%|qPkfg#7Ii9>)Xx?$r3dI!tz zvYM;(4R5YsR1X8Gk*^X&Hj)eO`?FzU9R|uRPXs*h{7Wk}kzpq3wt_rIqnn5C5=Eb|znWK1RXI2V>%kw(J;MFM;#vu?_&rF+R4J~+Gq ze4mWBJ_Nonk4x6(o|-d;v;1gdhN3Ege-TQ_3Ka7f(q%HwWR~H702dB=fFXoTj`wi-LOadt%H?Q;A-VYPfEbu`*@G~%U@&?S4zmxf+B9>9!)d0+hNWINdT zGNwj=$2QE|_`2*Z>v-8hZs(*sL_G>%zq@Q^xVe!Nk&J;sMn(&giSN@|5nEqc{w=VL zT05L(M&e^I#SpN8)K`98p?FHqn6EYQmN?t68%-i5TOkVc-NHG3?fXI5;;(sBrPii= z05bq7&U-^g`tqOy-Ksb^55`r=)oUM!Gvv0zAEhoOJc^z>&qdtYAoE+!5KjZ+(3G^E zI^!K%{t=FtfZVr%4QU64#>C`A^hZbI!I@z&1gOtIA0UWmOo--cZ(y&A1V9UEzhzxB zQ~2C_L8TAH=ppq8jc-of`*@1OthBTWKAqqE5+No6 z1X?~1Jx!TU-nM85f!yYgWhh9;Lo&q5Gt< z3Iy~PNLqVLvrT8u>J^m?iFCGEm`7~rkbXq!jZltqGTjK=E z4d2f1T6-N?z>>{SFVTwqZ{ajCMF$xJL_BAG@e*-e~<@a>a2lVd+706T;jBe%phX6 zbn>c2bM;iK2lL)cM>oQ1lvUmvva1%;+M~N)T+2_oEY|%B(62dA(bmvC2t)*;9Qbv+VW^!L&~eE$HA-%Y8{M zF?=_0PxU(*<&S_%96wlSfbVv`rCMg&%VIRWE)nl90NWf4iV9|5Dh#Y7zHx6#JsgG) zvHtd`6gs2peC$=~60lC!_b|pFc-x5GmKypKkC(WiW){s9Zq1=U10zDasWl7Vf)`@K zY0(KFoOFWAO)3;S0va{zeXT;tYno}rM6=vj1dQ*quRXi&uZ~+dNxUE+t2h--Z{o(w zef}ZHcqI=ie_ytCUjHY^PRvHs(1ofYWPDe<=w9X=?p)T|TzeIxlP#t1A($jo$?~1) z;I5Wybhzm`e|%dTnp})f7%ZroBn%l7j5^Xy-9?uzv4@04(0_h6q2JNgcj36DnkEH7 z@Zy{09U8eG=S1~dRa-dbB45046}rA%Yh)sBZ#QL!j;BUttpq+T3tY5VqwZkxx3#N$ zanHt)E2X8^B3*H$xD(mUzsf6{tXFHJvS&U@wdaL1r>3?@qH|hj)zXc&urK3(Zg#1| zxv5UdK5%@K92XCh)QhuFAiu2-2y?xs+Ql1Ta;p!-F7Wj%)7ns2IT9mE;Ys(%o?7XQ z*T265j-f+9cqIg&$a>az)AU@~upEO~WQ#$~_czPV2YO+f?H(;GvkUc1BkG=bB2`ld zv>TE7$#^*Kho~&$Q88iNZoi73!<~Dtm+p5IJpD*%hsdQ;=4Z%eI`WFMZK3+fyX)v) zo3;uNG}V=qN-+Yy6}XZ8&v(vVlUtYW-cYc->u03N+^YE#8nRsqXJn=Ocdkwmh-`*M z!)t7168@zEWGQVn3}UwNp37g;_fj$_wNYU?pD6aQaB&%+MrX_2rNc=DinCK7>ZJOz zT&5ttAzkEfk|A41lBMtb1So}YL6u#)j)Ya|kmcC>$nKnQ!**@7<({4<5UsUb(^Hk_ zb=@P(6963Vx{PPL=tU?wkduc}w3cv^1vBr4MgtToqM0jrVG8g{!dm|DNHlc|wGYvL zExbtBCqb^#L>lCa{uNk-#9VxIg>z_XL4|Nq#!Sy`CoMcN4}`tS67A7Sw7vjg&QH3vVj762TMrQR_y!%%gqlqV}Sgah251)rYv&+8kyZ zvghp(bq-xK2eDv2Oh-KhaZdU1zS4DOK9`B;RU8I=4;1^OH-u(yDEQXB@mG!Dwg#Df zG%Xd8lNl81b4B~s(4m|w50^k^Y5%n?4JEiSQblQO;ghp*1oDoszb|t;UMjZMkDxjK z)*5pI(b2wCyt!0WMTgIMdTUpKv>|MIrjy;f+pd?OSO@?zxxOU z)5u$kx0{Q-OPHRiV%7d!87AtQAq)k+ESO-`MNqIQOp<14Y*&~HJn$fnIdYNjj@dGt zg(L1Xy_(}N9^SkA^@HjHQ5v{7xAYevdzpixOiZhQnqTl}C*e;HVyMqf9b*HO-AKAB zxj3csPwCQ9d(*oedo{^Pg9)xm^0S_4{k^TJx<(H2y;JW{P9+KTrZC;E~~g$ zXZ$Zi&K%^vSY2}q0CzCDrxVl2Vb=f+PFg6PkHTLxP!S!2UU&@6O&>j zxk0HLp~z7yXY>>L%B%zT0^(jj8*q6CE*mU)Q^fHdBvkQe@C~0={{ou7yy=ZHo4jHl z?KWMS7I|(@Z_lcC8jwUY`+z}H$aaWqi-*z-cf_G=*i$Cxl%tL|j&(+!)Nmm+8^y#f z2=nvDAZKMOoP=RJPb6H8eR99NNZva9;_Ml^+HUQ2Ho@#_d@YqqP?Cs0%~Uo!)r&aA zM4uJO2_nELnVw1t;hcMJcQkYzQLbcGkk@@EIVFDc8;Dn|9)d^fUPBdV;D4HZaBM7G zYqU;4&^PUh6lSIJDT_{g*Yi<_)SRWg>&IzMxgJhOtX4bGT96PeSpFM+b~kRDPI5fT zIbJ>a6f&O0P+jv47hlOIsvTKZgOz+tC;bkkCnu72h1qJ)bvlp})KC?V-jScLo%mVz z+U#JgL^LbSH~7A(hp)A3j^olhN@{Iv8;-=>Qp8A|!ukIZ4AkOt4Z>*jDWdHAf0f!mH_)D?TgtZ<5 z0GXL2#oIz&0KPQQ$Iuyo$8CksS9~H2B_I-l(3~dCd|7&-a?5~>tz<2iR5&wM3!w%v zpS->VoP`-Z+YF(+8wEyGX4~&sg}`5e;9bZ-myIli%uAOk!N(ZG(TYz5qf^2oQpHvR zLS`kZZI?O{+N+Tbyh=hrrIj{40r0mxyPnF_^?rPH8=A~gq08dW(90bAe}G^4cO(~# zTCF`0-O>m&l0NclYYyKkaOqtu?as%aGFJ7o6a7(5UAHRn1KJH`~O z?9-TGU{mN{fLu!04;wvap-=lXhYVzvf5_xg|1k8(hT~i{Usd=(Xq0v19+&2Y=|#%Z zma<*@;jVk$?>ge|ejnINxs`d*;7D0RPYi+AHB8;G)TT@ZIv{A7v1g}e)Il1mps$G) zN3Zsee|1d*O~J1@)zm>4o>a4q?N?I?t?{TQ5Sq>e)ir6I&^4o)HVc$MH4N_x2E1qVrbkS{uWLCn3! zi(TU=`FhSH&tBJP)upbmh=qr=KdmxACkMSR~DHssHIW3)>Ge zFm>)Y_1ZK&5&h%gzT$KW14%&-F2X70y;|SXdk(|44&Ngj)#UWK_Y&lgLqD?J{cca! zoxS(^8Lf9Ybx6Jvp+fEJjw}eiW7J}4G54B7=f6as?zANp`lLAwQXimX$W~1v@mAEC zH3hZ~Um|~W1irBh&ERm>NcFawruHbLQJ(X?iK}*Wp+;Z3d|qmMFkdRNHFJ(A1%Q5o z(J<&Iu>(DQ0y&iougCvn*&E2Tl_wY7$C;!8>6Lg223a1WTU%V;2!u1=HDZ`<3aHAB zn9<>uSiYS6W?L>F;tLsh+IV^VJcdRGi}p()YGU<9SK~vHB}FM=yO3axDx!zFs*H!! z0!pNN-?IZHOC-W-ZC)0bb1AMqpHlTpC*}v$X#W22vZtV zUHLW$7R|{Rh8FEcAkSi|RF*ehBy#ea(>s+w%cfT&LUPm+WpR6r!XtgBdq!^A6}B?V zObIw^9StqDk?K1M+Q3r|)fi6EA+ZB@x2tXlC5siqb_|i7$UWc?+Wwjta%zl7p{M9g zLmoR#0JjJltr|_<-t<%Syh_Jr28qQ|6yA{T_c?-KFNFX~B>LXew5GC(hE{l~)EOz^rjzr31A3TWR#qUB+KfqE4A<({C zd+q8`C(f73uVxck%th_NP}5tT%+slsKcs`A#d;Q>;lF%FiF?~!C&vdiTO9NOfhSU) zGHy|?*(5RYhz;?Gj&1y+G+|eUC4E|myrgIV*wD^BS!umZ8f!Rl7k~31>03%EmAhW> zu6CYE#8NB!_q`3;Xm4DCL$V!)a-7c3mbdjrR`Eqk$z|zbaNC*k2etUm#Oa3a9b>zK zstu;8r%2eS*MIm98kwSN)d%_1v<*w@1;x2^e8RcYK;G3rW&+KEaNjuJzW}nY@Y`;? za%Ia*XbYbATIbDJ9rw3UJ+otP%7H{JoQM(W@*o*fRf=!q9`%l~Yu)aqZ8h~AF5M&s zIbnS0UO(&*+<`lJU8lwxsJ^ICE?<0MVaEK75*ta>bdvSjN$F&DDG?rLozM2v}` zvJje|;Bg{q6FBEL087&>P(u-cc`k~NmPe7yQGtQE4CxpyB{Lfb4nxA@J5`k|#+Wy5 zMVdi;&2eT`mLh;=EweK#5n!<`OSJD=>S7=-ww^*kbg-Rx_7>MZfjyKSbk~}X_fnel z&v&-BT9yJjk#8Jb=HJAqOT|Z%9Z;el>*cR-w*KgCa3vtZ&>K#Vm4u-VN8}LR>T8Q> z!J1ldDm!OqlIoc=6Hehi{`t*KeG$3y&c6FsRBBUx@0n(4uy4xtV~{`Y7J8<68q+C2~)p#6t81 znG2EQz4&#*7w58Xe@52L6WSegr?N;>OQ&-S((hUXJ~utHkpr!|Kay&E^AMvzz|h3H z=(Sa(Zk?361^crO)$O87@%%nfEP@1EyYMOOD=v-ncdPHUAu1VO3OSL{(~+csps`7u z6^~0z_Ra0yff}EGId5<*LfWm+B_wEwC03NTMeWYk!A$*%1^9FFcSW_le*rd>6=rq( z;>{g`j_d9&Fe=t@Xd!Pcik3U00%BG@&2($rbKW?Y7{;)Zbk>b=QI* zkuMK5?nWJgk^1YK2A4;~JNLE>?+klGD%z0jL4=4?{Kp3Lh+hqM{rQ&;SKx|0*W45h zymaQCk#$Z=pEt{2as!(Z_?}Sqx?-BjG2>~7!`w30leU_mt>^mc2&q!gfs4&BYqM9jwqvGzj&I@Fa1Zh8h*{9vuFuL*0HiBlBiAuE-O;2$i{drXXjjKbX;4jTmTRxA8s zRS{FHwsB#8Um#53TPjNj{`-Gm8q%9t<<4rv8#fbU#Ii#3EZ8)9iey-gN_2KK*+6+o zRhw~-ifGfW5E)r44S*_~XmMaEy-0z5ftjzoKnTO^6ETg3a97>083bf5a5OBNhAx;= z`wpS-Ofp6q;6^N=3I_!+_ZKoVmSWIkziv|i04*fQTsAo)NbMl#K!Tn@S)nXxuAH$2 zRqR>SWqy2!6X#tMgbCYYXL+{4YVo6$_3Y%>Uw}X@y|aJ#gz^b2X`=&|ZO;0Xcq4NJ z(_&bcpFYHb-FwB0-l^L@6fL)k8ZR$31p_q+p~F4O$AI8RAY6Ik{-O=c01&_W@P;oZCNr#4`f)Z$A@Xt}C+@;r<4e6Vp^mxD{+0-mF<8 z?Swx%(~T7``>7{4;AlLRA3Q8M2Md(#0lxgUk5F*JfMr65KkF~ojIw8skgHKU%>N8d zx$-R7G2~&5+wgN&vhLsD3u&0&o!i43F!TjxESd!#bSS ziLUW(qz(T(SDPaqXu4#v;g_ ze;JzB&wv;RtzA#!PF$}QA^PTv;i!?-T;}pVYW~}?e%o|7xihLYs+H)v@%f%YP=$KX zm5LtCGVH4>g~gkD6A}C1O^)ffXTh&|ZgW=+7;~Wlp&R^lwYBi^L=QD7OIzcNIjgOA z!lyn@-{;r6vtv7=e!9?EJR8Mmpq&ycgIKso7%(|H zvp702s}PZ08EPrFC;vVNJ?2n1wj#T?xg7jw`PsCnrKQ&m%|M))pKCkyItW3Z@ z^o+wL5LbF&Zhf5UCQ1M|$Qdb9ia;f-P`QtRz%8_zA-kM?*$0N56jODlz|LH9R5mZELavm z#5$?d)1PGv%_%KXq4W2Z0L3R=^Od-8uyU+n2JPvI344y1ql}j^{fqoOa%`)2hNHX%158r>ASJsJhMC^&LkMJ`@0$_JTNBH4QA- zbVYVeIym^#h(U!Ag~QJtZe^RU-P%Z^E~gx&6`)Ga)b>sk722{K?LP*w+=I@JVF59i zMB!_WvMiF^Xp;~jfZ#FHficxlRJNW$69t{Kufhjn30PrP^EXrBgt z11y}C>Rv+A)i0a`PS}bo*-vnuopY3}^)EcBT5vh4rl!=%Or=y@&p7KIh+BpJKK?0? zKezpS^lwZay$2aJskKtQMet)4PpvJmUpPeM|+*@d7!DE$5L z`sH-|5*G~|IMoZs3`OSq%0$*@g_=xZ*-}vNnfW7na>JM6L@)BcP5KSld? zy6q6ky#m_86F6hrG{M@ssXtqQ3x!FLi3hqfIz#4+V`B z$_JCk*yfp(Cv)8|RA+WrJw@d{Vc7a!NY;dOJctOr!c-rQ7gVz^MU(Gm2mfg{o9-QA z^_zIp>>&6#WDEa-NucC_me*Q=ynrt!iwqYt%(&M|O&S~YXkv`lN+0CmS)@f7wNiV@ z%r#ScC4?gMxokoS2}tpT266Bn4*yQwbi?qjp=W}w%U$wOx7J=mdohTAC9T8sSE3Ep zzLr2~%g{0|JJxzra=Wps8JZ&vghdU8xZZ^n;r(va^2-b|)EHQ}e4knTX2kJ^FI;~qc|UBPEiw3Xa2Oi( zwda{sr9${peyp2CT`gmCUQWj3n$M=;6e*W#1ABpp?#9oJzr?q@wSTbsMy5GUnayOR>mg|If?0XX3pZdi#bUXOjxM!d+zYx6u6RO6W_>02*EUOpK zA1)Jxw-IR@UoycQa8V?yq=q0W_g=poEa;!bQh4xM&ShdLSOP&1aa{Sy9%3IJ!ydw5 z8%KolMSQQ&@vCd%k46W{0$)H&m^;Xe?-^Zrc2(g#Lgi^0PUg05R`}$uNS(@e1}mY zEIXnB4#{IwRNkH~z7C9eD4&>iIYKku%_8>XZ#(8nqi0D4&Pc3~3i(&NyKG~vuQa4K z&3P)m&}Zn!iVd{6A<-}~4FWdh-Qj*QoZ%86?=U(*UauYKx*Hz2TG1n0?a)M_Mq4y4 z#`D5D?#j=<*ky_5He#5a?29cXg>2Q>W8Wz?m&T;lKyM zfFIj7PO}fJ-L~;GCU|C*;^%KK-$%wrc_d!*{%jJdE*219+Y7oH=3johZsKBeHT%I8 zqqm7^>~O>*;i^zxe~3e*QMA2JwsEcaPkE-`~g zjmVk-3?)!7%g?z*)HI--jrCl1%iQ&hL*Y$vLYkDRTAX=^j26BevL<9Hm<^Po?1-;> zPP2;NV3}&_#x?%nXY{n`|C{*zXBGf006>a+@+)wUFL2Vm-1wZ-Rt>KVE zF6F=JVx4eV_+8XNNH1OcI#^#Sy$+^iHzjYs>#g=%|G&@m2+dp8}EU=#tM7Md=lk%o?j zcpgNyILYi;U?aAfD;ZU^t~_zc=wnqvE09j7;p<#wPC2Rcfmy_>Bb_M9yYbDqovtb#0TvPTfq!U*5ckcfls%80WBOD@DkBJ$_Qhl z4cwLUA#?xeT!qKEVdDbncLF&WJD9>|Q5}03D*VLGR!)iKxyq}BKU1f-)Bpof_2OT( zJFM+q1UBKD)ejnHhIG4g2XKbpWG*(6k`pwgsfjqv2f7>5$nFHYhU!m0h(%r9njrsZ zKB$W#ND$`?oMnXfZuG6`*d1TNA*jZ!^XY_a4mFqKJ0EqoUH8*gp=SovC08FlwG+~J zcbaKeF^#F0PFE5iT#3EuY6x)nVt?+fAjZokSHO;SN5J}dqkW5)pw&B(UXUA(qp=Jf z*;wU@Uj3AE|IbZqTeHKHhlUJ-Tgp>}&4ID^yV_t71MIL7d~&BFc_C2$a8;7yvsIegw%KY(w1;wkP+;|zr4xb zXb7qI@%`quiW7xRe_n;VMQ;LrEt=lRU|4W>w~oLO?%Ohn@KHXBDzJNw{0mrdv0@d{ z_ekybo(Y`zT)=+V&O_VM652pOrT_$z1NaeGr;E1<_|L1~cx~-i9eA@?!QW#C%rwBM z-{=PE>bNpBe1e^I=J`7kqU-+j^INX}IuQT%>1^l5{os2>U;ce(%z6S5e_q-SKeHw) z-sss((IR%+>6dImBZdfbHuLnz&Q{GLeLN4a$ecVKYocgxBUW23qG_64cg$%TC~(NJ zkoqqmb#ZSUV^52zKcyosz=n>F{#cnM1W^ibB%xMzRI3Y?BIF`uT59}-bAC`<2{@D# zXBTJr#)5vsSmS{KEw`2^PdLEc@y^jjpZAT1nKMC|Ip3 zP`Q22BocX-13hLC6t--zwvn%<3B25+1S2oyIPUSD%bZ9Ra10C|g~od@?_fpWqEEz- z?+5xD#ZKm1dcafUT|yKpxELLcYA0=f0lhYU)`%5#(qL5Oh|H>SG&0A>C12Oc(E5tD z4E~O^ur~TIqxIdlo@+eoMr&P^R{M9*k#M+qpUWk#Err&q=V?0yVKg~EwW`(@)pNi< zd1EJS5CH3avU&(yD~qSO`oE-`*X%I2gWk7Z_cgO%+ zld({cOZs4PD*7U`su~QVJ*Zi7O2f;}_<$GzOD5Tb9)ZMak7t8(a?k}@n7SUH9Cf$jB#?R}iINrIL@f52IGH?QB zFd9C{L@~|fq&ku>K!om24Inf~9w=}y(%D@xo!1ug9E}Zk$W*mV`g~n4i(7EiBtrOc zys=yn0Wkk#j0R#YH;zeCwLSbdn?PTPiheIz5?psz!qS$yrtv}Z;Dmw}i^MTG%^$ij zM}Y?*PVOY#KrBS4F_|e4I;dvZ!0MMf>^faR4=r!2V^C9x6Jgnvyne4Zy)TwFmX3xI z0J?k9F?+@^fcLF&l?THv1kCOu|1sxq{Pu$WG>g$4ARzEz$BL{X<@Jefiy*f&bXcdt zH8hi}Rl0^@*s<2}B`G5=fo|L_HS9cD%p5*yAgzp2)N}g5+>ey$Qc>&sKaEy0Wi_eW zy$w57;&y4sp?RsLA?1^VROaOwfp3(2T95cY{3_ZHC`NLqR5>uVAQ{qaNB`iPO2CUO zb1~k_V#vWy3?BP!3K16?GzY8C@6rlQmg^Dk>EBN<~tVNfX z$YB)<0B`2V^&R3;>Tm0o;YV47y?!{zXF&et^h_KM)peX9Z53*C%;(zbq`YLm$U|0T zOs=jk%uhAk`y+anYdQ*;R_euxd|bvHuQxZ2LsyBZtGV8x$f@L%#;w}?M(IczZ2N^F zFk|)Crn9{Vwcl)9TI*eAIgN!P>3Ip03Xd3j7fx(C+rlb4FM_O-F%(z=8c)@}cPi7Y zblp7ojapT6H|8XBgYzd?%hM*dFE$ndeXedfYV4~VTVp&E-Db!pziYMN`S)s-+HMti zf(suxwGQ|&xQkIXPN43Hb1X#C(GMjmEX~O@kUw|SQPrb-+s2*__?aL|hzlX=w4Zy& zn@S=1xzN*w4Y{5ZNtox;Od7V}sZmX6l#rb$I9nm^KAR|B-}&2_MmA0vj1%-Wo3JyX zW`S6;zzA6;3%}y!D<_=?q8eO2+xu9nP8I4^$TTR|f+7#t6|oO#{5-coA7gCllZfZU zwlQu>EJCl=Ui{I=kogcRfRuL&@YRlmHsir5S(GLq zAngdAH`y20JT5?ECPUV~7x{Nx)a? zXVvIK`$gOUha}S4St`HmP2=VFA1~IZWAq>(T?4bF%4K-9y?FE~bXQieCU+&Z7UK?y zde2DYGprZpWNjiu$G2>Ulohv|MZl!)s~x3Icq_Cp6<+M_xl~xKGMK5Z{AD~hPq|5? zl2(6eqq5?}S3NkFa9V$4GXQ?Wo>J^7E;K>QnQz``1Dtq{5TuiMwAC0pp@3YmTRKh{ zYni^*wj;f;#QWK5D@Pwzi(|<2q#PN={rV8H)w@PQAGg|8?#Ow|ICaCEoVo#*#fZ;Z zQ5>1)`zByIzKg11^!pdKO{v*Gg5*{osI2#|^VnR^!e4n2It?VEhS?6$r+Z^73 zUB|N3{u{)>lTX8Nayw7N@y}ek_WeY4CnA2SvHkM8r+Q0L8BTX0oiX=KXFX1(0sHY? z_EcI&&Qt&b5)2X`ivk^L*1Fww=jG+pXzT539SI}h@3)3Zvh3*#lC+FoGbvNmK?3M6 zZvWIc<57Ok`Fw6mzpEI45*j2gQ}Xv zs5B_0d4={S3#kpsju3L$!oPXcmLKRv>7pW4l$H&jkYd>3Kv1O-2>M z#wb;w(v%rh^3^~FbC=Ym!uS;Oq+w^GuX7h`crG>(T_`MsnoHRmVb>$C5|lezipV<$ zq73kzn=dXMBiFH~A9$^sy-=0prb*IF^bcKNz9YOVL*(>ea!REgltEvwm5kyvl~J5) zCf)c-XNYWLk@TcWNDd^N<154f+4049Yu36DgU*C~=Ya-4+Z~-cNePmR{lk1)b}}*w z4J)A#fA3I_Jd3NEaF&xiY3<3A>Im+nXL_x`otv6$BPj{g#5fkV>n`ovrzL#3@R(2r z;hF<#QRYEpv6+wErk@v7j*RWC$4zXoboY9@?<4%y{$P2YnihIvg*N{MJT34HqSk_Xs_%TrVtd zpHTW4@ZvnMjkHD>OmYV9TyP5;6CDIq~qDR-;laht-YgOJ2YlGD#Y_O4T zs+lGwi2cu_5OdwDnFwq0?DH!V2W2+sYi{aGj0cw>)=e9MmuN=Q_+8@TF<$E8r1g2a zoD8>er5^S0KVSKa;)mY4;Qr42__!Lkvr+I2o{H`gdVO7)Tub|7mFyr8D5HS-^;o4y zj~0Ulf@tS^SJ!TZ{D(vSd?<<>-LP_>BVC#6v)bvp7C zi<^OL%dV@$8$mEe=lY5Q+Qj?bBXaVj_g`Y)J-#FL{Hq{x&Z-mXR#V!hgM-NwuF@} zMDhV3n)4ezNA{C}Il|qdadry&3RQ>Wx6CI^(cYCIUWF=29<_wG9reA-Tjyy>{3|Qk zUmaX_mD&dp@qOAmwPP2nd8Wt!w!i@lpvICKLIFI?n!{nv0^l3w(jvOJze%ebM{_WP z)B{&S41LTdG`Q~A@xQwcH9#R2=UD2$kj6RGM4II5(P%P@+#XX4lM zq$EimRMyOIr4Wt1R9PuH0<|SG>P1`3Hj&hmM}DufWKN~e$P-GKN;-kPWy$#~9+2bea$~=<<)-rFGSq+RaI36s)ArmO)Q-5yG*7vl|kU@c@ z#R9i8wzEeNKMm<*avbRyPAUSj?;4ZH)HkA%2kQwvX@~%Y=HK$D$^(u19la{C{Gh!a zHa#OvCMXrSf#bd?j#9rW6f zgea8|49A};IU*C6=}Sy!)Pw3GjQD4u+)p|IYA^(!tz$1we!F%K&N-Q1;ZDDtRpZNm zbb-BDT8{Sl=M+v>kQ+}pCsX^WU(v<;q@f4IW6H5+NTb42IJ4xjj^neADu9Z(n)C`oiix?Blp!E(=kB#Cg2E=lzg>N{uE01 z;(2XYXZb30TDKyVmP{SRHF^!cl(hU>)@ICL;#?heud4pbY0K>Wz%kDa&GlN3@2{13 zIQvx3TKcK%xUBxq+yGAh0HXlHuY6iRX|l)Sd!znPLrW?DD(sPlUHslDin5s zR=8X$#iftU&RBK z`cm-z^>)ZxI7@`ZXCI%@<_t#UMh(@3f_ z)8!QgciYMI=0r>iNViY}zzs195>~Syo@R*OB1})#qrT5?venL>+!n3eb{3U7 zoXWQ13l~~Hs-hf0Kj~2w(V%(PD*JeGjgA@F&IQ8V=4@9P#Zh=08zS1=D>Bv6Rn7cvbw$I>yon9gc9V)@oFWa9r55ljS zI&5{PJ0Aw->8a*uw~6Z>w6aJ$3M8GPv`FSe&*4Um3D@gOlL9D{B4p3bfLZa~E6698 ztvO#AkvdHw5^mhgJW`qZ8g}bewT4})7QJSHA`ePo0%#8P2F&3n?Gk5BV!o$)DNp|Z zm%ap(F=XJ|{`&dW)}xtuRbc>)2Kje28cw61(y9*R1FpK&3DaW~1%331 z^{aH8#Zo3uKjZVOgpyp)6&$kyB-OKi6ar3!l3+(a!)n)y@=je1YTr-7hd9ls(C#P- z_2;Jh8l2IopFL}(1vsrW*IKqJGa7uU&M%xsu_H>dE_lp*=^4dAN0g0)TRy!N%g%{P zgvpAuyHO~Rtq+|meHj*CZGMG8%F;@Xy!I6ALDeNDAP#gmZ`oP8`m%!JxAfAKCD#mi zwa}4S{2J9Qyy<~3XvLecx8qqxk(3Y00Qu8|fHb4TZT2@T3F%)nJ+<*?@gHbRYQ^;x zqXxsQESR6Vg2;INRPilr^P*M{8qdIkN&6JV#n&X|Vq!J*} z&m%;!sUvb|6l4!7)1XSv+uQT|Puyzx8bFEita`P$V1C%E^qCq{#0)D_uH2}B+fmY! zKVDQxI-R!D(yWaeiYWPfscG{(x1vs@`BNY@{`BAiJW2eGT^R2dym{4|YKxZvkPcG^ z)Ya0XyjI3*8`{FHW+)9_(w_!u-Nvik`qpGT^tisa~8Q4M& z%XI+%0H{^nBIPAYw*&rYC*%pI)n1`a)m2qhQfjKIs-OYYgf^ue025y}y{tHg`$5~T zDQ<JWD5Fk*bf-8ujUMerfEMZ ziWK}upsG}!h6O@=B6{ns0VV)(N;(9_)4f_MawZi7$3Nj$E+__91j#TU#-G2^tyXj! zY0sr?#q(2y==2#h3ynInLAdMmisWbsaQX@_GtqZy-3YH7qcrDZa>1EL1?YkP3CwgA!+5|JCI^Yz-E=+07s ztiU?bAUky4ke>2(>8SjwX~oNp_iVRpgpv}FBz`pZSjwMr^Q9jWi6=_8RpJ7O%s1;xVfKln1vuDHkX8Zu*T_EC?_R`vTyS#w8E55M-&aY;qe0d+9(7r! zV?s$9((_1?bla(_&I}0OnCa(9Nm91Uv~%QWilI95)EK4a%@BPE6$(%>$~M-3tCvuO zx18unGEh&XN99)PaVr`J4F18XTF-c*3V?t&kbi|G$x-nUspnlBb6BGGC9NO6HlVIbTFKUTjRjLn2)RrMN(7I}mpMoxblcXMVwAaXpt&P2 z<47;laO(a95+{CCZl0847Gm`*`jr(I2QV$okfd}Ctj>TE6;K?b_ z`hyi2c5vl#>p(|8F0@BY2V#cAb6~GB?YhE0 z?n-MxHeq1wCwldqC&Ui$zAb~}_Tw}7CM9i%fO+>$rDS>#2>H{V$@X@rmvg5ZT}WCMlOahWLHuZ!@R+R4jIdvMjN(d-65A;U{b%>qR#^2XE zR&)2c>#Yeed?XXnfVc{RO0^rnrK!LWrF0!A34yMYOIbNn-R2sNQer=iI0O_(nM#Q> zAVi+Dl`TX-^N%VelMx^T{cB26@`6D6*H=?a%UX(-1gp-LvT_i29e+BcfCQcWcA#{I z)4qa{tX6zOVIFi7m0XQM0ZNiIpL7$ ze8A5D2-XOV>J*R!$Q>zpj#0QCl?q;6#2q)S_L9i&6m&61llqFJ6v2%RMrCrP=sU;% z0H_Wkru#eK{4h*iaS6CT`c}>WKCXTh^W|}!dd8-^Kilt&?60_wg!oR-rOT`php{X5 z10k~b2xY$|5QQj%$fvDwT9>Kw-njAf&?-^ZlC6BG)T&umtuRZ+L#<;1yQ_eqwChlZ`N^mB2r=@x0k@BQ|>Y%9Fs#LBgSfRA= zyy`kAD16896#;url(efQ$_SsdNlu?pMqc5@LOlLd3P~Elj#N{(?-eA#+tAb*Ngxr@ zvlw!c;ZrVr4y2@sjR>qllRInqRmGcyw-BlzeQx$@;)QW{VZ0T5`hu=l!_#4Lte*1O zMTHaQd%WK|+Nu(gE0FzyIG5fyTa0*V*8x@^iZ_1BN!Pl$Yy$(Qc*_22^RB(Ay^{-p z5^ix~Mxx~+di|PfHCSu|``lZ~^o_siqO&yf{EHryRaH=G6h+GkakWoM+GZSlX4!iYVa-W&5!Mk)e%FjVxGJUVO#PMHk_gHH#XR+aHHt^JC zRHau7`&ZTELY9;t{JPs4W-RqCO&}pHB_b#Cpd<;*Y8GNle5plR>99IdQQ=$3gUXIc zK4Z?14D;V=Aff;|k`GUtM744c#Iyr>OILHwNt8ljE5ZYP9erzON-;!^WF9*i`}m7=|GYa zPKa$Y_Yi=Tfzcwosgt!a<(0Tpt;y$09(q?gz(F(xCIstFCX!b%xS$f}!>wZ;_|0V8 zGLs^)uZUGnT^i>OUxi5C2sM*Rr*F!zc8+&%C!)M2vnV8G2c0ZIrl51GJ5&Q!LmK^Q zZ;}ueH7$^!Jt)TYN*R(zDgyN?%#AkkHA+@qd)2jy<&uR-QanFTRBRvIa0y%`c#bw>&hq&ruHb}lY;iyXNRpsGsHMe#gR& z;GQabgE*4};!8kQ{t1XPhy;Tf(At4oKg^8D`PbQeKKkDgv|{eX)W2(R+FoJQ{3}9$ zQdB&MB9$eN51Cdg<$R(40AedMSbPI~Q>VW!Khm1aQJ>^k^r{t@qNTh*Nt&72-kx)d zIFi$ba7<4c#MPF^3bT6p;LLrSNGm^FvGcEw4q|th?e+FGj4Qmvaa*TvuGbJ$>#HkP zo~o|@0QTAAZ_pi+F9WrAE$*RStTS5N-%&(t+3IahIK&`U%=@|4E z2_-#8N?xE7v~vcCs!2b{3V<{K$I78e3yIAD(G^dJXo)llFeXU=YbL3)DN#`b_2)oJ z$Xb$t5IGc*2at8%y^6f41zlOe<~#_={+l>38Ud^8cfkmFVc*e+9sJ&+h22XdMtJ3Kb2$&=yW}69P$d0 zC@{2{N%O0#cLS{jra&XsDruNTrY1baN&F~EpiNK3&w2wPV4zo(LQt;>9Y)5!s{1N& zP~yJ9ctO`)3%kQDm4#f4(onl)7JxpeN)_m#Unm%Gp;IPCwcI|y{A=CfTw%d?4ni(l zZyK^h>6k+|A2{w0)`G6k;n^s}iQnJd{neSQ7YnO1IE?Nw2Z8#E&eG5FrH@LhEB8Z9 zsH>2x+Vh-Oj9K6~W&SIQx!vLTb+eb3N;@T{kXEDgO*|*uS@ikW?U%+s+D_Sa~d=&(5ES_q#LNiIw zWdOnCeJT*Fsw(6)-lE+>#|z#Q5(2YN%jH#!-O(;jgv4wqML@@ys#2$vh~8;yQ4=D% zPzMxNt#>^t69GeAyy#oiWUFz@rBMY-F|S%iE0+L3BS@q;xom)E=6O`S;0Yl|Upls0 z(i>1(94b}BY&vHlf)qa(_Y^Fh|i zR0VT*>!ykVM5Ks3=oAK(jwyP{QpqJBs%hj(P!Q$hOD2C7N*6w$cqYd~n!XlT-D zNi@Weciw~qF&`7kfA?1jkG;t zft97^QnV8%l*yu=e9xUpjS5ujTU)S>J5Ohws&J1HTsj)Ew!TfR`jmVk*5G$eDD?@< zmHz;ewJeB!lHd547Ail7!-bi2ne@UghR1H#*j#_GROjdqV7Y z0LHJ^-eRFDv&5A$RdB>Ir5`l}C4c9wyHl5Fo}x*CT(j-5#){$I$T18u-O`J`CB0`0 zZz`c(%=fRD>5;IL{{Wd?Li>RYD3TMV_48ZXZ;ZdRJ+9dB+YV;6;e0%Iqma9~hZpo{ zGCs9<`j(aZvU8a^5H=oNX)7a8UVb~r5*WsQd&Z?kOtdP73cud$|wNl zXU?S{j~OtLuSlQ?=OGDfB~o{U$sTmb$dHNUsr=1b+Re*~c}WnR5JIMZ_^XE`auXeE zd?u#TKzZy3Nu@ft8v*sAQH@6DYD$!$`}M0KrCJ%~=4f+7^5rvBR;@Iibfqn6_(t@B zcS_83^s8{qnq$zOQeMl<$pW#t^Qb5sDtm{^f7$i)Rccvj~ zGC5LTZA(!I3R=~oLPU~IgYl@e){n=3uD}icwR3OwPNa^to$V)wnBhJ<;tU4S#WRmwoH7mA4_BnaYS=&mJpsT#ZK_u(7bnTK0 zSv3Tol~;NGFQr#_KJkiQdHX}_L9Bv;hzEKHN{As4Bblj;stQOtZ>2(-Q=&=Aj)R?L z?Mr^_C?63uYW0{_vGlBhl+pwhAbAr=Q_Oz4Kh;xYHaI2LbV<&hhN*4`0Xq@6HFV?b z>*G(z)uYd}XC$dyjYmecR`qpidrvcSo=n9UFXOi+C#K)7;)PjB3RPKo*>=+yT^(STW>HcTrV*dhAz@$7emLaE}wZ z?{jHkh#|Y>9YC~tT6mtYmFD$Gudq%iBpKyPUeTAPABeFVJSz{nzQrC4SXwgW&C=9# zOHHJ$Wd8t_CcZagyhnA$97Bz9HYF*$#_!+0aV1%@_lqhC9zie%rF{8W)q=MjVcPuO%-mgKvdbclo!?ll)VzHuw$vG zjNK*9K-vOE!^?k_3Y13rbgEOcFh3en)tGE2dg(}1LDy|LP)Hz?ub#Ceo@7k@Dj(v z^Q1a+xV3H+qG~G3K{%lE25;vz!3AJf=03RZzk}FS;W=(W= zu}df&vRz`%49nr}8pLrX&mdt9Yw~c`d30?P$GErli;eiJ7*Wh|EN1TPtFL(S)jy4S z`*#8qHPfX-Ap5!U6Zq1WGLlo)kL*1?pv;WgL~}F`T`44n;Eye7STn6&vZh@*RyBZP zMP<>3w15gzTghzn&*g+u*C*g?>B@$0&-^7;cw6^>26YtJajfFbRcK?pHv9L8wqs1RZ+R z>INm-bhI~`wycB0HnUc$0M=G0s=Bov366DYL{-(PgvTRFb{A>f8e$_LljTbi2DHTK zo0KTlfjek<)af-FiK*BL*zZgYDxC)Oz(+btfk+BY#)&R%tps>6sOLcHOHK#d3L|F{ zlLblYJjE8HYLu*j=~ev^qbrEcg#}2T3H)Y&lOlN-npjb^P*6YY>sH6^DEV|W_Yf7T z4#bH)YdbWf?aEzBns?xFB?srFeOmT+?Gb!^*oO;ZmyU-qD@${R;wLs`3yX8zl_>RE zLLC19J$#*Qc}}|PU1jWL+Db4iM~paE6kCbIZ!Ata$pS-eTMV}V05?-GeOd#ZULTS( z>5TT(cLiQxzYZjY9s^HYf2!=(x@vm9Y()eiRmD8so0W7&ZA{?qywQ71bXtNsYw9oprcax3F}Bu zk>cmADrF^OzHLMg2rBvtwi^vL8r8?bTsy;Gi6B+FhlrkDwVg1NuAphHbkDJAOI%6X zWy6pX*8yKjk0IV5pUSzCI#*8n6I!bm;?B|VcF)>k90_{TeM_yQbN(?=lB1Vc9t5O) zx>L?wvD$G(~gHK+9-3fBtz~cu|UWX6j1TGN&0NJ=V zosD_+)TW&7-4poL*|bZ7MwIcl9*WJqlXq=648iB6G%1)H*O9bw>s17)S&{3tW<}P6 NU&6X3duOdb|JgdN=9mBg literal 0 HcmV?d00001 From 03917488843f83edabd6b51ad9b77afd4af450bb Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:16:14 +0530 Subject: [PATCH 6/8] Delete hie --- projects/Ai_Attendence_Project.py/Images/hie | 1 - 1 file changed, 1 deletion(-) delete mode 100644 projects/Ai_Attendence_Project.py/Images/hie diff --git a/projects/Ai_Attendence_Project.py/Images/hie b/projects/Ai_Attendence_Project.py/Images/hie deleted file mode 100644 index 8b137891..00000000 --- a/projects/Ai_Attendence_Project.py/Images/hie +++ /dev/null @@ -1 +0,0 @@ - From 9865860e52c3d35d77bdd5fc0d62438e0804278d Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:20:13 +0530 Subject: [PATCH 7/8] Create Readme --- projects/Ai_Attendence_Project.py/Readme | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 projects/Ai_Attendence_Project.py/Readme diff --git a/projects/Ai_Attendence_Project.py/Readme b/projects/Ai_Attendence_Project.py/Readme new file mode 100644 index 00000000..6bcd16db --- /dev/null +++ b/projects/Ai_Attendence_Project.py/Readme @@ -0,0 +1,13 @@ +#Ai_Attendence_Project +
+This Program detects the face of the given members and will record the presence
+in attendence.csv file with date and time +
+#Libraries Used +
+1. Dlib
+2. face-recognition
+3. os
+4. cv2
+5. numpy
+6. dateandtime
From 3e0dc272d0f3e2f11934391b5f1d23d5bc31f78f Mon Sep 17 00:00:00 2001 From: Jadu <48874687+Rohit-554@users.noreply.github.com> Date: Sat, 11 Dec 2021 17:20:52 +0530 Subject: [PATCH 8/8] Update Readme --- projects/Ai_Attendence_Project.py/Readme | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/projects/Ai_Attendence_Project.py/Readme b/projects/Ai_Attendence_Project.py/Readme index 6bcd16db..8bcdb776 100644 --- a/projects/Ai_Attendence_Project.py/Readme +++ b/projects/Ai_Attendence_Project.py/Readme @@ -1,13 +1,12 @@ #Ai_Attendence_Project
-This Program detects the face of the given members and will record the presence
+This Program detects the face of the given members and will record the presence in attendence.csv file with date and time -
#Libraries Used -
-1. Dlib
-2. face-recognition
-3. os
-4. cv2
-5. numpy
-6. dateandtime
+ +1. Dlib +2. face-recognition +3. os +4. cv2 +5. numpy +6. dateandtime