From 01581c84ac3329aefa7d64fa701870bf3fc0e4c7 Mon Sep 17 00:00:00 2001 From: Copple <10214025+kiwicopple@users.noreply.github.com> Date: Wed, 10 Sep 2025 12:28:25 +0200 Subject: [PATCH 1/9] OrioleDB patent (#38557) * init blog post * oriole blog thumb and og * orioledb benchmarks img --------- Co-authored-by: Francesco Sansalvadore --- .../_blog/2025-09-09-orioledb-patent-free.mdx | 65 ++++++++++++++++++ .../blog/2025-09-orioledb-patent/og.png | Bin 0 -> 44247 bytes .../orioledb-benchmark-dark.png | Bin 0 -> 74929 bytes .../orioledb-benchmark-light.png | Bin 0 -> 73535 bytes .../blog/2025-09-orioledb-patent/thumb.png | Bin 0 -> 61308 bytes 5 files changed, 65 insertions(+) create mode 100644 apps/www/_blog/2025-09-09-orioledb-patent-free.mdx create mode 100644 apps/www/public/images/blog/2025-09-orioledb-patent/og.png create mode 100644 apps/www/public/images/blog/2025-09-orioledb-patent/orioledb-benchmark-dark.png create mode 100644 apps/www/public/images/blog/2025-09-orioledb-patent/orioledb-benchmark-light.png create mode 100644 apps/www/public/images/blog/2025-09-orioledb-patent/thumb.png diff --git a/apps/www/_blog/2025-09-09-orioledb-patent-free.mdx b/apps/www/_blog/2025-09-09-orioledb-patent-free.mdx new file mode 100644 index 0000000000000..08404b9f9164a --- /dev/null +++ b/apps/www/_blog/2025-09-09-orioledb-patent-free.mdx @@ -0,0 +1,65 @@ +--- +title: 'OrioleDB Patent: now freely available to the Postgres community' +description: 'Supabase is explicitly making available a non-exclusive license of the OrioleDB patent to all OrioleDB users in accordance with the OrioleDB license.' +author: paul_copplestone +image: 2025-09-orioledb-patent/og.png +thumb: 2025-09-orioledb-patent/thumb.png +categories: + - postgres +tags: + - postgres + - orioledb +date: '2025-09-09:08:00' +toc_depth: 2 +--- + +We [announced](/blog/supabase-acquires-oriole) the acquisition of OrioleDB over a year ago. Since then, we have been working on cleaning up the legal structure and finalizing the asset transfers. We have now wrapped up all legal activities, and we fully own US Patent [10,325,030](https://patents.google.com/patent/US10325030B2/) (“Durable multiversion B+-tree”). + +**Today, Supabase is explicitly making available a non-exclusive license of U.S. Patent No. 10,325,030 to all OrioleDB users (including proprietary forks) in accordance with the OrioleDB license.** + +## Background: what is OrioleDB? + +[OrioleDB](https://www.orioledb.com) is a storage extension for Postgres which uses PostgreSQL's pluggable storage system. It is designed to be a drop-in replacement for PostgreSQL's existing storage engine. OrioleDB is built to take advantage of modern hardware and cloud infrastructure, providing better performance and scalability for Postgres workloads. + +OrioleDB [benchmarks](https://www.orioledb.com/blog/orioledb-beta12-benchmarks) show that it is around 5.5x faster than Heap (TPC-C, 500 warehouses): + +OrioleDB Benchmarks + +Supabase are working with the OrioleDB team to develop a high-performance storage engine for Postgres and push the state of the art with a Postgres-first mindset. + +## Open Source, Open Contribution + +OrioleDB will continue as an [open source project](https://github.com/orioledb/orioledb) with an open contribution model. Whether you’re running Postgres in production, building tools on top of it, or just curious about storage engines, you’re invited to contribute issues, tests, docs, and code. Our goals are: + +- Develop OrioleDB as a drop-in storage engine for Postgres via the Table Access Method APIs. +- Collaborate with the Postgres community to minimize and upstream [the changes](https://www.orioledb.com/docs#patch-set) needed so OrioleDB can run as a Postgres extension. + +## License compatibility with Postgres + +[OrioleDB License](https://github.com/orioledb/orioledb?tab=License-1-ov-file#readme) is based on the [PostgreSQL License](https://github.com/postgres/postgres?tab=License-1-ov-file). To reinforce the IP compatibility, Supabase is making available a non-exclusive license of U.S. Patent (“Durable multiversion B+-tree”) to all OrioleDB users, including proprietary forks, in accordance with the OrioleDB license. The patent is intended as a shield, not a sword, to protect Open Source from hostile IP claims. + +## **Aligned with Postgres** + +The intention of OrioleDB is not to compete with Postgres, but to make Postgres better. We believe the right long-term home for OrioleDB is inside Postgres itself. Our north star is to upstream what’s necessary so that OrioleDB can eventually be part of the Postgres source tree, developed and maintained in the open alongside the rest of Postgres. + +## What’s next + +- **Upstreaming & standardization.** Continue collaborating on the patches required for storage-engine flexibility, with an eye toward running on stock Postgres. +- **Performance & stability.** A steady cadence of benchmarks, fixes, and features aimed at production workloads. +- **Docs & onboarding.** Clearer docs and guides so teams can evaluate and adopt OrioleDB quickly. + +## How to get involved + +- Share [benchmarks](https://www.orioledb.com/blog/orioledb-beta12-benchmarks), migration notes, and production feedback. +- Join technical discussions around pluggable storage and Postgres patching efforts in the Postgres mailing lists. +- [Try OrioleDB](https://www.orioledb.com/docs/usage/getting-started), kick the tires, and [open issues or PRs](https://github.com/orioledb/orioledb) + +```bash +docker run -d --name orioledb -p 5432:5432 orioledb/orioledb +``` diff --git a/apps/www/public/images/blog/2025-09-orioledb-patent/og.png b/apps/www/public/images/blog/2025-09-orioledb-patent/og.png new file mode 100644 index 0000000000000000000000000000000000000000..659ec30ce59eecd5e638a520474b73386e4bd343 GIT binary patch literal 44247 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 Ir$TT21+m>;fdBvi literal 0 HcmV?d00001 diff --git a/apps/www/public/images/blog/2025-09-orioledb-patent/orioledb-benchmark-dark.png b/apps/www/public/images/blog/2025-09-orioledb-patent/orioledb-benchmark-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2fa7b7b7a24edae3ef5ffd50e00f103f4a81b19b GIT binary patch literal 74929 zcmeFZc{J4T|356DNa>xo6qPn9gcy`UtFjly*q3Zs#u}QjrKCluWM3x9He+7~gRzAe zV`7YLFqW)iA7e0>`!)K0f6E`g`<(mS_h0wpeWo zC&I_U!Espg(R~9BjsyESIJi$8v&*Jbbm=q#`13FL?GIp1wMl~JoIQXXl20jncEv|zP= zvKMn{UnCUt(>i?8Ja*HZ46hY=P_Sg4kP%a0y6mso;;O$79B|DO2md~*it}^rJ-tjj z#>2VybX%Wy|GvGaZ`om?e}C<_VdL$;Pcv6+&;ET{`zm+z?-N|>Kg0cJ@AiD*|COUa zuf9BN+gD)Oyf|DPzZwa|%E!05Mc+Mades9SffGY%ZxFJ|I$ai>8b z_;KLOJu%5M0rSP299w5wE2BfUCz_?KH`_DGyKDNavW*z^%^0?IY%Y+$gsd+PGvgW% zD83WtoQAAD8@L_p%w>XZkkul?N%GAr6RiMs+nn&!Ejt5Yf zR{JbxCY+E}tOzw}2!#=%u$Q z>JSKfU)+o&_h+vK)G-1aCP+1zD=sGYNC6|XG=)xYF^Nc9%0`QF`|s(u>f5%($4q-e z)}nWxtVq?ZN@*W<^-Y}a2#}#_#!29O2OQ#4yE09FxX9pQwO+**)Ro6+{N@Ucl_oPO ztlbi7nO72dON_N5M(DY`jjG#1O>Px@9PA}q1g1v*XJ6m#Mo4+1r!2{Lwm4`f=eh0z- z)Dq+;OGX%>RQ#=VVWPX>6R5BUoR}O3jlW@aYkRp#0Xhv`t!kfEAlnGHQUZHXzMuNu z2ab3%r`1`Tf2}w8HDrB(>`xvg+&t8>H7;CtJ)UPM3uJNF)m}RuQnwLNXVP&#a*C+* z64HG(k*5r;v7ANkUa%LrrM}e_eFVzoVMZ8^a4=P0d9N=GEd(D;sEc{#PW1>NlP?9k zTcXq92@EWw)&u$N3VEz(REE5MvEi{{oD@zuBJZ`EaE#K2?6I3mOAJ(B#hRBl-c`?7%z|f#{T{ZVW=r!G=C-AMEX8%-oYYoD|wuZ-vM0ViCKE?P__O z1Bv&`Ep^PjFe0lbJLK^OUdH*+HGR)L%KK<#WH&U;6#e#=S}VnQU1-3HW+rtb{LjVA ztzu~$`N7f=wwFifov7S*aXTrixX`o>tO>CN$A6oZ$;(Hz)pVX$5`hSXLdP62M)`5M zSEaS>HsFVXyWg1!C>RujpkV9LRl8oEo+%YX*7u7`AQ)i}+# z#5yM=>rBvEmjeM0H~;xt8n+fI5crLbm3|n+>O)(6CX9T4lWN)rmALb#7KsV&5MMGU z2M6_Xyqnd9b9Ub1C%*+FD7LLzE&&OSl$-9>PoN>X#NZI;cCW$_sLNEtdv=hi*Rb!X zzmkb@NpXY(&Ca=4K*EX7U&qQ6gh%pzZ5aeDDvEBbvNT)vxr!pL9`@snNy2^7D5q@W zDblSy$RA#EmOOghkrbD9c}3Cl#9y0lLpI*xL{v%(k|to2EXI%z0W%{hyJTC-c{wtj zHZ%9U_jmruvpVutwwWinrmE;Is~v_S5z}1@=9p7ETYYsSa7qyYERtJ#T9+I-d_aAp z!8@eqok?) zXCN(!`GG5>j>W8_h=6vx#CEz)j?sTmtiy9#lnT@i3^45HZ(CB>r&IL3oTpal$Hcgn z0@E~QT;QK|P+;at5lkrvV|1!7q1UfvyGUcA#&|ITem0?H+Tyr_MVjQVT`{y*PLz>2P6br;m?lGNid3lx|$AT~!!3Ddpf_NdM&dWdYv3DZ;2~cd9xW zOgN?y1<$8{TTqB4bQD3ao^ur$Nk-((XB?mX8R}S3O1hrh#5pf{tL^&&J5&195aS-V`(9WUcU`$st@$T^vevss()gs=~UfWLt=#Rk}jPj%HDZO zb}i3sx!8gI9()S7U0`qhd6O_*ZB|E}e8F~kIav(vLM}*8S#(AtvewvHDIDU|6a7U4 zJ>{C;Y~tQj#+{OT@RWEY1wUD!d{L$Z{wRjwVU<3AtA#%WjmfV%E&lD9ahpzwB>^Xl zU4G+GakU$bH5Z`#(Dnv;;95Wh43cYR{fF#m^=McRmB z^=ijz6d673U;_CpiccO{%Tm}y(B(BD;ZX9#_pn?jnE@JBa6J8ydIWwIR6%gA*3h|p z;h=>o-aWSZ`c&B)mnO_3_fBnEKy&5Gf(5P&&8Rx)uxzx5y5BLp!zp2Vw(qS0zW4g1 z@1;QVjFBH;hl&xntJe;_FFt+X`*Q&iXA`KXl;<(iC}~6FiA(uM&0Oh{RiGaQ7x{tt z=h+A3zN(z-HqL}tvxr>(;GMx_@NTC8eK0oC#IoD%E8^m#cW6d|X%+g>)`>M_xS2X; zPOB1@r$3`Q>#C?uoj?W<^L=RLmp<>@*Zb*=?bWhp86q5MKiFL2rJ5j*yIcm6KPht6 zxh%O%()P*g67)CQBo_qT_#eZOc+dR}rq_!;<>QDocHzFB)VohyGx7oOiPj zB*lviYNbrsO|QW62rL)lSb*Db>z4jyc`@9a$u| zv+l+`O4X$ipxrF5a=y1ohx22?H4^=N0`io{r{Jm_c}T+^S3_AJg9cAMoX-&3c~)gPiFJERjH;^Wm0!X;wD*4>h$HTJHGYOINnwoNJf#&q zTXG_MJHTjXcBedcr%Gbv&kx^WwIR0Ke&V`^;tR_-u?t+G1@=3D-$2!r5wBr>*@uC- z7UhJ6s(uZ}QZ`d5rhd#EoH8c^H~uk<^dNN}i{j5CiLR>QeY(QZH$^;#xUjD@y7%0uHnTRy**NSHkz z7HYlGDEvXxz0!6--Z3B#-R9PGK;Vq@y*C!ecnB9Bw@+t5nIhukk;-e2X#<R%iJ@DwF zFMJs_R`ioej=`;OLO*{3BIFYUekfjB2<|v&THq|%X{;?|)_L#M@Pn@2d~Z&&=6)2T zW?FTU;uSi2d7yxL&TDEGu}cgw3tWCJc4{ld6a`9_kh=J?W90``t2R&!sYYobuvxJZ zpY5p1*YJuIUG+#1kL+CKburdPYy2Daj34O=xTZwRvz|N%h4i`z{wywh6aIQDr@daY zvEF674ud{hJ+Nb&7Bk%`0`EiBUHa@>`cFmEgOd}5QoI*N=mq|<%uLPra=rtl3r?)E zXO{ms1()dXMhqfb$o2z1ZQelusWHnbxDOGjkwH!c%Z{0>SMwHPS7QsmGE*!HIcK*j zb7N~-d9|ittNM^oQ}VQHx&G)ZbC(~O_qX%>LmbCU?A>xAa|$Q+qh~SNJ@D6_wMi3Q z55-h3JS%9Sxg0`B@cu|9J!ujt7u4&i4u}YAM?Kk>+_J8|-K1{O|FTv)Xh!WtN=+df zAIEXV<7BGy__tbuT8@p_2Uuvnaf$bqew6cdQj2@@BJL}}TT+~|+38hHC*>NV0 zaVZut&<9fYzmYXv>wG9*a3ibH_c*k*qhQ?!x{n4ItvkkcqS~W8>qa6+h&gdBl*n7_ zL=C?E)xS^0%SMt+v*~knl3!8kN@JR|su&kP*Bg1FKWiLc{epv?<1L>WlWrs;VuQ1~ zCr4bK>n9XEXpMA!K>|Z`!Ok_G)eK<>>XI)>)qVE}szWOw6>2|Ne37O?41ZTzBTRac z40f>O%nr0FwJ=SShR}SHnI(}OB68Of-S+2>>iAlqi)-pK^!~IlH+C6yb(H}6j!VsZ zvVh8t-GQx(g8e5*jCW5Q4<9N$?0BPeXR>^iCDR(j4J@etS6C?ZvBwr>GMx4@g3D8fsPciuR&7hwcRla)&AaJ~iUoK0{0LrAV6SVmC5v zM%QKtd!A9K!NCSIFXcQfwd_nJzfR@n^SLS7n`SxNq)ioz=HiM?rBc}z4$?vps4r_os|+)+{6Qy~`}jzu2AVV#v~j)+!xh~TG{ zE8fE|c<#V^y+EQsc(?#?=sJTuqgM$qH$yPw1N|Dmk7@<<&s+|AQ8$~{F^T-M@~mU; zr|PPFzZ)Z#$jUie8~e0ApI=`WZrKq?ltPlqrH?TL+bQUoRa2{_VT7KjO5vZM2sG5D zpITVf8j7B1y~Vk{b?d|dLALoXD+zlJ+C_#_LC5t5A0@Qr8;g&D246+Mh2tlrwI&!B zla{Q7mmX%B7LK5l*VO>xtKEl!W~&KIh*kAIBtLPjl?Q{9Lg83urELtajwGiEqSpEfE=1!M}ohf4=YlLDoEfZn41N&5a3>Yl0ja zA_9VbQ>y~3F(9mIWg?%V;H<3Et{w*T$LRx~w*JKE%P5Xc(W#L=6Bs*J9)f9{CT7Ad zKqpJFu;7+LuvyClGDN0CHJ?$y4f#HB)p2B6Q_YYr1Cg3YQ^zS4#&y)$hTS;To zWCwZ}{xis*_|O^k%<}7}bJTG`#K!$9tlCC{fZov6r{=fIF5|u~cvv<3`My9XUE12A zuy$61+SMGtY`PwrAS1`6psic;6D?5MKwJ`Y){7#rYDH>QNLkw;`x!hT^J)`a&Il`e z#}n8VZTT+$NudmUha|c>Smv9Y(6aX6vt0I-hLOvri;kY3H3$zDOXO(Ah5cF?3tCcf zNey>eIP>00<2}EPaHv90+<-P~?s(xD4rlBHjO7>5ga_tDhhgS;#VqbpbOXm*lCI|EVtn-RR#D-IEDJ@dR_?MSyF`ox9UebXyKVnc9^kkL3J5zx0rH z0~RS8yb^J*TD21j(<6IFqT*Z(gRHV^KYoFh?cVrBe;yPFNQV5wX-Ee0YKm~mbBU!8 z+Qo3UfY~g}LQny^t|neL#w~=6-r{s+mjcM||E-cG8_-M;gr$q*`=#TaJu4N1(I5te zXf$_(n0G?&1UruxJ(;=mRpCdMYNR_J`3dxq#YUwDlMs;uWXZa2xypCxrc+l)f^?o1 zkV=+q&775j!6fmN1PZroeeSG1tR`H0G==IPbw(lt{uF}xFWx1i!ff@6GKOjM9kKB!yC;k3Y^mhj;;jX`+xBOOsI z$3gt2=8MwqYl6vzUHq|wBHhYgOw|ob!>DXTomKFsEzn{2Qtaa!(TH{55(^;L@Bc#j z#JGH?1H_~OtIfq){Mmt1j1alb=!V!+sI0?NrMex*jySOrzxgChwiml45tc6Fch=xD z>!QGPZPJW*{JstJDuo*y;h|VinZ@);L+37$b&0O|IYnI32lUhlkC=AaASOc;eR^sI z3KnnTe4|rcwbN0e>TuJo(=coJ_}!@>D7NKdB-uH|-S}PPp;HROut2pIJS7j%z(RaenE8HQ+jupxooV75t1@3|j@MVK$qZP`uEk!_ICG%H2@gd8=3>(`>bZ`s8QE>GJrIk(Vu=Sw zVocFS#<|P3<$1kMlIJWr2S_jSCI2iMekw|$M#tukph*3@#?12X5eu@h(@$Q0L>|Z~ja8&7I*h{?3U1IFz|556x z&gU*VcS|I8-0KT)oYA^n$Xvy9Yfa(3GLTh`Ly%B&6_@8q0|F@^2 zy!@r_=zJ+brc;HQm&vMIZamanY}a}zcoAj2Gq>uIM(Z)u7b2)J-L6GWfsUM3G1{Ja zs4i)2ZpCUmBrDws@J(;Ek~3#QwpS9f|1lMIy~ftc0G|zLynWp2ZgvHhp0C|tcsE-% zXja<}5#LJjY&zVW8E=J|$LdU^1uUKv<-4?|;yHSI1*n4r4+QZFE!EIEb6+=`S_UkX zHzQ-xTIhWtw)-rf=(&42L@8U5(T{GV}j$*!*)s!&9TnikO_b0L) zP1%T~Tvpqe)vwUI5S6|FG=#6w zn@o=vO`?0bx7^?w&73>5N*(-}?relhs;jEKI+Q2tqZrwtA6Jd>7y`9u9fAu9-`(!I^XIC46hE%C`M>(W>ZqI(5v{s_sT4m-DQADSSQ$SreN> zcvx%R9p(wXp5z<5IZzi8a`Lzm3AI@wjd%XT%6*l0#@u>DE3OkR9W_qolXQ`wWL-h zOzAIbpTCIXIez@fx?~&L*@)OVVelrwnIv`ECm>6(2`PYb zsqgTS!8_|nS)cJ=95S^E+1;E5^Z1>$cFF78MEXnE?sQu3Jj_&hFDaxrziy| zr>UT}&6jwRHy^!rE)QM^m?r$6w;x!pk6Q*oNw~-c`JwjF3q|NJV=?n30JaBH?Yf7Z zgp9;1UA6`gI|G^2rdPj&tzOt(`PVhMYH9Q#Q|0wo&YEbtwxENk#NsuKsD^28T-VvbI)3sWflXhv6f2j;Yt>`6Kx8B*Ig8S~_4mYQWh6g7 zu2pN^VZ=Sf0t+YjR>=;(MZXCm*-_KMBwq)2RLcPBz_Tm+3iVN&@TROT{{0WR9ZGYw zh}6PZn*tHRYs0CI*oXK4^UDx1!Q!Nroav9r8s>})DD`irlZhn|y0nD6A2enHB78bO z61g%j35I<42SUevBK|~JEV`JHbjQkkBNmqHuJ50aft<&z0f@;fm-!nmXX@M;p!zsZ zKVz;%A$>-A;`Ab=F2uRxCszo*n2&5Fytj(K?@@cRol7@&SGyk!E)eI+ljIhBH_5`w z<>{u?b!(NwE6d~VKx)5x87b#v^dKb4*o1-OcIED$JK6OuY!iYyGUG_nPDSa3BNA6RurCj*`pr0=#SN9vTORa(p2arf}TO zod5y?w1-gXuK-$y0^w^PIqRCs$9sEowDAQjXaci(+YBKG_S|c8EVuD-`{{zgJM#w&qgjv&@uJg?y~qcD zM-2wt?pyd9O}Zy4U%v3b#b0*etssZc#K^CeTx1P`Z zKFI)+07Kv_esGRv85qCEq-Iu4& z_#jnqIUN5mOTkTq_8759*qtXF39=|p;ay0g{$X>}Zu-Ykw#QAa-rAbU(C#A+&s`+G zn9I#(<7t5HK!E^tnO< z0jj$=DS=cbxKaM*11#7#;LJ@V^}h~~uUngX0An!-H%b6==M^J%*RmbtVwV@dg>W#; z{8i3$T0jAR^09BEdzI|uifftEJ{bELDWWU~_R&}0d0y;G?e)g&X`|afvr=QX-BQ(b zngh*i^-tSsalD1M<|bo0cyYQN7NMEl^%Yk5s>5Y4WT!7gbsZ*)-FUjWmB=!>V!ZEJ z)@SG4Raurd%=&JVY{(`q-%i*OwmRe@0@IO6)R>wT+kPGLctqJP)fi`r59#&r5$UrI z*)e#Q++5+0_fxE@r;%cRKQI7+jdwEk})`SfejPVsTWAWq^%ALJ1Wq<7?cp! zZ|5I_vJ8Fs!xMY#kE8zSpPR`>xoY_W`lOBy(VaB8ra4J;fiLa%Z zuHA9^%GR+Cyu6ZixpdW!4<4Ds7gLE&j#g?5OtQxTepST?u$>F(P{i7y9TB*-;=jua;UX-B4loVBw zs(gw(^?#GK9!8zIk|5ivw56k*E?pMpn5#i;0zK_rE^t3XyB0m_e&)X*A*TF49kBmt z_uY%&|6$HoY|rlP#Q*=8Gx~VZz7(LlZF2IBu+`<@wG1(#(u7vfRC-c0JB5F+YmE{j zCbfb()tK|%B0!^WZ^wTJ2yuSHB6Szz}iH7Vz0j1^o*I zyo$5lh0xJH?0UJk+1}3AKkfftI+9H|)EPeN?9#B1!-mr07r6r6#cDQeVE;vPZ@!b` z$R>-;gs>WS8;rIN)7TX!Up9l88jJJ@v^!a^xWDbu^@NwQqz^!nU;FL+XOo?6OXP~x zBEv#?=^DBd;iB%(Qd>GxZ$|Xh?b0VP?Eaz%)A|15j2h5sRd`vAoEW*nLzabI>(*}G zqpD7{DSR^;N^Yl`R`f0fLI+ARYksm>FPr{y(_-u_(PP)W#>410ody{0gJroEg{E~K z`n{t$Tb~Ghkc#co1l!oB-r5*_?ZA<^cq3$YIwW`&D~)qf zqb2q(swhNq!9FufrAeS;&x{!kwGOEj;De5qJ=rV2?+L_`J|}9t>bj+D>#*ynntOCF zBEBq_08DR0^5Fg2?K@e9ERs3qB0i7eERnS7uI?6wKt8N@U8N<2OXJRjBVbORT1)oT5np>u0EyU5Q;qw924#R$~pZh$JEw*L=A<>h>KkY40R*v~Vwch2nzY<%-nK zj1)QlxLe3KfZ^M(AO_B~&!QL?L-4Ida&q8+s-GFrYJ)0~Mw{T!ajF#qVZ=ztXe6d zJY+^g8ZoS`^Z{~7C{*(xO$-`Q zkx&tE!ifwFE3Xg*soNs4`!4`R9G#+8-{{Qq1bn^RiI670A)U;RCQuA*s&_ zo=C~A8fBifw7Qf#_O+dmUT5Da6Qnr+P1}RhRd66Gq~ZiERzU|Q!X=C7z@*e0JPtW z4Ox4F-dGPiW;&!>D*SRiR3hJEGt$aqPp-(64L-$W! zf9thW%ZQse64k8~S#yAt@E#_XwDf@NvuDniBp@QE_w4_{Wz3skz-=;I5yINdJSt^t zgxqfN6&0bsls-2hEfh$Hnd82pth)M*i>d#jO?|xd15mA-iW0)@#gkRY}7IRQ{w+XD8`QxP{q#3gfK)|soNbc}4 z7e?T}m0sQ09_+)SL6MRGr+GDaOFiAj++i%|+L1jy{v`=efW|%^8e}&>WXcuI$&|{R zgGiD9Zp>NuB)#uq>?_!?#oSzB*Mki(q7eE0TBu_q-ZsgOaX5J~$GPlH29)?Hr}E3@ z-n=;gxcbu9(ZaKj|95y5Aiv`3c=MAQz?>CY=WV( zI?8%@DGn*1y9JxRe3QI#zpiVz?Kyw*|J$a@zFa7_ZxaEWNzZ(r5A1i9^U3cJdRk2 zS-21|tCx{Zg!Op#+AAD3;*s^33XAn2gUgjm+k)I2Qb6cWzqqXR&FIZ5UJP;>$w!zLG;wg5>vYF82 z9<}Cg#8z0t?Eg$0;~Uwes!OAI7}kM#95#LcSv|{}f6NF>a?ju_z2#>@9{_~)(tqLN z(m3&GsBzgaY&!K`wl$&!KrA?I$*H7RUu))I-zDTLSL}LDF=Osb;BtffBb|*nWR1~r z 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 IQ_zF|2ZU-wfB*mh literal 0 HcmV?d00001 diff --git a/apps/www/public/images/blog/2025-09-orioledb-patent/orioledb-benchmark-light.png b/apps/www/public/images/blog/2025-09-orioledb-patent/orioledb-benchmark-light.png new file mode 100644 index 0000000000000000000000000000000000000000..578c7e4aac60a0c7de3a0629c9cdff8c58e45152 GIT binary patch literal 73535 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 weWas&o1meNZ~A`oJ+6LXu|$BeZ)iX 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
eIc?;9Mba{_nGzlru=}vb#TjdUtoI`8ltH zv;SYD4`8Yxa{ZPRlY{lZUqsN1pSQ4cmVx(r4-|b=Z%jQa&WHC|3P+=AAMT34Zv~wC z1R|@x+TQMZvD5O)uR$9`Jt7OlIOL>n;|6Lu%C8TuJ{VK#iCZ;KtyB!>9H`e*T%1>+ z*cV>-di{WjLwnpW03LU1raVtf2X*N^3`BSX*crGu-v@#h3tMVekF*|t^(D8F-I^7k zU@vs;FaJOXfmm6FYzorx_{fHIoPguunT`Udz&H)?Ez}hLq83!&or37ap0zvN{Vi0hQh! z3!%uSsk2q)iHR@$h31aj(R$%EGMXN>8pd0!Gvm-ML!6C2-Lw9i%GpEm^c|<4HAze? z7}yorBGJ{lveH?wu2WW|={X=}Lhn4Em`I^eK41u*3!~|iGGr7=(FL&Nrta~cBn6nB zxL3TSR!eVnx;`d6l{9m;ebf%@F&Pz!vcvczS2apz#+T=**HDQj3)04j4!?OcJ3ibZ zCw?jZXX!k!=N3@GvnaaA(rCKWwfe6MJa{ycJYa*8sJS)2vhwVQY?51y3CTe+Y#gvj zEQ*fF#ad$YI44Z5>JW{?B)xmIe!5rHG0~)H?HZzEp{E38>WRrFg!dB&Knh4OqskA< zmHnnA543i+hL<{#tw43Qqbah{yTHGxSTo;x#$*wf8oc)Pk&u?Wt^#VO*T?dSOJ7yM z0=><+E3VL7a!_tI#Z?^kv}&yp^(cgx9Gk7 zwx_JU%;KefFE6PzM_6TkziK%?{$*9JcX<=}KW*ey@w9f+C_3vHrSXpsT$H7>tI&64ET) zL_twtN%MEFqvQfE$s+{iSmCm{QM>}<()vPuz!o=dIsZ%fj^Tv_jynl*KBEoEmzD)b z8$O28F%3PBJA_Ql#Ofwq0C-?3cD@c7w{R`0fT*fgCcfC`7N*wlfrbC|YI2nm`FuDx zujsfuzH6_eJkDu3p$GE|4j_zLnUmD}8$eAzVadGow&#==#TyWI3NA+jId3j`U4}T_Rrb6=qbkbH|3r;s zByK6)8>p92cxCssCT4kTmTW&em6vKGlDHv(gFU8!IvJo$brmh+$V0b?2gDGYiSa1%B_IJ1S*#*)LZ zf5W7DKHp|QU$>{&16-%Z5YZse2~pdCec6}}RB8Opq5}Pj!9A&fnu7f6)PL8Z$aaZn zb>u?7mjy!>gA6qf;3P<&giCr%bTW39A$9>Zy9KhCzx9MG^)8Swjsx?CsByc{jXl|r zNg+E3y&CgJ`ut_un7nTRDveqm{YBxCvW=}FgM!b#XWkq0*95*NJ>t6|^&Z-cvh_7O z*o+ICN&n%4hrF_1`&Ix>?`%q|PJ^@MJzOl>s1$$$Z@JDxXGqs);%bXIo9cagj>7v4 z@Uv?`p&oy(8M2xBHF){qC7^&o>Pevoba&@Dk)f&tC`HRF)K^IILkI#aO3o8_>YX8x z{m!I;hQLw7v@gz}0IC0_^H|T5S08aU!#+sqY11fm)`}8R5jM`FnBkt9&UYg#yHa zao-zcq#cF>F4_ys9?ERtR10Fs#kOC=kZ2lm(M~)JrEi`&I^(f7Z!&a=HoA9@bS6gw zfX{n0Q+VG`SIhwLG1XISY#~E(u9&hF)WAyKv&bzLO2(#-pd79h04n$c9aN9!0QC^K z7%gTRRcu-UWL?R7z5txr0ty~r7MUu_SHFJV$O_GZd%wQ_4LVw4&V2;JYgOk)t^rlD ztc~d?Ubnr(6G9O{(VCVSMp55-%$9=86QrQ%J)?UDLLJB@&B<&60fdU?1mEdc4=0Cy z@6mW=^9suk4?fT*E>PRA@$&+_rsGRdLg)v3TmJ3>Od znJDTe`m+rncF0?>V$mZwZ&Q=BsHvRrimEvuo(D?+9A(+Z_qjG)Vd0g$cS65N6Pr8Y z;!tMdZx4WvS&?Qw3STf@IGUqNDTxZ)t8nk9XM0JjsZaxbB^wmza%;bb0vEkVqxBMo z?K1dVWnTfod)~%nQU3fL~um-O`63QdJqst*%QE|b`U2+ju?B@?u(_lYC>eAAYaTixH zs^lwz7M`96Xl3?TdJhNXoE~Oe$;!`G9Wc};v~F}<5qjfgw3bf zaL=jBMQ1AlJuGs2ryW;KxXwgW9A8CL3Q zXhnK_oePs+h}qTN+Kq0Ne|Z2+&@X8#SY28k{!0JhPg)%<{#Yzq(ze(TU+VkfWDl;4 z<&JpGt>Wx(`)fIbfJXBo&1t`@ipTPyMSMyE7#4-%#gwV^%FLh{Cbrb)0Vk`{XyK*! zRgc-4EN=i-{e)7YJh-O_gjS<;AGH7EYQgYVR8ZahA;E!oomQ!+> zmRKSFV2*=A^8Au8J-+SSW8|ap@0r7W_$b8upC*!5OM<3 zusJzzsG;aF)m2BO8mnrb7?0GwNViVFMl{*3pQ{*6@KwJtH_t>q^!!p&DegoMY>H^Z7g-<MLe^kO-wQ#}M?QC3!H*5Y0JLK$-20@70 zZy&r3s?!&Iyfx&P2D-`rr50o`oKQ;xqnQWF6)m7Dgoeod@q67|lIO8OW7i>s=V#8h>{>K>6DWVhDgvo?;91iB0i9@_~D1^1g|8@cL** zz61RffFA)2^LZTEYXHq)K%kokJ{PViFINu%m8}y93;Y|T1Nh5^HqUso*-f;(yxa^z ziaHXKd_eMN3<`W-_h`R~UJiq8z6H984nWvI%BkCuku3`VzU?4=&H-rgjSi&ZIrWyb zq-508D9S=;=RfhyZ7*sorpvPcg8&k{9z#Ap3lhO(_j#46si{B6B8A(sB|$z8lD6L5 zAB#B;kPKJ@K#+!?_y=LMF^dg|_zBc!EnvUZkx`HusUvXs9SY6wKTH6@e_bz;8FDV zbA|mUw1VC5JW$=A61-S+DdipBWO&svtNxIwP+gCauybBSlhp0nZH)$75Lvd35yFsU zX$v5p;3+^J7$2O|h?9!t9GBPl#dIC&jTy?hnTgGdQ=;%~*Ia)#7=!XFfIH={h zadN(C$g1V|Juiqz27;p?>?nWa-)$-uo%DOj_ymy{*YD9*WT#lTm}#Rdd!vEu>I*`G zd@t0M76COX0hU{enk)jtB^FWLRG}W2H!mjchY9630rInUSm+9>60t)}%CdSU1a^)U8 zW&chOzg<8;f_he<*Z&|xA?Xov-Eb^=vA+wV+Q4VtoP!#(+&w&igaimWhO;r4Q_#?N z;qLdVe>ktUU%d}^aj0hkUKGIBkH!Lwdob8O#=A|#58+<}ya|Hg)vjG;UVnr5?-bt| z*hWnP6r3`^3;max#zj?Vkt_-A1C}IYzt3dMu1+lGAmyDX`6U|v- zrH+34ea@+ZCh-v zurUSXmw?rd1KpRlm@kY50b8&!urRsV$6MNNLEGI9`XC|Nn=KFUNrfiD8M%Nti;;u6 zPM5Dbak&s#|mk{7NZp?QvtSMxK8SyanakbKU}wHGVUO-3Qk8w6sJa#3QMPpeyk z^+K>o9Su33m&zcmSCIeI7H($DwIExUwXpZzVvW4rqOP|aEC ze)sS#OqQZha2|RLlw+G=z~wUzl=Hw%@9)xXB;p+|bw!XDe_ zXj)NE5zkE3bDTQ0evYSnWj+_v@*ulrb;^Z|+HN-OShQD|+q{<@uNNoEDM^HnRCXnfpK{dmaYl|6lv-odM@vvaqn=R1;@KPE(Jyf*OJQW**3Uc1TeH zm5kFN!&k(_d?%$$;A^}uAnF>!JeltZxT~$%=RR#QfgRlj=1(@^7d}FLahhNhp#gi# zX~c_J`85J`3qH|nlQMd;^;H&}&OswQCc#y_Y#w?SZr&z^N>gIYMtQdhzmuUgUud~$ zvHbP82D36PG?FaU&=emT~)@Qa}g5y!Ib5hY%I0iFg@NA>-~Yv{A~9leI4yV1%9?zt6W+nu9y?6ASvPT zDrXnd@i+wPxrA+pn&3GS6QC{AW#>q6}elKPN6k8 zSR?ubpH2^nuX_g>WhQydHVEx)?XoB}y1Wowvr^ZGSzk475i)a(&wO}&Vz>E~C{->! zrXqp@-KG@vE%hmO&Eb-C-yLPoBUAfjoA~51ZKIImxEYcDl3aFJQW4>a>RG>4s)YqE z?0?;oVZnzoBSf#`b<@KCZckL>1E{V9`Nf!sjMzRv(ihqq;XtP@2~_4b=8NTB5cuCM z^`t2)C}ou2|MzXTdS0)XQ#YexKxA}G4-#c9;+)Nx5!-H3z8aA(cgjSebkaXySZl_d zUV5;46@-N*q>J!erdO!YI+Ml+5(NFWJ1VaI3iCp;XPGn^1oOUZBQ-Z>>DUe=OJJ6o zj6+4Ydm{F4>`47Jh}8ib1LM|Ktv?2JL<_gi+{gaN;#!FJqBy|8w(Z$sFlBP;y%nbt z(_zGN*DON9H}=wer*0u##{P>V#hX4=8mG8At~Fv5r53ZVqGK>i z(U>D7yQp_FFOj$7K@~qz%O)X-SsCJo(rnvKAm~|gPL)%0M&f7u?4)YnAU>oEdZX1~v>ii}PM1@gyQ&w8zXtMW zaFL)HJADhN9EL(aLB@OWfAKpIB==cH0ymT0n$3M@pB_7lJrVi=oNhu#D#)<>;a0At z1}*J3R`vN-qZwP@|we#iA+=YiaHCcIWu|3g=CZQ^<2uWPRRQraedgln}v z$ojZP*6E8}R^LJw5x-;`cp}KCW^F#VkZL09ZunyU!(RWkquxJWmJRBO9XDvVo<J%cSMw`q0@L&v7|Kl$m*wKp3XbvL$@IFgo4q|II z=#)q)z2>xkTFnW$amYbnK=`Opp>3$z6KpIBG(nR!E3eHaoO$d$EMjrV#ykoshaTb? z`0^n9M5c~Mqi}l6sNCo!`mOt{Zz3>p934@PSmqbma z^%!%jXtl6g^Cr@%ye8(8Wd)`BvNva*$Xx9D`3->+BrT05Dt6zmh_^F0RzjRM^<1n* zZT%ff@cX>7h*>Wce%oVYc<8)OR1iY|ofxJ}Lb=%(>nY1$uniXE^;c zB;q47)WTKGvQCK}786*Ko`9&IYhlkf{p(k{MUJYoV9?%Jb^x-&0U<};5BKQQG+tb4HB@NAxXG3sKNu+T8g zM(r0`eSW2%&w@m)dfnFE{>%S@(gMo`;xSdwp}lhrk`?>k*Kf^zYVGtRU8@NFpRjXxD?PJ|cj>JrT!BaqY zMIE-qEnDYc4O#c~Ej`{dtFSV-ca$Wh8(OqZ!>nnM)^&9*A{1SUJF8h+vZ5S9qLOZB zVQ6s!HZ8lYdo_x4^eV2wn$`vqPX{$Mh&bw8(pT`3jbsn$tDo1J1_DBSq#?_v389;4 z$4`BLjvHB~<`NW`!P!BtJG@BTkwZSH$FlrE4?s~64360}OILlw|-*%0(ns(bAxqt3Wz+xV>u6wvP6t61~B4pvD&5gH$bEc1wL@pUJp>S zdQa^^H*tf<#SCVCGx*e}DiZ(c`5_yv<^H9|%Ln23n8UDC*_le(1A(38v|lb2i^?z$ zrH-d4icR_=#&Xu2N2J3}k#6h;66Dp=xRS7~GDK(YahXo;#z=27N|DTA1G_2YbcVko zr(WIIo3$Rt+!km4yPx(4(n7Z1_a0^oLLx|42EQ@twr2R_gIS>nWl>X(rh!M}cY|`4 zCl6Q>ga4is2)dzbU)o*Fki&&FPh>_~=!Fj1|4T5|E}7swa4gY3o}A1ggBr1=@?m)OS0YD9WhEb0r~EY9z|TOs2|$dbQD#h2P%=>nJ_eESXW zff|z%W%Jm6!b9kQkKBwmq3J=U5qonb)@b1_G5hAP0Vj|mq4f{c1D!cwL%xDO)rDaj z42NEY;;>*A4ipJsi@fLeFem(cH*BTuM5nt;d^u=lp!>E;$1x>*bb*;)t{ZLxW zuDJm4lcgv)hI*Md14k-MT%DXO;W?V|xoK2kv22XWIVozCXZh3rbVdmA^RI*3dDm9@ zz3Y_@D$22KKcgl0>*}=3+K}R!HEB|u>vWJ(kqURJ;h55;Y#`;y3hy5LwZ0zSL-ljjozRD4P#S-xocjt8>Y^v_C-Hr3#5w za5r7G#;GMO_r4o?F8d(YP*<7w8IF>LNr$!+MxE~+?IS#@&`_rN^mHUd^;ZLs8%Wc2 zQwq}O)_!j>UFl6LnEy>nTz7(B;i&zGEtKsV1kG@9^I4f`KEnAm4a-$u$3EbacHO=N zfFi)HTOJB(D4G$`)XM)uz+ zt#O|fa=%TO4lGCQGJbdGHkbL*s%u^CySLiH61ScPN#&!sIM|w%n&!%=OS926a@1x8 zQi?V##+=^MwI|pp2~kFShOemLr8V-IKC0YzQ-BM3RXz0k55mnsBGr6R2C#Qb&%n8b zH!2xeN6;`11cV6W{O|M7(TqJ8zXjaBUn{@ZXYCK>yTc;6l|t-mJHu1{gZN&U^<2m_ zeK1y*V5FV0R-ptsNUbS!$|6^kFsV<>#rH?hO_h#FG)j!tp^|8UF~vDdMpw_J*6zEB zwuG4LC)Xfs;nD|$y=+gtbsuVwaA83PW2QvgRYge@oa4S3CR}-j$113C%=}T~ zzPQiqTc3_3J9R(zY(Gt^?YUq8L%b0iP8Zln+-^wD6W367h`qiVCeeLgAh z?BEZIU4D@ZJe+|Iu5dSi1xVu%`j-N`ROIq`*ggXEsO#^3S8HH1*R_(s@;=U-@@zVixKY~Xi9H&1$$j}bIE`9iEklWg0pZvBAdsEIJxc`@-M^C+T zpNI(s7k7e921YgPpr|KlfMbGTYHMgXF?P&FNqes~7J={jqqt_UR<2DTm zI*^cv@qyQ*gdd~Z&pN*!QZ(mO8s2W4zkfDF>FE01P?>vx z8{3x7HXq2DHOvv$y4P&BG2)QbaDOWs){0iR*#G`qu4vMzRnnl!Av4MDFzk$5BK>vQ zBE|Pnvq;IR)u4sb^1j7iMi$Qn8T%6%tY))p3W{pUqE-lhd|d!LnB*Z#smeNi>JS~-GF zLVQ-j8y!)ml`dM(ysYsvZ8h?qJe8{`3OnTsaIGk?r502cs=U-g*Z$3QlycK425ysp&R=UPK6REDyIASZj#T zeni%pB^u$+Y&V+rbH}>^;05rPB;zq4La`tS1INFGLF48tP#WIfJd)K;BH2QH1aRmP96(Og5CBh(pyd4&FrYV1RmyXI zdPfM_8e^pW>Jau*?PH@3c}1q##EP|LD!@tuhWQF5eFf3Nrea~E#FI~3J_dU^v&{PM z9D5!zMkt&Zny#cZF5TbjckJ*s2ff-b^rZDiQoVWKiwk-Qm9ynmS7Mr6lsQ|JzXcDFxpWba$Lrq|JFIxrE$&$v;gM2y<-QYo)GzVk zMZ2GPQ2bYZ)gQ`Yhr~NcA{ateq%|Gf?G^mSXKpb{&|BtPWq2=vgTWLe2&`hi?Z)& zqp37`xX=d^s-Dje928MD*R3riD9BQODqhvtwYpSCYL~E{yt^o4@U&^zQ_5m47Q)FB zAk^CL2mSfyK#d7(2Y|`jU8W9e9b$cJmCK_h_VzrLpDkah1C&cHJHb zsR+jRp%;O5Eu*QH|SpiGG}g+3NlaoYVW&Dm}WA-6o13>|3hCPTZh zqeL~*1(f(7#!&(KQty8T?(EIK7aLG#p{dhybR7l=4g=<<=L%zw^poBT=E|uY*QfZ+ zCJ=fl{&@y-GVA{47v5KPJ;LgjcXZPa-MaJP#fVQ7^7i<5mY96PgPN5Bt1VoNr!Jh0 zVjLRQ*$J~!M|K|f5eQYvU=r!vCMtz8&(M~#45>=9H_tb@uF|qNIfU#vf~4SnB0-x& zyLYc;9lA2=Yzsz?q!@16afb6)9VNZ;=c!zY4DGgqY)LDwpQ3oMpwD*lHt^J=9N!m% z^ga8Pdix}Di$SXmhZVEv`aG3{zW`SLyu;U%46Xm|uc7+AvYK1kjxvUoG>v-nT^PXc zq*w)XxdUguLY_g+tt0Uyc9s=x{o>$DAV8xp1|ePQYIE8O`22o;_~tjCa4-_ad9;pm zyR*ubS7?-zJPrA1iMB}RbPGIFRQk^Ocp7Ky(C zkkl5nY^j&d^yGcPQL$ZqdFty1`Lmx%$8(jJwU2R`3}|0`Cy<_|pDhJHeQd7DlDW3c zEot$jL6r8TgXVS1wdI4sJgiN8y(22OqnsaM_kEVRlfEtjjNus<=+nr!Z^4{p-(&RU z#p1Hjz8`LZk=>^ssL&eOV0=L1;V7WyRE+Gnd0dti$sB}b{+zZ~!}8Sove&z zmEzKn#*yd`7}2@dylA5Uk9nfu-eC1LzbvWy?&(zknLX1g&h2aaD!y^-J~}E3x3v%N*c_o+Nb7xypDhX(-)w$dhH>0U#8ZR zDv%z($SEhOQD#>>+E77SCbsr~zgX|FF!VyNct0#bjNQd}ugNL*O1g00b&MIVDkXs@ zUqpxAxCe-E_E=4g1x~A~m0^j!Ii{2Hd&NGcTZ(p`Y?I=59~GFxY=6e+b43dQvH#Gj zGlV?o&a-Ic8*|=$pzlfTWnbzYf6XU|^ouucqtlbi+ zZHX9$oomjz&0$(CVZc{M=v z6fMCx>@PeqGc&rl%N`E;|IThjD21Lc##x2+I>vYY*lwKEbIrRrrmriQFAT=7myXY$ z|H&^R;Qk=$5YtjF8~!QXPc%c=RLb;un>9kIp-tuoN&-`T?daXBr1c03ksI-4)RP86 zAM)o}QC;07MOG{;GD`~%=C6-2tvfFEdr3dy^)xc@g%6k!bG~}%(Ou9M(0K;4-Zw}~ zOUt|koVX9Ail4QH$dUv|Rl;Gv)*U7TtJ7XBK)bewdeuPtzbY8E_DkRIih$v?yr9&C z7q*$96MDUS@*3Gsd0xf7FDq3Zys8s$z_%aty{LZy^@dyEkqY(oYF|2dR?HXdiJtbS zvkyv)#2%if!a1|+%y}{g5eK&$=8sO!gKQ5F=%`{GLj;E&A_GR92p&K*WI1&`{(TRo z$m9G`?k8<vkXBR4->U#!4vU9w;MTg)Eae2wo~;5 zF0a~;msBl`yOn`60pN)+C)}VyR|xQ4WkQbAQO4O{=i{w>Jix+MFih7eUw`5V_ ziOL)JlrQD*HO1-u5m@2&wp%?D#6|V7de}j5Mu=B0HKc%;lbkHz*q8@Z1qbH0yk(vN z&j1TQQ|dI~P6^%;e2UANa&IHWYv7vnm)TJ}{;q}Jo#_gZ zK}HBNb8!KE-zse?$`DZ`R60G?CKFr|w-pD-2*>U@P!`YRIj9KD3j4YA_ekKt!zNyR zcR^1eI@a2ATe8uS53)J5J^3WViw_ji>`dSnvJ6kufEe`CYCDJ zM}J-~CeoB&POzv0KALfEy+W02o5Zg>6+>i+T8s3mLsl$ZxqRCGjH%$F#gcZ}N;tRI z+L~*B*Xib;qv<353o!0o)Xc1$#vJQmo(A7cj!%$+%aH#G=xMj)-ZcAo<&Kf~-^3G~ zDdWpc7Hh7axXekC|0u9nO;B9=B73fZ&2r^i zZM?#qj4b-JpDyMAYxe&`)qBTN-N*m`N*YH-WfV!S${r1eE8^rB4SOHN5g8pTJM&Z= zL{e9w2pzJ=aqN8}l1l+6N$AJlqS@c8AiJG8*+5SAd$VC@*nvM2z4Mb#>_NC4Xfm%u z-d~nh(1VaZ{-%m)k3NwV@T?K(x8Z^9l?DNc#ihV#+G5wC>(iSXJBj=&m#0kh5BQ(M zy`0kA^MB4^iCut?PiG+WzWx_-6~#*IVSbSAM~f&uHXgi@re)0xnM;3h4!A<%6;pWs z<2@4F>GfS^8R}w?p*<%E_!OvS7rG8xRp}&621dfAs%t-r>QS-D)5Lxc3sT#BauMsRmDliqh zb%4bxWHVytKwzI}hP{Y%J#~ec)2lz~1 zWq({;LGIVpZhzM;pC^P%&M67{x!H|w*yVL#$N2`P7pQQ$hX1C#xu)#SZ%R^i!zIpj z==nI?Dmk3UH!Z@`Wtef;qx^lj_}ILG6KBqxU^9|o-F08XWua&M3{N^hOZUR@t?4&v zBrXSGllTkooC*%J>z`Bi%Jp_TnGbs-&8@Qd(fx5y{P{d_@9^_{kdf_oD5pj+<$Y5T zWcEj^KVZ!R_sJHf7;r)E{qU&e*q3KOHJhNT2d2_-$1o1qR~_Kz`u@?tMAPqk&YK&m z=(KGHkkUF*lt<>DqVDDiaYAbLDA1v8WyP!ZuBwq$cO)-zLXX{;dBP4amuNUB-LL-h zgKzH@g`f`IG9jyir%O=?PY-Drv8=EDhq)|UdF4lk=@5!F6#oeolkNZg3IDQX7Y>sh zS4=HV8B*#FUQnHWZwpdyQ9>F5Y#(J=ZUBpS#0fER+s*3N%*uzFpjA-ZShg-Mr|k`& z7-4&=#_b}VME*i3RQ@|rRw<)l*qV7Xpt3(C@BWzoT5`KBk4?QUw7_ieu82r|*70RB z^>spM>)r~1>2|rb?q{q_8JmomXMOnk)v)m5f~#T{F9ZJQOCurY#pAyr4b;Q3_P=pjgJljAg^{f zvxSUM&lZMCwj!ip6J^u4&{|)NqBrZ-&|#W#RaW2c zuc4zj+w?@^=L-8~Dc>=G~@ zZG79&VFRINgUgH!G=Z9nrscXnfTPo~)bJ%;WT(N4J)^rI7s5>j*`KSz|Jg#z`C{^~ z-;ben_<-BR>A1v61?1E$ekZ2Upyz-l@vM#$V}yFd`^ z_X;Pc4ve*Go0)D;ZiELa{lwdF@BiFDPfTBhx)7Nas59WFOkgQMDkJewZ6V!)_k*q% z+D4YQ)}KBuI)feZ0;LMg97@~4w*J@txv1swdD?MTM5r3-MR9`ca> z9GjE}2AhQX@8|AKcsAV&R#w>a^0+=}2D zvI>rf@&rjlno6BbPW|jDGkT&6nkfbz;7>{tp zOgx-?0@Q1Y>e^u|8W(*#7v@o5g2b@Cm-0E+$otAQCPD7+C+1>9Y@Cc@oapoLIwCS> zYJqQwY?pB0A=@W_KD!xbl%WbFkU~D$RXvnRPOq)-bJ}O0(Fkv7+EHVVL{?_y%Q+s7 zySo|Qup7Vkui)mwwhc`j!pugUS`UJAGL%WqfPtVgH5TcNp4=W=!4anT@X!jg!%#VJ zvrjhI_VcFq`V0>e);tL#e)!9M$mo$WAPQ?UylTejtZdi80`O|yKmGkjJ<6mJ90WbI zmSc%>L}ZeyT~M>FY&SWg5kb}|T81l4lFV#7I2SA=iTp^WQ~)@v7>1;>x~dz?JIOq>+K_iu3OuFhh0^B(?Y zr4qPuum+=rf0z_PMvo?)2V=g=DDA397~N_M?<029PYoB$eeTT-AKVVlVHLIKe?*J^ zk8uQaQfTRRU%KcvP#$8(d6MQb{vCO9{1{1SE8?Az>w^p)jx*Sxxk+y08oq+HQ`Rr1 zZ)iiS6osZ)dCU6a{s-Ncpy5w00bW_i5Yi>DwQBH9aBiX8grf|5WZeG7Ov=<=h|m zgY$Jh>6~OGUwr8boE#4fgTKFt(p#7=(UwK{(Fs1o7ltNy^O9L8!vit$z$djAu&WhI zoUZ;a#6zJ$q`hQ}MgOV7=TWd$KeKk@+rPXyU~t#Bm7g-ZX)DPMCwWSVpjP=-N){0W55 z0kDmOHk-H`%w^6i6_2p{!W5sA1Ud`VehmwChQ!14V}v(bQTA;)fudcU-F)_UBwN47 zXrLS@pc~=w=p5)V9G6omtXxPEGvn^!p>Dz9l;1|1bL9#3mHD#DpCQJsbG=`tcBOtn zNS{rBXAmr8T0#z|K(Rsy74Lvl-a0^ShBq#e13<|nh2<~`_cuqGJ7{u~wo9?m!VNW* z8k6>|OsSb@@m;8O)U)EO1a%e8yW8)W?xoG~CHy||n0;!-e#f(5(l-+iQya&QC`0U+ z88*clZ*A=+1*a?*qCN{girK-m@ifWJwlX$#LBCvs`h~3gF`w9SGzPP z3LA`af1BKRDXc!a;BGV*UOlr>r=3N5(Zs#Fc<+i4r?OK!D#W}Tq?FJSnQ%d%(+~@Bxz5uG} zQNyN-1!9B=rNh>^kR{1-BfYjYBPW5g>c6F4=CwZFYV&Cg9& z`Q=T>d0S$BSl=z;nyy3uUPv43Q#1Em-!YerG_8=+miXCZR9s{fUz_|Syqu1V!z^p2H43XFlg|0#XzZSK2kz5iZVA?u4hS4TpMUQnm4&6M)IMak?k z%6UGy6(=|FwC$9 z>CH~Al8KwTD_3PsWAENnws(J#C!cBzpq*J8a-J|GEFw( z6-U7rhg-WsV44(vRUA8|-z|Kn5P9aK#aKqeqPD_Smbu?^Dfym5IyeOYeo?dL z+H}U^;_DV(K3;g)v;bQt^x8Sll|pPPpAcb*D7obTSK?@zhQ!Q9@Nj)Ma-TNbY<$Rr zt8!$QT%AY|fv;@9Kmkjnt`OED&D^afya!S3z5z)#(qUI*)T0l5ZaP>; z0CKU_$E!jbNeAg@#xNQRieve0hn{u zPc7|U%??4f_HSE(B*EY|xVWvN^e5VE0UWKg$7*gAKb`aR zr6|jpadwI13pnbcpVU;wn*w~V0L|?Xi;vR(59mdIb=S(i0b<@CbsnUis3Yb-l-$FM z)Y>?qB&dV)`Ysy_n17rOo(gHqr2 zvXdKrU5aQHKD`I6o5v2VgR)0)K3>9^PJSShmRn04ks7>H7zJ?Vgf=QWH6 zHQP@q8FQ(`k09Ern|6xDDvKw8d87UE`uw}a7{Y1Wg2X~r_q5OC|5~bS(k5$Het&re z{sKuuWj#k78Fo~$TgF^MlpTEg#7e`XivqM7xJYGGi&&t@#KPVVq^FC=hj`2_rlq1` z?3VV^*ZV0A=ZhBo@j{5@a`9an!f1Z@527iQS~|P|#^^8eZv$k|O(ab0UDK zykF|G1Sf0!8d#YBuB!lL6%dX@$PkuN8bu1F_zU^@>oO=QnL;{2_sw0ehm#vdm_Rhx zc-*cktz0WJYnnlOO9g|cm2^Wa#=;3X8>PR2-lyyH7hrZkK`x>JB>3;B>w8>O(EaB!DS1zNP~%J5}@({mU(?F2!6;SgDY2ctLJ z&^P!>TMvp=TO`rbj7{NCDdIPbYM~W&eq*>bmLwGCk=3vC`->K(mX)g?fIZxr03?>t zyvU%9r}TG|XlmHM%S_jJw&$Tjmma$eDV{whqTKqjjZLviiT&fH7oxB!y$}Bm{N*MJ zy{4^${%k~0$g5)Z{Sl2fIsQCfHT9P(vM05keB1X=IS*=$+QRwGv@vtsUr?Wz*dN0Y8c zQ@R`Ra(eq*b^!n}0>T07;Q;k=qFT__uOchJ_^K5oeeK|U;sEu4500%gq!{Ao<~h{x zKF>oO1eXb21g~WN;0Xf-a81n&H;)}6q2_Woc~R%ZNG52apB({(9Cx0{1yTW z_58!fdC)QA)MNswDHa-NGHog30m;MA_UNoAEVzb?zGq#==SBB_i}r*}kl&2<#t;OpaON*G`We zX3}aY3IF~)N}gCyA0{rd5?>~&3Kr!(Lr==}`xs#WlMW)QEHP;DrV#*=>Nr8-U56$2 zoFjK{s+w`?LaWSlv6A+s!%klc8qUiq9uKvPFG9Tg)u*heK<`5jgif?GxI-9mkvjg} zsa~?jWlnYTLknMEkdRS$&rwlOK^04@jUG}ESf1;UNluI2ZwNDBSYgfrFS5DR^uQq_ z9^GX59u+e4+bwkm`I?!7zSOy7m-`lWymLqHXzO!0J~gxZH%ZW;Z9YR;q1q~w3-4#_ zp|}GJWKtJWgTH?i5dHJ{NEsuZFky6kvYp|PIxP4;gj$WJS2rKHgpyhiWo|~_*D!z2 z+qM3s!pqcG>xG&KVM*=oYsNXiiD22cEc{5Epn_6<5O|dyzO~?{<;f)*Qrrb7_z{Ek zJx7Z(`z0086nsMv=HUBGA#MD^TFevd*q!wb?e{5`Odohx71^Xbi#P3f?aD7NOLRpk zV$snnnudR_FKpe1kSh}QYPdpC`%Mq>&gJsw#t9wAm$h}ebJ(KAO`C8jBvnRf74#M&iWMzIJ0JYkEPR{Q2VtFYVS zreyOTV&-Ot`o{3(!LUHa){rSZ$FgzRJjVi(0UwvFI;*z6Aps8fY2g=YTsdXojNrd8 zkK^Yu4!Fwy^?O0mq{HBB=(4V)7SKV_Z{wcv?*|w^GS3-JO;fjUl&&yfZo#1ou}Le2 z3%eo$()FJ0D0`{TJ_~b)Eu5&i?K=1n+`5|EJVRKo3C~uYq+Cj3r4%BOUSlzv%3y)zFNByEKBY^RR7b=<4ljfdOu|!k#}vU;j&&2oD^s$2QI8I zF3(ee^&@m&Iww=+r$ypn^uUU)>5IZYX7&L_cafjo3jBEE^g@JH2! z+#$=N=PzwI3-vxqK{88f=Tm0(%-CfVGr*iN#+G$QW2jwy7hm)qi+bGpEN8?KKc?yA z=3IM$cgVy|7sm>woZc9Z@MA5|MFU#{s;WTT6_LW~T$%;BQC5 z_VH!dq(+f~r`fMdwpuEU*8V{UgFeT5fs;8Kr+8j&Rhb*}T3#G_v3UgcN2B7a zwcWKoz(F{)kbCMgf+YcDa#v~^sO=D&b7Gkx+2YZk5jDX7?FpHt+mS)L314b8QT1WW zJP2Bj3X)goe!ip3Z{38pX|AT>OxDVSJ?mLo9H!aMHEe4=x+RAdnO-3_3RIoJ+Kfvp zqW8Vm-k7m-K77Xl9kQajWiPnc*gxV~@E$nBbM?hQf({Ch!kobkAm=pz(6}RxiecGw z&4kO6D~zj-&UCRwEUvY)C#Lr1EM6$rGV5#g6DKuVeXLT&ws zE3Ms9%p!)?B3;hCeu?veo`x3*CBbBTQlD~6!zI8(8Z7HC&0kV@-v*w*-@lh#<6^qo~SXm-XZ-Ts}L#m}J> zR9RdQsTzI?P8kc67YH8>DnJ%(gf6K1bK(`puvO;nA|B-Skvb}H7Po^zC0=x`Twzi)92GlsiZX8XETx@)#npuhaeM{naPv6{O z2~T^zmAo5#Rgv>&z|_Uog$_$^uow3V-uHJ>dE3Vs0X`h8M8;ThqhFsL{ERiWoOUO#;2K8*MTwAefuH0#3OtDGhWC5oM70pd5kV=(*P)E zS}gh0R+c*STw9ynwa#LefW=7Xxm0q9zx85Sbcz4tgTq9O63tBWU97fnSGK^j(5Tkt+AId$)?9o=m zdeE={ix{UbGIH#d^jXn;SNXHI*%J{hN$2mUIUFU&X}#V+{WX! z7Zj!9-Z!2OvRR3Rl8doB7$>*;{FsLp;4ADzA^1>MRUzX3Tbc{NGx2gDPT$o}V?Cxr zYOQ5I66cGZJ_?ZzQClU{ubl3We0JI5-3S5$KW$ z`yay--~Is*k@%siPMIuG=QdPjyPh!%mJ0I{V^k7sO`8x|75%4fg!MM zOgB+VprUP^P9}r)j^>whrXH8k;aHE;oHbi;LjMia8L96EpesO(PAtao+myg?BOM=6 z3V#OaPJdVho6zF5!mr4t7WovOD3WUHKMe&ij;dta0IMoB&8NC{x3j|T%eF!|^gtpM zggVEx*f}a2;gwZ<4*9hY)Znr^Ub$hRMIS&_taGI#d6K&Tlg(Rrobh_LNeOp2X?<|t z+?v?#VriLt=e2q?r-1C`|E;Htjg38nKK+_v&^r!d;@2M0o6G!=m8EcZm`;ESWsG1; zyi+e+5jihdV9b}?p~_}&~QaJR`oOLK0Z1MQyXaNvEtUbT+3 zyDHrYvZF93ue`k{gQVU)<=}R|t#bhg>?a9_llEz>FkSPQ<+9DfTT_E$P4hql$ke#k z2$yXsOuI$@!75@q12+|eHL>%^yb8_R+myzMzp-JLwXo?zcXKsv(~D1>22EwywUacm zR?kVz19o;)$CZb-uJ~0?$JuRXnpBo<+W|yaSo4?#Hcsc3w#xQ7!*`dPKi!`5xn*#; z|Hhb~i4Bj+BT<-o&y5!Vl(?MmALy={aK^3PL3fH-jFv4$-nlTnm;tMX*$uc#ORup)9D^+P>d-8eX_f4f(-|{I|xo)wU|TeOrA*sGjM& zJ7%{XoJf9gt@kpE4e)A7bKxvXCr`WwQo0I)cb6vvaXT(wdudI?l~6#)uXPXhGGW@@ z_8)~DOZ?%+_*z$gH=Ttarg9qB`(=E}Bb z&2&eJvYUWWdFEsQSRLk~|1b1Vjc(X$$;eXZ?A|G18G-c0fW^obwV<+uS{#>}O9nV- zY+60p12g6n+LPLOLSs9fb1An527SQz6WK zKw&Mqli6}Xd4#MG{_g^EHQZ28gng7Qbnz!0C`t3es>qHV6(Dj8P1WbJiY}QFTkP`-aQsN z)Jz+>znfcCZd>hXJM>Acjr}|&GN%aa4{$2YIH`;Bpj}q)yy-ltG5`Y&t#Wi2gH5I)J)G-U zbrF7x-vc+|b1&dbf!r>u1c-Q}LGl}MNew!$4`hC zB&BeV%||fn8pvrIXICv{Dm<~D6*)Y={hQ+FP$KjU;88?`+&_c8dTvT1(uC{+k5A|C zX~d)2W7p`06Jwg5`WFMKOb=C_Ks%P!%M4{usbneZrkufzZtr%HWQ@^zVAarCPFNRk zWz~O)()&f(us+nT-(GI}H@ttgHmmP!b>=ue`77fu*CzL&nPg{|+thk{&1Sx?oM}Z; ztnON1^WjdR39&ZEuD6;|tSwnVWuN}2=hP__20qai1yVr2frUgjShr(>tF+)uleAiY zX)KQm=nFU79aGYOI%0s!}WubHIR6fN`OKxdI1!g zJ*Pj=#ED^|$<&P?a>oki3P=s}^vWppWzM0(S!2Sp!KQV8Tvy53LPwKb)|(QKNo;Sfp z;0b#P8gQiPGiwcKIzvbayX5fWHB7XFu6)tVAno4U_tiFq5@zW}J=utl{K8jl4*>Su z6NYlpst=rev^ba02*+^(%9QGl$Wz^KGWH&v^7-8+$P;3_*kq{B<8gg&%u=i%C|d}P z-7$TFLB+D(CyJ6q#smbKHkfgj!ve@Ci;uN6l41IGZ1YiI(BAoSaVK{dxxa(F0KxwS zh(K>RHrwQ7(Tp|)WM)}uA(J_yjC=TggJiIp1;jYMuW4}Kv>kn^WLk*H7C+phgC(-c z_+nx2@|M7V2pxTtzZ97gJep&FC0z0(q{0EKzv>Mhu$5e}X3jyl~CtH==d`&xIJa-fZD$A)$^(=ilnv6bi6f=$=&7)@`XWS-UvUb86?5nT4f~-^ zLiX@IU;U~CBM+gsT2@`+(;1RCnCUh=ZTwmTkSuHU&|ME$t7 zd1IGmbY|j|6pUp-yBXBrc9Kt|5cVH`1CTx8(0i4oEc1XTHCGbIg)i zHSFf9j(~Z_Wb3-~9(>UV1Kz&XqN8f?ZYnNuXeR@pX>P}slaz(8VB#H3s6 zSb0hYoWCG{3&fP9I6rSCS>`;opINz5YR%ut5Gf{9QHw9NWvwaEMOC+< zd}{~WpUHr@HGR<_O9%ma#ALm1$^>eU`$biBIt!=qD0pA1Qg2NLtr|w{LMq)XGVOA(0i0}y2_OQ`}o zDisQw(o@pY({om{ZuT72y#G2yG;$)8+!Ha__Dn>ED64>*H!3=VbUl+206OQ_#PH$& zZ6$5M7L;Lr3-|MP&GUw0QKwl2p4zV6g)@*h4nLA%37HQa=VI`E$Vbf_nlxOQ-__zV zRhAB0O8iBXE2kL`x;lvAf_mJZB@|Y%_Z$H3&+3#zh0ObQ0saky&A0 z(yM$uwqHl?Vd?m*m=?uqaSKw48cl7;#j;0s?S>|BHxe%>7Vm~Rg#vh1XG>_{8CBn! zU{cX{(W8)(DQa(^vqlpC^0;iyVxP#q@~Bg4s|csY2JruBLVqJ><1^=X0qB0`mhVYec|xb$=`uoZwuCxU4D zK+_?lf32>))=zg8gPU_cDWAq(b$=Gn7FNN2C zVpZNo0wz`f)~^`Nmz=7^Eq94}7zskf%wUK}#6#1V9cmw1edR)#o^LavhL7`;gIJ=C zZ=pNyFFSW%Z8TFz@fV0PqWxf|Us*n~>`bpr0+QK~;#xNaj=rp(JlkbKQ^vuu*JlGQ zo@Bo=#J=9GAG4&zro5=1xY-%j-P`W*kEnH&Tmtw|wA>ESPCWo?qrfV_)yqDY{%Q~Q z5=Pfr5Itu&wAA$rUw$XUc?%bjGw+OMeg@Xq$pYP`KcYwC}A@yfE z59wTC@n~yVoExHnOaat+xDVZ}UNRsG3IO{pPON;|Xw2&X^_^AS-ouu4BPl4Sa2E!% zcq`|(*Mk0nf@#lb{s&MK4_UU;a==n3eIpsV8F6Zo$+{!XY^!*8uEb0bRMAWTz_5U@WA@C9Zc^(5C$gYCLBQeJk(qL2-|q@nXAX)z588MiQeR$v zE!g4Vt^4Fm6B9s^%M^5YsJZslhP6K}~jluf*xJcj?CYtYJKP95h= zb$Dtn>F1;RFoEN~6C95y<>zdIiw#|0`0y8Ea+sZb)l7BmRK}mkTF{AnHr^U#8vcmi zT0+>l5di11iR(IRXtgjZKU*m1OUtNxqkBuBsQ7Vd`Yy# zI`dWmrzJyO6foQ)^pD%B+_tQl6FnNO11)p%)fAZI4m;eXXuFw8XYEvDr31f2wOdq% zCL*B~tLoiok78i@tp}wx5y8Cz$EKvAX_=7(sgGR0c zl)uBN$HypUPz~Zz9lXTo8VqB?5?2Fk4p_?m`hL_pC7R&AQ@O)RauZuhzVxm}=SWi; z&v|J7NMyXsdmn#TqralAYJ-aS`A5=V<8@N;bgt1&k5t%#T9V+~=y}U+#ApyEeK6RS z?FCCwPlSbla>OHxL0>?i*L=omWX@vSD-?#AhCO_7c~yBjyCm;tBDX(TKq83ki78-9 zr?MB~O%vi3KfTzSqFhNVlct4j)5lGa_i&*6Qnu4X?p4)CZP$KZP^=6utzc}QF}k{hV8tf8vus zQO9j`H-D!Hs6=X}97m-K#c#6MvQ<;^&_Sb_>?hw0R_w;dvFr;*Y_kM)fy-?N1w{59 z<^@e(NVwsUzFU#Yb@(o`fpJr;DwNPrJr!J7yH+(GCAR^HdEGP#DdEdj7mf`UOua0& zaX+K-z5(dsM?|YLlu1*Ac{ZT;UZDLk?%*3%WxrYdwjGG_raHd7E?%?765WoZR?mxl z7Alc!I7tb#+wi|DCeVJ1x_vJHlq+2#t~0Zbz$j`vC{FQKCT`^x@0_$wLXX>)IC;6D z!$6|W3F=C+3gU+h@3cofD*~$t?}z=S&OPc{9FjjN@@7$4M}IChk7}Q|dAI8^tF+Se zr%l1RT?juNnF*8J8?GhzSMK#j&i^1x?aL*a8eG5B0TfrWj9en~2{B;MJ6Rox4qk^*mXCmh^d)DQFup9|b}t_K#No&n zJV16_-1k@c6Gv+K-dq8Hi>U29q|S6)c5CxUcg@eA1O}{bU!mS-J{e7*DNIwZZWy|Q z@l##+Z#&UrIed!Gvz11m0XQP1$T?BRfRpsgbgdW!($Sqc-oqNh<|yQ75U)K0clAf& zAAqsPAkK>N4~7($F5Cgp+E>#QM9l+s`M@W!*3TqihkP^QCVNw(g>#<2Jg~hG(fRLx zm$e9^Lj9T=NiCcl+K}UWS8KYs*I;JCcL~?<>U%nH20DKzF$EH}OTf;2+voD{TA!w9 z=KO=5t0f1sXh-5SA%<~J3$9_S(_Iv2U4v@LXK14;pYz!-kI1#L>9*UUf^I%BKX<^w z0|0oz5K3}pV^fV6hS#WWYI0w{ScsV$bd3bck;5hw&+Zji*MN>+bG#C6ltpLJ0tFnX z+wW2cX`pOUOD1=%X7G+I_+90LSdvzESQEn4Vw5GW#-U?Izc5+VXt>QP(M}_)(Daxls5!+i7gfEkMNmv(xYfC<~PR^`2&O&TY5H zra)+nf9C=D2hHPfKY1T9;8om*e0fkRek-qk`Kz$kizw5A*TrLF`RT3fpI!f|#oRAV z76aRIt#3;)Pnjz~N{NC)Ks7F>@1D1WdTl3E?)PP<1T2+pG|`#jO_U#pW)5#!r~X3TK<7;`cPhbS`pteScQ@D*Mhj( zd7*125R$(!%qCOlGNf#KJoj=}z(2UHMP=j4nj|?JrJ^V=bFe(F>scWyt^Fr-F|dUv z3r@g0F)vC9J1_bAvGNqyMEQ7w$zzczrMWjV6n4fBv-T!DIzA9t3RZ8WdE~r3nb^S; zPE83m&#me?I(dr67VNAtx^^WEA^901VqagadEn(fleRC}p3{+9eNcJ_lTGQ&W$K!x zcH`djLj2*)iRq?~$gFYg-+fC^?$gxigQUHpuJG1vkQYvj4`H2t>1PCvd$OZNvCdhv z7kNCT4SlIC`Jn77DST;7b((7MNGR>Il-cn_{YtrlboUyG@qBN?&A=S#ALdgVdkAHT zUw`tH04iYqrRw@ObvKB!`{Zy1ow2aGhLHFj)Kv~2Y_l5#xRt+5;tP|LATyH< z-!9vx=X|`IR=PqizN`U#v2!H;nas{_OI(f%C;<tGA{0h@Qx+7hx1G> zY%y;hlhcJ35sT=cuoEJ1PwJ19F7`nIdTZ2J+|+Se27}07p9V1E7vhnXZi(WNvs`TU zxn&H#S_z)arV_YfWIe1Ht*S`qSKPe<)00*y4P40T-A8Ud6FihVcq~DM!%|;mU#rvB zuINLZ#iLUy-rpt7mqoK(8GHWQ$)dAK&HG2xlx$a30VU)os`M)1YttvJn*L;59yV?&Kn{Dz99!0)Mk`9`6qV*QYSIH z_1G~>Y-wLu{C>UF_O0hF(u@Gq{?u`33EO!N;%6aE;%63Sb9RV%=MHNBPtCHq5`!~O z2!Xo$!xKGO&AQEOTGY%LdUZX(xfM(Ok}>uDHiZO;yCLF*?LK@9=u|HmTFJ@!ce>S1 zV;aUBfQqeMx?jkOZVrrTIic)G-;Pi z3n|KZqv~^is?7j7@4bH|WZE|8SNt>AjOv6!+@&3)KPVVD)3<|_2?dnjuXU^$AU>7M z7%;Bj($ugR2oJm0G1e5Gcd6E)to0vq_CsV(pY2m!hjcW z1UvUL766~Mp&(+Fl>tzO{9p++B8Q+Wl95TY`m!Tq>rYEkj3Q~t)?i_;lJ#2~f&GA0 zwsGVURejlRX<=fX6gK63q)Mte83vUgK2K;-fyVhJi>Bh>S2z&rJMS}3J?X#EnWQWb zI_DA5Kur$PpIXZ-E6D$35Tkj46RfEvO#twPm1!?8sn^F1SxdHD%sy3cV|jQ1(CK^B zeHB7~aQ1-GL-*=dk&Bv)TWZluuO*i7W*~6cfyMcD(b3L1P0a5iUvscE|A|{)G zJ)GJfILu>QWX+zB;C1$jn>H)$F54T%tglorv$l1#6tNardiFq8{6jybSQPAp3|YBw zF?;{$%ag0}af^mLs-hv&gf(W4WX#aU5J;djpEzP^(Rm;#C4HHvn(vkvG2=RIHs1JX z7vS#yF9>w8RfJ9FDXJ&$%+s19pH+;FdR`j2tgCqUcW5nsyiUw`J9pT8{b{IO%v^F; zMnayfSMXqJS&lgVWgw|SM+75tXkc>=yVn2=Thko7;l*a=z_ZZPZG&&BmztLSmS zz9SqDtSCmf&L^7=x)N`3JgvI$z%q}ZXgm$P)xE2WRViF3$pBrAL=+`oC%FXN#VN8i z-x&=zjaIUR?k&3`ztjz$J@IG1g2yz&02Q^sT>7~2aZU8w#>8Z!muPu4V*&p3PTnk~ zfm$b0H(rLBpPd>O70B58CD8+x0wi&Kpr6+No*|{b+cbW-X-ao z99avP%5)YknEau9p`vee;OOMl#1ots;1b$F_h0N=lU|tQ5+GI%`*q8|SyuMnfXME9 z(`z>gdb?FR)20%HCNKvp7ee1v8vu0M0>kO6f!1F8ga==Wp`_8aVE`aB($7Uc!(Vv$ z?>{R?irwQg0vl#Unmyb%3V8&e)z<+xxBHCChu8joMPud#_whiocFHI>y1utn81)>k zKQi&360UL~E-H*VRq>OJD}XqKS1}Y?bx^Ih=eKIi)_G{gT1T zSv^4WMW&z=%sN4%YvK9JNt2?d*-wqlIOBv6b0qS+>T`Kd%~ex)hn_@yWNoluO${Hd z=QyGJpeRVivbj~M;b0 z=(n?OfO8JU%&qVRk8(Jv^ZT)iXR^QDc79>xwHX#|2PI)K(&e)I-e~o8@|c3mJs4=< zmTlUg4P5uls=gYNW-s{5?gNn6XTYvK|F24xoSWTkgm?od#)>Hl+pS77s4QUuCn+d5 ziYj#kQE)8R@h;Tc@cGmQ#>-{Ih3$nI#D)Kv2f$9CezR?b_uPtIA08*s^45W zSlRAZ&QCMbYEjNhSN4&5la{9NzzR6bzKk;YO2eVDVC$ezvT7Q=uRQGDkGodZE*w^M z2$eJ6FDcPJ64ZfKkWS8hUR)nCt)w7zP1N%JOzUJgHV8AN$|w)}fe~~TDQ|ZbBANLn zpRjR(O+Y3SF!s#7RR&9zw|bHYkKy>FC9yMh3)R{J?x3n}IfWYX_dM zhD=Wh5Q09`^ihY`o4$qJ0D&^E-Np2Yf*>rjwcqP4EzHDaS;n$Napx0boONCC9l0Ov z)MbH~Pimf&U!TQ#@S`%%xCJjM=^nS$V%X&43N1vfjIwwN1A=0=+g%%v{KNL@@c;j( z>Ye&;_Qgtc=)E2JRPOC<+{c45s%T2Bk?5_eAqz>rSPq^bhf4FU7KQy?R*P^4^S1g$ z=3361*NAI;9vA!(;a|9vA24vP*20h5sv-!Xl&bo)y`6+cC57$|IyWYrGcngyrI=8K zNBOqqDZISLhjbNn0YB^$u>|7X35gqQU`i%!9J+ zw+dcoZ@f-1g8@$1=z>|L#U9K94vm~B9RUp08gt#~dFBdykecw2P|O%iK<_z{6LF!J zgs)fXy=k$o8V9!jKjig5f~qh{30GzI-an!ER^I#UFj=#~uBoA$La3x-Sh5a#7Vl8+ zxd^bp!NWxLT<&3uHP+s{yn4Xd9%MD>M?I8{%rdl=uSpZ%*S8!ZwfJZrwzNCV|MT3d zdYJU=KhX5m8~*eZw~{L$K7xBjjwj_6Br*qv+e~6Ejp?wmMMqNSYMi#e+#u|}3Q5a# zUn}hQ3pbkYQ}(m}(PzrYcQw;VJ1@WjMZdR|X*KcSK!a2X6bK2@O%{3&ZMbfW{b$RTaE9+yB;C%dIB z?K&mfI?LDoI?2v*$Dds5x z^#%9T?6K$dQ-hh|F(}r)ibHPq|I!%XvKcv~MRd5_=`h2}HTZ#8!nu=$80C_W7H=Ah zH}CG(wdYMsL*)h(A#gLYz02b^8N2%|w8+HHuI8tPM;+>-b)u<5T+G#D$i+&mQ`9qs z+O1BR9u~jnuKv~SGsf>exrGgr3=^|I-i7A7$4lF~@o9ig^vWObkzQZX8buniMA*xY zZRsz@PE4C*Zsh&X)+5V}*$Z42*z;}xfHqn=j!YBPx>FRCdJd=~zcqye>-x#N0fvT# z0v1vuRahIfgM|&V7Z_A;7RLi9?;#^9w3Qi{ORhq2yed*PY_XEL;y3X7`Qhf8rJU4m zSJU_h4DnBo?}039_iEq+7e71L$>0s5Ttw9*$jj)Vwry|Ym$KDL^s?Qh_PKBWRf;wO z&^9>Ae?lx1_)f9To-Sx99;i?0$UbeqCc7-Gz27u`Uek{baFN`H5h}0yl~UBhXs^z< z?u#A8{JXwpq<>La@3)&xZ3%%%o7h|~D(~%7IVZ?rl@d)mVqD`5?g^wFQ2@7Eu^HVn z6P7Wv_&wYmfCuG)yyl){aAxY|%9(y&6F%!=Jw7RLrq1k#@j!81p5mG_yHiGJ}d62%F|DioPnsV21{dvZ17I5!K8l&GsIB` zW3h_xY}&4#9B}xWg&ME6v2lL>25_67B~AN3zB$CuTr^obV+#+vZyT~!IS-%|&kvsm zV~(P?CdGj9h4E#sp z_*=t0gAoRs!qA?=b_(K8c8Wut1?)8K)?dh#X?c4f`SAAX`zEs1VR%9Bvcy;D57-fN+)y-HGl;~ zz=#3?q$)jxB7|P=T*1B1{?2#K`Nr>#-yP%raWnRIpsXZoz3W|bKJ%H+oU?o|!l>Z- zEgwj!6THmtK9*+o^-x`x>a2`VKpN0@eyLh_3=$O=X{nJ*V||UZCcYqEsKcuIzKm+g z&$DN!w6WAGs6x)AHav?p0kXBottJywhZ2VmCihq$ZUMZe}_L~`k{g+ zJGVT#7;()ycGIyJBB#G8O2wr}Q(UAf1}4*Fs)iy*Gs|^)C%h)J=c%!t6Nau;y2Xy< z+{#&__!nZkTk^*3$YO;UgU-k1+Pj!gc8Ub!OtQ;V*XsR|S3$?!M%vR1e;jrW&)LOG z8PHCTGt3CiB=YFSX4OX@`y{Rii4+~->%o4vgXG_&_cEd3r3dRWWubTN_LaLW3f#aYied#yW-s;2~SDMm66JfoaU z3+24kJ70z9q0Ozn{v4}Xcw80LlBY$=MkHtroTasUB3lELvg%d)Y8pcM>{bWKma3xG zE1bCIZGu_VDe41-AqL@G*1Q>g?7BFWoP~GyQ#D~|LsL*aG_bZK z8Ie!T=nwst=P};h-R%UfS>_XOK3l)*e)Ype<_cB&$m&CFF**GBH~K|~{dC>+wkH|H zl`=CkcOtn;w&wJ_1!O*;iU(+E7jQlO3pfIW?DT+f3a%E{S{QEyy?ODs(wLjXLtNI8 z(w{n;CkAd4UA9iR2BVPBgWebw;kX%ogYfVc>6-(WZeBE7HPJEraOSO!z}xWI^-GPS zla(Da6x%)b)k73|1*hgxtI5zZXNfB1ve)4>+FYPC~|31jGl0?`c+3uHNULhmL2tnYOcr$elW6^sFD6l+d{CS3lC6RGm%g^bcC5G(-t)-GC=}VK$P-8@W zeh#%|92W@J!>YC9)hRrWS@s(+WGQpucuL1Ri$!l&;#N=BOsbgnsfs60D;YQCeXCl+ zS4GE0C8v>=dd~cq0-#j`g(bmOpCx&66?`!U`Bd~;!WtzZCkjKzD+ob{hv1xJ4H}+H zdSeuXsM7Cd!hLqQHf8Z>N3&?N-xZFBvGOxsuDO~@+LG~KcTR~L+9Z5TSnuk>}yVhasu91}e`vR08$~{nTz{N+j$2 z$bg4Bu#IeeDaBB~YTmO-PkUFwArlUPMo_>zFOTX~MK8t|ag&=gS@0dVll!&IGylZ`1SyV9U(s;HnP+*T~13!K*<{9jA?>$J#@oS`hp_Fh> zki7CdYaaSIe;$aqxa#OPpqnio5oQCu?jD5<=%y$P2$@a=4(?`bo=P)oKwqtyOp6q) z$TFy_bUDQ@^drQnOwF|Kl6b~6izZH-G`i^HAdNQGrEWFlLyc}%tHTrb`^?|= zZ9|3K$37f=7r69=gM-6JeVf4HaNQ)qoN@N~i{X*R_0baQQZ>sRE(Q3AYCVsh^;xrZ zE2N@7E9rjo%Og5IJ4oWPS_#ilh8oHheiLZ+v$;w~iKKb3aipdn;s|9$#42 zxzZMJZ)x{ee?MDn(Ja(tbxSz)5c?|5^bl)pK|)oGBwQ~{So=&2`y96&ij++F8NEc( z@s!>pyN1QdAxxQ4|{y$V4}FOMuUZ<^R;f@7v_N@ZyiAxSV>I&M$Jka(`a$=(@ncbT(i zZMC(vg@z8qTdVEcLFMu3!YIDtmz{JGNhfaAHQo8clqzqxYID{uAft(j*2=i=9yFIe zki68%nCZ}nOuHDj_MNj1g+ezm!yiatm)?5ksYyl5d)n0NPlQ`-G0|H`kN9D~3EHN_ zn5sUGQBpPb6dY^oYwOp{@4KMu6^oxSycAMHL$@Ud$|uZvUo*>{cX{FgfGxpzYv6k1 zn0#QJ^i$jq!sUrYg}q(^4%Zqr)6>q#BQWPU)cMa6u3G{HFIn3+^+xsl-Uoo+u2JU<2rNW&ER?%Evm!4 zr!BCy_bYYLvn;mCkTa-@pXhj1!M^4Xqm!l5+@sh5m(&YD_i2BB_+X+bBms2=9wfV3d99WDy{q-=wg8J?sCg`z2InbRQ}21j=f z1*z{pzPGwgBnYz%9Yljf)*ZM>wmcs(QLGPg^WuTX!Zy7C~&vkIZ4AbruFg?%Y&sjz-|!cf3@ z7OCwotx;<(P){z1n1n<_U0gAi*^>8d!4O+Q%K-UAeV~X8bMNz6)7Ba1brFh{h?Z*R z^BL(8$yPN2v2TANi%W;8juG>lpcD(g5Pd|F>$?8!*_%wakZ0=pHMEaQld7>^=!TAU zKOV!SiZds}+pKjl+=i6KnmYW#J&jng9g;y}=@3?ILv2EdF|+8OQ%Pqp%X#yVDYoKD z-^G?RR$+?HoSx619)_5c+=|QtLV){=vvEs#TIWp|^0Ig?EI};|Gt!pD`m>$8d%F)M z(nny?p`|*{W*V)6N4f>imDI`}rzi^XY*7@g63l_v`Lr}U7r@6gQ%|^wUEdY@c{nYsw2X%nsvc- z#kAFqV(HaWd1CM6asl>gN+{;l1>@Mnz_fr!k;-#_@Dcj9wnLBp@Pm_I+()Os!{7^* zae1eiW$Hpio9yO0Ll-yi;Aar$-OtHMxWAn_nyRw6a^0ahYPZt+W* z7OP^=vB*J0UmQBLdvrmz+w#N}>z|`>esf#fq4=-vyJ<%4f|pjM*{=!Sp(VxcE)gZ=)&x1KwuRVNyxH3 zWzhL_iBnra)7#jphP8Ss(_&42xlq0k+S5N_B5bl&V4)UuIyS7ztM**Hm$mFdYFU`o zZ}r3lt#6MU4rl>b%}GiFl1^yUaYFNqrJlOww7Y2#b(vP-9fJ! zCYfJzvFM||KT$`=|9rqFEXn&s0~Pj0D?6Qd%ryb#vW|ghI(2nMW8I}m;C5nlcnD@x z*tB^VH*RMZ)AELq?*RMTw=8Oc+jK%_k7$<-aX#T#d-Rhx%4)g8t2 zht)wD#Tyl)PR0ho1np0Trl)}R>nuxM_&E57F5$_+nZJZS3B&^;WDk@k3y zH-B0^wP0wU*`h|3sa-aHW`(9SwZmJBvKFA>Wj?)dpwazNp5`Dv1J@G(9P!kq71bQ|#)WmrhWWQ!1SZ+u!LUh9>h ztiy^7)wwmm#B}GB%Ohs)BH>YK;Z<46;78Ty!3-z^3d{4D^z2pbW3;)6G^`q5nCh>y z$sL_PWkNkI^j4H$?4BNxo}01_1J7mfd+UC0x3X=ROOCd_OH;wVU8$+5JE_W~m3@2n zemc5q=Y`EXY}8`KH{Y>Vf(NrG))HZ&tAi;LQvvbfnm8ud8@t{6NB=5^79=wF^(pFI?)AJYw z;U^E+s<^q*hFQ7vGVg|y2l86kul@j3y+HVBz`IL4GcnpOvxxgnYvL+lDcAE`gK32E zrDsGQx0DCEt(EzP?_@;t*(REoyR*D4Fw=4~Y5VyKX3DT88AIQo(UHg&RM-{FfBh*xOLv}0mB-YF=^H?2ERhW6LtvrTfi2PY51gud-D-Jv(e8%GSB?4NH|Ny<8QoMLE#SC5+z z4l|<4E9>1uLyPag1_{U=ZWw)IB6ja;iluRDzl$+eFpH_3yjbq|h=~(j#8APMD5G-= zlT=nYs+(JuqjHU4sgu%Z#k+>*ZG7)tcFe{jA%f7TUYla5X9jV=`1iN>A9ARQzt{cn zGwOm)sq(%DEmoU=^hNyHtg_gdGb6|EraZVT5^$$L`|y<0`kYgwow*g6hoxd(QGQ0T zPHkHK_j`71(eWu7=$5m2IV05M5f~h0eDgQr*RT?;+F9W5!cm#Y@q-zJBApaVO+si@ zR;W}(gx(fa?}sU?omHzwH**ItGG^k6I@;%WQ{UP6d5DOf-InO3!$Fmu#A#@;BCe_s zrqm2hXgAlTy08eP7s=;XnZ-#?y01-DV2|P(tC8V|D&{{vXuoKp`t5eLNL+wBl>G=y zxEKR({@S$Y`YDy4{O5HkTMvokzPP#)pPu>@Yn{=XO$_~mH{V5jvnnSMe>Qr_MBo(r z^XP4v*Ab2H9#0^}2(L1(wvv}U26)2@LbPyH9!^yZw}^oX9?j=$;O9dQ+39`NZ}Q79 ztQaa#%SLg$JXNYSGv*00=6jwYymLo1U9WCqs=v+tX+Y`nU=j6QaX;U5usAd!JnWWQeJ$XHXylI)@ zBA=uLT5gde&^t)mEm~4Hf8oyznuV#oQW+OHu$C%4J|fvoHFpl>eshs&zi2uwxMs?W zzht}#)kNRx5AHGM_Q?Ji}EX;4PiP;)o{>UkVZr7CsDp-hIX z4s)IyFYWa}y#3`K~)rT&#$m#1{CJyeLrrH{7yr8d-Cvq#Z|-hUnZ}ANVX8Z#5)z7QYA({yQ=4pL!BC$I-4T!l-C>R%u)5*pB|~|SR^f9U z<&tBKo~Mk?L4%C$=%p+zZC2iVg(|&h>!oB~p=+#IGvHoy%R0<>oI@jJ7$<9JpH*FS zGqd;l9usXP!c)|n)uG3-R23NM2Tf;M?_*^ssnPma_MCqI331frXOUU(o&?p$X}W!v z)jsp_@rCZ-=Tgq!f?5Fo0RWaVIyUB_*KOo|=HN?x4lKNR;G2mH_&RJ+-qI`U(O>Cb!7=2{OlCF;760G@8wy1Y z0wb1qxFs#X5#90{=B{KJoEIUK^etn(jZ>5_UG`Nr4Xq_MChMwt4Dyb><9{%9Q_~2B z)1emRId+~Cun~)Z=2kBxrCwMk@3#yHl?)F#izDsJoV}|{an4R?2s~M7RS^#(Ca`8! zq|>>jhfyfWkZt#-T63|9Lz(0<4%C-eNQs9%SW1qHjusRv>onB5B{&jiQaAfXd|B6BDj$JEk?Y{eL!lf~Sd|Qp zvTno0r9Yz3qUWu;he^3w%2Ngm=`&(Dl6(K|-|bY|k?XcnM7DC=LN7qJp&;`>jh?%Q zx*uE#h|5ZKqeL4Tcx(6#!@IH`Xr^q{^WZXAy*fye&)wFVV^V&~A|Wd31PVp`R$!%C z^B66uWo@0-@E5Rb+uAxZ!p|UVnMv5v`m;3ay0^zc$0=(;^36$0YmqWt9MXwjmzoH9$q@ruOSdTVG^rc8GiSUX z_W~Vj`@%)F_QE(aKI{83a<8gqW?nb2bB?mw*xJ_Jd7UMfHyynuaF;E_2*;Uk4FJ8T zk@`lKv+?0BjvPBVeFvR)S;=8aho1DOLO$e8xkc^ML8i+$lT1o))*xK^uh?Pl-o0ZG z_m-+9JMLlgk&J8TxKQ;)yP=Bpm2Umv3^PLAIFA)yXW4j0$pO)glPWhCUjlX>rL z`e+h`>avka6*+!9S~*bF$`q_Lm?u>6=Xlxj6@8U>BAg-CPB&9Ce9aisT(xkTLYeMq z2&FGZ6Ycs|1^T5S+o=o9=ReJ&@9b+3KJ+~DMrO+WdBdf)`q5><-L92|g*n0H2LAA(P!;u|A z-S#I%@3K8yQs=8e_TG2$!a~U|CZ=d*WIWg+%Q@=H{sW0TEqq@-1aXi!YQiRRfB#*l z5FNMjDEW%Ws&%NEvN&be37z$r83~-cvVCI8?wSwQafDK=7W`~Ph0uYMWQSa$tVAw9H=DBk z>&*(hUmCU1A!|tFm;(jfsP>tNNvpi^9ot$g@v!j%%CB(&DyDKlPuflnR7UF_=@r!1d=C{IA!-`Epc*Xe{JG7}) zO$9WR`!wke-o$vVXk}mE)WMkHegRU0(T?@6=EM&}r7LcO^=zI{&d?oECo5SovnOW$ z0TDRHWhuJ{PyPIUGZI;K7tDL)BPRoS&^m zP|(+tZ&4fAC|CpuvTCwhnrmuI?YNq=ZG~+wRgJ&PBPeKEb5$lXn7^E@|E$DpfAZ?_ zeDd+I?wJ^mu1EYu7}0X^d&B*A+*dd&xVF5jNmp8pFz(olDsf#|n4-p06Nykr&X%C9 z{oZ9=cgp*j`f>8nxKH&VZB7y3j~F;hYMUG0-rv3px$X0ixI@3f;~NHV)COjhmv`O~ z9_`4-$7;5n~xpSy`D}8X{TTbyHRA_ss?Tcf%(>%Gyb{4l5{6giBd!@Wo=Y zgLECl-u;xp`-Ng&n%2v`0*%`dzc)BmYjWThqZF;i*H*wLG^5+Wws`enb*EE=eRrEyxH{h z;8_^MhC<~G-~ObJ+9iJabfIx*4XbO@xa))63yBUq>P&;;e!6OD#G(7)(aTo6@l7;; zGyDvvK|sFeL}_h77o-;(diN>WK(AudxzlHG)5#`fE_E_xHwOdhE+7epK(O4pbqn^i zRS$pam)pCa4L(=qDn0%qc`F8^Jn?cHMnr8hP0AuN>uGy)(mssm!H@#zHk*$$$*-Bm z)84;eEOYCc!-`s zBQH-fmb2!>0t~mo8gM}a*W3klac-FPvau=9h@6Q{#-jZcaYa$&XZc=6=j3E97Yf1Z(31)2Eul08(u zNhF3md&9yDSv}$~d=%1iz?DE~>f60V7cVHwa?OLx-qG#U>A{9N3tn%X zGXUG1hO9xO`+2Yy7jTUCWgk-;-nE`fyH7|~>smC{v>RG3MGT$=IY%HRjHu;nfI^9F z3Ganbwxpvq}kn0tcimvyO~ zfRIJ<1iDQ+{ zNK41aFsY;x4fWZBPE33;>FWSzT#^>5hpWpu;T`)#%56-)W`K+&T9db7I+W$6cW*%@ zzDUm?)<Wd9B1xRKZ^12@vAVo94&ON>|aOg`$N7oiEa{Mxw+o6-r0mkM-%R z26}}~V&+0h`M4*lVEX~^983D+b7Nx+A3Lv7QjPm#)v!-roD5a7V`nj~?Z-`tQ7t9x zTwJDW#~s?rGR`V?ynA;KY4cDwEN0T>a-#dmiOC9=!uS2P!JSA&$Z|~8BFFLv$;$k$ ztdpvjO#M>tPkAA>=Xh||{vO&&%;?ZriKnz#Z~*-G_dp^v-3!|E3xVUVTkY$6g?rV1 zSE*-WbhH2_+eS-<3EA~8o;k$jtDL)BkoEXI{_8aq`r6g2ZWNZvvjH;bU<`d_tBmwBbqfhR*ebNYF&jeX^FjwRniV@#tgIwxWz= zGLm3z8LGEC7L}SzMtBpxItjL$eLRn`_FrB8Kz+$_o9uDm(};gvT6&hIw2x5a&>7Lv zv5lUxM@0vQ=m4K%II%3qlL(3f$#!@O-K3rSE)2Ph+Rs%?dgp>5DFMycvphFm2yH2a z+lHVqsaS;^eru@IeZA>SQ&IP~JI0{L_Tn_#=$Z4W17v0SCCx2x|F1~XcM%N|A!jnW z_wY|83*{UR(6zPXAty?CFU{QCJ{gq!pdBXcHFg3E71~-ri}E-hr9SxK8D33qTEUYJnkf4Ub8Rz6WNg&f zY_4wwGQ_-)IUAVY&b2A-b*QnQxvL923X;ISvQ6M&d*D>p_SW@y#g0#(o|OBfzRTB{ zhuN${y9Vn!zHG;=0ysOTs(DzEZx!dg+QpB}VGFT4Ckxef(A}A*Gv7jaTIS$>-E@pv z79u5bg9iE8wl`;-gFRzq2L&|pt)c&o%CvCYC5FbylK!WGN7*)`zFbz1lM3G%*7tnd zwt6bG%D>g0wHx*2bq};A>x}7{Ngedb;+YAU1>&@Et#^IdcMj<6cZh=CD2d-TrL!=8 zHY>RcPS5`TC7aq!j4%)TG4a_SK zXJv3u&^PFKGmu<*we@zj+BcVVD5K$3+h)f}_(F5a#8S#|L2A^`omVDa^=cD8C@rS@ zK(02d8?cp;wY7CYFKK(~AIVOK3YkTsL*mj2&CzZ|AZLjWNcKRin z!>k&|EnBwKJ*$o9Kbv^Wln_6V%g3T$)8*eDM)c_C=ymV*zekBuFjw*GKp64$-^kAb zi)Dk@({cPNDGu6D!6tU%)6sadCBjeRPTF?4pLdhr&v`t1BlvJD=44oK;9kHr ze0iWXdtrQVy0tj->2~lFMYheyq}|4%aEhDp5v?gp>Z33SRhY=jA23_%yHY#Xx3B8Vf!!x~A{7)eJ1pwZ>VBFgO)B~4 z)P4(pT?XZw0C-SuIt~F~u@PX8yW(vk@Ennuc-JgD2UWTB395Vewe<@&{;`HQ zypVTL2L^eQR3dX0hrb+G;7e{la|y?;s1}~7)`ZY#2|4hZxj$`RfCb#$1O*R4@wl>OChdl~xK46Dh??toqK#gLZ8iTOw zr!~m1enxt8x_r(tihZNCeJomuvs_3sB_>|Gff03Qvbjb!xNh-He~mHg$)y^_4`8$QjoCf zcmolIfl!V97L+k0a5jEwqdU^C`o~SmEPHHRB$WaowzuJ8C+Hnj@l1vRdb0a%)Hts# z{8X|TAhMGz>;ows1UpBI{(0dKcJ}*3O)oq4^htXy&gMo z-26C+cJguiXxq-t7*OQwwCXVj02%URgeoFeb8E0ZoJX#)GggnwS0h&@2Y)Inw+L*k z@o7}bcX3T*e7jg6_FBd(=z!Vu^3x)glB_T7pOV5$1H+|hAK1|Uv??j-{rLGhPkU_U z@D%pEKM4dE6yFYiZ}+6#MkhgAGJc|)_#xFb%{y0eNw&t$J}h{2xYX;yH;Ae7UESP{ zEt{C*P58?xlCveun)YGmGikqsix%f>u6;@G4Uq%f23^DRV;sxsh?k*>ka zD3xzbM|s<1B5<3sxR9J5@mL;sH5EXYD6!q)0u{&dVB1}Sbde?k9Ff;|c3`9FuaZ{8 z4_?3iK|S`&wVs3WK3xvmgWxy%l!3ZXH%b#PZ3O1N{CUqd;IOnb)p5_ejEoFR9%eXH z>=7W_$RtXD(jgss$jktg67u?|dwWt$%+hmyLfi>*zSa<+z^=J7bV5$f@&5h$Lz-r0 zW?Ge7zjz?KAphF?Z9t7D;gX{EARsOJ{(p<1kf1ro#2jK_5E~2#t3Axhk-ek#B(L z0tvtrNHa^z%cPk2c&?3Ic?8tB$CZos203=OwORk7OSWy>W38WPeIvj&?c9ix=pT%1clr-+#6RS0N1MC3wSJC0YteK0^5u3iUJr@>NawB4 z;UcnHrA-zu_PrUUpNZd-7cUOj+1Z`e(0OxZI}MJqVFI8+fS8zOqm|cA6VI`CqnE;;BJ;Bm!gIk*!9LME>!?8$Zzv%}Gf~YtXO_kszZo20MVh z8R6Zq^blVR<|FZ$6tJnEK7DGhdAu(>JDVhP*17M2t4p2`T&>Ms=;l`NYtiKdkaOY; zl6f)fW_}O|6!S8-@#xO>1=+_yY}9^Td$%;bB=0{d3sCi)@16G1es52j*QX;zOXBb6 zhIZ$(DZaSvO03y8DKF!6%M`aND?441Q=eBUrEnLAv^Db^22&&LyS6g@NbK_Hn>TN! zY2UsXlzS~sPv5FYYup-*q5VP9rZKfVp){qaHZ(3TFK6TNc8iNMGcFyb7SA4BLz71QmoLm5LCrH@zHEJmD1))01lIiZqRWs zsci^*DkQAk{-vow$JRv8C>7hOLA-3x8C)s7a$eR^K2SBOV9%;X*5F*y*R{TDei{jK z6)XC=wa&I>?%uX9#MZxmdU3j;A^BQZ|MRW7uF_9ctF#Zc!5+Z~Ywr)lIXizn#>W@g z+g#?~Mu-qFHGBX5eOorw{Y8_ru2HIsv1G5;EmA{ruS)0n#7UA->P%Tq(dF<~SC1E& z$WibIx`8LWC}HMQ_TZeht%&T6vY`67&<3EQIF8^5R?!?{n zw-YZtnoVUI*T1l1pPPhX-p{ghoCZ{cC64n|TqfAdpKqNzdbo(tA}x4}Xs=WbaSUZg_0R87mT_3}W^;SD4BXIThmO~_i?}7v=4LEk)Keij z8=dH)j#D+x0X>iH(3t3Aw z20z?&E#a@+WVqHjRz}}I2RPJYo%I@bLCOrc-n~XkyW2F#~zJ4h`{gX z-L$E*F8whU%e!|&JZ5cYPXzmd!2Q%v(=7%cVkS=g2(ynUI;qKU-N|G zhL6+Bv$5smTk+bHxPofxl2SZhZD;Ttrw7+(>oXcTUhxMTdmG@co*g?)jD`2HY3nE8 zWi=d^dqX?yiqMR5O!cftFkIt{(wIr}-w_<|{!~qGpR2U{&qUlb(yqFW=sAWzC+)PF z>fF@0qh@aiXAdBhc#9nj!nygj-8H`*6zwzoy$7j#xV7kCfc&bNA$_i#%fb_C1uP+Q zB<2kHZGXvI4Uyv*QW%I!8V@>k$u&NBOW)M(8IPU*b_wE^K7T`F8wM}uq?;@h3Cw3P zEf6)=x0>R&LsWP*1z3NRw$cK=(Z=DQKi+RkoPCD4y7AZK1FwpI=;|(LN<%w6l-PEY zJ+tjq3H-;yahqOqL3=^^ha$dr*FRs(=QwHW(9lr& z86xb~U#l(y{=6tJ?T8{{leckKQFWi8sa@Sc>G zwgcw%q!SouBxm)@ou>emmSIexdvkhtq3{9t1pj`h6UHlGr1dU4T$gI5By7 z4Fn`ZE%~qS;Cv~eRJQFxtY+JlO#D1HRjn%5 z7MiDrw(T*KZD{#eGM&0BpCWi(wqcJE-ijr=aMmB+^qMmN-sM`k33WW}<0*k6k4Re> z^DIj>ROG7dOZDvFa^10a-@Z_zo@L5)->ED0vzPI+Dc+Y3-j;Pvd33{3$M~9IMQ(eh znvsTakp8jk;=Ip+YwAHygyJ#zw(I#^of;k;XlIo(7(efi*jDAEkt&mZ-Z|z*@NGR- zj8r_la;&f|zOOpuF3^~k%LrXQqbA43J1^vC&(3L2mN6|eho5h~m0;NL`dR`%Rd9=sO;GnAOQP1h119;twu$cO}d{RqH@h=g8fa#?4+ zS&f5{Gdk^|!LHP_v~g&<)TSnV;zZsGFM_fk69!9)mfQO})b({jx;A)wxiR}isXmS=Xt>Kh-J#$Leu#Frc zP>~}fqTM=|Bp0f1{$u}KQVBq!Mql&nq6BE<-U&w8)$cxNflZ4q8xCE?V(a0VFJ1A1 z>Bkah&XlaIe0izZu$@h$8J<@J@5muO=axw0$B!SUX$Xx%I$#BM6DpS?c5oV|LZmWK zW~J5jc3@z@mHdv7#9b@Izu+Tq|1yFdsTe+EcvrQ;b#VgkhlG~f}2}n`Sj#8T2I+_ z?!fKQ7_M8IxZyQ@Gd^qZ>&+UgNpdV-@#-Y^s^P*7;kCC-lS20+a_**ZpCDoyUq>I0 zQ`2aa7R@nC4YIqMeJlsvyf;8q!JhKzW{NE}z)rk*6mm4T8l>9^D{-SHsW+@J$fgdJ zbif!#WB9ZVzwb)#&CqN}zVJ0wEhgliQtRv459IXq2X66#3pTZwN%*VoWEtkAguT=3 z2ST(rR-|E1&NFzb;+I>9w*B+(H)S?eI*7oNaG7Jy_6N4nV_e(LAT>{;xgSs#Hco<= z+tzRBOE})_0Z&bQYLI*trcG8=s8BqW;--Rkh@$F`I)iRVqvIY>^+zl?fUS=>|7Ix1tZd^#?; zRchQLoYGX)A0%v@+~2fJbzU=V^gSZGiuFw!+}et*-hLU%6r#>d4Xa&Z*=^*luvt~_ zn~dgWYG2J`6_QjiBsRyA#duT#vgLX#9}u&lvDaT z{JRa;s3>3eOzn?Sn~=CMPlAGdHDvQjyq0*+8)QNaDV1S=pVI#K1R=p za;?@rKGDPt{|IbBm}!HPDV=93RN5#8JRDqcfP+JI16_RK_eC6%rkH&2mS6Mj7Z-*za4IKV+ORLk*`UA z!H(E7&hNlcl9C{ag6ISO2e60SW)kw)x5HO_IS4qk%Wc!k5}<1STvtZ+q@*MOgjySb z19+)cNG@^#CD#EKedDPAb^&z821v8(*4Ct$fB*&~L&H;Wkl3TTIu(e^3vglp>|o(f z{lYdI(iX$B9XzxsUz?(AQ055m);A_==NrO)`UG9OZ-fIb?M zknm{)c?7b;va+&n(*r8B3-1q_fokV-g1nPyeg#y9_wMcW>^oa@r#%qZ22gC&htIzJ zWb_Hb*rr|8DXNj5VsdhhcS5&ys6_lEWA2IPq-MHVeT#GjfVhO#kNsm$?WT(T=J?VK4Rj zh%efHc8V*8QIX3++c+>7XcAe8mtH#D=0YECm4=*hat+jl-5kWLC)QpTihz zYT9lC;@6MH@mxWYqx<8pz^Y#fvf1}PX``S0W^eYFrc52^$%uA-?aXWI3~c-dcz3uVm(5TVi1 z)6#0^CVQR!^$OFOQAJL(O0RFkQc!PnUWWaS+4{&k)id6TrvlqYsy6u0nQYP*dWMqc}*Y~B#GTL4H`NrQR6b+Azqw6<+--H<-ULK(@f3LKZT3zC3lnmV@NxlD z+?kxcd|PXr&xwKwv8#p-LGD2y9QYR|WxlUWh$noj9rS!IeN6NnjQS_{=HlvFdT_!WdZhl^$&mSSEWdNb z7{c6N9D~AdL0`XWf(I1X@cYl7@1~BAiw7f)9ioZx$%XhM=plqx2^5#Bb2B{qqo6`lWsL@SGts8nxdyjN#w1LP#br z0HH=Iz03c~!n_|DNuQmck5LAz_?Ni@b!4Ls@X9!VK#JT5C!}^^uy_}TS3FuUr>Dns z17gtE=KGvC`xVMWZW*K$=;Q(U2JhS%|FX z-2VTs&~GDu0rn1vsDIo=aN)Eeh(KLlGr*0w0DQIsVokKn$31(O<6)EhgHiYgYk?%{ z0FEG38L@P6C?<3Rp@5CZ0xwEGLuj?QVT}11I6ncY4+7NWjiX$qzS?o8a!Afi#u%qJR)g60crCjSHA|mJp`3Iy1^z zA70~roaQ0ItvMv}ndW<*pVr!_ZEtTjJ4N^WNlCkRq~nas-AIsnwX?rFd_P358dJ5n zxM+D{uhW!mx<$T3$UaE-vkTeMj=ikmwcMiW?A@;M_VR&s((Q z9;~L9HX}c)>wHpB3#TrTbK={J1pwovS)}71f@g4+L{mT`hT$; zDyId5_q4rvbBDf~cS5e5w?Oud=Hhg>GNlGupBXeU-N%tdWQ;soVxQc z=EaMA$R5$I!$uhYqZH0S-xln}UwZ<4;f9k6d%!e=;0_X`zq;KvgOKb_xXZN`i&8C@ zYc3uh9bjSpU0?t_Dq!^w)JDg9!j>M@t5(Z0w%&b*(>9 z0wOk`zy8MI((N+1u5T|+TYrjCe8j{{{sNoz%Rxj8ik$4%v9T=Kh41&_;k-hxCHU_v zeC2cnm?c_jd3nr+%}It#qr;+F($S6B&z}w#8r|9I>3AW>*ZCd zJ$+8a=F$%&DL4cm34ulM?KVtcDpd1~+Kwa*eG8ak+?iPSmDd+8Q*pdHx z?6OTsKW(@%MiTDXX}AKhVDNhFD=S2t7_h7$QbV9B^sGZN@81yO^w#Vsc>_#r4;PS) z?EO=TK)-u*lflmb#@hLH6=(#@euaA(mnpbC3Q8s03|Xy%=tVx?fNLhjWHH5VRD!!;KN|yL_9Aho&Q1u}Z`zxJ2IJq^ z6{SI>N-MIn6Rr>_>hg)C1|f}n9Q3p(ZYNGOu$%PQaBy)|UdJaV=9n1G+P7}~hdlw) z0t#>x^c(pH3c~hRWDT9HEC_Rw4m)d>JvTRJX(b{e^5Pe0;acCyuKS>UbXc}XY3y<9 zy|(s_wfRFS>jHE_rA%rNAXmx)sMvcfSnHJ$b)!tAkN|BjB9zO?3L0L0f#}NV=atAT z{I?|zKnyMsSBN_;Bl9Qv2gL>W>Y?Y@+W&2AN?_V@g%Nyv9VrH?7E3v=A>_D_8mJTo z8zSjpxU|O%f`kz3rLV7l_34}e*Vc{JkU#@ z)Uxt&y3S<@(R4t)YL!F#cbbmYf6#oq?%ag#1AOT=^yvU?2uSXY(D{h+(}Vd4&a?q4 ziOcIJ0#i2h{;+@k2`s0-h_BskAa?2q9f?LOL$KO8&5`uS=IqBvZV|~0{T~au(;VF0 z7ovYWymIPChj;=$;ZNR#9?(o3l29uT$0Mrm3hI@>VEqbjVXls{c)}ETqTLm3= z`Vt_0g#`i%L|)f}%>4QlWBj%2TwT9``}&3Lz>gy|*k2S^*+RM@KUc6zPq(5a#@GpQK=rR5me_<}=$A8oH{CBSQe-E@H=I6^5B!w*DgydM=_9L8f zR8`Q z*)v}w3LvoZGPS8CGPOg`=UtWTXOBV$soEjeOE)L;orSZx|8xvtII8l2Ea?r zQGRPd`;a$z#f-7%!D>$J>UO%TsTn*g(O8R{@`|1JziD-nbY*DPni0`7> zp{bcrB?Js{==G=Z?xK1gfuv>UH$cU?nzfEhe^}qH-PS-xF)sTcw?yTl`h^^YtM~pF Db2bS5 literal 0 HcmV?d00001 From bc845c26a9ba191a6d9eb68bfc7dde37f09d2c54 Mon Sep 17 00:00:00 2001 From: hallidayo <22655069+Hallidayo@users.noreply.github.com> Date: Wed, 10 Sep 2025 13:34:14 +0100 Subject: [PATCH 2/9] feat: studio connect url tab state (#38596) Update Connect.tsx --- .../components/interfaces/Connect/Connect.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/apps/studio/components/interfaces/Connect/Connect.tsx b/apps/studio/components/interfaces/Connect/Connect.tsx index cbbcd64a943b6..196dd2ab3b74a 100644 --- a/apps/studio/components/interfaces/Connect/Connect.tsx +++ b/apps/studio/components/interfaces/Connect/Connect.tsx @@ -1,7 +1,7 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' import { useParams } from 'common' import { ExternalLink, Plug } from 'lucide-react' -import { parseAsBoolean, useQueryState } from 'nuqs' +import { parseAsBoolean, parseAsString, useQueryState } from 'nuqs' import { useMemo, useState } from 'react' import { DatabaseConnectionString } from 'components/interfaces/Connect/DatabaseConnectionString' @@ -55,6 +55,8 @@ export const Connect = () => { parseAsBoolean.withDefault(false) ) + const [tab, setTab] = useQueryState('tab', parseAsString.withDefault('direct')) + const [connectionObject, setConnectionObject] = useState(frameworks) const [selectedParent, setSelectedParent] = useState(connectionObject[0].key) // aka nextjs const [selectedChild, setSelectedChild] = useState( @@ -122,6 +124,8 @@ export const Connect = () => { } function handleConnectionType(type: string) { + setTab(type) + if (type === 'frameworks') { setConnectionObject(frameworks) handleConnectionTypeChange(frameworks) @@ -185,6 +189,15 @@ export const Connect = () => { selectedGrandchild, }) + const handleDialogChange = (open: boolean) => { + if (!open) { + setShowConnect(null) + setTab(null) + } else { + setShowConnect(open) + } + } + if (!isActiveHealthy) { return ( { } return ( - setShowConnect(!open ? null : open)}> + diff --git a/apps/studio/components/layouts/Tabs/Tabs.tsx b/apps/studio/components/layouts/Tabs/Tabs.tsx index c8d1b017aae47..0816bd0a3f9d8 100644 --- a/apps/studio/components/layouts/Tabs/Tabs.tsx +++ b/apps/studio/components/layouts/Tabs/Tabs.tsx @@ -12,7 +12,7 @@ import { Plus, X } from 'lucide-react' import { useRouter } from 'next/router' import { useParams } from 'common' -import { useAppStateSnapshot } from 'state/app-state' +import { useDashboardHistory } from 'hooks/misc/useDashboardHistory' import { editorEntityTypes, useTabsStateSnapshot, type Tab } from 'state/tabs' import { cn, @@ -32,7 +32,7 @@ import { TabPreview } from './TabPreview' export const EditorTabs = () => { const { ref, id } = useParams() const router = useRouter() - const appSnap = useAppStateSnapshot() + const { setLastVisitedSnippet, setLastVisitedTable } = useDashboardHistory() const editor = useEditorType() const tabs = useTabsStateSnapshot() @@ -68,8 +68,10 @@ export const EditorTabs = () => { } const onClearDashboardHistory = () => { - if (ref && editor) { - appSnap.setDashboardHistory(ref, editor === 'table' ? 'editor' : editor, undefined) + if (editor === 'table') { + setLastVisitedTable(undefined) + } else if (editor === 'sql') { + setLastVisitedSnippet(undefined) } } diff --git a/apps/studio/hooks/misc/useDashboardHistory.ts b/apps/studio/hooks/misc/useDashboardHistory.ts new file mode 100644 index 0000000000000..11da087ace18b --- /dev/null +++ b/apps/studio/hooks/misc/useDashboardHistory.ts @@ -0,0 +1,30 @@ +import { LOCAL_STORAGE_KEYS, useParams } from 'common' +import { useLocalStorageQuery } from './useLocalStorage' + +type DashboardHistory = { editor?: string; sql?: string } +const DEFAULT_HISTORY = { editor: undefined, sql: undefined } + +export const useDashboardHistory = () => { + // [Joshen] History should always refer to the project that the user is currently on + const { ref } = useParams() + + const [history, setHistory, { isSuccess }] = useLocalStorageQuery( + LOCAL_STORAGE_KEYS.DASHBOARD_HISTORY(ref ?? ''), + DEFAULT_HISTORY + ) + + const setLastVisitedTable = (id?: string) => { + setHistory({ ...history, editor: id }) + } + + const setLastVisitedSnippet = (id?: string) => { + setHistory({ ...history, sql: id }) + } + + return { + history, + setLastVisitedTable, + setLastVisitedSnippet, + isHistoryLoaded: isSuccess, + } +} diff --git a/apps/studio/pages/project/[ref]/editor/index.tsx b/apps/studio/pages/project/[ref]/editor/index.tsx index 6ba1073515fb6..6133db86b6629 100644 --- a/apps/studio/pages/project/[ref]/editor/index.tsx +++ b/apps/studio/pages/project/[ref]/editor/index.tsx @@ -8,7 +8,7 @@ import { EditorBaseLayout } from 'components/layouts/editors/EditorBaseLayout' import TableEditorLayout from 'components/layouts/TableEditorLayout/TableEditorLayout' import { TableEditorMenu } from 'components/layouts/TableEditorLayout/TableEditorMenu' import { NewTab } from 'components/layouts/Tabs/NewTab' -import { useAppStateSnapshot } from 'state/app-state' +import { useDashboardHistory } from 'hooks/misc/useDashboardHistory' import { editorEntityTypes, useTabsStateSnapshot } from 'state/tabs' import type { NextPageWithLayout } from 'types' @@ -16,26 +16,28 @@ const TableEditorPage: NextPageWithLayout = () => { const router = useRouter() const { ref: projectRef } = useParams() const tabStore = useTabsStateSnapshot() - const appSnap = useAppStateSnapshot() + const { history, isHistoryLoaded } = useDashboardHistory() const onTableCreated = (table: { id: number }) => { router.push(`/project/${projectRef}/editor/${table.id}`) } useEffect(() => { - const lastOpenedTab = appSnap.dashboardHistory.editor - - const lastTabId = tabStore.openTabs.find((id) => - editorEntityTypes.table.includes(tabStore.tabsMap[id]?.type) - ) - if (lastOpenedTab !== undefined) { - router.push(`/project/${projectRef}/editor/${appSnap.dashboardHistory.editor}`) - } else if (lastTabId) { + if (isHistoryLoaded) { + const lastOpenedTable = history.editor + const lastTabId = tabStore.openTabs.find((id) => + editorEntityTypes.table.includes(tabStore.tabsMap[id]?.type) + ) + // Handle redirect to last opened table tab, or last table tab - const lastTab = tabStore.tabsMap[lastTabId] - if (lastTab) router.push(`/project/${projectRef}/editor/${lastTab.metadata?.tableId}`) + if (lastOpenedTable !== undefined) { + router.push(`/project/${projectRef}/editor/${history.editor}`) + } else if (lastTabId) { + const lastTab = tabStore.tabsMap[lastTabId] + if (lastTab) router.push(`/project/${projectRef}/editor/${lastTab.metadata?.tableId}`) + } } - }, []) + }, [isHistoryLoaded]) return ( <> diff --git a/apps/studio/pages/project/[ref]/index.tsx b/apps/studio/pages/project/[ref]/index.tsx index b786f450fe37b..ec00ec1dd4726 100644 --- a/apps/studio/pages/project/[ref]/index.tsx +++ b/apps/studio/pages/project/[ref]/index.tsx @@ -7,6 +7,7 @@ import type { NextPageWithLayout } from 'types' const HomePage: NextPageWithLayout = () => { const isHomeNew = useFlag('homeNew') + if (isHomeNew) { return } diff --git a/apps/studio/pages/project/[ref]/sql/[id].tsx b/apps/studio/pages/project/[ref]/sql/[id].tsx index 36acdb1ef890d..558cfb8a90eb0 100644 --- a/apps/studio/pages/project/[ref]/sql/[id].tsx +++ b/apps/studio/pages/project/[ref]/sql/[id].tsx @@ -1,3 +1,4 @@ +import Link from 'next/link' import { useRouter } from 'next/router' import { useEffect } from 'react' @@ -9,8 +10,8 @@ import { useEditorType } from 'components/layouts/editors/EditorsLayout.hooks' import SQLEditorLayout from 'components/layouts/SQLEditorLayout/SQLEditorLayout' import { SQLEditorMenu } from 'components/layouts/SQLEditorLayout/SQLEditorMenu' import { useContentIdQuery } from 'data/content/content-id-query' -import Link from 'next/link' -import { useAppStateSnapshot } from 'state/app-state' +import { useDashboardHistory } from 'hooks/misc/useDashboardHistory' +import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { SnippetWithContent, useSnippets, useSqlEditorV2StateSnapshot } from 'state/sql-editor-v2' import { createTabId, useTabsStateSnapshot } from 'state/tabs' import type { NextPageWithLayout } from 'types' @@ -20,11 +21,12 @@ import { Admonition } from 'ui-patterns' const SqlEditor: NextPageWithLayout = () => { const router = useRouter() const { id, ref, content, skip } = useParams() + const { data: project } = useSelectedProjectQuery() const editor = useEditorType() const tabs = useTabsStateSnapshot() - const appSnap = useAppStateSnapshot() const snapV2 = useSqlEditorV2StateSnapshot() + const { history, setLastVisitedSnippet } = useDashboardHistory() const allSnippets = useSnippets(ref!) const snippet = allSnippets.find((x) => x.id === id) @@ -49,21 +51,27 @@ const SqlEditor: NextPageWithLayout = () => { const invalidId = isError && error.code === 400 && error.message.includes('Invalid uuid') useEffect(() => { - if (ref && data) { - snapV2.setSnippet(ref, data as unknown as SnippetWithContent) + if (ref && data && project) { + // [Joshen] Check if snippet belongs to the current project + if (data.project_id === project.id) { + snapV2.setSnippet(ref, data as unknown as SnippetWithContent) + } else { + setLastVisitedSnippet(undefined) + router.push(`/project/${ref}/sql/new`) + } } - }, [ref, data]) + }, [ref, data, project]) // Load the last visited snippet when landing on /new useEffect(() => { if ( id === 'new' && skip !== 'true' && // [Joshen] Skip flag implies to skip loading the last visited snippet - appSnap.dashboardHistory.sql !== undefined && + history.sql !== undefined && content === undefined ) { - const snippet = allSnippets.find((snippet) => snippet.id === appSnap.dashboardHistory.sql) - if (snippet !== undefined) router.push(`/project/${ref}/sql/${appSnap.dashboardHistory.sql}`) + const snippet = allSnippets.find((snippet) => snippet.id === history.sql) + if (snippet !== undefined) router.push(`/project/${ref}/sql/${history.sql}`) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [id, allSnippets, content]) @@ -104,9 +112,7 @@ const SqlEditor: NextPageWithLayout = () => { id: tabId, router, editor, - onClearDashboardHistory: () => { - if (ref) appSnap.setDashboardHistory(ref, 'sql', undefined) - }, + onClearDashboardHistory: () => setLastVisitedSnippet(undefined), }) }} > diff --git a/apps/studio/pages/project/[ref]/sql/index.tsx b/apps/studio/pages/project/[ref]/sql/index.tsx index 893eee8c440c6..79aff70fbf119 100644 --- a/apps/studio/pages/project/[ref]/sql/index.tsx +++ b/apps/studio/pages/project/[ref]/sql/index.tsx @@ -6,35 +6,39 @@ import DefaultLayout from 'components/layouts/DefaultLayout' import { EditorBaseLayout } from 'components/layouts/editors/EditorBaseLayout' import SQLEditorLayout from 'components/layouts/SQLEditorLayout/SQLEditorLayout' import { SQLEditorMenu } from 'components/layouts/SQLEditorLayout/SQLEditorMenu' -import { useAppStateSnapshot } from 'state/app-state' +import { useDashboardHistory } from 'hooks/misc/useDashboardHistory' import { useTabsStateSnapshot } from 'state/tabs' import type { NextPageWithLayout } from 'types' -const TableEditorPage: NextPageWithLayout = () => { +const SQLEditorIndexPage: NextPageWithLayout = () => { const router = useRouter() const { ref: projectRef } = useParams() const store = useTabsStateSnapshot() - const appSnap = useAppStateSnapshot() + + const { history, isHistoryLoaded } = useDashboardHistory() useEffect(() => { - // Handle redirect to last opened snippet tab, or last snippet tab - const lastOpenedTab = appSnap.dashboardHistory.sql - const lastTabId = store.openTabs.find((id) => store.tabsMap[id]?.type === 'sql') - if (lastOpenedTab !== undefined) { - router.push(`/project/${projectRef}/sql/${appSnap.dashboardHistory.sql}`) - } else if (lastTabId) { - const lastTab = store.tabsMap[lastTabId] - if (lastTab) router.push(`/project/${projectRef}/sql/${lastTab.id.replace('sql-', '')}`) - } else { - router.push(`/project/${projectRef}/sql/new`) + if (isHistoryLoaded) { + // Handle redirect to last opened snippet tab, or last snippet tab + const lastOpenedTab = history.sql + const lastTabId = store.openTabs.find((id) => store.tabsMap[id]?.type === 'sql') + + if (lastOpenedTab !== undefined) { + router.push(`/project/${projectRef}/sql/${history.sql}`) + } else if (lastTabId) { + const lastTab = store.tabsMap[lastTabId] + if (lastTab) router.push(`/project/${projectRef}/sql/${lastTab.id.replace('sql-', '')}`) + } else { + router.push(`/project/${projectRef}/sql/new`) + } } // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) + }, [isHistoryLoaded]) return null } -TableEditorPage.getLayout = (page) => ( +SQLEditorIndexPage.getLayout = (page) => ( } product="SQL Editor"> {page} @@ -42,4 +46,4 @@ TableEditorPage.getLayout = (page) => ( ) -export default TableEditorPage +export default SQLEditorIndexPage diff --git a/apps/studio/state/app-state.ts b/apps/studio/state/app-state.ts index 133c53edd2e41..d4533c5462e8e 100644 --- a/apps/studio/state/app-state.ts +++ b/apps/studio/state/app-state.ts @@ -1,19 +1,9 @@ import { proxy, snapshot, useSnapshot } from 'valtio' -import { LOCAL_STORAGE_KEYS as COMMON_LOCAL_STORAGE_KEYS, LOCAL_STORAGE_KEYS } from 'common' -type DashboardHistoryType = { - sql?: string - editor?: string -} - -const EMPTY_DASHBOARD_HISTORY: DashboardHistoryType = { - sql: undefined, - editor: undefined, -} +import { LOCAL_STORAGE_KEYS as COMMON_LOCAL_STORAGE_KEYS } from 'common' const getInitialState = () => { return { - dashboardHistory: EMPTY_DASHBOARD_HISTORY, activeDocsSection: ['introduction'], docsLanguage: 'js', showProjectApiDocs: false, @@ -31,16 +21,6 @@ const getInitialState = () => { export const appState = proxy({ ...getInitialState(), - setDashboardHistory: (ref: string, key: 'sql' | 'editor', id: string | undefined) => { - if (appState.dashboardHistory[key] !== id) { - appState.dashboardHistory[key] = id - localStorage.setItem( - LOCAL_STORAGE_KEYS.DASHBOARD_HISTORY(ref), - JSON.stringify(appState.dashboardHistory) - ) - } - }, - activeDocsSection: ['introduction'], docsLanguage: 'js' as 'js' | 'bash', showProjectApiDocs: false, From 4089ed660fcc5a58fd778931bf769fe3b5571271 Mon Sep 17 00:00:00 2001 From: Alan Daniel Date: Wed, 10 Sep 2025 10:21:45 -0400 Subject: [PATCH 6/9] [www]: hide blog post loaders in production deployments (#38599) * hide loaders in production deployments * remove empty circle * remove loading states for live preview --- apps/www/components/Blog/BlogPostRenderer.tsx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/apps/www/components/Blog/BlogPostRenderer.tsx b/apps/www/components/Blog/BlogPostRenderer.tsx index 0f8ee26cbf1a6..3aa8cf0a0eacb 100644 --- a/apps/www/components/Blog/BlogPostRenderer.tsx +++ b/apps/www/components/Blog/BlogPostRenderer.tsx @@ -39,7 +39,6 @@ const BlogPostRenderer = ({ blogMetaData, isDraftMode, livePreviewData, - isLivePreviewLoading, prevPost, nextPost, authors, @@ -174,9 +173,6 @@ const BlogPostRenderer = ({ return ( <> - {isLivePreviewLoading && ( -
- )} {isDraftMode && }
- Blog{' '} - {isLivePreviewLoading && ( -
Draft loading...
- )} + Blog

{blogMetaData.title}

From 7676cf44686bf5777e255639fc15acacbd0b1603 Mon Sep 17 00:00:00 2001 From: Alan Daniel Date: Wed, 10 Sep 2025 10:37:56 -0400 Subject: [PATCH 7/9] add mobile text variant for AnnouncementBadge (#38602) --- apps/www/components/Announcement/Badge.tsx | 18 +++++++++++++++++- apps/www/components/Hero/Hero.tsx | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/www/components/Announcement/Badge.tsx b/apps/www/components/Announcement/Badge.tsx index 19e1539bca323..052088e3e7eee 100644 --- a/apps/www/components/Announcement/Badge.tsx +++ b/apps/www/components/Announcement/Badge.tsx @@ -6,6 +6,8 @@ import { ChevronRightIcon } from 'lucide-react' interface Props { url: string announcement: string | ReactNode + /* Text or node to display on mobile */ + announcementMobile?: string | ReactNode badge?: string | ReactNode target?: '_self' | '_blank' | string className?: string @@ -16,6 +18,7 @@ interface Props { const AnnouncementBadge = ({ url, announcement, + announcementMobile, badge, target = '_self', className, @@ -56,7 +59,20 @@ const AnnouncementBadge = ({ {badge} )} - {announcement} + + {announcement} + + {announcementMobile && ( + + {announcementMobile} + + )} + {hasArrow && ( )} diff --git a/apps/www/components/Hero/Hero.tsx b/apps/www/components/Hero/Hero.tsx index 8a342a8f54648..40029b7d137a1 100644 --- a/apps/www/components/Hero/Hero.tsx +++ b/apps/www/components/Hero/Hero.tsx @@ -18,6 +18,7 @@ const Hero = () => {
From 4590b36a03d2b5c81cdb348015bf933f1ad95fbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Wed, 10 Sep 2025 16:43:31 +0200 Subject: [PATCH 8/9] fix reading time for blog posts (#38600) * fix reading time for blog posts * fix prettier * ran `pnpm run format` --- apps/www/app/blog/[slug]/page.tsx | 6 +- apps/www/components/Blog/BlogPostRenderer.tsx | 13 +- .../src/FilterBar/FilterBar.test.tsx | 30 +- .../ui-patterns/src/FilterBar/hooks.test.ts | 2 +- .../ui-patterns/src/FilterBar/useAIFilter.ts | 6 +- .../src/FilterBar/useCommandMenu.ts | 27 +- .../src/FilterBar/useKeyboardNavigation.ts | 267 ++++++++++-------- .../ui-patterns/src/FilterBar/utils.test.ts | 6 +- packages/ui-patterns/src/FilterBar/utils.ts | 35 ++- 9 files changed, 213 insertions(+), 179 deletions(-) diff --git a/apps/www/app/blog/[slug]/page.tsx b/apps/www/app/blog/[slug]/page.tsx index cb11a22a1f19d..7f142ae402609 100644 --- a/apps/www/app/blog/[slug]/page.tsx +++ b/apps/www/app/blog/[slug]/page.tsx @@ -198,7 +198,11 @@ export default async function BlogPostPage({ params }: { params: Promise const content = parsedContent.content const tocDepth = (parsedContent.data as any)?.toc_depth ?? 3 const mdxSource = await mdxSerialize(content, { tocDepth }) - const blogPost = { ...parsedContent.data } + const { generateReadingTime } = await import('lib/helpers') + const blogPost = { + ...parsedContent.data, + readingTime: generateReadingTime(content), + } const allStaticPosts = getSortedPosts({ directory: '_blog' }) const allPosts = [...allStaticPosts].sort((a, b) => { diff --git a/apps/www/components/Blog/BlogPostRenderer.tsx b/apps/www/components/Blog/BlogPostRenderer.tsx index 3aa8cf0a0eacb..95cb9021e8ad8 100644 --- a/apps/www/components/Blog/BlogPostRenderer.tsx +++ b/apps/www/components/Blog/BlogPostRenderer.tsx @@ -163,14 +163,6 @@ const BlogPostRenderer = ({ ? `/images/blog/${blogMetaData.thumb}` : '' - const generateReadingTime = (text: string | undefined): string => { - if (!text) return '0 min read' - const wordsPerMinute = 200 - const numberOfWords = text.split(/\s/g).length - const minutes = Math.ceil(numberOfWords / wordsPerMinute) - return `${minutes} min read` - } - return ( <> {isDraftMode && } @@ -203,10 +195,7 @@ const BlogPostRenderer = ({

{dayjs(blogMetaData.date).format('DD MMM YYYY')}

-

- {(blogMetaData as any).readingTime || - generateReadingTime(blogMetaData.source)} -

+

{(blogMetaData as any).readingTime}

{authors.length > 0 && (
diff --git a/packages/ui-patterns/src/FilterBar/FilterBar.test.tsx b/packages/ui-patterns/src/FilterBar/FilterBar.test.tsx index 7aa3e2d7f45a7..407d92b60ee16 100644 --- a/packages/ui-patterns/src/FilterBar/FilterBar.test.tsx +++ b/packages/ui-patterns/src/FilterBar/FilterBar.test.tsx @@ -74,7 +74,7 @@ describe('FilterBar', () => { const handleFilterChange = vi.fn((filters) => { currentFilters = filters }) - + const { rerender } = render( { await waitFor(() => { expect(handleFilterChange).toHaveBeenCalled() }) - + // Re-render with updated filters rerender( { const handleFilterChange = vi.fn((filters) => { currentFilters = filters }) - + const { rerender } = render( { await waitFor(() => { expect(handleFilterChange).toHaveBeenCalled() }) - + rerender( { /> ) - const valueInput = await waitFor( - () => screen.getByLabelText('Value for Status'), - { timeout: 3000 } - ) + const valueInput = await waitFor(() => screen.getByLabelText('Value for Status'), { + timeout: 3000, + }) valueInput.focus() // Popover should show value options @@ -169,7 +168,7 @@ describe('FilterBar', () => { await waitFor(() => { expect(handleFilterChange).toHaveBeenCalledTimes(2) // Once for property, once for value }) - + rerender( { const handleFilterChange = vi.fn((filters) => { currentFilters = filters }) - + const { rerender } = render( { await waitFor(() => { expect(handleFilterChange).toHaveBeenCalled() }) - + rerender( { ) // Wait for FilterCondition to be created - const valueInput = await waitFor( - () => screen.getByLabelText('Value for Tag'), - { timeout: 3000 } - ) + const valueInput = await waitFor(() => screen.getByLabelText('Value for Tag'), { + timeout: 3000, + }) // Focus the value input to show the popover await user.click(valueInput) @@ -261,7 +259,7 @@ describe('FilterBar', () => { await waitFor(() => { expect(handleFilterChange).toHaveBeenCalledTimes(2) // Once for property, once for value }) - + rerender( { expect(result.current.loadingOptions).toEqual({}) }) }) -}) \ No newline at end of file +}) diff --git a/packages/ui-patterns/src/FilterBar/useAIFilter.ts b/packages/ui-patterns/src/FilterBar/useAIFilter.ts index f591877782f18..6e8cda324b386 100644 --- a/packages/ui-patterns/src/FilterBar/useAIFilter.ts +++ b/packages/ui-patterns/src/FilterBar/useAIFilter.ts @@ -96,9 +96,7 @@ function processConditions(conditions: any[], filterProperties: FilterProperty[] conditions: processConditions(condition.conditions, filterProperties), } } else { - const matchedProperty = filterProperties.find( - (prop) => prop.name === condition.propertyName - ) + const matchedProperty = filterProperties.find((prop) => prop.name === condition.propertyName) if (!matchedProperty) { throw new Error(`Invalid property: ${condition.propertyName}`) } @@ -109,4 +107,4 @@ function processConditions(conditions: any[], filterProperties: FilterProperty[] } } }) -} \ No newline at end of file +} diff --git a/packages/ui-patterns/src/FilterBar/useCommandMenu.ts b/packages/ui-patterns/src/FilterBar/useCommandMenu.ts index c8832c049bd30..676fc97af8b9d 100644 --- a/packages/ui-patterns/src/FilterBar/useCommandMenu.ts +++ b/packages/ui-patterns/src/FilterBar/useCommandMenu.ts @@ -43,7 +43,7 @@ export function useCommandMenu({ if (activeInput?.type === 'group') { items.push(...getPropertyItems(filterProperties, inputValue)) - + if (supportsOperators) { items.push({ value: 'group', @@ -59,7 +59,16 @@ export function useCommandMenu({ }) } } else if (activeInput?.type === 'value') { - items.push(...getValueItems(activeInput, activeFilters, filterProperties, propertyOptionsCache, loadingOptions, inputValue)) + items.push( + ...getValueItems( + activeInput, + activeFilters, + filterProperties, + propertyOptionsCache, + loadingOptions, + inputValue + ) + ) } return items @@ -86,13 +95,17 @@ function getOperatorItems( const property = filterProperties.find((p) => p.name === condition?.propertyName) const operatorValue = condition?.operator?.toUpperCase() || '' const availableOperators = property?.operators || ['='] - + return availableOperators .filter((op) => op.toUpperCase().includes(operatorValue)) .map((op) => ({ value: op, label: op })) } -function getInputValue(activeInput: ActiveInput, freeformText: string, activeFilters: FilterGroup): string { +function getInputValue( + activeInput: ActiveInput, + freeformText: string, + activeFilters: FilterGroup +): string { return activeInput?.type === 'group' ? freeformText : activeInput?.type === 'value' @@ -147,7 +160,7 @@ function getValueItems( function getArrayOptionItems(options: any[], inputValue: string): CommandItem[] { const items: CommandItem[] = [] - + for (const option of options) { if (typeof option === 'string') { if (option.toLowerCase().includes(inputValue.toLowerCase())) { @@ -174,7 +187,7 @@ function getArrayOptionItems(options: any[], inputValue: string): CommandItem[] } } } - + return items } @@ -191,4 +204,4 @@ function getCachedOptionItems(options: any[]): CommandItem[] { label: option.label, } }) -} \ No newline at end of file +} diff --git a/packages/ui-patterns/src/FilterBar/useKeyboardNavigation.ts b/packages/ui-patterns/src/FilterBar/useKeyboardNavigation.ts index 5464a5fe20715..f4940d6bf17dc 100644 --- a/packages/ui-patterns/src/FilterBar/useKeyboardNavigation.ts +++ b/packages/ui-patterns/src/FilterBar/useKeyboardNavigation.ts @@ -90,135 +90,159 @@ export function useKeyboardNavigation({ [activeInput, activeFilters, removeFilterByPath, removeGroupByPath, setActiveInput] ) - const findPreviousCondition = useCallback((currentPath: number[]): number[] | null => { - const [groupPath, conditionIndex] = [currentPath.slice(0, -1), currentPath[currentPath.length - 1]] - - // Try previous condition in same group - if (conditionIndex > 0) { - const prevPath = [...groupPath, conditionIndex - 1] + const findPreviousCondition = useCallback( + (currentPath: number[]): number[] | null => { + const [groupPath, conditionIndex] = [ + currentPath.slice(0, -1), + currentPath[currentPath.length - 1], + ] + + // Try previous condition in same group + if (conditionIndex > 0) { + const prevPath = [...groupPath, conditionIndex - 1] + const group = findGroupByPath(activeFilters, groupPath) + const prevCondition = group?.conditions[conditionIndex - 1] + // If previous is a condition (not a group), return its path + if (prevCondition && !('logicalOperator' in prevCondition)) { + return prevPath + } + // If previous is a group, find its last condition recursively + if (prevCondition && 'logicalOperator' in prevCondition) { + return findLastConditionInGroup(prevPath) + } + } + + // No previous condition in this group, go up to parent + if (groupPath.length > 0) { + return findPreviousCondition(groupPath) + } + + return null + }, + [activeFilters] + ) + + const findNextCondition = useCallback( + (currentPath: number[]): number[] | null => { + const [groupPath, conditionIndex] = [ + currentPath.slice(0, -1), + currentPath[currentPath.length - 1], + ] const group = findGroupByPath(activeFilters, groupPath) - const prevCondition = group?.conditions[conditionIndex - 1] - // If previous is a condition (not a group), return its path - if (prevCondition && !('logicalOperator' in prevCondition)) { - return prevPath + + // Try next condition in same group + if (group && conditionIndex < group.conditions.length - 1) { + const nextPath = [...groupPath, conditionIndex + 1] + const nextCondition = group.conditions[conditionIndex + 1] + // If next is a condition, return its path + if (!('logicalOperator' in nextCondition)) { + return nextPath + } + // If next is a group, find its first condition recursively + return findFirstConditionInGroup(nextPath) + } + + // No next condition in this group, go up to parent and find next + if (groupPath.length > 0) { + return findNextCondition(groupPath) + } + + return null + }, + [activeFilters] + ) + + const findFirstConditionInGroup = useCallback( + (groupPath: number[]): number[] | null => { + const group = findGroupByPath(activeFilters, groupPath) + if (!group || group.conditions.length === 0) return null + + const firstCondition = group.conditions[0] + if (!('logicalOperator' in firstCondition)) { + return [...groupPath, 0] } - // If previous is a group, find its last condition recursively - if (prevCondition && 'logicalOperator' in prevCondition) { - return findLastConditionInGroup(prevPath) + // First item is a group, recurse + return findFirstConditionInGroup([...groupPath, 0]) + }, + [activeFilters] + ) + + const findLastConditionInGroup = useCallback( + (groupPath: number[]): number[] | null => { + const group = findGroupByPath(activeFilters, groupPath) + if (!group || group.conditions.length === 0) return null + + const lastCondition = group.conditions[group.conditions.length - 1] + const lastIndex = group.conditions.length - 1 + if (!('logicalOperator' in lastCondition)) { + return [...groupPath, lastIndex] } - } - - // No previous condition in this group, go up to parent - if (groupPath.length > 0) { - return findPreviousCondition(groupPath) - } - - return null - }, [activeFilters]) + // Last item is a group, recurse + return findLastConditionInGroup([...groupPath, lastIndex]) + }, + [activeFilters] + ) - const findNextCondition = useCallback((currentPath: number[]): number[] | null => { - const [groupPath, conditionIndex] = [currentPath.slice(0, -1), currentPath[currentPath.length - 1]] - const group = findGroupByPath(activeFilters, groupPath) - - // Try next condition in same group - if (group && conditionIndex < group.conditions.length - 1) { - const nextPath = [...groupPath, conditionIndex + 1] - const nextCondition = group.conditions[conditionIndex + 1] - // If next is a condition, return its path - if (!('logicalOperator' in nextCondition)) { - return nextPath + const findPreviousConditionFromGroup = useCallback( + (groupPath: number[]): number[] | null => { + // If this group has conditions, find the last one + const group = findGroupByPath(activeFilters, groupPath) + if (group && group.conditions.length > 0) { + return findLastConditionInGroup(groupPath) } - // If next is a group, find its first condition recursively - return findFirstConditionInGroup(nextPath) - } - - // No next condition in this group, go up to parent and find next - if (groupPath.length > 0) { - return findNextCondition(groupPath) - } - - return null - }, [activeFilters]) - const findFirstConditionInGroup = useCallback((groupPath: number[]): number[] | null => { - const group = findGroupByPath(activeFilters, groupPath) - if (!group || group.conditions.length === 0) return null - - const firstCondition = group.conditions[0] - if (!('logicalOperator' in firstCondition)) { - return [...groupPath, 0] - } - // First item is a group, recurse - return findFirstConditionInGroup([...groupPath, 0]) - }, [activeFilters]) + // No conditions in this group, find previous sibling or parent + if (groupPath.length > 0) { + const parentPath = groupPath.slice(0, -1) + const groupIndex = groupPath[groupPath.length - 1] + if (groupIndex > 0) { + // Find last condition in previous sibling + const prevSiblingPath = [...parentPath, groupIndex - 1] + const parentGroup = findGroupByPath(activeFilters, parentPath) + const prevSibling = parentGroup?.conditions[groupIndex - 1] + if (prevSibling) { + if ('logicalOperator' in prevSibling) { + return findLastConditionInGroup(prevSiblingPath) + } else { + return prevSiblingPath + } + } + } + // Look at parent group + return findPreviousConditionFromGroup(parentPath) + } - const findLastConditionInGroup = useCallback((groupPath: number[]): number[] | null => { - const group = findGroupByPath(activeFilters, groupPath) - if (!group || group.conditions.length === 0) return null - - const lastCondition = group.conditions[group.conditions.length - 1] - const lastIndex = group.conditions.length - 1 - if (!('logicalOperator' in lastCondition)) { - return [...groupPath, lastIndex] - } - // Last item is a group, recurse - return findLastConditionInGroup([...groupPath, lastIndex]) - }, [activeFilters]) + return null + }, + [activeFilters, findLastConditionInGroup] + ) - const findPreviousConditionFromGroup = useCallback((groupPath: number[]): number[] | null => { - // If this group has conditions, find the last one - const group = findGroupByPath(activeFilters, groupPath) - if (group && group.conditions.length > 0) { - return findLastConditionInGroup(groupPath) - } - - // No conditions in this group, find previous sibling or parent - if (groupPath.length > 0) { - const parentPath = groupPath.slice(0, -1) - const groupIndex = groupPath[groupPath.length - 1] - if (groupIndex > 0) { - // Find last condition in previous sibling - const prevSiblingPath = [...parentPath, groupIndex - 1] + const findNextConditionFromGroup = useCallback( + (groupPath: number[]): number[] | null => { + // Find next sibling or dive into nested groups + if (groupPath.length > 0) { + const parentPath = groupPath.slice(0, -1) + const groupIndex = groupPath[groupPath.length - 1] const parentGroup = findGroupByPath(activeFilters, parentPath) - const prevSibling = parentGroup?.conditions[groupIndex - 1] - if (prevSibling) { - if ('logicalOperator' in prevSibling) { - return findLastConditionInGroup(prevSiblingPath) + + if (parentGroup && groupIndex < parentGroup.conditions.length - 1) { + // Find first condition in next sibling + const nextSiblingPath = [...parentPath, groupIndex + 1] + const nextSibling = parentGroup.conditions[groupIndex + 1] + if ('logicalOperator' in nextSibling) { + return findFirstConditionInGroup(nextSiblingPath) } else { - return prevSiblingPath + return nextSiblingPath } } + // Look at parent group + return findNextConditionFromGroup(parentPath) } - // Look at parent group - return findPreviousConditionFromGroup(parentPath) - } - - return null - }, [activeFilters, findLastConditionInGroup]) - const findNextConditionFromGroup = useCallback((groupPath: number[]): number[] | null => { - // Find next sibling or dive into nested groups - if (groupPath.length > 0) { - const parentPath = groupPath.slice(0, -1) - const groupIndex = groupPath[groupPath.length - 1] - const parentGroup = findGroupByPath(activeFilters, parentPath) - - if (parentGroup && groupIndex < parentGroup.conditions.length - 1) { - // Find first condition in next sibling - const nextSiblingPath = [...parentPath, groupIndex + 1] - const nextSibling = parentGroup.conditions[groupIndex + 1] - if ('logicalOperator' in nextSibling) { - return findFirstConditionInGroup(nextSiblingPath) - } else { - return nextSiblingPath - } - } - // Look at parent group - return findNextConditionFromGroup(parentPath) - } - - return null - }, [activeFilters, findFirstConditionInGroup]) + return null + }, + [activeFilters, findFirstConditionInGroup] + ) const handleArrowLeft = useCallback( (e: KeyboardEvent) => { @@ -252,7 +276,7 @@ export function useKeyboardNavigation({ const groupPath = activeInput.path.slice(0, -1) const conditionIndex = activeInput.path[activeInput.path.length - 1] const group = findGroupByPath(activeFilters, groupPath) - + if (group && conditionIndex < group.conditions.length - 1) { // There's a next condition, navigate to it const nextCondition = group.conditions[conditionIndex + 1] @@ -279,10 +303,17 @@ export function useKeyboardNavigation({ } } }, - [activeInput, activeFilters, findGroupByPath, findFirstConditionInGroup, findNextConditionFromGroup, setActiveInput] + [ + activeInput, + activeFilters, + findGroupByPath, + findFirstConditionInGroup, + findNextConditionFromGroup, + setActiveInput, + ] ) return { handleKeyDown, } -} \ No newline at end of file +} diff --git a/packages/ui-patterns/src/FilterBar/utils.test.ts b/packages/ui-patterns/src/FilterBar/utils.test.ts index cd77207570d55..27cdd8ebb847e 100644 --- a/packages/ui-patterns/src/FilterBar/utils.test.ts +++ b/packages/ui-patterns/src/FilterBar/utils.test.ts @@ -201,7 +201,9 @@ describe('FilterBar Utils', () => { const filterOption = { value: 'test', label: 'Test' } expect(isFilterOptionObject(filterOption)).toBe(true) expect(isFilterOptionObject('string')).toBe(false) - expect(isFilterOptionObject({ component: () => React.createElement('div', {}, 'test') })).toBe(false) + expect( + isFilterOptionObject({ component: () => React.createElement('div', {}, 'test') }) + ).toBe(false) }) it('identifies async functions', () => { @@ -224,4 +226,4 @@ describe('FilterBar Utils', () => { expect(isSyncOptionsFunction(array)).toBe(false) }) }) -}) \ No newline at end of file +}) diff --git a/packages/ui-patterns/src/FilterBar/utils.ts b/packages/ui-patterns/src/FilterBar/utils.ts index 1e44454cb8ce6..6276c18aa539b 100644 --- a/packages/ui-patterns/src/FilterBar/utils.ts +++ b/packages/ui-patterns/src/FilterBar/utils.ts @@ -1,12 +1,12 @@ -import { - FilterGroup, - FilterCondition, +import { + FilterGroup, + FilterCondition, FilterProperty, CustomOptionObject, FilterOptionObject, AsyncOptionsFunction, SyncOptionsFunction, - isGroup + isGroup, } from './types' export function findGroupByPath(group: FilterGroup, path: number[]): FilterGroup | null { @@ -60,12 +60,16 @@ export function isAsyncOptionsFunction( if (typeof options !== 'function') return false // More reliable async function detection const fnString = options.toString() - return options.constructor.name === 'AsyncFunction' || - fnString.startsWith('async ') || - fnString.includes('async function') + return ( + options.constructor.name === 'AsyncFunction' || + fnString.startsWith('async ') || + fnString.includes('async function') + ) } -export function isSyncOptionsFunction(options: FilterProperty['options']): options is SyncOptionsFunction { +export function isSyncOptionsFunction( + options: FilterProperty['options'] +): options is SyncOptionsFunction { if (!options || Array.isArray(options) || isCustomOptionObject(options)) return false return typeof options === 'function' } @@ -113,8 +117,8 @@ export function removeFromGroup(group: FilterGroup, path: number[]): FilterGroup } export function addFilterToGroup( - group: FilterGroup, - path: number[], + group: FilterGroup, + path: number[], property: FilterProperty ): FilterGroup { if (path.length === 0) { @@ -207,10 +211,7 @@ export function updateNestedOperator( } } -export function updateNestedLogicalOperator( - group: FilterGroup, - path: number[] -): FilterGroup { +export function updateNestedLogicalOperator(group: FilterGroup, path: number[]): FilterGroup { if (path.length === 0) { return { ...group, @@ -244,9 +245,7 @@ export function updateGroupAtPath( return { ...group, conditions: group.conditions.map((condition, index) => - index === current - ? updateGroupAtPath(condition as FilterGroup, rest, newGroup) - : condition + index === current ? updateGroupAtPath(condition as FilterGroup, rest, newGroup) : condition ), } -} \ No newline at end of file +} From 2f8d709223a3493978745696bfb6697d8b2e8c90 Mon Sep 17 00:00:00 2001 From: Jeff Smick Date: Wed, 10 Sep 2025 08:27:23 -0700 Subject: [PATCH 9/9] add myself as a human (#38604) --- apps/docs/public/humans.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/docs/public/humans.txt b/apps/docs/public/humans.txt index f4c63bbfa4a3e..8e024abc2b802 100644 --- a/apps/docs/public/humans.txt +++ b/apps/docs/public/humans.txt @@ -63,6 +63,7 @@ Ignacio Dobronich Illia Basalaiev Inian P Ivan Vasilov +Jeff Smick Jenny Kibiri Jess Shears Jim Chanco Jr