From ac23f813cba05fdcd6c44d1bff260ff9ddb12132 Mon Sep 17 00:00:00 2001 From: Emmanuel Oloyede Date: Sat, 13 Jul 2024 12:28:44 +0100 Subject: [PATCH] feat: create intro page with header, missingSection, and tradewithsuperpowerSection --- index.html | 7 ++++- public/images/curve.png | Bin 0 -> 23398 bytes .../{ => images}/syncswap-cover-art-min.png | Bin public/{ => images}/syncswap-logo.svg | 0 src/App.tsx | 10 +++++-- src/components/Footer.tsx | 6 ++++ src/components/Header.tsx | 11 -------- src/components/Logo.tsx | 2 +- src/components/ui/button.tsx | 5 ++-- src/index.css | 10 ++++--- src/main.tsx | 6 +++- .../components/BuiltWithTheBestSection.tsx | 6 ++++ .../components/CommunityOwnershipSection.tsx | 6 ++++ src/pages/intro/components/FeatureArticle.tsx | 14 ++++++++++ src/pages/intro/components/Header.tsx | 14 ++++++++++ src/pages/intro/components/MissionSection.tsx | 26 ++++++++++++++++++ .../components/TradeWithSuperpowerSection.tsx | 26 ++++++++++++++++++ src/pages/intro/index.tsx | 24 ++++++++++++++++ tailwind.config.js | 14 +++++++--- 19 files changed, 161 insertions(+), 26 deletions(-) create mode 100644 public/images/curve.png rename public/{ => images}/syncswap-cover-art-min.png (100%) rename public/{ => images}/syncswap-logo.svg (100%) create mode 100644 src/components/Footer.tsx delete mode 100644 src/components/Header.tsx create mode 100644 src/pages/intro/components/BuiltWithTheBestSection.tsx create mode 100644 src/pages/intro/components/CommunityOwnershipSection.tsx create mode 100644 src/pages/intro/components/FeatureArticle.tsx create mode 100644 src/pages/intro/components/Header.tsx create mode 100644 src/pages/intro/components/MissionSection.tsx create mode 100644 src/pages/intro/components/TradeWithSuperpowerSection.tsx create mode 100644 src/pages/intro/index.tsx diff --git a/index.html b/index.html index 1ef5ca3..487339c 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,12 @@ - Sync Swap + Sync Swap Parallel + + + diff --git a/public/images/curve.png b/public/images/curve.png new file mode 100644 index 0000000000000000000000000000000000000000..918057dec2541496513bfe57ce67e9e92c4fd13f GIT binary patch literal 23398 zcmV)3K+C^UNk&FqTL1u8MM6+kP&iCdTL1trW5jO|_XjZm+qMlrQJ(+*lm~jiydXOg zfj1xrV4Fyi9N1&(zp1NYzf2Qbg4jrsA}OnT=9&C=?M+~&*{OnCZQJtX#w{+myGxf6 zcSf)c7=S5QfSOWkx6Yx9yX!Bpj|2eU=Z6YNwqPBJ4^=iPTO;isH3R*FQJ`wV8MB7>i5DEp*fD{zS5=EO5f}%lDjtWtyKr$$mDI1hU z%5RWWrk18ANzE=g!s{lRzz7`;mOw(uJh&J%dn|IvcKL zq#0OX8?Y)j!>x7z;cw0sO>0nEl&lRh0O(LK!{`nnp$ZKBwV}GpwwIrXc(BSQ z0zd%#0|4C#2i8o8rFjCPkRSRJcuoB7@^ZQJ+_WsU3@ z!{qy(_ielE=f3 zGOZCG<o1Z7Dp)h$FA=UaHC{-QAF0^FDfyR&Xl}unHZ7k{ zAf++fFAc-;+OpkHHNPxO(5aD<6WgQub>YJ5P6)OBn$UY|FOEER#{YV7Vr6)nEg6u0 zSy+FzWc|eew*pJx6MbC28!9AQvgOZFz=xBFhgnlUivCl(bs`e|8!lMJ;=6&e7 zCjUy%KtK-Jsg@;G<6J>JD{2?;za!#_m)vC{w$R8GBQ}oxcR>z`Hvd#bXyt-Ui1whb zzX%{!N8DO~8X1^FzW&q0_#@~^TO)~N^=|_hbx@x2KfFr%@eC`fIngiw zX$v79r`7uNfJVwSL;Sb-*TL*4hGRVT3_gXRsZadUSI&B|xZMEV^Vq^k3^)}6bjfh> z*I02Zfr-%fNY&=ZJBgJ5I1l>o0eCS>AAU1Yyj=b4D}$^t ze(-i}wCVZUSH{t*Dzo=$8uLRf!FBDg07^y_M?}kC7?t(Zsb2;XZoVvL0^tk)FogX| z(Kx=mr4G`$>_yg+^Fe*41c67o>fbLR!oqn3h!XEIGd5 zXHBh`dw~zW9EzN@Wm=_!nSHIZz=)jaIN3_V)pN*xr7J5Q3XEBN+cLQuBZ#+TxxBT~ zRb=y6j5f-Z{>Zez<(**?D~dU$nZc&`SxlI_Bvc&QS9#o@R*@QikxR#nHZ%4U#bY4P zoGNygxip^Ooxs`GtjOrFnPNh)^sF{2WZUDy3|! za4EYt-OY>%Sa_tO#;GSXaLO)m3a>@Gj>Q}Jc6-Ua?BI%GT#?k1$-dBoi>EwLd$0#7 z6{}*Y7zr%KZK7kVc%y{NyO=0^t)P-Ww@oUgVx@Ak5ML<>JpH?xmw7=$+#D$(@m4WD zqD^sWkZxwxO1Y<%2|xFO=Q=+G5ag!mMY3+#rW#bH&5Q>ip;8hwJxoV*&ea{4gA++- zty1L;+9t3}8xf*~b~JSX(nKtq)R0VPhtg@riLWV}U^xfo^L^6n{#ANeW7V zD?IRT4C&fFn6iyqT@(W}TW!3dA&zu}8eiFg#*N2|U?tp00XBxE?u2Tor)|tTv7#Ze zBRuEw4$B!^kfsQ7Lng^YgR4SEDRE=4^*9qD>cal8Go-F1`NCGNa6Ms?)nxJUiAJ>~ zBwG~Zizik9hrE_itJO(TOUjN33vIigFj#690K!$PgI*~MXJ64777D#64eGjUY{cEn zNSdaASgB2P{<#kauGe%a*4`734VUGxjT>!35yeoF0TagH*B8FDV*u9%iZ3ZW;SL7g z!OcJ!H8VHoiluV1kPSmCzo4UY*lAK@E`ycWWQ`jT@~JyjBzZeXOjIl8OS&p?(VEaF zAQTH$u1+<`xK=kCv|Y6Uu6QVFOcqT}XQ1*G&56)lRywk=rrR#FfqH)*1Y}DmS}qh` z%|)Ljg}aq1?efkp(`y48?`!m;lnzs?*pMqs*q5~=&iaSN!OfVHv@2|o>}u_WD+uUu z_SJ&qYFw{n$(7YAA$A=qut76WM+d=pmn0Y}1_i@CgFm!-aCjA?ZuM@)91A$h3P5Ju ziW?hOz11=z&Fel0+SeI+NWEDD+> zlE&){QJ@wERizwR@jN7WH49Lof7F3Qfzg;ACu+hhWK+FL^-q}##NE^q6I=-3wY+YP z_@JO&Xu=(t{q+H}+JM5$`q8jrkPK8Bd0yt_i-Z(Q!GDXI5y}K=WSE&?){n*&uK;v1 z6G(bJK6yIBbzFm%7S&y|LaSWqCG@)#K+_E+4vC5QkR@Kjp~io3@-bjBR9OpXAHxO1 z4b7z#5muDlZK=LuJ-&-~&m1zre`Eo|bc%ol+N3q8fsCb)xDXwAIs>i;y+y)>J>gq5 zRkBvI#EpGOlno4C7>~pX^-X5*MZA1Dq?09%L)9!-2}E3B(9YJ2mUF1ASv~ztV_eB; zMiw*!l&ajw#HH%62`fWXDZ~dFb3jqnD|pH`g?7iy71Pmh>LiP(UD_0=f0RgL07CLG z$=C9`u8bvgM^bBYF!-?{pba8G%`RvH`0b4Xjo0fqzIaexifWbyjSQd0A~vqkA{hY! ziVV*gMr6H!m#z^P`HV0auT)_o3%E`7s)l&%8vHT^j6N^ZSMe+cj??vS(qJ5dlc0FO z#gB(v#-X? z3@wQWLN$?|mI*~J+ma9qg<4WvLPT$@R89DT!jMLh|B+KcEM`nyxph{I3g~LBOH8dA zD$HD|YA(4_nrFFo>w9!Zl*pW=3aBjyjY?Q5Y7s7=#)Fm0c?2bsy(rl9?nM!b@e|U{6-2 zc?E-~NVW>s3~`OtmwgiHTUUYriMVrENrX-)MZqlaDG33bi(@{+YGBb#9%?i}Da!4a za9eJ77%Z|wFtjNS5qC2r+%)Ba?27_ik;^D+%5oKE-IwKr$&aGPGlImT3tB-7xCUV< z>vK#B*!9aV0{OrPt+|N?P9$}%ULRSoNRy>T*a?b6TGhC%6g0TBTGSbdjg;Xyg-&F+zFc44X*~Ya@sh`35xRcMt!Z&Jih#amWD100SR^lQy({B;xiKTVci`18~Hlt z!8IKf9j10tmW%3M`hg4o;|Lr|qJo<#N`w6@u5nyED#I1!s>E@fH z&+0WojImyc9jPjh|Ag-%m=w&v=_eJNbDkGM--Zm(AoQ9hEauSDHtkzNHdiY=NUu<) z-6Ww7o@*Sq!gEgbeKOlLVV2%qFblo*Y$;_%rcPFNdKIRATmpfqCp<078=f=fRGi<7 z@b<_$mqo4x(O(m3Lb0b2rH`PPWE0ckOO+ZT?O|D!X<23klr^5-^77bhiOoc;Ad03( zgVv5`c=3eDeZm|}p=ItZS{22FFohjFy0L3p{mt!scJE`mqto(TK4=0>S{h!UmQD)N zdFh7)33TjbSkzlxJ^#6asyDglflvpSQ( zOzfgbR(E%20tl}(2Atvv|NYwvR%O&P>i@0cn6wB5WiM zCQ`){3#wwj<~l-YRD`e?z{PVmD---z+32%2{!)}?ixhy@%%D^Xf27pbJ5U#XktUQ~ zqDjDaQ919$o`$XO%;hCCWPP$!ywOA3#R#NS*~^FL1e-0fQ{P9Rgae)q+iYoS-h9PBxVeE&B2`s!FJj4-u*Y(j@K*8&SUK zx^WolU?{XJyK^9ELpzP9Da2bgi2?m3#P`V1*PG9V&bzRT4YRXlPz|D@T;fW3*`=7f zsnnsszq2sBA7HcD*}7sUpIF}9V9ivf6MPP-h-RT3h|ZyS#+`4wtx8W%7vMrFxQkV_LlS>^TVc2j^DDYDY!&>Q zelkih@%%)ILo-Xp<>|$gT>uVzab`U@Co2#{^neJK!G@IrqD`6OgBK~;k9?w{RsePK zn~`m=W*U_H^%{4ExWNiGZoyF8MfpDc!zzr#vB>o~(T|w$wNOoGI6viYuJy6}31mcB zu9Q%Q058YBa;fuEieMg5!3%Cf!$a;YN`xO^-pSknqzs;%3j*_D#H^l77t(-3C@jA? zYNhI#F_DH&Uj+|U)LGdXk_AKxCdO%7h7jIg*-Q~Kd9E%yp4%A$o5(h$3@eRqFZXcc zhNg^y4iOjMtCV)b<{&}`cp_gsh4&H()E(i3)EAFv$eiw&+LiE7nII+e)JvJe8p%jN ziq4^CZjiPUiV#P3iN^5V-;o`>A0h3`6bQB-nnsSzGNx^J5e`&r{;R7PtZ)bgBxo=c zRA@tFZi=AMa{MB|uF@zwCFR1<_Jj<=VT*YW`E%yr%MPG8u&=%^xbsRCB-$0G6~HcB zpA&4%dha)xPeU*|ia5*9lDyPo!AEJXlXpO%S3O^jnDYzG%4 z!!8=(yJ%;4Am9I4tE^FvHW_NOB3UzFVotH-sU#v`>|Q3K+S*FY}A>_2Tbp2CAKG zvVb^Ji-L8u!k`N0A|dxj_%~%D%0wSlQ-?|LlBgGcJn1DNaaw_|CSoY^2aw+9scU%& z1{l7CFe*@LCIoQr`H8xn@bILB$Uc)>czd$IqwVD(O%ptEq)@dlQyCCg)Yr9xFFXkW zs8Ve^7a&Ndk-A6TmFX8UcnYGjEHg9<_g>nA<%VGyty@s%A45sJ!Cak~^tvLAJDo>X zz#=degyR|si2J1VC*M2;(m_t{BE~x0%gDd%7Boe(GGNho5QhGxx)^4%|XibnruRf4B>ctMn$0Z&WrB@BRs4Qx=%1jH}RwdFa+ zvnZfCo-v60EYlsatOv_mEO~X8^pI~lHjJ=jPHp%vAE!`sDd<%+QN6rb17=P6H1L$G z9AIFVT5XesV1S9~so+9mbD`0n#ynjo8ODn3hvXR9OP*ch=0mvDnHhH#ku35!*D3aN zcX8=vLSiaze)0P7lf)?RSi`32C0v~|LX~D)-4QN<<3&D=&;MZ5OD!(=2rwwft<~qe`DNG zfIbR9G-&ROodVTLrr@UPo0AQZyrzw7Md;9Qu-ti2>WAKk^Q(5qE707Gl`GvZcfVpC zpitCyLq0oz#F^Sr^_g3ZPYu8T+o~0n!e=C8x;a!D)bGUkj6$r*#7xhG;`4YmiNWC} z%bi?ME4rdwzVxSs=Q7rj^PkW)9oB2H`ItOJ7E&-gT03)LmgaNj|MFp$@jJ{*a zP%PAFpIXIvWX3`?O?8mdH16dIO2}w#rYL{qzUDFnRmDYR0br!PwELF|GcI-+&_e*d zECY<9w9U~_fW}dNj18;-YzV?n8OrAqpnZ&aCcH24TGv}6y27X=5tceIH(Tddpt5?E znXPsPRb4$~sX>G9|7Dp8V8(qbW$8WuDQULZ3>>y?-@y>ebL7p-;oV=N0XUn?KMDtt z#?v!2`{A*%3Fl_0tYKxPuke)&uE+v1-3{=|f>j#^)sMigUvwDFd1H+ ztQu|-)a{H9R^+Ww5nij{vr6`Hc2VTJLFGvH(iU>7gfffd@k znE^y2tN|QLE9A_}3`0JNz*R8+EUfM(<4>rB`#lo}qqN3PQy?z4{VA0{^FKtpYD0HH zn(oQy^2?gmibM(gw5^oI!KYN9%@aTnv_@DkNro_P-dETZ&k*?>;#q|q+ix1#_;aUq ze{Z0hlnv`uWraiApPQNg*&q5}Im_!eC@uc|Kq#DEdXGWQKz~o*chC9~OzQ)K9Dph? zGZj0<8bHG(5~30hLd6VPN&8Ldt+vF6dTGV>%98uO@0|d8dAwbN!&DJa zo`YhBjZAChW9AS*SgM>@^D@&ApMaN`w!*O1<#ywb6}owDMheW#F7-<;Hd6k=%>G1C zVS~D({_(FSGDt-`ppXp#WQd*k02PvGyuqt??og^Z38k@a@4%Q*wC!E4)BshUHZ!3( z2UapMb9x%AKb-9+VW!i(jB_(mY!$@4n0!%j2gd5J|E68}Yqao>>fj|Amht6L1(G3> z!30X49>)Npnp28x28GYda`&63xVF2>tr#ooxc{n^5Z5mJOD^c~$1+aMC=yvBC7g!Js|A*S zCrhS?!vZi@AIhVQtq#T;5ZO334&!-h7e8u{>Z^E8l$7sxU9jOS)o zUXBX4IkZ7+jr|6b*h+8x6hvyd@;yP2JOt{CUn=Y06;N<$X4?eju2Dj%nQ^Ee2q?=j zpC`+9Dj1e++!2DK9*gkmITa)SuB)zKh1(!*ko~^Ke#xZ4;YvF*%?Fa+4~0$d^~An2 zF35unknm*&VG@nd9aG8A{KVEYSntV_!VA1pejFdSh{4G{H|qdn|Fx9+k#V)TnZo`c z$cAdvG~dhRXj|Wbne+^ieGX9}6*z_G^w$Q5hrnn4(P(C-(lJK-t>0e-Goym!@%h1% z96NnWcB*=W9+M$2X3Q|lKgEkZlwKCfh4(;_j1~JM;lT-JV#lNKhlVR6Y1y&IXJXk8 zgxK8QH?d{(%~g#{nKKjEOq{ZvLLqgLjexv;;WW_L*T_Zh|LTKsEa^eQXQ! z3$EWWD^PlwlohO8W{IP|ZxJKR~4C&rb zvTJ^r(8z+D3X7bSaSR~;J!mV~4w!YeV}`&EwK|O#56egd+NTB&KTmD?OlKzqYiv}OVp=&Q*lF_rqI1xpGFS=g%uqVc-0941g zke9$HL%*3JU|&>Xqnu8P!~80uedI)$X(=_WwPFiP+6T zQC{J7+?3Or_k=9R8Q&@3OQ=Vq8@B=2kO&MRG}?(C3f?kcA`SOv0wUQz+CAi|osojD>J^tp zpoPX7Iw30WmLV%W?7*YnM9SNn1QLg9{4Qd{?#+rgH@iTxQ1(YEzs*eedsmqh3nxQW zvq=9Yw?fF*#x@FQfpWDs0G5ur3z6>3Ys|$(q2!T9|`< z%W!n+Ubkk&#TQ*bED$>|H`AE(mr6iWuelg7<)MqTM}ug5=OIx)Vtws6dbPl#SUP&d zrPtLL+SlxZo%7JV_oEOAfYxv7H2>iL9lNhuy9)Z7MP+{!1sKHsfmchd zwul|7)y;O3a>?$!067ILkrvW#%;aEwOm}KHdPIYyrIw&y6-e3gt9%yBXJ}ruGheY< zVSw0wamI!D;q|N4m!iK#`G=X7{gEu=z9_A`xoRA=(QyiY)MToJ9aPLfb(o337N(PB zX&nknZ=n#3aID`wrMKTS7C2((jMwywHygY|#3RnNI#DSbGX+em`-%Xj zb!fI&Wd92<2>Hh{k^cFCQ=%f&KVKAsJ9ODYlPITP#&SL1e7$ivtYIEOH2S8@1|n@^ zJG|;;(+`!mTC%fsu}|T-miRYeNr+E~yi))oFY93xdH67Qm zj{tj72m&@%;~MF~aGSgE;6jkMPp3ySFjM>3qO|p!=uzleN9pARe^ey<39ujZitJC) z=82DzND*;K@jlMPCl#C;iSAO~lVw9c`8P7~HVqMJ`bYR6 zk3PuEk>rutZ12FT=u+-7HjBvqd?Dm76k?oTzL}R1XYdF|b7;|LT1xWH1p$&*2zjH4 z|4=!Xbc=?29lRj?0yj<}zWymQ2RyFJmb@O<553ul9ruUee7Cu;DhQ7T`;Ixx&i}eP zHmw&USluP{THI%0F8rgV5FAq#cVhO(X1elYPXB!J2RD`4^5iSYH|B|ZzJ~P2 zJGs6PAyQ;oeWcK$MgR$2Rbo&X zn+4d{h4R-S2L8Bw-csWRmAE*L@?G2)%IF&s4W@h+iw@!Q4@~$5@VU*5{|d^#C?Z#* zl;HCm(qXhOlienoW32OUJJ*sNgMCLIeh^218d2C^NTw?GlaDjIxrKAP!C_ItTnBFDwmQxR1Vf>6XTgh(MYbTWVq&=F>49>TT9DJbA64tdcl z>jxo<>o-B9?yD}3@&86d_D4~SE@4q@$S-%~TDD~$jbW6JWlsg*RW#1wtJ=-Dd4SiaeieXPEAeiGGEyD^{;il#49J|F2D-o00!d zfBxW2Ep2M{rAmdbL_;N0>fh^E86Ed94fO!l3|?w1@hH3hkw>0*pCITp$Cxa$B~$*1 zFMWuI4-t)cUEgoWa6kB(QHS$u>{_gmAb^KkjEKqtPq{#g!H zp7dTtqT<-Jf$medP-}B%#l8^q*OVV}`iJ~Yy!Rd*o{Hlxmr}~!<;#n!k+0Ns@k$~0 z#sEab!ggwGwsX8dBps}M&wivJNpW&K*VDze|wZS9PI{zSd!TEsE6GD$R{b(;Nto0 z<}JhZ$%r+8i(#{oB~DWB!jX88avoyv-vbIco!c6XN!?hzI7s&uYgWkEcatKR^cPG~ zh<*HyTOYhxeK^W;^rEpf?*rWN7uTa5Cb`T$Bz&>PV(w==ItUny!fzk0Q)7&nE5IzW z`t_&<;Vis`d1e$T!T94pJ0cRQJ#Ya_QOvka#E$T1h1hN6ul@z(n3>sK5;aH74fcDg zOh@q|wqWB9j@#Q%@W?QZ&CYKbs!ujE1P3O62Gnf*M_1V@7HsZQ^(*o+ z;ydrw+L#3tX21J8Vs6IDM>sZ~_h-xfP;B=u{qMnVOZyPUGEf;*iUB%0p2#o&4R-W? z3QuT7{Rg|l80CPF60%Su50L$b#c+C@r5bCaRwO2yp18eZ^EL1XCg*1M z!8?BbgVrLnDO--qwr*mfDA$_ zm^s7g*}{QE`mn+r%;Lyog>{$FGGa5q?lDj-FgFYOe}H1+GdnX4;>gQNb0hpWGf0aQV9Yao*{Wm4oT{K zmq|4ahlPxc2)_~5#UITS>hEgy$5{a;75gB?z8T+orZ&FNwZ#Tq%5j{t@99SFToD5^ zhUo1d*v~Ww;Wf9t)`)7fG>X=4ILxi)I3Oa1*8KYD z{QZ~Y-0Xw5|NIAS>7TFEyrTIhYG{}pwd;kvrwzds6l@Fvpl{%63HH)pw;)Ef?tgI-h6l5V0U1RPjAK z(-nDT@&RCP`mxj&K2#x7W3%ig*Q5Nno-Vpk;m*6X{(=RvKgb~a0}S)a^0dB_fw4h2 z0VnyeD2}qciyIxy#Vd;;G)sVe2&WJMuj8AC8-=*FISR;K8v^39Px;nD+n4J+_9h=0 zuWOnmd-LtPQqTU_J$HrtJ;wh-6#FJjPzycN#_JZ+xPEv~VIYq~-qS$Vs~4IZYn5mf zAkhd2ulb$Rtxh{b0F7blThB45Ec#zKjG$L3x%a_Xm>c477^CPu;t)Oi^NqWb{Xb%K z1?yIhZTT*c+a~>2Dw}6?>g{bjU}QZ)Cl!Q;Z=awKiwJLa%%Mv14LiPt^-$G2j^*mTgxF1TE(BW`revi9SflG*8Y+R*r z36BIgLiL&-iJ}C1RjHgw=hkPh+cwRwK@=voBRv-8^60qYUlz(F`=WorHN{wQnf>|D z2XCj?*w)E&1>Vfyx)Y_=T^3l^G}&^uOcQ8(VNp%QQ7h z+ge;$@*O#>U-$0bi*!+x|2FMnEXo?S*+L?mE%9y0jWczpna0I=J=}I>F2@QQu z&!Sf}%I`47e*~iB{#8&s-oGvK%X!)?ExRn5m>CQiyXyCqZ3yrV2kA^L#}W?DcxWW- z*p`WQr>EM&9oghQuY6nnXy4v|ky_HVD@gS^vA$>A<-|g{cFG|SJwk_OGN0Jj9hA2) z`z7fQ4EzoHXV{kFdreCi&M-6v3gw;M2yf)bT^OJTWC%}4p?3d5y+A>X3bBqtD2Nkv zey+BkjO8+yW=4{Fz_gx@JY1GSJ@kly4<6wE7GiG-`SUVAxZ6_3$&_HuZ|vC2wf_7( zzCmkYdG8y0-rv+CIz*oWiwJK=XGi}ZF=2|^X^yRBW;EMfY`8yCHZBX@rjGA3hvjIR za!Hm#DY`{O@qd#$F}P1b#=c3$&XHbD%m2tfc6F{u_Js9aE;6#1&jKrKNkbX&(Ae;Y zXa4tpG!TiNal_T~`MS?Fy{vUP80|D@%jpW;;$J@aAtNI5UH9ijI5*zR|6f_=r*P-J*tPrdh2c2hS*!%N@hVLa zdjmc%;t`&#NY;qt{VBSO_lHh|g{@N{b*mia^(dHzSH(M;{mrYq1MfM9;(&N4Az!R}K+hn4jGn@oV39G06`^|DuMvRDZi4y;e` z2kaKVjIQ9o;=1-p=Ua_MXY-7^z!2fUaP=Qx=w9~*LNszO&>=4`zv}pPtJEZ$*9XP{ z@WOmcQy7m18|Se6s5~YWcpY&-c~ItGR!fYJKmVxkzd`t&FV4mC0B&py=y2ywr za`{lbn7J9_i^z`{pH7j};eQpoR)H}M=q~bb#NA{UR^R)-h~bsW-}=bRsA%lJCJnR0 zDSwv zOKmlHzbRP~dn$Wa^M!jJ2UG#7mw@!zJ{fcWcjU1C?(*U(xwyO5C&o{E$$6kh${+{O z*#FXi0-b*;Ls0W6^5rj;C_jK^Kf=n#?p{Y6PM_4fw@9vhuGC`&>LTRS6FdP&H&4f` zHBNT7tDMrt$8?Y%YCaoLG?vXbdfJ1v$+t#J-WN@EL#D~sU%C2{Zz}AY>~E5O!ua3j z-k(uvo;0c!mqx{ygjc=;AMGLU{F3eh2ZCl0%+>@r1HGOQ^xDj}JAYK8?lNraOa_O`+5%JTZJa)4BV9m8vu2?io>Cgp|Wa z*seGfsU$-{5Q(28SGE6O)b`U^$n|KQt%PrX0P^%H}R zhxCze@L$^?FpmlH;cEXhvSI(bP^r5k2(b4+A`Z`wwL1A%8w)l-W=y_(LY}SIuS_Sv z7v%%|`YC^GiCtIGBAi&IND99oC`ircFWHzm@;kpMu$;8nmMrq4@M6%QaKV0abux(7 z{_CFkbR=;h4ja-+%C0U5vo7 zouOgrSUxJ;xX&O&r}aa~H{QIQZVqe|4*k%x&SC}V7%m@%=+5xmOjk@O8lU+FLXaL~ zsI)Fm26#qDX#Hp+GRk_DYJXH9*wlOQ+DI<}zdy<=rhlzmlH6s;!K>eRpalBT+l>}x z-M-AMMEo@l0CH`Ehs}r!C6N7LL4I8@_hD3wpU3?xUX2ok(=#;tVAw-TAcD;*dN*GC zj0i6khi6A3KZ-k|(md35RY%?H5U{@M7(e+}qx3|J1e01GeqZq~7b&bH_>-|2@&1t8 zX5BxsgPfHoO+Q9`@(*d}rBJB?V|iLblg3T;+8%z+grnJ(Ycm9lFhbn0JsO?g@r@5) zZ>%1=61A|r?i=#c6FmH&RzJ<31o@5g!F=TWRX7r9BqrK_1cX1I2h85cFnVQW8uu9% zhAKWVHx`!6ggb>`Nu+Cww+OvahV0K>C7oPt6CqpmVTJGCIdE*foclpQl)jYaFRWAW zAm(>OnC7qU;@Hfcx^MZ~{mf?jYMpbn2i^&|w)gM5R*11)HZxR;xdS|ALW1WaRol|d z&+D7ioB1s8lM>k|(!I}2cMy(-g#3-KkO%!oRq;=c;+1!8!pO?qVFTwk}Q7pw_0}bv+VUY+27>DTwqJ z${Xd}OwIn#sf^elKbQlFo28;G&kJauQm#^IbCggWmGxauFotO`6-Q=g$&CdBbG7(A zg^|4ZwMF7!{(TM13=9_Z*o@RaS~-R_zJzGmpAds9(Rvg zkovFyoAjH`SRuBA0+tV4`^-o$343L+KVR1Ol; zb?6-GD?vCKV&xks;)i@N7Ln0xt>o1grC2uwX<2S-(>|hDV;-sBDmx*ua^SjW%E6+= zt+Ni;TC9Rzyv>dY1GSnj{hi#cBBafST3HjbJFq|OgebFAu5EBPM@pH@2gTLwkCI-t zeEA=4Q!}l#WR59sfLMehA`xh=%_A+}EtS?(WB0o`Ow`H9 zs+ga>@3A)ktuIQ$*Jj;=72v)Z3uH$cK{u(Nr9PFeHt_N1QG~wv`cu@X+g~ZrY2* zyRjNzy1*(OdxXTli==y0gxJp%h396iq`vm3Em(R@&1^@b{Vy0I>ihr^g@AZREe(vR z!}d~m%}W!%d#^-3vvqdV8gLHMYMSAv?OOipg^bO_UfwqImnLUhH!rVrB>}UEgh?VF z^nvs5VhA82giq|#z##c^^P*)}00ZJ3nk@oEbA*vugg;HNxcWy0EzVTe_JMuRiW3n} zl>F4QQ`O5QAb8$FN`imORt9S@gSKPcy|u334Ju+;8*|1|dBdNqd_un&9uR|YWF%{Z z^Dq4I&m8^n^RXARGnjqLZasXQAFKQG{JblIicy1&(?e1S5CwUXA_^*UuMy-K%#Qeb zEzh=d5lL~>1IxO1_aWF5i*mW3mBR`JzDQdp)QKipy;JpS0im*nNNubA9Ezb zc~X$AUHN5VUy4yU|3cJ!D#iCrX*d3ix8b1gZY!m~*7tb=twOzlfCp|{dbSPxE{cG^ zKfZk;&MUf8MCgc3k0f?67mdaZG#a=YQi6@A+_@wG^ar*E@0@}+p849A z|5VgyY6WKpXj5QoR|Vl&GE=Wju5kFz0i%Zp1_M%{pOR?5vI&NmC&)KI79ninV}79e^)u#O9N$89LeZ331)xrBJt0CID#v)G z3eZ$LM{D`ZC;v$fx>d9QK<@@QMKJ4{=NVL`XsqIStu+F%A!}$u5p^2@vdG_NVEp9q zLrKY>i!K!S<(C37GCCd~;m7+I8aPPfa?s84ezX`ZfUHV1;(JC8HXhr&bjjHW02jtu z89NzY^K?)VrIzlxCrwSwT+X@8SyQ(OHFS7Tm7B5L7pg4B>1^!WHOp-t(QPZQ4w21| zL?H>cmi|Uee&dS`oafb(a#FjpBJ&>kZe;G#a~3e`#mX!xcScY! zqCl+1oRG53#4--14oWXSJ3CsA8!WL?toJdc*mvN?k;9`k)A~Xi1@Nd>mCp$_XSngo z>6Q@b9J;pL1+*oJfQwGX5wSVnY`IqP|BAxi@lG!9M+F4|3i8K>5RSix;{ml5!24O} zn_@*6Gq>0d_jy-ftz5zcKCu-RqdP4oI#}LeB|uZ#!l0_&#AZYdu&QSow1wrM40W2C z^nkA%i?yhY4Rj;@Wo!2pmz_QoQr_2Xn-SzI|Mes;W&38)qX)J2QHSyfcj>))%fSt@s+kd*M(M3U1@eH-x=oSx&f=0|H8on-C zNO5dNPl?LKyKcdLxQmZxTK(lik;#DWUAxf_>`Ju5&%NPPPIxWR_Np!E@zUpw85h~Dq@YSY0#52DZQ#EY5}|T34LBF zkABc2r1&Mp{9PhXefcYz@^(@@JU2^@jEBefkwddMWb7H6vE5+GdlmJO9G`fdghgQl z1eYo$-1tBp2e^#3X#~^7dsT8K>dMw)Qbvf49dw~fd^*(H0ZJIJJGG^5f|kY!^3v>y z*!s&?pV1X}Wo|}oLXpXzv2X}T&ZWy8l{B0? zy=5};!d7bbz%=>MXndXq1Z+1T!?GJRJ9qS~&ARkfzsXrJ{+e9iZ^%>yn6AVQ&5|C) z^wV(h(8gs>&&@|7VNgaEBBL%dG2ynA%Y{l$Q&$37K>YT(*`dkUPALwgs7cpzs-^YM z+tisaJo<&9T>el+`5q`uqF`&z9MalUMfF#d_!wdqnwbXM&v>-R@j9;IX#D(3cyPu_ zwciQ@Q#o?Sk{V{qm-L0nc{pb+voggUpcd`@g9fF$4cW821? zQDM?9ZP~w3Lf@d#CWKAUo$Xwbdo{ZcXk*v7S8=23w<7CLt~vANuY?qX{whmYfaC7( zvb1Dd?zty<7>gZMZpQ;!O@S*$N{%f?4INvFjXgKIlMrR6)7u)ccQyEmg5HK399?~x z3xZh<1_;mJ)ZyNnt-#X*7}4%^Yv}@3RDV+5peqmlpqcl)$s_ifdMtSSMbP3OKO#it zlzqNWW{>>m{n4JX+gEEgZR_T9#*P(7+!2LoG)X zZvyeJz4!E&!~M}e)c>YV=G3yKx885+H<>NU7&$n|j}d^f=xwz&CKk1BIQV=dqLYO? z3DM5Z4#)js5BvwKrmm)C)YdAx!di-_Dc=~-V0TN;6=7qx8)%*uDPsH$-k(#^3ih|3 zd9K_~PhN8Z=zrT(vVGYWIM_LC33FhIROd)_0_H$K34HEzEVUEBADFL|BZ-TCe`F;^ zbv52P2TlwFxX*??NZH8nl`~R+i|%s7G;wGBu|1=GZ&NrN;uJM;E{VyHOw7s=&HCv8HOLN69U{{c+0Jd)+? zKZ@xmW*;fAda&i5zEMynww^CY@cOwfA~}6xyd4=PA~v3lTK(C=%k@ZYfbtq7+Pf7R zi;A|)pqYy&jP5Rtf6cU!*8J|1RsYdDPJcP9ybBb;UiXjTxS(OW`t`%xTKe zpnHzJwP@C##CE&^G8@h0QZf1%jzLCh@y3+{FL-Xm7#8UCw;Gu!L{bjMPNM^G1MBni zZRojN!AYS0QPh_a_*CV6?(el|NXDf6om=k!D|499anVXg2dvO}oYbviNF^LeIfu!Dw30@)K@SPP;9fx*tY#SQILbQRu z9gKsEb_?2laEsPNZPUZ?;l7=<_vcClc~?l;{fSTZw#9WR`NxK8Y8bQ1o%4Cz7n26=d`}{Wd*ft!SrRV0!c#qBe?;3Hh z1&l&q%;!TVQ=c~R@JBo;mdtF4$U3tQS%V>GgixzT-G<$%?b)dg5)f+Rm^3iU$J3#m zNQ1}KW3zn>VP)>DAbZ{JJ$pad+Z6xY^nZ{jI-WJfF|!-4$2-om72PIE>X_wpSE7+K zb}bMRqNBOq{GTM6b^$#=9v>RR&z+ec8)_tDBt2f+sw)*(6CY?)Hdgl(+ce?|zyH`B zyY4n2t|*`EFSX=R%*9bm|EC$<*E2Bg2qBirVpUaY5(pzj5T2po0&TWi;6-VB$D|GFu*%p&8HMx_J z=Sjc&sh54-Q_A=w$$};I4joC$Q-d0qR#0+N-e+17y@8W!@6T1G%!0toY}ZsP;`3J`;$@tckw#(;v+`Ky z;oRE}M5VHsnPwrmt9Hstuz%}`#&?)Mw_r$9#_;ph3W1ICFxn4$SQx9#3%ML6zYU#YnKzP;Zz5CN5M1dUSF(CqN- z;uR#+>v4ngTt$qPO2NX3u~zIST3RN-JR$cic!U~O$LQSXw6m(qKUqY)TvqkX+Od1D z5xKs2exlwdD3c67txuEW>}z;~?1PAqQ0&+Mr!kF?E8P(%xQn!NC3>Y!p6gqlHd(7P zJ6qr$%2cInA>d}h&2l7v=FZr)XCL?ch{*Lt@B60w%l7*69in-#tGTa)x!jp_D6={N zTt&_ZpagW@T&W4CyM+f%ZEqB^J=7-Zo}Ls@7-KX}r-#tLWYyc`TMqt3W!Q@AX>PXH zh?IfZq;A7?v%bln9$h&^lPD)&lrBX6y=6FwyhBq-|vPmGje zuc7lOnMO+ZKeX)CY90{h*s~R)qnQch@n595*{QRvOhTyM7C3%@oqlF|G2@ZuL7C$K zM?RvE31yglY!gVGot@$(6YgBOiV0vs)n=u%(|AM2*(M z=7KZ9J31|yz%r9+veGp|bF+7=3N5>ic$N<|?okfU%mzB`uX2 zPn{t`Qz<*0UtFOH=V<~6M8IU;xz-&QqLc9xp3^2L@;7X+6>5o1QrxSlxraP8vuyJ1 zi$Od`>8_m+%DW_ll+Ak2q^fvtqU~82!~#s>?;p?xnh=2_ILMDKuk)R&*Lz+*5F~yl zJDtM>m*iV?bHmArR%EB#Kg*9LpD47YDeKyqv=QFmxKHcE(r(eL~~%xBm2*-g64ECLJF%i z1-J7jx!YNDNAjJsrzs=U4vCosbIWxTVGF6?T_V|#xr`Sxik?t%*h{-WK1A8&sJL?{ z53}y=Z@G!$w!0MlL0zT+XEER$HyW%8n0Twy+q6Rr6haS_NGt&}q^<*hiwV+IpiUR) zj|F$>@VC;PFK>;NqZb6`0`B>ILee*LuX%N%SrS;>Zpkh1mXuQthq{-e~gFRU50j}l+bXa9R08Ftdl`h&12*gA8R`V0pTXVO}q^}j_C(MQ{JFk(&ekM z?W6?TYK=j~t)c>&g9sO#%4I2w-SzErr{61;cjJYtMi2hov1H|4C^y)d z7f_xcUSK?mtN`V!{FoQJMt00VBJRI8xxd2KCkch$2h@S%SY>$JCVZ1Hxx z^4!*&FTQ4@Kh=WnvPly6v!~~_)g}vSo6d5M64jMzYfE|PQl++c6DF70cjw4-rFecH z(!dZ?2q2be=fR(HP-2ye2{S_+K}$qPB1rdFqI*a%5<>3I>vc|yO!c%wkGIKt9X-Jf zallqBg!-?SijyOIce4VgP4xG;c%Gj(#m=)O4j6pHhv4{3$S&C9O;JP|vc0MTVvGm^ zT?(&>>27NG??~b7%-oK8MZdd23zPLOhX}WjVCDo{-ulA|mEjYlI9#-2D?cTFvY^q#1 zf9GRpI2QRe>#{DNofxOb-%%QIV74eA;GN!r>~{Xezr9Eio)aOs6cWPHMXv3mjqc8( z=xUjB&rAxNPG@&*6l|$5IZ+=O^5Kzb%qgGWHo%1`y2h10Q#IT2tSEK7aV=nxE0Y{y zp68oy`Ncme!gCV@7sB88--esMLrrrhhU$~JQYZ5@E=h!>E@ov_Yk;LfPq};2tWY$w zo`Rp}OKy_;-VN^Ywd3=KBif0H35LJ@AHyz{?fN+=`*XKRk#)u!)!ONRBc zXHLM*v?_EO%>1koR1>{jl(6wPc-`|DUwc- zQr1*uvII3p9vF7EA$K8Itng$Z1ZQjR-!ZdqX(v*rPMoYwbQcv1c0E%8i5NgS;?-Gk zX{xq!JLPF%&$_Wmc><#)tQAw%zYFUUaj)Mw#;SS&6+S z59l?i!!k`iIj!Qwda@uiByDvLi_;NYHhM-VB#8SpUl|G;YWf>9IZVja&& z!Bo3O6)_+yQ>W4C^432IAv!5!6jp1JuAvhtGdX2Db9&ddsXJ%QSuijd?S4*L6ySAs z2Oy(Y?4Ft!86DcXX*b2QcfZffIPTR`JZS+Too{EY?D7;aWy$iuxnAbb=!`eC(l{5U?7Jo1a_n{AYwHO!R@yMBWAuTaj;G zdip|{^U*kp22Gvc?2iIuv(K56so9yU4)W<_g^+FmUIUqD6kHV|n_Ovftx1H_n}kGK z!LF^_cVNaz<)5>E5(bCUa>Lqi5voB9O zRCzI93OI1=G7p~hxXG@_gktr?XC#llqCR3!rp~YQ16IdnQR?I=sj~j+OdsFJEy|Qo zp!+}l+rM(y*d}&;YJ}_K9v>IZWaWV3k>0;&_w&WhO`W+jPntDnHWtrYG=K4e#ghig zZRQ{V3}qr009d#f^D$@kT+BLo=ggeG?c>|G?s`76*t2UhKTVUSPqghFoN6wnCTYw~ z-;?J(ZpwOJ5Tvg>05XC0sl;BAVB|nU*8IJS1x=)d>wuKH2t?tH#Hr9J!i z)HX3|TlQ!skeNn(V%b1%xtO}L*GxakDTgH2k4(xTO*v$_yUR}r3CK@PHfWu+2usGF zIF~MTttEDJwfEKMIMcBAWqvC_ft1@+&S}S6w zDl$E4OP>~Pnk$DiE#7P0UuXOFZ2ZsvBd+awDUPRZq!e>QYdbY3NenGmpln zw3@UhYezJ5D6f9q?tRx>Jy30S+M;C;u{7p*>Q0gLj+f8yp{cFXZ0C{L*;E>4fk&%E zlh9pEdW{z391T1|k$?PRHWST8Y$QBKtyTSx7ayg>1AnT9!L}_;-L)@>H8idzG8ntBuSqWs6DR$$L&A`nF2&LDzPU4A)4JLd~_g4gjkvsN=2VX|k0Q zE!`>g?G0HH1RMY|xgq08v}O>^SwcwE_u$_BH}sX-`EF6lW*lc6XwqJTHw?unr?@r; z$~KWtDAg6nWCg6}XbuB(ET=_y<8?E{FJz#~Rdb`>N}ey9xl`*~;M7x)D7>V&V9CTz z5*>ai22D<{c(t+b_4^yWt$cS?7IT%d?dPSo><>>BENZu@wMjdXyyu#l;Z@V0c)17S z(_BOo+cbErGx8=Iu&Gs(SLLlpMvmB`^FYlUv2?}WSrdC^NFbpZvvNyPtuOQ7^#^X~ ztu_~z`56xLGTo-Yhe(lE9F#dbu+Ft?!hcROaI9Mj@ulJPV126b(ax4P-zq&RURCQ% zj)J!wfKfeRo==QSdG%1Qmh=-(>zU3o`6BHNsudPpYhTmwqZK_dQT24wIk_j%=XLlHOtINx@%``jLj3`8~E zwW!g8#5Yu`zV+fuFXJ_-6}&-G-HK%8a$Q1B>rH9h`gMl1BD2`E+w-=OPEJra;>*ki zI>n!SFcytG(CiaA8lXHF$Fip!smuf@I?$=LZQNMoGO<_12W=x+kJ?_Ot;j}BPHO~P zw`Q$7ttcj~*tECa#O6+pj#Y*$K7B7E%g@F$bHuJuZq8s&sW2$F@t=OsZDjzLMB9x! z$5@>w*=luTrIp%6M66uCOzj*LTleZ4j+7;>1YZ0nYKw-=Bb`y8Yu->eI%lu=^B@XK zKRN{vv_pKPnfM$sW=4sQYf1YWGuOC-IVAdk4F zd@=K%CB0Sb*%pjs-C4>iVpFVm-LY)fjK!8JHC)gm1x_iSBJhegnU-(3!<5WFJ_Qj} zu2pD=AyN=ZRv|y(R$&|%E5;64(nw~fJR+%+31FQ4yPyfX)zD58tdfwI@?9U_M$ZcQ zux%$#7P50f6niIYG&{femf$890iPuzZe$kZLv0&PGyt-x zmy}NjwrHT0i>K2JAwT6=`QL4y8LqVv;8cHu(b~K)4H@!FYzSkZu4HdXT_pd(W@_pv zrA7{%7rv`(@$&$4k~=LEGe0vyl~`LwnK7 z8JpR{Rx-J7IpP!piK7E?^s*Lh*@A33SpKPy&rr_6c@3nR(je44FFZ4|HPqBBrEoX~ zW{u2Yh0dCKuqntU;^AR9tIeA-)MbKWvhy{wLTq+}3!NkB#;!?&mWnw;stj)+aRZDT zZ3!R5b6%cFK4I*9eVohxHAK_Mk$~7mVbod2Zg6y{lJ$#HnXM8uQQH{*lbSa$iDi~f zaX-mG$bKTLkBvuV4DT5$L;-eL&5U(aI+9Z+ci#}6JlvvBMd6xyVsSaSw%8Sy8T{A6 zvYc-PPh|H=1F}qli_V|FBub?p;snrvnCP4q0Z5O8Zc(NTCIz_}lV`2sqzsqwn3foK z#qoX7_VYZ=8C=*ZkH|3X9L_Z|4LT^_mRssfmS^XXO*m2z+Beg>;&hHD%{hj`V4>9r^M!-pG^%%IL-$fUfvCmgaStnL#(pSe1goXBm#&Lkd; z*pS{to_djn*5xhK<$FijT>_S$a~wi%#LR~2^mE~+rpE+UuQmN8#bmN^Ven&<7soy4 zV`w(m6Md!7iaC#os}}7n&%z3QjLPu?XmO=mx>CPwgUg4Wdz2A@= zn==GHIMP0!)afo7UxyS!^ zK^dI^F!&_hNwjFw&UQqosZ3dp9Ix4J5UK!;wNmTFx~M3Faypmi_@-~HQ48;Q+KDnJ+6qn6Iw!738qpC?GI5c;%Z0m9}mODwQ@AVWv?43Nwq|2JHacs7MwI}I= zV_#)E@j=!g6xk(pakSPyWE&U}oO(%V3CNxt;w-JVEqqYJAu zoDZ7MlEvo_??tlF;(rorcSc;^BTQ4jDRmIhxU|n_mF+#@poXs*_6LI|?tMWx%eHZ# zP^8XLS#pLylU4bQ57gl;LbSSx)!0vgcoyII^uFU;OPhwrW3kheNWN$Q+sTZ|08xk? ztj%j1g^Vlc`h0h}nQn4l#W5M4D-ZNtH%Tx&KS;VC{Y6bf26p8>>vFcF_r&x$BC>(` zD%yadgLH67+jw3}jk9CiDJMkNvcMgf#1Wv(ekpB{K?ps5XwuX=fKT1ffqxU~x!FBZ zt)B7Rzym#0zJgS9K<3g$YgOQmpVLTGG-=K8eGih1O|<+NhGw{2PvRV4JDO{CQQVPw z0+M0WaQ2_IzUy1i7altx5P1`uxoc}%s|AP2sZ_exc0wcbSG}X|}wZEHKaVDK(!b6*O7l&=9+_^GmYS1n; z2#r;uCPCfWQ_GB<0nl*armwbCBgCd3wzqADLQdKKb-8UTs!2sOu$JSiq!(L_QpYNt z*E4(y`8NL4n!#C57hKMWn?@qoJKDLdrnXSqTS2Q0Wt~o>X_7*2)2_dbPTA<3+mff= z`j+V=hGuP{#MfZ*DymI}T}yW8=l@LdDf*^)WELNN6@qazqpGp<3A{>r7ev;&SSF&KI!dBx%ZbxoL46)Tc3%^4h@cV+Yqx- zVKvfV4B2|T)o(34iDuplR6Lht!)?jAQA%n7UpfUR3^>1Z3YFeofA|e>WZocpy>1bd zGu0mDVOHSH;i&AA1;A(xscmZLa&~bpu{jgkM7wovWyXR^ zF5PTw9@^yhwOY1e4VXsTvU9&FluLMvU6y2XdC4sf#Srh!jN#`ZCSfqPb}z$wbIwur z+TOsJ2-$d@x;0Oq(fp@Jy2!WOsbR#Qsgb)uJ;|AmEmM~}tC7bG4&pZctl)VxSUJ_~ zjJehkaPgb6X~JC~>+v;q?iuA%MrZNcV0*Ms*fN}lR{;-tMYxj%&Ig_E?f1jBBAay9 zly;TR8#HF%ge$q<5TcINpm-iM9U?bh32-_^JnH-Xu{| + <> + +
+ +
+ ) } diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx new file mode 100644 index 0000000..f217251 --- /dev/null +++ b/src/components/Footer.tsx @@ -0,0 +1,6 @@ +export default function Footer() { + return ( +
Footer
+ ) +} + diff --git a/src/components/Header.tsx b/src/components/Header.tsx deleted file mode 100644 index 5999fa0..0000000 --- a/src/components/Header.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import NavbarLarge from "@/components/NavbarLarge"; -import NavbarSmall from "@/components/NavbarSmall"; - -export default function Header() { - return ( - <> - - - - ) -} diff --git a/src/components/Logo.tsx b/src/components/Logo.tsx index e41e00d..3bef3f2 100644 --- a/src/components/Logo.tsx +++ b/src/components/Logo.tsx @@ -1,5 +1,5 @@ export default function Logo({ className = "" }: { className?: string }) { return ( - Sync Swap Logo + Sync Swap Logo ) } diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index 0ba4277..da5fbc5 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -5,7 +5,7 @@ import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + "inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { @@ -23,6 +23,7 @@ const buttonVariants = cva( default: "h-10 px-4 py-2", sm: "h-9 rounded-md px-3", lg: "h-11 rounded-md px-8", + xl: "h-11 rounded-full px-20", icon: "h-10 w-10", }, }, @@ -35,7 +36,7 @@ const buttonVariants = cva( export interface ButtonProps extends React.ButtonHTMLAttributes, - VariantProps { + VariantProps { asChild?: boolean } diff --git a/src/index.css b/src/index.css index 5497d86..5fab271 100644 --- a/src/index.css +++ b/src/index.css @@ -9,6 +9,8 @@ --background: 255 255 255; --foreground: 222.2 84% 4.9%; + --zKTextGradient: 272.04deg, #8c8dfc 46.24%, #4e529a 99.45%; + --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; @@ -24,15 +26,15 @@ --muted: 210 40% 96.1%; --muted-foreground: 215.4 16.3% 46.9%; - --accent: 210 40% 96.1%; - --accent-foreground: 222.2 47.4% 11.2%; + --accent: 81, 85, 166, 0.04; + --accent-foreground: var(--primary); --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; - --input: 214.3 31.8% 91.4%; - --ring: 222.2 84% 4.9%; + --input: 81, 85, 166; + --ring: 81, 85, 166, 0.5; --radius: 0.5rem; } diff --git a/src/main.tsx b/src/main.tsx index afcc0eb..f06489b 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -3,11 +3,15 @@ import ReactDOM from 'react-dom/client' import App from './App' import './index.css' import { Route, RouterProvider, createBrowserRouter, createRoutesFromElements } from 'react-router-dom' +import Intro from '@/pages/intro' const router = createBrowserRouter( createRoutesFromElements([ - } /> + } > + // Trade page + } /> + ]) ) diff --git a/src/pages/intro/components/BuiltWithTheBestSection.tsx b/src/pages/intro/components/BuiltWithTheBestSection.tsx new file mode 100644 index 0000000..b3628e9 --- /dev/null +++ b/src/pages/intro/components/BuiltWithTheBestSection.tsx @@ -0,0 +1,6 @@ +export default function BuiltWithTheBestSection() { + return ( +
BuiltWithTheBestSection
+ ) +} + diff --git a/src/pages/intro/components/CommunityOwnershipSection.tsx b/src/pages/intro/components/CommunityOwnershipSection.tsx new file mode 100644 index 0000000..d08079c --- /dev/null +++ b/src/pages/intro/components/CommunityOwnershipSection.tsx @@ -0,0 +1,6 @@ +export default function CommunityOwnershipSection() { + return ( +
CommunityOwnershipSection
+ ) +} + diff --git a/src/pages/intro/components/FeatureArticle.tsx b/src/pages/intro/components/FeatureArticle.tsx new file mode 100644 index 0000000..fadce65 --- /dev/null +++ b/src/pages/intro/components/FeatureArticle.tsx @@ -0,0 +1,14 @@ +export interface FeatureArticleProps { + name: string; + description: string; +} + +export default function FeatureArticle({ name, description }: FeatureArticleProps) { + return ( +
+

{name}

+

{description}

+
+ ) +} + diff --git a/src/pages/intro/components/Header.tsx b/src/pages/intro/components/Header.tsx new file mode 100644 index 0000000..cfe94df --- /dev/null +++ b/src/pages/intro/components/Header.tsx @@ -0,0 +1,14 @@ +export default function Header() { + return ( +
+
+

Seamless and Efficient Trading on + zk Rollups +

+

SyncSwap brings more people easy-to-use and low-cost DeFi with complete Ethereum security powered by zero-knowledge technology.

+
+ Sync Swap Cover art +
+ ) +} + diff --git a/src/pages/intro/components/MissionSection.tsx b/src/pages/intro/components/MissionSection.tsx new file mode 100644 index 0000000..d76f5a3 --- /dev/null +++ b/src/pages/intro/components/MissionSection.tsx @@ -0,0 +1,26 @@ +import { buttonVariants } from "@/components/ui/button"; +import { MdArrowOutward } from "react-icons/md"; +import { Link } from "react-router-dom"; + +export default function MissionSection() { + return ( +
+

An Aligned Mission

+

SyncSwap aligns with the mission of zkSync + to accelerate the mass adoption of crypto for + personal sovereignty.

+ + + Learn + + + + Curve +
+ ) +} + diff --git a/src/pages/intro/components/TradeWithSuperpowerSection.tsx b/src/pages/intro/components/TradeWithSuperpowerSection.tsx new file mode 100644 index 0000000..e0a205b --- /dev/null +++ b/src/pages/intro/components/TradeWithSuperpowerSection.tsx @@ -0,0 +1,26 @@ +import FeatureArticle from "@/pages/intro/components/FeatureArticle"; + +export default function TradeWithSuperpowerSection() { + return ( +
+

Your DeFi Hub on Ethereum zk Rollups

+

Trade with Superpowers

+ +
+ + + +
+
+ ) +} + diff --git a/src/pages/intro/index.tsx b/src/pages/intro/index.tsx new file mode 100644 index 0000000..913f635 --- /dev/null +++ b/src/pages/intro/index.tsx @@ -0,0 +1,24 @@ +import Header from '@/pages/intro/components/Header'; +import MissionSection from '@/pages/intro/components/MissionSection'; +import TradeWithSuperpowerSection from '@/pages/intro/components/TradeWithSuperpowerSection'; +import CommunityOwnershipSection from '@/pages/intro/components/CommunityOwnershipSection'; +import BuiltWithTheBestSection from "@/pages/intro/components/BuiltWithTheBestSection"; +import Footer from "@/components/Footer"; + +export default function Intro() { + return ( + <> +
+
+ + + + + +
+ + + ) +} + diff --git a/tailwind.config.js b/tailwind.config.js index 56fd663..4dc81bb 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -17,10 +17,16 @@ export default { }, }, extend: { + backgroundImage: { + zKTextGradient: "linear-gradient(var(--zKTextGradient))", + }, + fontFamily: { + Public: "Poppins, sans-serif", + }, colors: { - border: "hsl(var(--border))", + border: "rgba(var(--border))", input: "hsl(var(--input))", - ring: "hsl(var(--ring))", + ring: "rgb(var(--ring))", background: "rgb(var(--background))", foreground: "hsl(var(--foreground))", primary: { @@ -40,8 +46,8 @@ export default { foreground: "hsl(var(--muted-foreground))", }, accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", + DEFAULT: "rgba(var(--accent))", + foreground: "rgb(var(--accent-foreground))", }, popover: { DEFAULT: "hsl(var(--popover))",