From f7acfedc8b8fd130ecfa5bfdfe4eccbad87388c4 Mon Sep 17 00:00:00 2001 From: sstent Date: Fri, 10 Oct 2025 12:24:34 -0700 Subject: [PATCH] chore: Add .gitignore and remove __pycache__ files --- .gitignore | 2 ++ backend/src/__pycache__/__init__.cpython-313.pyc | Bin 162 -> 0 bytes backend/src/__pycache__/config.cpython-313.pyc | Bin 2350 -> 0 bytes .../src/__pycache__/dependencies.cpython-313.pyc | Bin 3190 -> 0 bytes backend/src/__pycache__/jobs.cpython-313.pyc | Bin 3504 -> 0 bytes .../__pycache__/logging_config.cpython-313.pyc | Bin 511 -> 0 bytes backend/src/__pycache__/main.cpython-313.pyc | Bin 4661 -> 0 bytes backend/src/__pycache__/schemas.cpython-313.pyc | Bin 3824 -> 0 bytes .../api/__pycache__/garmin_sync.cpython-313.pyc | Bin 3230 -> 0 bytes .../__pycache__/__init__.cpython-313.pyc | Bin 171 -> 0 bytes .../activity_download_service.cpython-313.pyc | Bin 9820 -> 0 bytes .../__pycache__/auth_service.cpython-313.pyc | Bin 3958 -> 0 bytes .../__pycache__/background_tasks.cpython-313.pyc | Bin 746 -> 0 bytes .../central_db_service.cpython-313.pyc | Bin 9337 -> 0 bytes .../garmin_activity_service.cpython-313.pyc | Bin 7690 -> 0 bytes .../garmin_client_service.cpython-313.pyc | Bin 2243 -> 0 bytes .../garmin_health_service.cpython-313.pyc | Bin 7024 -> 0 bytes .../garmin_workout_service.cpython-313.pyc | Bin 4417 -> 0 bytes .../__pycache__/rate_limiter.cpython-313.pyc | Bin 1564 -> 0 bytes .../sync_status_service.cpython-313.pyc | Bin 1738 -> 0 bytes 20 files changed, 2 insertions(+) create mode 100644 .gitignore delete mode 100644 backend/src/__pycache__/__init__.cpython-313.pyc delete mode 100644 backend/src/__pycache__/config.cpython-313.pyc delete mode 100644 backend/src/__pycache__/dependencies.cpython-313.pyc delete mode 100644 backend/src/__pycache__/jobs.cpython-313.pyc delete mode 100644 backend/src/__pycache__/logging_config.cpython-313.pyc delete mode 100644 backend/src/__pycache__/main.cpython-313.pyc delete mode 100644 backend/src/__pycache__/schemas.cpython-313.pyc delete mode 100644 backend/src/api/__pycache__/garmin_sync.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/__init__.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/activity_download_service.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/auth_service.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/background_tasks.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/central_db_service.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/garmin_activity_service.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/garmin_client_service.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/garmin_health_service.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/garmin_workout_service.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/rate_limiter.cpython-313.pyc delete mode 100644 backend/src/services/__pycache__/sync_status_service.cpython-313.pyc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7a60b85 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +*.pyc diff --git a/backend/src/__pycache__/__init__.cpython-313.pyc b/backend/src/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 997860d7eb9e46d4c00c69488600c3464d208ef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmey&%ge<81SJ+PGeGoX5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~iOenx(7s(x{C zNorn+en3%vR%&udvA$boNk~y*a(29XVo`2pUT|ezvVIbfpPHAVUtE-|A0MBYmst`Y kuUAlci^C>2KczG$)vkyYXd=kQVi4maGb1Bo5i^hl0NYq7a{vGU diff --git a/backend/src/__pycache__/config.cpython-313.pyc b/backend/src/__pycache__/config.cpython-313.pyc deleted file mode 100644 index 75c4a96f4c30424e4e8f766807fec726b34843e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2350 zcmah~-%lGy5Z<%TKQS1v!GzG{LZFGO07(<76h)OBa{&ipkk6!vVrg};&*mC)=ggfG zfhyHcEmEYaFR6Iw165zz|Ay2LaW_p=sZ}N3s7Te<&aUkwAXQ!2v-9oD?tMEqGk4hA z8zwlOr1sYnenNidpgVjWnadzPe|9`Gn!_bz#F${-6}TJnJp*W@Mt z%>V=xQt;*ayT`qq$4MbHE449%N60wQe4|A37Xq{1&T3DgXPnG-wm?J+JnYqi1-Z~y z=)2&?xy#hG<1fhWEK=HYqWARd?5M_T}rfs)0)6y6za7;ku?(af+P-#UyvY z;VV?0k^%uqBjC{_@J`|tK`!_Te$9Iht(pvhLJ*NpAU}i(VMGCeg3u#8Ljr{%B2bS& z5$F}3y#nW8R60|E^~zd*4L8W1Qh&=3p?G|W*UhT%%Q317SrLnb5KA_92= z135bDL5Kr}w39Gg8B4y$g54PGhtRM!xS+#^X=$5QQMs-c9~f4N1yif5G@H7m-eA6Y z_4?X^nL14fU(V3gm0W&nXw$C4lvA%6D2*Z*?$iTglZ7=kom2C4NxjQ_i`s{?AF)ts zd0{1&$uHj8KZTEDCsXOPs%bR8vZQ9IdS^A0Q|YZtb}g@JtiNo!E+7f&7>;Aw7K>@< zoLR}z^vcRoMir#kfKDG7u!&Cm$&^2N@R%QGKv;YsmBX`fb2h7{^HjZ+$}F?QvDMX- zrhU4So8KB*cir0D%uLlT>eY4Iap$gHym*oIrPXXcms+Ot*XdernaL&H)mf~4igq`f zrt_(Miq2 zMh&ZIm#`4n5T%Z*yJnH<7<%)5-8CFafxoLm{1Y}fqt|LP4ismKg4%R#llj{$f!~ZX zb$U^JNm{WJ+rie@*=FzrypJnzo(q0dHkkm-AOZ>(XSf*Wf@dJ}Ixa9|ty`AOsn`~0 zz`GHX@7s12dW4s0xe(!-`ncfD1O~Z?b1}>Xrvf8f@a6%dTnGx2T;n|2w0Ma?per~B z=W7&SkyiYCV{yCKl+U*Y6Ag9yN>fg>;v?;~k=F23>ou)k2I+xs& zPw&Q>a~yLG@DW6sp5J=z6K8jPJ=KJ7=5ncYlKIN4;>@FCcQ!Uj62d5&jh*0xrm`j-KJwmNzc}+1;bU^T|~jeu#BRs zU}2UF%Qf|?qm;qkP%!gMu&oVTR37PI>i4ULGaU}Ef>AcWQI6H5s8mI_O2-Y|V#TdF z5fo=Gtl$t`Ua`x{d1FI2s~41-?l_NaC?(NRH?g0z{ch{kx}gHtFsEe73K$RTCUQMO zSO-JFR8-1#-71B*%+B53z0(`>w1TC3oaFzq|BrAaWfpWgU#Pb!&BAXQ-6fx2OcSO=Fscy@gESc&o6Q^+0Q(-!vZz@zE;iqqSlz--K=3d z0iIhdP_-)+-dqN1nQGz5|#7&OXG7Da7_rg!$8oKbt>#U(T@Jf>Of`nd@5&XR%eJ{xezlHjrhem%6 zjqY4+h9(;R*K)r!vHkgLg416UBocoz*9abjNn&h|#178wpk zdx_Fx&rx&ip@;Gx^v_u2R79(|J@ioJW<*-4x4t*KUK~RX9eHQpoBhrEn)lxLFc9b< zF!C#J*Khg>`4gGO@Hxcc7A52bQHVm5M5c_&0uy8p^T;9-V?+@YPqIz+GOz4oKF*6t zzueB+Io+1*kR>K@+MDc@11!L4U$RT?X5F0jCwt@|3v#+Wc}fnk5T`qmr{ypUb6QIF z%6+Vl)1AqFIl>~G4kQQUD2oE!wHizaO7{SHBC+Bl=UIJZxTvrUZ0C4@BI|E!d za1qXpa*0E(M5+v|ib`}f1gHo|9CRd(tqsM8-=d*$(ef?mTY52PSb1a ze5q)8jj~#<7?v-se_hdy@>}#RE?A*Om2KvWHwt;ZSXOklo!4|Lyv7%^8eh#C_VO;Z z!ZvzdE9bZK@-YP*NvO0 zmGu1W?85bICVhLC9HI!T|Gc`jb>3jw`5Zqay{P4NV`6K^>Rr>zS`{I151_UGxK@lD*V+XHXocAxIb6Pzl>Y1j!uS_vvHUV6cDqW9O6zo z`J2r-Y2f|YL3lRrCC#){r_Hb{g7pvo070i zgy+N{JfM>ft`P)0xwv3QKaLvld&~(&6ocW^x~sX7d*=YiZES=hW}ca70E-in2(2u<^vAxeS4vdFy~n(PI&lGW2cT6M)QeAnw(hY{l`7c2@nv4 z#~6SKPBU`88o6kSy>F!9S0f2?>Q+@+GR39i?zmYNgN@DZ9Ce09TXq5sF%AIs#55mh zvhbvPi zIwW2Vu1S{wJPMD24q*)p{=Bm%LEJ9dN$O+v6=HQZH;eZY6s!1qcn+V#G)7`zY=)+r z>loH?998WS{AE~&xNp-Jo>W^WDGC|k6B|TwkcTIwPulAMnqCT3gjqqS8DX6GN$Tvh z=P`|YQs0g)6}QzwJ{Loyq0{Cy6)(n^#`GMrYQcc(P;z3Sm2z-rNzG?gZrw>QeR*>M68TevBoHFv76X$i=9C_r!H+m$ z=QBQs=`FVDG|ebYa@-=Em)PrMFIAGCS8JL<&K z-ck3H&YowkZSTzi<5Qfc@Vf$fN z;0#O3KJu0#^k3dAT_@x_ znil>>8c->kp?eut{lYjPWCQ-L!*@ft>w$kQ8^W>&w<^?}mT|8_;p4Kf4j6~I=h^U} zB>3VLs7%eVsdog4x}VZ%b9@GknMT7dnP)B`a|v|HbeWpVYIW(+0rAnEpBC%*`gM-K M%(abwkmdd6Kdv6ry8r+H diff --git a/backend/src/__pycache__/jobs.cpython-313.pyc b/backend/src/__pycache__/jobs.cpython-313.pyc deleted file mode 100644 index 5ca2502ce31304ef6ddc015af62a1b9da5d94a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3504 zcmb_eU2Gd!6~6Q9@x*r0IBD~Xh`;nh!pO?`o@NsaTAtl^rjwO|4-zFo+?r}3WnmX&cmmsousWvAWoO49q%76UrqC<&zv0&XBYSR`Otv@Fqv4w44qk#dDySl&Hd1 zGOkc79h_>b-gIDM=bF+%I2T~&6dFp0(?J9iWI-lVX(ZhYtEQ?(3uwqyjZppmW9+Wh zbQCnhOfy2;a*EdM1(HkoOrkLRA_%ws*V_==-4P(`KalaLNRBD;9d8;;Kx7RJiJk6Z4$)X2Q2 z-!$lgl}AJ4v#>Vv*|;5)ep8Kv9frsa=a6kW?AgSjdxbRv^lmm4DzRKoe%rB+v3YNOYi;dv1$keKgPX?H* zDcQ`lG49lKDA@$3!gwkf0xrPLtI06x-r;B@8KKP(NiCiNQIrHHGG8EEnR>Xu0t1GH z(iLFV$rX|!HgNv9jXP}A5*6&$Lo7#V7&ak%Bpn@|V#on+L&ACliOVtVIS0QLV}A)< z%*tCXxYeE=8v5_JUG%@FYg2TaHQ*DQ*gHZ5S*qVHqH`^c^E9uAlUhOXPf2Hw!PF<71=; z?)GdYm;bSW^_hu@+{VRzdCRUw|yK8s1L#Orx66yF`b8AW6lYskphVlP)Fiti) zuL-|XM}q-RhVSTBHggcEI<_By>NYA;*WnS%gJ`}E%N#j~ zq(JK+dP2^0s~}Q@;}D1e*klN{)Df&oFugc^K)~6mxJ6HFTwA-gF|szYb+#PU7;Y;w zD>FV+_q)F!JXS|Z;Ar>z30(C$i1xz>z``JD7*l};0W51S{QrPVWRQ8HZ9$ns@AKrl zhFvrrIsl7XVB~G=sk;`*c5-Nexm-lL)-4q${iQW(MydG z_Azf$0+W7Kz|8OGdCdEngF#n!y%>bl>u~*FTrV%DGFQ)E%bMdVJ%;+J%jQwSleU<<|41vFFXLm6LrB)Jo5}2chTD zuF7fc!Nl`uta5(nv$ivpXy=oYgXQSpv%ZTzzy7o9<-Wnyu?KJOwL?x@nfVb!Dc0Qk zquS_o;rG|o8{q(C1(s$pR{%tlS_|y~md23uB0)E%SoHkNjPb_07{4*OhRb0j*O8n- zf*wHMLW1?6u?Nvmh6GEj^8t{L$iH}AdSgcsrRe6(R|KY=5HDTW%_Mc=^?1Y^xG7h{xJRI*32Kj#rP-Acb{;l;&@3)xjXX446#uc`-LcjR z@A86JB^>M`8lDbauHP_@&;%$#&=LndWk=vR?k}Y2b8_-?()Cx;`ww#Fl^o!%l&n_- YroFaP+|Wyc{*!~g&Q diff --git a/backend/src/__pycache__/logging_config.cpython-313.pyc b/backend/src/__pycache__/logging_config.cpython-313.pyc deleted file mode 100644 index ea293be2413a07e2f18f81975a61d226cdd86f68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmYjOze@u#6n?o&Yi&IT2MbO`DD(!s#YK^d6k0@WrPr-Pxn9%j>HR3lRj5<{i4KC` z?CxKpgAg4A7u|%L1(V}i8pxOLdtdVM@)B!W9>n-7e~)qq;7f|dP*M_a3o-{2Omq$u zOobv--2tjNNXI{NQ}gbiT(OuPxjxZZX|GhS1lE#zu z8W#24z?=rQ(HEKo1A|f9NH6KxN&5ZqlxvJclW{LKs3wxj1~A#`8GPWv8!o=!;)C<( z-FweRueeGJ!qQbLUq;s@$U{_qUt-Y>!FcZ24+j&EROzOW;zxmP3HVhJLhrEosnurr K7$bC&ocRZ~sdAnG diff --git a/backend/src/__pycache__/main.cpython-313.pyc b/backend/src/__pycache__/main.cpython-313.pyc deleted file mode 100644 index f524b33b072ca69b4901569f9cc2965773c9fae2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4661 zcmZ`+O>7&-6`m!R{}e@vq$ulmP0O|@+muqvu~<7!DT%g4%9OAx)<(p3!7SGlBZ_2a zmyRT$sFJj3jy@!X4=viB;@k`r1=3Sg@7)OflXQ%SN}zN6KNCV9BLN9a3SqrvFav#4%9J!? zbCShu(t<5XE4C(W*p{?od(wd&Nhfx4MBkipCEeIfX*Si9^k5Ir7Qve8O?t7H(zcW@ z*@ycmZBO}=0UV&TBNa^c<9T z8+5l7Lc+ilBbi`>uUeU9GO&1K=j9D1YI)#z!j4%rCSay8I zE^veB9rhi@@C&~7iuKMKvyeGvOhTB9>x_CGMpX>kx@~s0GwNKH6~?o(Gpum_)W{f& ztaV2il+dwSxH#B3HGJb0)=gx|PNT+Z;JZl7Bur+lVCkh(>)k9ck;^a0GU^CQ>PliulB;U5 zQr6hp6}+k0d0DAe%8DFeGw>#-uB5Ja*#Vt>zk)X^HMPt43EO2!pbqIWz4Ndb&XpGCx;$6B zc5*&%K~}{auujlYZc26i(4A2<_gM=bqd^AEJrmvZXbtcuPHJv=Qd@{Ud<`W zyA_<*+$T+wSR>}3wZr=XyvMiTq|PA@GGxZgxAVaXJ@lYYU}C04$b;)P8i9rdLD;C&6ca~S`2-cVdGObOpPc!4-!t~Fsn;$X}M;gw@ zB5&r3B^-uXcSaY>QUzmKQaR&LxC-WsV*zcK4n9!=uxQr2tissU7dK&W#G;uunc1TKXd?|DR6Z;S_LOj6yO->oQGHW zHGE#6UG&^H()7g|zS!sXx-VAuWt*<-?!w<)y$7D5gMrcJz)WLcX5WAH$YSnwwvgH3 zY}rwNxEZ|O2wwk;{iE#YgAI1@ zms`!T8;!9Wb<(@J?+(^OlXcgnI(zABg_!()c%0E}xP3L5VYeC5EyI*VvRuTdFb_n@Z=}aPof`5PtJX` z{wxm=^f`|#R=2f9F!MD9{QL1hyr0pSDG6roJj5&-1tdZ1Q6MmasT0-av>wi*_vMmQ z*_1i8!s(YNxkEWp=RjR^_EUrxVS-~auO7cFu2fW#o^4JKGLZ zi;dawPIc>*D=L&yaD%(^v}TgaQV|lfx2r%48s*zzJqPO;+bA<|xt#<*$jH-$HiTFk z65jyx&e-aDQQ_d18;RE{7W2J+_BX#X^OI3FI+J z9P}2$1ksoz3H@dxr3EG^)_m;&QKL*!C`O<}+Ro?5<%kKyH7lU%VX>g2!qZ+8G9P6U zkZWh)ZXz|O67Bj{KU?Y*E!dHFD?5NQ2_v`6z4%TlS9mqqw51AiMdYrAEu6^O(HF@_Wh^p?_m-$-YgBVlA_n%Oin zm`alZjbfTJaFR?w?>zg>%}Tyjl5b)1caR`g`4xOyW`<$DM4m5^>mNvNB6$zVhiLK; zjs6=AAEL-1x^;-6hbVrC<`2=El(=z-Vw5@gUn^opzCt}e?cH~Hn~uT1ItHK2?m5PH ztzTJt9^Y*S&Ntv^y|8OOvLo-%Z%U2ctGn(aE9$@SbgMaay8*x8ojU4!j?7Ke*Fb%b zZ#4bq8~*c8H$ETvycZ-5wDO!`e?IWuz=soijQ?*lv!D5YxAZ3 diff --git a/backend/src/__pycache__/schemas.cpython-313.pyc b/backend/src/__pycache__/schemas.cpython-313.pyc deleted file mode 100644 index 29b44cd159283d0b634c143783e5582d88bd2c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3824 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 KeutnlzwjRu+>Ubq diff --git a/backend/src/services/__pycache__/background_tasks.cpython-313.pyc b/backend/src/services/__pycache__/background_tasks.cpython-313.pyc deleted file mode 100644 index e9a5dea8fc6bc72ce1fcac34b8c0f5fcd6f2f924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmah{&1(}u6n~SQd~9n==|v0(OA+E;+=CWW#EUgTqeZfMYG7G6<7V3IYWQ3o-xu%L|OqXS!v4Ky}E-&q!Jlzg@dBy@M6%#6Wi1`{zlnk0&Jwl@>x))={MYt)F zz$#>-8%Rt7$?!Q(m>f07vLh>7UKwoa^Xz4u4f-rP-D&iQ(`KYSq+B#^8xHBzPU}@` zfBwc^WADQL+?_9U>5$fTmR~QwefH+TU(a9Z($IVeepOfPdgg3cGqrY8rtXjTtwoWD zGZsZ?2Wdwt9F6@5c+ND?{+zmYE6ckZeRdn?O=%AyedCTDLdXHk9>DZ>ckY{8|K!%+ WU;pf0+O8Z^hukF}!e3zHi0U^-Wvci9 diff --git a/backend/src/services/__pycache__/central_db_service.cpython-313.pyc b/backend/src/services/__pycache__/central_db_service.cpython-313.pyc deleted file mode 100644 index c20594097092b05ad011f50819d158c77d1731fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9337 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 diff --git a/backend/src/services/__pycache__/garmin_activity_service.cpython-313.pyc b/backend/src/services/__pycache__/garmin_activity_service.cpython-313.pyc deleted file mode 100644 index a04b3052dd7d40b1a6ffd4c43019e2b0c3e0c2ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7690 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 MPkn{-hkh&n2jvt#bpQYW diff --git a/backend/src/services/__pycache__/garmin_client_service.cpython-313.pyc b/backend/src/services/__pycache__/garmin_client_service.cpython-313.pyc deleted file mode 100644 index 507674cc2847521ab4dc335b60e2c3a6245c6ef0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2243 zcmZ`)&1)M+6rcT+R$f_&91~kkl#L={tGITdcH1P4i&Mt|%lP0;pv8t|BdwGz@~%6( z&W8;pw52#DV0sA6F+G()4>{)Q`~^zmVzY6ePGH*G%`l-S%%yxHp`JYgToOUbib&1r@|ijwbDC znA`(1(H+X`92ImvN2sU^^O7z?m*(XWS(kIqKQLaQTv%ArJ0eV{lg2BB)8ZZl+&H?v&cb$~@naL6#$Q7nD=rqhF z{~BnwE2eK%A98`{S&f>9C$!+LVRLbD*rSzUFZA3SuCtIC;c+8c9$LH=Bn`uMY~L_~ zV+UA06iYimv3D5AZL&2mxGLW5*vg+;6@N+gwb9@}vKCCc5hNE)&%5E$Y9Ld~U!qP0 zJ&c(HAs(DJ*!QYlt5x?1Bpo}+C^0)7@}A%F8`9dkmkM~&x{`- z>s>fsKa#qT64vwm7bM|{B*FYiN`Uo)Yjy%u+(XR3xWAp}2BIYski(F50J3#5%@yIf znt8~xz=tV7sD)L`Vi_E=y*EoeC>|8p{k!t0<`@tt*G$)DrtmaV*vyPQ@PAzSVdZhL z*+14yj?pgI@P>N`1?+8f>;K$~ovXr|Ft-b8E{3}W<#3G~CExN4;~@#JXEmeXW+eDtd1rupL;mD> zsn|-UrR;;Q7J=cBz=p^2OXOO4PWtFU@g;$wB@0sD{mEAZhEOZ&Dy4%21{Xd@+6#P; zhQf!Rv*J3ARq>g{@TIs;&8|~?T7zCQ`Z|qj^moR81x=t_ff!G-_kkh|Xde>1D(DVX z@B3lsFm6Dcg>X)O7{+ysz6WdY3xvM51dijLlg{TveL=L}$?+Ft>{sQ`rjq+v$=(0p cnNqwhzY=p?-ya0YS<*ZBtmo~gq?@V!53%<1v;Y7A diff --git a/backend/src/services/__pycache__/garmin_health_service.cpython-313.pyc b/backend/src/services/__pycache__/garmin_health_service.cpython-313.pyc deleted file mode 100644 index c93edd5cdb574f9181ec6cef77d6d60c3bd64ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7024 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 TB2axDV)ilTn6C)dn$Z6bH!zt; diff --git a/backend/src/services/__pycache__/garmin_workout_service.cpython-313.pyc b/backend/src/services/__pycache__/garmin_workout_service.cpython-313.pyc deleted file mode 100644 index 4d5635348c32f93e27a41551882a2c4dce2bf5bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4417 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