From cf7961e8fb2e675e2a6cf2a180701044f5a54301 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 22:52:50 +0000 Subject: [PATCH 1/6] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/integrations/supabase/types.ts | 10 ++++++++++ ...0418225247_e83c1d7f-92ee-48c2-93dc-ceedd507c6a1.sql | 7 +++++++ 2 files changed, 17 insertions(+) create mode 100644 supabase/migrations/20260418225247_e83c1d7f-92ee-48c2-93dc-ceedd507c6a1.sql diff --git a/src/integrations/supabase/types.ts b/src/integrations/supabase/types.ts index dbb610a..6487e8a 100644 --- a/src/integrations/supabase/types.ts +++ b/src/integrations/supabase/types.ts @@ -1326,6 +1326,7 @@ export type Database = { events: { Row: { all_day: boolean + assigned_to: string | null case_id: string | null client_id: string | null created_at: string @@ -1342,6 +1343,7 @@ export type Database = { } Insert: { all_day?: boolean + assigned_to?: string | null case_id?: string | null client_id?: string | null created_at?: string @@ -1358,6 +1360,7 @@ export type Database = { } Update: { all_day?: boolean + assigned_to?: string | null case_id?: string | null client_id?: string | null created_at?: string @@ -1373,6 +1376,13 @@ export type Database = { updated_at?: string } Relationships: [ + { + foreignKeyName: "events_assigned_to_fkey" + columns: ["assigned_to"] + isOneToOne: false + referencedRelation: "profiles" + referencedColumns: ["id"] + }, { foreignKeyName: "events_case_id_fkey" columns: ["case_id"] diff --git a/supabase/migrations/20260418225247_e83c1d7f-92ee-48c2-93dc-ceedd507c6a1.sql b/supabase/migrations/20260418225247_e83c1d7f-92ee-48c2-93dc-ceedd507c6a1.sql new file mode 100644 index 0000000..15e6b69 --- /dev/null +++ b/supabase/migrations/20260418225247_e83c1d7f-92ee-48c2-93dc-ceedd507c6a1.sql @@ -0,0 +1,7 @@ +ALTER TABLE public.events +ADD COLUMN IF NOT EXISTS assigned_to uuid REFERENCES public.profiles(id) ON DELETE SET NULL; + +-- Backfill existing rows: assignee = creator +UPDATE public.events SET assigned_to = created_by WHERE assigned_to IS NULL AND created_by IS NOT NULL; + +CREATE INDEX IF NOT EXISTS events_assigned_to_idx ON public.events(assigned_to); \ No newline at end of file From 1f9cb4c5eafe5bd28aaa9faab2546738c9834976 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 22:52:59 +0000 Subject: [PATCH 2/6] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- bun.lockb | Bin 364458 -> 364901 bytes package.json | 1 + 2 files changed, 1 insertion(+) diff --git a/bun.lockb b/bun.lockb index 9d8cbc3c5f891cb9c95b1042e7b27544c74bf4b8..6213102e2ad81f24c55e991382d407bd557b0015 100755 GIT binary patch delta 56550 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%0D`&NdF=H*k_G#)y@ zH~tq|AM|@GL`!SwS}P?wD7Au~tKa@w7tgSzUlf3nn#E{RQ7{qH_~+$@Uw?511P+L? zolJw@f1kr%u6 z$f%nq3_+Z6o|$m2D#)jMCoC_R_^b{fsz$u4QZ}=h^}t}t&#h9+@Y*MJarUeYTJ2fC zo&MDp2C8-jQy$e;@vWR$UC%4LE>n72jJ&^tp2svvHSg~D^JJY6>nxu{=YSxolbxK} z70>eK+AK$f9zTn(*Jt6kQwMKHdS7!9UXFTx)b8}huJb**d0}>I5S47WBh70kMDZ)0 zYNAW(;Yhcm6nFBARGjR1H*_mnaiQ*!N+nZfp_nFJcjVbEI(xG|hRkY)Vei$7Xj~+0 zPY}mYH$^JGuWM|+$PDh%awj*5^zCt0t09W!LE&JY#cWdcXDRci1SDCRw^dq_Iy_RM zilt_+^&&i=tEX94KDifo z6lxOMFz59Vo=$jv)-JUD*Y_qDindJqpVQh{7&ZZ+5fFHRLUAtNp#%Dj@zC?~KF^tv zNxhfOMwZ5QOj zaqvt&N85LlBICt!+*Iu~Oo+B1j#`S3y85+kqe;qAFY7exb<)lu;n*bZ2X zC%>VG7R+=T!yFXuGcX6*1rVkdN&g<+ zFyVf#QtO)j`t_<4N3x=8EQ8D&&!@0XSd}-@v`$!#s(OjB9j_LWz&+TYJEhZ%ndX1%cJyosAv}@vd3c@6%QL}Sxe8CVil;~ z=9xn0fMXh zsO3Z*!Ou5SmcH&2vpm$wdM=IafnF&f%8SPjzctF&ddv(PiTGZF`P@{-PNXhXa{RrW=PGO@{roOBL5q4b+vBg#nl{x$JGXXICblWj(Gg6c9cZZ z@v7_ynm6SUw2J&Ko$03dI%%_VRieV($f|eAqr1{tucO57n7h6-v%BKuopV~OS5iUh z4;}{`_T0j6wq%ceP+6Wh>co&7I>OMlqP&SsB`OMN`S0)AJC**j0;0G?#jELh%pNvl zPsb;(=#pN`um!(aSUKJ;zS=YAz_WYs+X26KhxF(eHnQo7lkW=Nw$0c)C{bBq_nKB- n-|&Oco2&I!q!AQ8S7~l2@w#!t#wC7HQDwWjn_oY!O#1P^)*e*f delta 55940 zcmeFa33v`y|2{tRJbB0YbBl((+F^El&9=jJ(I&*}5Up1c{NO{>V+j!JJh z6n+L|^z`xSG16`r=Ehx7(k6_IHjJhj89u37iz-S9hz?gpDGiQE9y}&4K3Z8?Oi{|f zo&_!o9s@21jIZ$>316yXF=z|EZ_?;<2PCMaxl}^wHg|OL|(AlfW4Je zWNZm#!EDhzczc7-fh&WzgR6p9f<3^mfmz`suqU_|nCZg7#lgekM#r&#n*p@jBN2Pp z4HZD=q`81m_p~9=aY>5sw-rwvgko4?D=p|8E zHT#c8nJBOax?jR^$6cEg6B#ucyI+bBms+Xm&zmFlaUF9&j82Y^8;sZ~brq!~yl+G2 zp?40p^5gx?y%Y#P>RN6VdLOPn+axxo-bln+y~5xxm$Mf z=%lz&F^ZCyjMm|EsWC@Bc5g-#vxezlwsbIoBt=qwa=Ok{G5 z(h2dbe2C@Oz_L9tuGq-xmR%Ce-Fpi<{T0hUFW724nEriC?vmCb%5IBL{gk1rA z30w?pj57bYjaqlXjOaDj*c81<3D6X^6RiUs-}Wj%0c+C8+LOPJbsLs821A``PWLrO+Eqj_<3V6%T))3L;-f|;#rO|PR-z(Dj2#O9 zl>@AO1ZFQM4IOL@s#MrK#F8ReoT7X-$gIE^;jY!v`eC}@o?I$Iw2G-SaV)TsQ^4%u zXjFteEP3zQD>E#f4rXadBE48e{~@sGJt}gz(a3mXH(>r6XLdZMkl1?Y@SCv9io?Ykrrw`q zmL4?4?DFTpZ1&m7<~ZAsYR0S3Iqu4U%YeT`Jb6mGS^kf(*&Um~Wx>~{n%%n`HuIYW zW;c!jvz3EPJvHqzD!`16Ofain;9^d@N1-#p7O)3+DVWpo6mS)AeJef^>r z4*QJ*X-9^6nopZ=_T)EUHtZ0XJ@*#knSKVCJrxJ8A|{t;pSp0d*+;QU%zd03lQeQ{ zWV|vEHV>ConPv`K!R*T|Z(75D#Hjc&L*qttUTWqTiQ|c5{3Y1*>#@vi>M5`n?9ad~ zIoRT;*pb8Iq9aq2Fjq!ny*0|Y_^Q3!9At6H{zKzO4pyqIFb6>;OJ4_@O)3SOgKuzB zWK;}>UP_kfw+qZc>b}x!K;(#&gvilRvCjO@p~2pW-wUpw4Ci!JaYJzQC`zZd z%^J^w1IKgPJLb7I2F#XBfX<^~xWz5u&wa4sU9)1F!0dqr&^eI|OO8qAROlxHO8TT; zTV?K~9~N zJT`80%#bmPGG>S|V<=q_UkvdvG;zlYbwm1h}bX-)NqU?fQ4t}E| zlagZ^W7TS%TvkA5-K~>OYML`*9wN9eUfynIG!-^`A4_5Xaj}u3zlP3&yYDc2eelSU z@q@91co`L9qn-QK8_nZ!=K|(|eC-3%&a<0-pYJp)_8n|@9^hj>Gk16E-R5qs2CmKw zz}zjDcA5Gfa8=kVz>J>)t_JP}t_gk-On+}MNADx#>jS{(|OQXwMXWWomiOJ!!VtnYNS7tU{oOD--DJ z`?cAECu#i5mZhs^iGd=!Ot9KosAYXpFMnh1hJ9dm|5`9BKO0;XoB-zT88aeg#8~v^ z<@4q^3kGY@Q$~)7iiO_dJG1vQ!R(Cb;IiPTk(d=@ut2bMFEGcg>-R=J#nSR~O`*70 zQ?^!W-et34-+-CTJ}~?6V=#A80_+)bv?Hi0Sv6Ig+}7Q#oa|L4X_|Gj;^hC{1B=$VA7)jKU>| zatR4J_nrfD2)2G`+H1f}_a>Of=@G>9#IXik1N;`46^k1>0xM;tS#H`x;zmUKj~S($ zevJ8z4u>9_5u^O$M@He21RR$TH(EKQs7Czj$cPo{r>aJQ!(&o-Xeh^FGyRbG$kC%? zqLozmv7#}_#svayMI?@iNlH=db~9Z}GEP;fNId*_tW2?|sz!?jL14|}Tui$IY>tT# zFbfzL8)qDJamg{`kzRSxp&A7hFQOV}BQ5~^Q7c?%#t%olb+GZ8*B_M|x)*-TXI4?u z{|uNt7nwTDXoxZdw>h4$oORCGbH43 zycWzJXB6`8yBKKaHU-PX^CnIQkUIs2psL z=5=6S@N6(AnqNz)N>%WOD1a5152o!LWUq-#kHFM970nL*xPofT4%Ix&W<{Yt*o=yv zW^)~2u5w)~sYWw@hRx=l2Xj_&p1n^XeQnt5!8O5N$cMGMSXniOzVmKL@|dV3ob*$b z%~i}DI4Uj)13Fnrn1B@cO!qNI0v3!T;)bLs6D|8~_;bEp0_HK66l1Pm>iL@8@*J2W zrUID9S`GNIf>?eSYr~4Lsk?y7a@nxe+sx<(FcTiDZnpR|Y&wpA&eTV-7WhQNX3rc# zJcnwwmCm{7b>8`O9>g0F&x$6*Bn^#epeQfbRE-ffBr}(ne@AT%n`ie;GN^gcs3$+`)vtHKKl_CS-8zLZBR~rf6 z?#wqE;r(J0!X-pR3o4n|ek*cY=(d*S#F7?aYL-Y0(H)O4$fCru7NKgSP+RJb&v6ou zGweDd1NJL8{CXPpdEpzXJDOmW_cv@IHihbHt|-9PU4*pK)t+J&wu?m$wx@(=Yh5iR zBC+i#)?hnXrZ#eN(vWx}zgzukMEZw#b702)60p zQv|fp9h)&JMH%rGMKMJc7q+v$n>y&~JW+t{ArTVJojVKLJ|YL(cZ4Sf!2dsn z#5GZXfl*h4^k9u=Vf&WI!S1s)l zj_v2-0Jbi|y|=Cf*HM%vNMRQ_y@J&-A`4oJx|oBETzq>5t8+v^A6@-Sq+n|k*?n}a zoxh@VLA=dK^R9^K%i)=cZGVxA?VG}{pRR_9#D2Qty%+F&O{#NjWyOm8`Y2TGj|@=9 z9#5*dLS*!3br7T85xxU-^<@!LOP(lXk+EPr8W;#~vXOS~dcOBDEQ3fL~ z>FckS6~)8+)vrb5AYJonq$nMplrdD~L38|ESc`UR`kMS7&J`ileD&Jpf|b;s?- zxMwLQ_X$?mF98>A@63LTJe<>a|pqRz^QCO_FdQu4|t_YYNRSsNE7-&}xS|)8-8hRtJcH zcwJit4ON97>v>LOL#u_%OwBzoSdA7D3A*++wDwLv?IEmS)9M+lHEZqkXaA*$#1Xo- z6&mZLimbq3?RU#kMDEC7wX3438{1Pt8>?g5 zjKDTiWMYe!jn%b;PKweGscnKid_W|Q(;a@DIdbNPhpKahI$qZ!VS)@lqw9v2{` zYUDOS)V791;k%x!y zovJ%#4@7?$$K4IFX{xRc5e3*D79rDgwYivu?NX65P1hbon*CP9$a|=Wd_~u?(UI&+ zhoMy$d9U!y9rP-vzjSP?i38X!5bo1;?GY-*7I}S|eVvNnvB4VblU4%9X8hUY3FiuLj(9Xo+62|c3$Y>)HXX)DK z+Z239~xsJ~d&m-AiL8@g*=vZA1VSg0q6heJbg%G$I*S5;AfZCeqtP!}y0x`;UoTj7Y$S%`Tl)!bj0572*AMC2mf zHa|_QT@;4NIByXbmqAk3^3qujJ0@aeu$DL#l`<^sQ1^SVI1E(9{MbcERG>C^nz_?e zp-v0dF2b5(q{!XEGxznyx_0^%=dgf>qsyy`GEzKT5bDTAD9Q*uH(gQEjnKOYjWa@( zXDG@8419~FlE!|P#b=(Uv;$IUvuuHySCAUbLO-9O|gmGfq`m0(K}05hl{K%j8x%V5pd25 z69FrA$KeHvGR>$!XORs%XCa3BzHR_>OMN%@o^V zloRT^x;AbJR`KRe5y9F{SX?TpA{W*#uwH~^H^v1X(Y>duBSqYMx?|s)m?uTTd!d?b zsiI(6fU)h{F<2ccLRRUveM`mcRbg5IqL{T!B&Gx-q33Gd{mwFTUF94nn1*@^Vr28dl0PMfWxi=(boZ6-mxHlo|!6%RIssh%R_1KrX6J=8&5*bwT-M5u#&SVj%CU4Bng+7zbN z7m=HE$KX}yAbMa==55loE~^yc(1p1a(H`$xK?{Tf9XBpz-I zb$p3XA0yt!9z95X(1v$*46PM^JCq% zW1aZ^<1p1t_B@8pu*)3ds z_-@r56E`|*cNd`^M(x^vfI-8MZP^E+<+d<&wwSezC*B-v`v}kNoRA~8>$Xon6l=GK zVQrYV9cRgpFzbt*>qD`E%iCU2EZ$LHi{0#89pn72U4&(h9JJ0+?ql}npl_1J`2;%A&SWqk+UM$QDF-T5DzO9g0s zpJ)w5#Fx6Z;B#C%J2mYWSXhggnQ49Y6v{)}1gra#xFUOT&Fr+)fkHi?Yull5d2e1e zVP7239euyx-aEV|)I9^CV8&XDrou&g-}k8LU1p(hobY6{idLBf4wQ zSLQMK^!hJZWF6renA=h!;3#iyq#V^9Zyo0CkW&Lgk&AXr$Hi{;QQh^*5pyR#P2WW1 zA{GZBu19Bz#2npr^r+aL6Q(v6>Tz9tO|(6(yXPD;r%lyrwO!=(4Ro!OV;(|gW-n#e z6TT;O+qN7r>_nKViA^V*`F0f{Coxwacg_}BeR0hLt0Ov673oKVor&6s$Wyv)(Fw8k zRG3*O+ocoY#nWLpw9-%OwycxlAPl3nj%z0|#Kq*Jp;l@~{ZqyrkyD{q_5_^KZQq;{ z6V8OG4Mp}DU7LB@Sst#q9H(KmXYXh&zBX5k3J;<`)I(c}s2+c+qT^?XJ;izyV)j{E zk#SzPEjc63ooAzcztOd^XU!E*G2^84J*+6?QbcAKRfDy@=kUxKrg0{9KL)Eki?BMj zs)!5>#L{8b1s!vH4z_mTc~Msfi^z+*W6uQ)ec^pE6f3hl*y$H}iwm}P5g{I`IKeil zC{}!1TdVM`d9WAZ^nvRF_wRID&bOk^cVTKfk@cPK*zg^v(wn10aak0QtGl+!HRqeB zLu0(i&ed((b49W5!_*2Q;(Oc+_}+O2#H6h)g!M8?MNjkyww?H1Jbx)nb%?}Ey4pZ& z!*-}pf6$?{#Wq4@{GdCQU*S|7{zItaHbP+xX|1lB+2B4-Y_K|2Y`UyFPD6_l;m1R9 zG6=b%J2I~EZWwG^{x#9=hcHL0>+A~%j^zkhSt2yhNYqi}UDX{ce{^Qz5b4)&CjH47 zzuB-|ZaD2Ik#${nY=mv(sTLCfKkAO5H#rZnjQt38G^$9*K@Bg}F4He0*%MyTVZI~=wMVU%Xv)E!^K?q=9t z!uOW$h|0qhV0dms$V_t=p>~E(un4)WJEr|?<>5Glkm+6V7iYc$MdTe`%;vze0IHcs z@UPDJ86rJTcN}_Rmlf_m>yCkUou2O^WR&K(jgVQ_KoRf@%DrdVwnO*WEUnaibJy8K zz@=a{Ttxh;YrjD2hEbu2kXM6MUF81Cdt82Zb@$&NSf@m5v}?wtLCkOFn8LL&?v^Zv zWu7*173?@q%eXsGQDof1_1*8NfHBSk<_BwUz-nTYlz1Z8@dd0f@o-eAT3l?pudCfe z!F}EF(L>~5oR#KB)wkV#C}!t#O32CAZOMffQ?On%JkTJ`4-YC^z{0Zhl@=o7v97Iy(%JB4qkf0Q zniLi6;7B~KYyit#`iLhMJ->j(6^yx{^pGJc*5iGOsKz{G%x>CzSWJ$JU_o;fRx2ZG z%pGc38EHd;_C?L|a6<_T@$G4sP-eLxh0s(b#1J!ZVR;f(cjGGFPo_9jT^%K}LE2h85M}L*q}nZ5 zL53C4>IIS3#8uqcsL9MC@K2SwAZ;@qgt8-XzY~`iwkq}aIwia4H*rRn?Sa;CFKK64Rikm4^O)=!zTxh z8W!jngeRIE#oTG3jtvNfN$=t+<{s%;9A)77kWmHmCW|pusZC`bqmtdt9fxb0(ZP;w zuv!W4)}fAv2z4_viIDDYDkkeP&TJi*5$t6|I+~YNl|E)rBG|(W-bApCnYytID5>gl zcS+U7!Ci$FDGK_g9QKXrP*-M_LL;MPE=b!`9{Iry7l0TSkutF~#K(C4+8rX+wnu~2 zZc=qecPy$X+qtV@j<4{Lwg-FEQ3sDz&HKzT(zguq>>}ep?hEl4mV>jX)nT~8#U)l1 zSwNq78B!KSY{R2l4i;R^;VMa!IS?H^yi_jXa7nZup%F%?37*yBo&qKoyUZ(x40_0* z@}MZ04zlg9A`g~VakVDhDa6 zs*1T5rx-00As(lAQV|$zyI55g^FXHIGQtCyeuSsD=AnSQw(hrKwPq1k>q?7FN1D1; zL#IG2VjOG>V6pGb3*-H;IJj~94_#bBs+EvupXz3TxVMdYcL6MxVBFc&F2HID%e+tJ zBYnM)U@D&Unw8-3{~4_Mh6|6}Td>SogeANzLwI#QsfII86?dl1OLp6y8nTi%T4qeG z+OKe7tL?lIu6C4p-Ylr5YAmvG;URkxR* z;SLj)CKq6F02r61TJ_pyhG-6M1`n12RnhhHAT|^J{X(^`5UK}f+(FL|)*is(d|{5q zmt=%5_I0w%1Ua_)sfsR_`KqCg#|XAHf@&L?SPhYLpU0RrBfm$`h-~FjM^(a2xA8Kg zI^1?aX>TgUr0;W3I@NV%F&7vL{;m_kQ%7OWVwm%2mPN^!o8j|rP@bE)vIQUvMT-C&~0$@cR;qRsGV^y*8Bo^_`02Jp^0J@ak%-q6p1EXW*)@St_p3 zc$H>+$efNMfigfczz^9Dj0L#I#sU10D*+ia@cCbG>i;(3e<__={xfS{0!1t{iupfe zt9+v%cI{hMfn-hvD=eGL_$PvtM*quvT&)(V@o?;=rj0dHs*xdH;1>DU$#{5*@9QG3MG zr2{ssNQA{bz-&<;Mp|499BtWT24gJy38xkkSin%rG1k(_tm$wt;}a~MOnaooiC{)0 zabq##N5f`CrhrR==UDM%2Hoabf!Art!}ZjPL2TFpOI~R4B1Yr$FIhfBa#^>X>dGCX zWLjyS$+CGnwPGrZS`Ihv#CO4L>S`-lVWzak(#dSv`pWWM%YM zn0>j^@_!by0lTeuG6%(8%O*4Ug=K%C%E9f`N~!cYXlc)4*72y7_86FrIBxkDX6AF+ z(#fpLSumw@mQJRA!Lq@rMuy*70-3?@EY1b<7{3N)!9QC1PZr+*^FwCvrp31`y)bkB zxo7E5xh#|aF+!Dd15}?lR`h}8|14&Gen&hHX$K72MY*w^XX(#k=Id|8liBNy zY`p$814hP;Er)-}(ygKDlSK^Za@o%)N8QhJ%qG1dQJL#&Wy> z=I2?=Ud*-P$+Rz9c44M;6&vz(E50yO`pH%YUm-`}7g%h`ua;wBrhb>YyxADjeTgQj ztEx)x2y`AqQ`xe#q2YfGLGqdZ^u6Ogt6nUfAKE z+wAoARz_qN*a6InbhLCb?ap8xoc+KYHiN{GovA}*|K4lPOb<$-O^tL z({H*JUzn-SfX=Ad*sua~z|`kbEX1jW1s+IzKZ>8i%!HX%21~4XGBaKZW<^(6I+^-P zFw?yaW{cNY@nr6b4Q70*veAkt%#=RFhJ$Du*bTf7%!G%)EZ{JhA2KVD17;Uru=Kyi z*#Cdc@sED2*bgX(6}e&+SeRMSpRD+sRy>&%<;#0a_Y2rq%>HUQklAH-Exu>*eQ;^$ zMUk2rmjFXjN`bjR^k%LWQ?F{pR|nI-wq@4=a~C%OvjNS)sqETz2(U&Sz#P@xz|5#8 zm|YqLX2KC*`i-*UlfgV(r-Jz*v%nb^&jEYFeizLAR)bmI$6!``j|+}}4vqs5nD7Xg z1snr&jd2Oggjc|vb@RbYSOm@$z?H#__W?8ga~Au7Sx^%&D;@&oGO#_E4eDuelmq*p zGh93bW;7CvKV>vFtjJi)o@j9zm>JCm(|<0Q1uX${*S!g5x@BP0RmlS5PkGPMSA*I0 z8^O$H8<*4gQ$FM7FER_-W%-lYgI|Ct9mIwe_=?8=z-&P3QOmI~vw&lkPG*M3Et||6 z3^y(NSrRA7tujU^a7_6 zd_gaK$jtC7%O-Q;$N@9s<6u_kq-CE1^FyZowZ&(_JhSD3*>OLBc>;L=X8vkX^N>dX zmLZsqe4~v8IV>(>#XpPLL&dE4!p!u=p|e8#?Js`Fv`c~6pmMFOh;mj$1A+@B77`Hs2Z#S- z+uD==jS8@*`1!XUg0Orh{4YKQVI7|N4B}aO>i^;~%fD4X;rzLp`qM*@)ISUVRhvEg zuOEV-|Fhuq-+T)4Z#~4|{{OcU{G0xqzjguqJd0ER`%gjst%nzVjGFylJT>|IAqYl4 zcmLlHLH>RS^7lg!W8w1mLy*58f|w6O{(cDZ_d}4sAA;AA1U^y4M}-w#3lehBjSLy*58g8WBMX?O$j?}s3TAByno_4h*%^FC_fhacz`&Mid^4c-gO@`+{=pZw5 zAS}*-@Q^}B+4eYuHpd~XKMtX@ETE82q5la8UF4b*5LTan;C2#1H`)6ngkC2h?4-~` zYNsH$o`R5Y3PLZrjlxz6-lrk-k#VOX#GZz5m_k44`85QOuOUqS8o~g1fWm$X{%0Tz zk|}2(j6Vb60)@fS?<|DcXCcfz3n5ybrErEq^K%e}$XVwg%sdC-CWTlTbRI&}^AMJu zhcHZDr*Mrz_%{&ZW#%^!7JmcbA%zjL?F9&JE6sAhQA0X8J0m9rLAiN^aQaD4Q`DF;x<*dsP zW?qJHlfq0HbOl1wD-f1lfiPQMr*Mrz_*DpVWad=}i?2d>Na1za_8NpX*C4FF24S8o zppZ|Y|8)rS<(lgdR$qtU_9KJ^viFY=di@AtCxt~)`w4>UPY@D*g0NU_qp+2N_YDY3 zWZVr1u{R(brm$3c-h|+B6T;-15Z;mpDD0=;e+$A2nQ{xl_*)PzP*^GbZbPVj8^YY% z5Z;kzDV(8Tl=7aObqB)CI}mQ(fyZhYln0?{9)x9i5Z21;6s}PS{~5wMnfWt>#Xm!M zNMVC)`wN6Nzd%_33xp430fl@D{eOkcn{*NIXmuntFSp8UaTj*wM zuby1k+tzboFPq!Kov=Xi0qp+2Nw++HM8E1nKYlCo@!Z*^>4#C3? zVX_^1vt^>jk@+^fj6q*--a7E540%2wm z2sbHQlR-rxG%X5YSy2c-%Ig%aQ3!X1a6@LgLRjny;UR@vvaJT8jRs-82H}n@ppZ|Y ze=!I@%QeLytS$z@tvG~VW$)q;dKHJTlfpfzm4M({0zyIw2>Egwg{>64*?$jYoEwB# zHwcF*{4PC9+Ip%FWg_X3JOHviR%NwPwjTJNR!S*&k1qx93#H&~lYXTk)GiHSZfOWE z@+<_^Ap_h&MdU0}QJG6}l|f}dn#>>-lh;A=S{Wn_FN>rlWM)|ii_1cINTH-`TMj~- zauC*+gHT!)P{^myzdVF8a!q*%tII=hs{o;#>|FsuuL=-$Qm7!ciV$2YLP)3x!9#AN zu$6+h2ZTy8&I3ZM2ZX~EDoamK2p*mgCVN7tA`ej5Pr<(ugsL*75`^)UAY7nOP5OC3 zsO<$|t`~&oW*Gl(Q;Bm{}RZ&C2koErYxvH1&qC%p1b<@;ZfU6vC@Os4Fw8 zKv-M_!b1x6WLqByZG0dYnbwyD6!IzbuL_R_a!pkTtE)PbG?D?eAoTKuu+tYFO{6

sk#$LNy3Y<+f@Nwo>q}4&g=9Bept(!xWmyJl4bGIS7-VgYdFE@EnBw6#Q#IXdzQ- zKp0;G!UYN~rC&`5wQE9{TN6SnGmkSAn%9C5CTFo?GiyOG8rMb!)rQctHUy(_?c{X| z*C>ShAxQ_B=?7u4ACpk%DBC^{q0RFU);|xSvn-&HPoaMu2wmiwIv8qQrCJx%P4*^r zmzzjEq~;ImDI-a}W`$}^^mlWjH?GBwjPAT6#7Ze7a(}N0AcbA5C+Ht6!uf_ zuMc66OsNlHe0>NPC=8Z<0T5~jK$sfs3 z8KhzII%&8JX#|RwnWO}nM;am9Hb&AmjgfSHV20=JXVUqNG5rW5y5GKC} zVTwEe0Y8!8`w}QkrjXKQ4r!{~6b0wn&EPz@8Ju5{XPZGdL!o(d2-D@P=5U-Lb4fF0 z(957%GJ`Z*UMIaKLxMqbWF~2@%p<)n+qM9`A+t#HWC1BdMudRo%QYk+)s~*L|DeRX) z-5@mW24Pt@2nXeL3fCxvcZcwm%kpxJe+YB?L-;|SrErEq z^8pa9$XNp*%p3sWCWUJ?N&M9zwXFf$IqO$x3uXc&a1!yqgh2BDa|PT?Ab@Zk_j$jspo z77vH;kU~k>HXcHocnIs`A(WN{6!IzbPk>NHu1SEfIst;)2ngk5?-3AsjexL|LItUf zgy1?7Lc&N09&#IntrWaRL8v6-MnQ-j1>rD-%F;6tf=42R$%zoE$O9DiQ}9oMP*tWR zK^UI|;R1zf(k~f8?PLgZlOa4O&r&!;q4{VCHRY_)5N3{saFar988ik$(=ia1je+pI zyiVa7h48Tu>dMTq5EhSx@Q^}1*>)U+Hsc_y9|xhnETE82q5pUY4dj~f5LSc0$1lLYn{=*9j03CO~K^w^7(i!FwWv7iHW;2(c3(9H!7rdQO7i zF$u!tNf2I^2Po{P;6E8c3z;$*!uZJ$E>LJG{ia}E4VCGnR`M*VwG2oFg~?eYUFMS7 z$e=V(TbV&>C$E#*%aC+X2boChtysLVX;8!CAX1!OZVxZJ~EEfS7wv?NzWOe{xWff?G5#SRA<_1IVR&# z8GeCfj;-PRC>OQ=mWb`Pp|(X^Y@1;^a`0YPX-1A@Wbl@UuVKYqeo;;1RhKmLevNr2 z)JRy-Mz^zDUY%!4E#-K9l$CRx`GGE)^WW;O*%GqCcF6%r9$Rg5bsU!X#xaYa*Po=f zk)3Vl(k=B?+19F0J-0AF;~$waP@r`C`mpV*eGeYWI& zV)L=1y6SdYC$sa1+th$9J3oc&*4APEYm=^EBg0a5vvKflk6b-e7I(J-ytbf`fvQ~b zh3zZbiK=qMKHFe*_LiJ|HoNNBS_A(Hg$~u}k5beFHosNH7F+*wJ3m>*jIuZLe)QP< zaIc<5AF#>%9y&j#W%ek0+2&tcGQa1?ue9*PmrL1W{33W|3izC}{CFqW$50gIymU`Q z7S4B2`GB^%6~*^ZnFYTEkD+CJzO}O8s|d9$?K>HXEK>PeDl5lt_Xk^1-&-2L^V{0e zE?F91f(o~^AE2?Od{e83rCqc9_`29R+`s0Bud?FLc(<*JrTt|3rSkvVDAg_ThLxDF zfH|KN-Ly2mCRWMvy9Et@{MR%}G{Dat%db4bI97~Lo~5zp-)H~f^RuPlU{v1VYhnC2 zzfQvau)uQUd$sHtzStIOX?(Yq8ozmaojVSndzQxUA@{Jf`_S-b?8Ac$;8S4vc_Z8c zVfOd~zKy{Qs{niR*U;vjt!vQva|t~)({$B zrKt%XXlacQ-e;t|8_5%lig8&aOAD}AW3seJmeANJI%FAQz!@c=- z&Q5@bm?yx)$_u~=K*3M6jk8zuABG^0BEHAC23QO52wDg5UB|ZpejVTqV4mEBB&jh7 z4grP&eSrSJ0D#BNC1mvja2dD?+yHI@{)povu3s>X@TF0{T6-0^2Jra$5#W2jM*zML z%(wAR04IS{Km@cdKvz3{Wv&|n-2sjqj+9{O_5gc80AG6>1`G${0lr2T0}KQP z0g=Et6y6WqALs@22D$0wgy-WaJtzDtOWQD z+ZfUlY#2TlMdfm6U~;A^`gZ%?#Wh{rBJ z3-A1{4E0r|}%f^Bd1+oX>cY?F00c ziIePg{P_D80^kqUGyw+!e!%lU9iT42Uo_FM^0wD;b0Am*xDEF_sZO?+4dSoB@E2pQ z1NVV^fIn?>2>1#(3>*Qz060-D1^6>TQ)KvLdtfRq@{G6YE~DSC0@naeoi_namv?|) zfM0>Tz&+qTkPj39712&FfF~PopfS({2n3n}{HX`NCOH}4k00=jOunSaH#eh-;0IU- zBf$4fy90bbwLQ=Q7>j=2h8?~g*a3VB>;z5$r)A?Q_P(inr#g?KmgDHXb4mQiUO_xe|d+$*2A9y`Uc=n3%v`x2dn@V1B-yU0Dt~z9w30%fetb; z6$?7P5aT960KN{)uR`%%^1}dMMn44LHy~1#ci{XkkOj;H@{#FJs2_hGDF^5Q^a84*z~=zI z@W{6)`9`K4Xn{0*&v-qUYo-MF_67O_1Au|RARrQm0%{=*-*)61oH6{J1-|0=Dr&=b z`lEno;72sj2Yen!I)05n*$ZR>#xELxTc9AWzxX>-TwifLwH@FZDi@Xc9+(Drf3 zAd$rpBw;bj;m2S2xW?g&PySoR8Uwv%&NSsAb1^g#m;jW3&2wQ!hsGzd!QZA1_%RM0z84TuY-XUq~VVqHRn(3yo5kgfb$s-7akovN_e!? z130g7j^kX%GcM1(zCcx=BH#x6h6=HNrvn^quL7?C>A*B#Dv$=G0vtU&wRQx;Rjm6v zAi%ke=hic*8Tb4JWlND)>_>{qGq2fezJj{Swy;fRO>h5)eue-dYOxic`XsT_iHR8QX*oJ|Co{ee z;4GB7GtILKr8Wp)?pt!-bR2cu=jzP08fZKhTa1t z@CJZCg;({{`MYc!@YXf{<2i`ojLd{H02a)%5%t%A*}yD|Ia9NJPM`S*X8^p4m?#G10!&KmDW_)B0nz$uoAb^-f%1U(xjJYNs;(g#Az{ID4Ge8c&ZguW! zj+r^ISqObj0mlK3kCVU&fMbgB#Mc0Q7=IT)!A2#2<^HF`L4cE-vrrcJ18@mg4RBB~ z@%I2TZwNaV{2g!>z@IUYFCuUO_y#x!oVUW%zAY4HJR5PF`~PJRbg*fgV&wB{+tbIk>!#Bo&k76uMBw6wXBR6_7eCH1m@{|oOBoVioTpNovmAF zWx-2amc$j2uS{5A_mU@ty|NoGd!5Bpmk)(KP_1F+Ts6~Px;#r~(l@})%2s3YIu2fv zR5o2dSYR*b$4eEK_J^*55Leg>6)W@70p?PYzPeZ_pZ*k(r*&d)<8 zF0|KjcjoZ4F>4m0r&;+Y6-SsUpVq?B2vWnsHIelf*`F)pEYq2?iA}yW-CjkqPyW

@MDa?gMsT5Q;MPfYJMZ%7rcchf%?O^&*fVv!-Kzq3{xT9>d*k zb(=gU?ImQ|bh`_lWUZI>hH8+^mGy>iD9 zu;YQ@051&VfCPYT9|=wbl7TV6I3NX>2uud10L<@IU?D2MK$Sl(u@6a|0o&PN_RM40 zT>k$IaLJyCyzhW-1H1yc0elZ!27Ul?fp39}zy+W){Lg@o1786=?;Zm4R@s-pK434f z2l(8EChtUG3-Af>F|Zln%Ht#OhrkA4J@6h-Uy+aAv{y)7h42~+tHB$AO~3~L({2NA z1-1h_0N$7T49Es{0lR@OfDHKV2eV=fAGCDFX7;p+W!Rw5Z2%HAK2G9!S z8{j-}7B~ld2e3ETQ)_`s0DFbK!5;VtU}LWWJXNxhSAgrlHQ+~pX>S2c!}vUad*qG{ z`}+|BzX9A;6uFxof`1377XVCn4}2GBi14pq`VsdL&IjoGz|x&*nT|frd($noU#byk>uEQImSI5NQ-Sgst0_|WDhBbQGM^9EOOAeBp) zatM?K$^az+-T}kklZB!?jM6|UfNL`60+L~C{q=--v%Uh*8HN0Y_+tRCS@EYpQd%Ow zJ5IDicz2=&LK05At-;$Hy#3S&;NWWr_5%WdC9vy*yCPu(z`Lislgc})yt7&Z@C7`8 zMewZ(=51Ks+NuO_w|RoA07nrvZ+D^pDd0(}@*EiVX^s1}D`D3}xH&Rn#w?H(;Ua=z zu0YwXyp2nn_sIMKR)BUr@Cu}D0A@pY?}qo&mLtr2Yitnj;WTBp1_5+1ZuH1y%k4wU zgu=w1Qk%C2@G0GIOPLk++C^ozRrX5w;@8Mkc2C@QowW)ljiquY>0OyeakDJG+V1JK z8#OG3sqekSVtZT7I_MNJzT;x#s1{_Mkp~dQY0dMB5s1Jw0dVvA;8YsUx50YBoz-N(=J}zwe0-{JA+)* z`t=&1ZkV{_rams^iWuQ9m2!2_=%2HK@9lV+@V+K@H+Lz|8kLaEH=qz7>`)fcz5SomgXN@%h7wTAh_ex_(R-H7d>VQVm z0sEz71sn3zQQRXtsL-IFJ$`)%vss|N{c>39V(!c*qTFu zT~}Y3U987bhsKDhikQG!>zg+C?O52;nC>$CL)2j`99V~L7k6dN_%*%KQ-=jI9S-=0 z{E_DZ1aT)1w`TOYpuOHpA=O^}<>UHrw035?j%$h%b2sY=!Gs`7K=Wt>pC{E(5(5Jdac3Gb^z`=IpS0 z%KWYNYU&>8wGBzn$=loQ6=eHucJIo!>zHS&z@0_6?5N!7OPo+JE7ij}{c#=n$~Jo| ztr(u-H$m1@WX?AGKzv0pV7op1iMmwI*lr*A#5A%Vs5X|JcG!J!T1iCNxNy#X-ld^z z@hQ$iMs*r$&iWRLdZNY4#QH9+El<$V$}Zk=cNG^GIj6KsSaoO8f9!8(jF~~9{EQAa ziW>MAk_XBNFZAqR_J4L8j54jPs^I+toQBhO*~9*)J=O5fJ@m&>^M?%ay}oU`?SG|7 zPb*NV@NPg^A7^7ta7pH6V?Xtl0bhUy%l>;nqh#>sn1#}@@41|*nV&SXZIRwZi~(ZI z>lujQ0^qt^RQ05@gMPPS8erCvrI>@2pP$S|Mpm|7|2)5cm1Af+F6F zpO&>mW;`v+YaRT!wyM``Pt3L1U3(aQ0Xz%skl)g8zbx2;V=+hi?*)A$BlkiyNRRMbuw~73)qH|h$)XO&X=2d>dMqqB{M9 za$On2A%ICkWELFoZPp!M;_Nj*YWwYP;`_|+?zgvY{9A~*?sl{^r`ZaxHgU~*&OQuZ zd#vhTmDeBxtSb5M`q+DDowSBFd|BG(fZbE8XeFsCLk=KcPx%Ja#vzvb>xn**Q{5Ji zv8k9tjnA!CW(7+ODt}Hpb^Yh3F)ic;B=tHIhHE^upx@lR>+Dsxk46iyI%hXtlI{o5 zf}66=L3^E^jWH!ZyEmONJ$17iD?F;!de_DiuOp{Gtn?e>z6)Yl#+YoEBTMS>kgql&ox1*>TwQ$`u3|fDAu^qr^z#sXp=cIccvfcO9`;^cvXBY@k|t>1(yt74$@BV|Q{) zPLz2^(BxNSsbiq|vc^&SP+SMhJql}~>`(D+nSB&BvRn#_Ph6ge8OP8BBY~&9c+6fG zgS>bSdiY*%a~$-P{yFw^tlu_5Z8Ex#IR?&7>lIVC$-{mwYMiB91@k~&zO8TR^REw@ ziVEW@kR5rqk9?G4Z-AFT0*+(1)bDRj(vRMcyzAQ9_azrP*5@T%PnmigwI3rhkE8af z@+#cXK(7_z_2@!?pCC!9o1yXB0Nn7XD!n**bC$y-^QmbpiuL~H!al($c!A<;3WgXpnJZS$`B zDI74bvr02%^HZqvf+1#S9ercfuP2Xvb^{KW*?3Scmx*w|y8AWyeF;CFwi@2*Hl#?a z;hFFYG{@k1xr+`z!hu(VuPo24S!&mWUU1+n$|*+nJ&lY?NH>s|?@+Tw{ylrT^R%MAdVXKC7JTIy^hvvq`3(5 z-?IK|yIoZi<)$-;O_PU6L*(T%=)R8@X_7F~XGoOyM7G;?_K*x3)@jxIME7%#og!QsB2 zIdMFw8GAQzLKwbWWb6|Z7$}FIv)8G%dc1il`;X(p86$7JXRjoWpR+f@@L2x{*Jej1 zm}AfFlNV18@afnbnKrD~paITe=O)Nz=j|R|_u#=D6udL2#A}Z3E1!ClkR#7yYWJIH zI<#M(Grsq#eaD|V1S5u*&i)VAH7FB$oNS+%mPYMAHE^#Vr%e9Vs_7v5j)eT)+iG%H7-& zFyZ$-%jE$+6#IRC{Bz&CGiT16IdkUBnVIvLow{=2{_OLxKU(jJfEdwqqgx-pI(vT> z+ZN|*V?0@()w`H}1O_|WM*7ZQloWO1sJZRMcxnfXAZ3b>$DWqDIX7c=`kFCZ0byfG zUE{bkCiqAnGsKtXpT*pD0Rrnj?$K+_9}Z}@$&4_Z4gdkMt6V%x%OzfyUZ2IwFiJcJ%5PH|9;SIy z1&c2oS+q8ZR_+I$pHB$ao~e`vO2IpT@f;|*Iy~(Bi^0W>V+1mc9{@pYV*122@pHyE z>$!kK{1Ni9Iy04g&V!4qz+fKU{9EZ=)?N%}tI1EqymU1DJh-r@c=qt5TNm*NrDJ(| zM|al!8ML%R%NH)(y7N}E6~_c^ruV$11GUQ2*AVR-!`N!D+<;lnP1A%ZJa+^|M`WnK zfs|Z9U^6xkYGJdrVThOcRyACh5X*fBLAyD#PAZ%= zK164IkRWNmF&+XC!!RYx5LWK`>4c1}mu526h8V@DIEUr2EpywNnKD7M5ubu5jR{gV zC|73EbqwBQaTd9Ok>V-eIi`pSq$Y=#8-kpP8jR;qT7}6}EVUN%Y^s{K!;@+MA5iB9 zQ)oecxu^ENiYG3Jwa-VN8dx@$uQlkRk7y7hS_!M{`_tZIZMD3F_S#d!*Pa^F^1Ifp z29{6b>xm-JGrIWl7QeJ%o|tWj(+3By)6}W}=4uWQ*s9sysbTZ4j!(d0cvRx1E; z17wlYoa3FYjrk25zg*S36DgtK@v+g*1$uiWCy~wrSR;our;FKo$8i1;lpZ(Y8f5xH z;ZF|lmAm|poP-Dj2iZmeF0=v3@tU%MX$M*xdb%B3zVP^N&M!P(WTzI=@;||qd}3=m z^5^5zM5e#=_H{MySyHFizx1wUQzN^g6@TdiwU@{X-@2)Hq+vyR)fkv0jPQf#&u;l$ zYBCx;v}R#$KjdRQF2lBrrP4b-aW}o_Do%Tv93Lm6LE6v-6_JZ!*WkPGV6ed$yIiQ;%eozV zq7E)>!*w#4neqra7Kc*^CbKX3UB`~G?+bxCEb5hdjpxNN?PM+)^y2p~sN@>V>F>Z` zyIPUmsIeu1zcOb`T76C;MrT9QKnZF5Z-9K`6k)CFesMA9gIf7G z@WB>xcV=S>#oo~So8Dg~FxuYTzx8L^ATiY(BXbq4xB&+2R*S=tSF5i777ld4Sx@r@ zpQmH!1btm&k8%ox8>Q|y@u~wI=!Fo!e7{w+2j#^H(jn+nHk|l38VV(cz6T4on2*Ui)-7Bd zgP@pTj-7#Y=H1-~pIVDXX;yUf*17D;dpt1;W>Z9q#G)lP# zTeDw&&u}?(_UO@)OCZIZlYn5WU(@KsJ)HUY?6|sC>e5!%dZSQs!FUA=rbs(w%7GB*B3B$Ng+M5P1&K(KDqONZn{7P@EtuiMeLXw0X3*JE%D(a$FsZbUH* z=1W_}$_U!qbX3DvW6udf@MQug(hX3cK@apT-8J*~xJBa-ns@~kJmI0fcA0&Zc9nT6 z=tjA?l}ZZr_?K;k2v%EBM4^77W_q=!>CNq80~w}Hc=z>tJLhYn3bqoh{Vl9Dxx*mZ zSGEz!wZ^Bz6uv|FmD5Z1Is2~r&@RySCEE;Whc~xqb)FT-1?SQbzTs@msXHwR^-rfxP zZU^mosE<~})5TOZ=EHOf{})>FbWC7;@~_^j&RaW?u1BvkDf3?_gp8x`Ac>D~P#0tf z|Kigxr#g)97d-^3!PL{`)YVA-|Z!9z3Nrx4A7>G<-l&&&uZfHVQ*N_36b8@e(3&5(ncG(=ThjQPOu0LJfeU;I2e=IT#o43!c= zT-TV=@Gy4XFYuD<_ca{ode`2JCwH|6SyZg5{wU$_X8GKLO=8Dbva|b|+O4x5@Kq6j zh2bX>zQ`LgAt7P7xP}@K)aiS%|0jKyykfM=9vD!pAYYd1ivxt&-f>6vrN z!dCNJ<6AuGYN<1H6;oRk5~5lPRJs52lIH4@GokfpRc*C8Sul}2qZjKuLl)6fODZ1C z7D6)2?%&a^#*h<`whRsYnN1Dqg2#%9-HMqyo+C6EAA$%|)jbc^6}_J`;A_5fFgs@T z9JxC}GA-y_-D-`+Qqr*neO*uOT$cBIw&6~vsn(b;o=IStE}p9vbE4e;bxC~;P!6d9 zU9iL2i>?p5Ad=BEy?(VsDyd33|D~<+%VCOjs4Q&Bpr$k$qay2Bp2w$VU(1A7c`{k* z{XgcPEy=Qs)w0|^&p8Xxmgl${`D%;HsDg}<^3r)gySS1)wOGKMov)NgH{!PgK}GcU z#F@}$K-MY_OZBwOU zjcV}wB*9m-Guqm$s7I0|F8AtKMoTJWnQ{dU)kZ1wsv6_s_5>jmld3{Rsx`aSU$T}4 z@x=O?O4C^;!Ya#bsxiV!GgqCpA~dcFi||zCs{Zsoam8xgEAvm#i!W3*_W#KuJ+Z(4 zG%@9DB)#Q{?MF(dLM_y@Pf|5Cu^NP*pn_E?8z0ku*$OM!0a-IvdH((rWx4HFQiTet z_>5bAh3!<+HFIHGIU!WP?#iOD%NB8Yk`=bUYE0u}X38Kn&FFDToFsnO({|*Et)ovW zsF3F8Osi_!+Br1Jo0qq-y{r1x?f*|nSG9uQC-$=clZQj6eQ}t576N?ilgKpnRC0M+0fkt@Pnd55fK#3Y9z$ryk)Ec*8Lgi#aTftS5$#3FaQ zV8ciSKe2Z(00)vjWEZG<8216s1iZq-b-j{%?Bvsm!y{S<(n?M)jSf`(O;vYMkV`uQ zRWA^}7^oT=-<3UEpA|Xbk21ft%{`kx+d)?f2#f1b>~_8DwDEwmu-oB3+6RYy4#+phT%%u^@#au7qyUhH zfNTv{dR>mvr$`7cK};uh!dKQ`pc6sr5an(z1qQ4Bb+Rr9HtW&EU>r7$c_IXJyZ?o5 zS)~V8@WW;>D=lk5Yl77PV>=+QEb{kfU;T2?8{eN5r%{$_{E%*gf|8s^)~&Iz2!cxC zMQX>s*2WL`LjTI23=PJm`6A0{w2EzfBxPrP5R(a|7|I2@vM!%&LsS>j9w4%l>34-K z3pf9GV>K(l4+v!Wq+|KCqK)dJ{GCrjfN89MNeJzS)g?y<{#me=Rlc*L0#<;R7y`F8 zlG4~?6dBv#F`IOFnAXTvzi%78VBfMU;pSGEm*{X9=wG}A+ywq`U);B_Es~eaVdRJs|9izdL{N$(9T1e`AK6Eud%& z#CTiw+x=Z#w_bP8+L|$fXj&L#E=Q`!ksGU)jS!wDN-0<&W>eMkAZJREGZ)+!xgl0g z@&4`f)436Q5}2(G@Cn6?Sk zxua1Pw_^Yiw_{v_tg)D%1F^a4#?eFV!rn6ztKzl{+Va~noRuiFW~#bt)IOge_r8dE zX_Dc0Xjn}NF3@n)D(=vLoVY_nYr<7$VOE{3ZFNf@piCB&7Z%d_a9DtCg+fbSJrl7l z&N~D(ugJ%RFx#D7Na5YELT?q)(H^P`_3ftG<0ms)^;8X>O^QT{X%e2yEKb@Jm$pf< zVVAW6QPYCJabgiA#2}mLXO&t+nf%~QHgXHccZm~4bT|?{yt1Q%orgBVW>YwB5RU@@Es0fZ->&xKm6gI;hdQ z5c22(`^t^mOUctPMClVkEmHE)!!|Bmc zvEwD^b^O9d(&z26PJGiJu}@S1qs9XFpPA@eG_g^2d=b2kCzj^);oo^2icB)x2Vx)) z(UqPqV2*U+LH1p6qzNPME|~aw6yF6B%Bm@t=+WxC)rOxBI`F2P%i6TLiyB~>S4+pe zi4kvjwry9>hSejnuq4<#U5iS(z^+#@_rQoDzex1{8g-9UV}f6)D<~bW_veWCMcxNM z33O0wACa%tg0+W08!K^o<8v^z>| zQKz$wj+YNiqFYgr);)Y}1V$$`yqo#^Y0przEpVWV(a;lN61=1psH0hdkLcrWXui=_ z#{>2Dzh(U~bfCNPSo2?PX;U;TiBAk1Ca}_=J64X!uqoGVX;637s|Ke@Lt|7&O6jiF z4(j|!EWH7lH)||Ef8%)!jg>q@$Cm-Z(%k)eoroEH=ckK+utg315!~W{_n^DlqOQi} zMq6r$-tl|houd)v)n3b?N#3d}0~e*-U|LFnlyxPHpUV@7eN03fU_*Dapj>@G~E7Dv@T@oS!Td>O(?3T8c^5GNoUmwGE8@(4|_uMesQ8* zJ=IRi8K)(&Y8d{(LYr7jY-1OpUX!=9|DeZWX z$3ksAf#3rKQO;1)pVecF+X2_7=vFUP7I%oxGK=pb>Kn`%eCHEu-Dn`mKgoE5H{=uU5(748F*X>tg8_kodjr{R5|w_V-D+r@6Qq>mb{taGDF zeN=zrX1r(S&@W6N*v3aii%k!Ezk{B9rH}@mb6I|J4h5DZW5L zP&vhGbChg1It)Zvm9iubtMa59nc`HJo|j}>bPUmv*=*@ z9(BZ0MRyapOsdX+uwe{HYjU;z>~~m+Id(Z_r<+n{Kh+8Ut3hoo3SA7!(uQ;$9Vu%X zQq8{D;J6uZhP$w%Ax-EDrsC;VU(5)p(eauw@4Wqf z$v`)BjNDu>xb>vA{XoQr`t`$>v~rTL7^?$L_E@>Ds5S7IA%)~Pg8@=mS}&}K zS+h-6elS1(aC1s{8G2yRl@IbksS$VO4Z1^={W6xhMVFo9ahKhp5&vw_Y3C5`v^&(~ zpS>w&AV^wt+c^Sv+u7#1jNw^y&p94<&t=yZ9dwSx9dz0CF>)J(q^m_2og+WM>T!gg zwjAqR>+ZoZxPpvX;t*>Zi>8+EvvUOQp-XNo`sf^s`{+)$-BVW(@h?e|mgomqlu|J2dXe)rV) z@njeRw60$XcaKT}I*i-W-Jbo%Gjr9nA3f+w1ArFxB9<$Aof{XwwqIH!LnOX4S9peV zT!T`F!1I0Z-4@>ug%0f#@lM#O1%m}=%4ZqdhNx?6WDFmvDwAmcO!c{p^QY7~-~KPv CmZxX{ diff --git a/package.json b/package.json index c40ef39..fa5703f 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.1.0", + "date-fns-tz": "^3.2.0", "docx": "^9.6.1", "embla-carousel-react": "^8.6.0", "file-saver": "^2.0.5", From be8229c39f4680ae08f861989a867d94db81c186 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 22:53:11 +0000 Subject: [PATCH 3/6] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/lib/tz.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/lib/tz.ts diff --git a/src/lib/tz.ts b/src/lib/tz.ts new file mode 100644 index 0000000..6f656a1 --- /dev/null +++ b/src/lib/tz.ts @@ -0,0 +1,32 @@ +import { fromZonedTime, toZonedTime, format as formatTz } from "date-fns-tz"; + +/** + * Firm timezone — all calendar entries are entered and displayed in EST/EDT + * regardless of the browser's local timezone. + */ +export const FIRM_TZ = "America/New_York"; + +/** + * Convert a "wall clock" date + HH:mm string entered in EST into an ISO UTC + * timestamp suitable for Postgres `timestamptz`. Handles DST automatically. + * + * Example: ("2024-07-04", "09:00") → "2024-07-04T13:00:00.000Z" (EDT, -04:00) + * ("2024-01-15", "09:00") → "2024-01-15T14:00:00.000Z" (EST, -05:00) + */ +export function estWallTimeToUTC(dateStr: string, timeStr: string): string { + // Build a naive local-style string and tell date-fns-tz to interpret it as EST. + const naive = `${dateStr}T${timeStr.length === 5 ? `${timeStr}:00` : timeStr}`; + return fromZonedTime(naive, FIRM_TZ).toISOString(); +} + +/** Format a UTC ISO timestamp in EST using a date-fns format token. */ +export function formatInEST(iso: string | Date, fmt: string): string { + const d = typeof iso === "string" ? new Date(iso) : iso; + return formatTz(toZonedTime(d, FIRM_TZ), fmt, { timeZone: FIRM_TZ }); +} + +/** Get a Date object representing the EST wall-clock for a UTC ISO. */ +export function toESTDate(iso: string | Date): Date { + const d = typeof iso === "string" ? new Date(iso) : iso; + return toZonedTime(d, FIRM_TZ); +} From 8766376abdabafaba852a057e26e01d5a31f1c3b Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 22:53:48 +0000 Subject: [PATCH 4/6] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/calendar.index.tsx | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/routes/calendar.index.tsx b/src/routes/calendar.index.tsx index 66e8e1e..60a71e3 100644 --- a/src/routes/calendar.index.tsx +++ b/src/routes/calendar.index.tsx @@ -53,6 +53,7 @@ import { } from "date-fns"; import { toast } from "sonner"; import { cn } from "@/lib/utils"; +import { estWallTimeToUTC, formatInEST, toESTDate } from "@/lib/tz"; export const Route = createFileRoute("/calendar/")({ component: CalendarPage, @@ -164,7 +165,7 @@ function CalendarPage() { supabase .from("events") .select( - "id,title,start_at,end_at,all_day,event_type,case_id,client_id,location,description,created_by", + "id,title,start_at,end_at,all_day,event_type,case_id,client_id,location,description,created_by,assigned_to", ) .gte("start_at", `${winStart}T00:00:00`) .lte("start_at", `${winEnd}T23:59:59`) @@ -204,7 +205,8 @@ function CalendarPage() { const evts: Evt[] = []; for (const e of eventsRes.data ?? []) { - const owner = e.created_by ? profileMap.get(e.created_by) : null; + const ownerId = (e.assigned_to as string | null) ?? e.created_by ?? null; + const owner = ownerId ? profileMap.get(ownerId) : null; const c = e.case_id ? caseMap.get(e.case_id) : null; const clientId = e.client_id ?? c?.client_id ?? null; const cl = clientId ? clientMap.get(clientId) : null; @@ -220,7 +222,7 @@ function CalendarPage() { case_label: c ? `${c.case_number} — ${c.title}` : null, client_id: clientId, client_label: cl?.name ?? null, - owner_id: e.created_by, + owner_id: ownerId, owner_name: owner?.full_name ?? null, location: e.location ?? null, description: e.description ?? null, @@ -361,12 +363,14 @@ function CalendarPage() { setEditingId(evt.id); setFTitle(evt.title); setFType((EVENT_TYPE_MAP[evt.event_type] ? evt.event_type : "other") as EventTypeKey); - const dt = parseISO(evt.start); - setFStart(dt); + // Convert UTC timestamp into the EST wall-clock so the date pickers and + // HH:mm inputs reflect what the user originally entered (in EST). + const estStart = toESTDate(evt.start); + setFStart(estStart); setFAllDay(evt.all_day); if (!evt.all_day) { - setFStartTime(format(dt, "HH:mm")); - setFEndTime(evt.end ? format(parseISO(evt.end), "HH:mm") : format(dt, "HH:mm")); + setFStartTime(formatInEST(evt.start, "HH:mm")); + setFEndTime(evt.end ? formatInEST(evt.end, "HH:mm") : formatInEST(evt.start, "HH:mm")); } setFCase(evt.case_id ?? "none"); setFClient(evt.client_id ?? "none"); @@ -383,8 +387,12 @@ function CalendarPage() { } setSaving(true); const dateStr = format(fStart, "yyyy-MM-dd"); - const startISO = fAllDay ? `${dateStr}T00:00:00` : `${dateStr}T${fStartTime}:00`; - const endISO = fAllDay ? null : `${dateStr}T${fEndTime}:00`; + // Times are entered as EST wall-clock; convert to a UTC ISO for storage so + // Postgres `timestamptz` records the correct instant regardless of browser TZ. + const startISO = fAllDay + ? estWallTimeToUTC(dateStr, "00:00") + : estWallTimeToUTC(dateStr, fStartTime); + const endISO = fAllDay ? null : estWallTimeToUTC(dateStr, fEndTime); const ownerId = fAssignee === "self" ? user.id : fAssignee; const payload = { @@ -397,11 +405,12 @@ function CalendarPage() { client_id: fClient === "none" ? null : fClient, location: fLocation.trim() || null, description: fNotes.trim() || null, + assigned_to: ownerId, }; const { error } = editingId ? await supabase.from("events").update(payload).eq("id", editingId) - : await supabase.from("events").insert({ ...payload, created_by: ownerId }); + : await supabase.from("events").insert({ ...payload, created_by: user.id }); setSaving(false); if (error) { toast.error(error.message); From 33ff50aab0c10a0fb5584a9f220640ebe50f1566 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 22:54:08 +0000 Subject: [PATCH 5/6] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/calendar.index.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/routes/calendar.index.tsx b/src/routes/calendar.index.tsx index 60a71e3..5083497 100644 --- a/src/routes/calendar.index.tsx +++ b/src/routes/calendar.index.tsx @@ -301,7 +301,8 @@ function CalendarPage() { const eventsByDay = useMemo(() => { const m = new Map(); for (const e of visibleEvents) { - const key = e.start.slice(0, 10); + // Bucket events by their EST calendar day, not the raw UTC ISO date. + const key = e.all_day ? e.start.slice(0, 10) : formatInEST(e.start, "yyyy-MM-dd"); const arr = m.get(key) ?? []; arr.push(e); m.set(key, arr); @@ -875,7 +876,7 @@ function MonthGrid({ )} title={e.title} > - {!e.all_day && format(parseISO(e.start), "h:mma ")} + {!e.all_day && formatInEST(e.start, "h:mma ")} {e.title} ); @@ -942,7 +943,7 @@ function WeekStrip({ className={cn("text-[11px] px-1.5 py-1 rounded truncate text-white", meta.bg)} title={e.title} > - {!e.all_day && format(parseISO(e.start), "h:mma ")} + {!e.all_day && formatInEST(e.start, "h:mma ")} {e.title} ); @@ -1010,8 +1011,8 @@ function EventRow({

- {showDate && {format(parseISO(evt.start), "EEE, MMM d")}} - {!evt.all_day && {format(parseISO(evt.start), "h:mm a")}} + {showDate && {formatInEST(evt.start, "EEE, MMM d")}} + {!evt.all_day && {formatInEST(evt.start, "h:mm a")} EST} {evt.all_day && All day} {evt.case_label && · {evt.case_label}} {evt.client_label && !evt.case_label && ( From a353c9766c689bba93624179bfb5a037e0c68690 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 22:54:24 +0000 Subject: [PATCH 6/6] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/calendar.index.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/routes/calendar.index.tsx b/src/routes/calendar.index.tsx index 5083497..42e7263 100644 --- a/src/routes/calendar.index.tsx +++ b/src/routes/calendar.index.tsx @@ -715,7 +715,7 @@ function CalendarPage() { {!fAllDay && (
- +
- + setFEndTime(e.target.value)} />
+

+ All times are entered and displayed in Eastern Time. +

)}