From 5070f591d3848b8f9661db3180256af077220954 Mon Sep 17 00:00:00 2001 From: Mohammad Hariri Date: Fri, 21 Feb 2025 00:07:25 +0100 Subject: [PATCH] feat: animations, responsive design Animations - added opacity animation for experience page - added stagger animation for navbar items on mobile - added animation for landing page for years and language indications Pages - About Page mockup Redesign - Navbar to include icons on desktop --- .DS_Store | Bin 6148 -> 6148 bytes .air.toml | 37 - .gitignore | 3 + Dockerfile | 4 +- Makefile | 20 +- assets/css/styles.css | 65 ++ assets/images/portfolio-photo.webp | Bin 0 -> 39168 bytes assets/images/profile.webp | Bin 0 -> 79510 bytes assets/js/dateUtils.js | 40 - assets/js/experiences.js | 2 + assets/js/experiences.js.map | 1 + assets/js/landing-page-animations.js | 23 - assets/js/landing.js | 2 + assets/js/landing.js.map | 1 + assets/js/navigation.js | 2 + assets/js/navigation.js.map | 1 + assets/json/projects.json | 2 +- components/about_page.templ | 200 +++- components/about_page_templ.go | 2 +- components/about_page_templ.txt | 1 + components/contact_page_templ.txt | 1 + components/experience_card.templ | 46 - components/experience_card_templ.go | 199 ---- components/experiences_page.templ | 100 +- components/experiences_page_templ.go | 383 ++++--- components/experiences_page_templ.txt | 19 + components/external_links_templ.txt | 5 + components/landing_page.templ | 18 +- components/landing_page_templ.go | 2 +- components/landing_page_templ.txt | 1 + components/layout.templ | 51 +- components/layout_templ.go | 8 +- components/layout_templ.txt | 2 + components/logo.templ | 8 +- components/logo_templ.go | 19 +- components/logo_templ.txt | 1 + components/navbar.templ | 80 +- components/navbar_templ.go | 6 +- components/navbar_templ.txt | 2 + components/notfound_templ.txt | 1 + components/projects_page_templ.txt | 17 + components/tech_stack_templ.txt | 13 + compose_production.yaml | 31 + deploy_script | 2 - main.go | 13 +- middlewares/notfound.go | 20 - tmp/build-errors.log | 1 - tmp/main | Bin 7526642 -> 0 bytes ts/package-lock.json | 1521 +++++++++++++++++++++++++ ts/package.json | 25 + ts/rollup.config.mjs | 40 + ts/src/experiences.ts | 16 + ts/src/landing.ts | 43 + ts/src/navigation.ts | 32 + ts/src/types.d.ts | 10 + ts/tsconfig.json | 113 ++ 56 files changed, 2552 insertions(+), 703 deletions(-) delete mode 100644 .air.toml create mode 100644 assets/css/styles.css create mode 100644 assets/images/portfolio-photo.webp create mode 100644 assets/images/profile.webp delete mode 100644 assets/js/dateUtils.js create mode 100644 assets/js/experiences.js create mode 100644 assets/js/experiences.js.map delete mode 100644 assets/js/landing-page-animations.js create mode 100644 assets/js/landing.js create mode 100644 assets/js/landing.js.map create mode 100644 assets/js/navigation.js create mode 100644 assets/js/navigation.js.map create mode 100644 components/about_page_templ.txt create mode 100644 components/contact_page_templ.txt delete mode 100644 components/experience_card.templ delete mode 100644 components/experience_card_templ.go create mode 100644 components/experiences_page_templ.txt create mode 100644 components/external_links_templ.txt create mode 100644 components/landing_page_templ.txt create mode 100644 components/layout_templ.txt create mode 100644 components/logo_templ.txt create mode 100644 components/navbar_templ.txt create mode 100644 components/notfound_templ.txt create mode 100644 components/projects_page_templ.txt create mode 100644 components/tech_stack_templ.txt create mode 100644 compose_production.yaml delete mode 100644 deploy_script delete mode 100644 middlewares/notfound.go delete mode 100644 tmp/build-errors.log delete mode 100755 tmp/main create mode 100644 ts/package-lock.json create mode 100644 ts/package.json create mode 100644 ts/rollup.config.mjs create mode 100644 ts/src/experiences.ts create mode 100644 ts/src/landing.ts create mode 100644 ts/src/navigation.ts create mode 100644 ts/src/types.d.ts create mode 100644 ts/tsconfig.json diff --git a/.DS_Store b/.DS_Store index a45888cd2681b7d0baca9991cf3f1337aa58f360..e1ab1bb2dc4ce5b9b10247604e7172751a8c1bea 100644 GIT binary patch delta 82 zcmZoMXfc=&$y~xvJTb=9A(5dN2vZq=+?3+voTU8x97YBP1~vvHiL&6Lyqx^Jbf7qf J+{TN>;sBF^6x;v+ delta 82 zcmZoMXfc=&$(+fMJTb=9p_rkBArXjy+?3+voTU8x97YBP1~vvHiL&6Lyqx^Jbf7qf J+{TN>;sA*I6rcbA diff --git a/.air.toml b/.air.toml deleted file mode 100644 index 476bb29..0000000 --- a/.air.toml +++ /dev/null @@ -1,37 +0,0 @@ -root = "." -tmp_dir = "tmp" - -[build] - bin = "./tmp/main" - cmd = "templ generate && go build -o ./tmp/main ." - delay = 1000 - exclude_dir = ["assets", "tmp", "vendor"] - exclude_file = [] - exclude_regex = [".*_templ.go"] - exclude_unchanged = false - follow_symlink = false - full_bin = "" - include_dir = [] - include_ext = ["go", "tpl", "tmpl", "templ", "html"] - kill_delay = "0s" - log = "build-errors.log" - send_interrupt = false - stop_on_error = true - -[color] - app = "" - build = "yellow" - main = "magenta" - runner = "green" - watcher = "cyan" - -[log] - time = false - -[misc] - clean_on_exit = false - -[proxy] - enabled = true - proxy_port = 8383 - app_port = 8282 diff --git a/.gitignore b/.gitignore index 6f72f89..3345ea0 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ go.work.sum # env file .env + +# frontend +ts/node_modules diff --git a/Dockerfile b/Dockerfile index 24802c9..6359441 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,12 +4,12 @@ WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . /app -RUN CGO_ENABLED=0 GOOS=linux go build -o /entrypoint +RUN CGO_ENABLED=0 GOOS=linux go build -o ./entrypoint # Deploy. FROM gcr.io/distroless/static-debian11 AS release-stage WORKDIR / -COPY --from=build-stage /entrypoint /entrypoint +COPY --from=build-stage /app/entrypoint /entrypoint COPY --from=build-stage /app/assets /assets EXPOSE 8080 USER nonroot:nonroot diff --git a/Makefile b/Makefile index 2bae59e..57ccc24 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,17 @@ -generate: - templ generate --watch +# run templ generation in watch mode to detect all .templ files and +# re-create _templ.txt files on change, then send reload event to browser. +# Default url: http://localhost:7331 +live/templ: + templ generate --notify-proxy --proxybind="localhost" --proxyport="8080" -server: - air +# run air to detect any go file changes to re-build and re-run the server. +live/server: + templ generate --watch --proxy="http://localhost:8080" --cmd="go run ." + +# run esbuild to generate the index.js bundle in watch mode. +live/rollup: + npm --prefix ts run build:watch + +# start all 5 watch processes in parallel. +live: + make -j5 live/rollup live/server diff --git a/assets/css/styles.css b/assets/css/styles.css new file mode 100644 index 0000000..213dfd4 --- /dev/null +++ b/assets/css/styles.css @@ -0,0 +1,65 @@ +@layer base { + :root { + --navbar-height: 6rem; + --content-height: calc(100vh - var(--navbar-height)); + } + + main { + margin-top: var(--navbar-height); + height: 100%; + padding-bottom: 6rem; + overflow-x: hidden; + } + + .navbar-drawer { + height: var(--content-height); + } + + [x-cloak] { + display: none !important; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(20px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +.animate-fade-in { + opacity: 0; + animation: fadeIn 1s ease-in forwards; +} + +.animate-slide-in { + opacity: 0; + animation: slideIn 1s ease-out forwards; +} + +.delay-300 { + animation-delay: 300ms; +} + +.delay-600 { + animation-delay: 600ms; +} + +.delay-900 { + animation-delay: 900ms; +} diff --git a/assets/images/portfolio-photo.webp b/assets/images/portfolio-photo.webp new file mode 100644 index 0000000000000000000000000000000000000000..b5d0747bc7ed004c16d79fd0f43c8c4fe11c8840 GIT binary patch literal 39168 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

1!GYW%zPWUa@ zOk23$Y{>WYpLe71(TxYXVeaqQB;oJQy4^3 zLkmF=)AQ(Hc8|PP7_lKNB$Mh7rU_X>Oag*foAJi0JK$PQrJkj=ps_^yX{^tD16pZQ ziAP_5+)&MPD>ynEHszY_^yI&1AmOpRVO~-0oN9iVDN`9nOk)>WvH5j1=ir$_LHFn` znY=M^Z@_ZB_#QLKaDhFEp%t-E?OCM7_OdBsjc1U5K6je>kpm~an;KCbh>npPbn(zz zGdr+_rUADPJ+lt=r-Lw|l7b+Hadf4P0*^tt1}QJKfW#1RtlpVZiyY8Jk%{l{8~do{ z9%lzz6tX71nqV3`bp_4AV3u%)Z+03mBnJ9l7049$P`{2j<3DW@z3v5^YMeR%KW-BQ zaU4?2=Sc%T7F7wy8PmJD78i+pCVFLsHK;FK)lVCN~#Irktg9U1 zpX%1<@@t|On4r{trcPEnj`EjQZpY)O={cGisW;;MC?o~v?uJ&T$a?V0tf%4tHmqzZ zap8uI#6|k!xkwm+NI@%Yy=#74?^njGXA1-8_s-E@VD7gmzri!|{uNEHGVq}Z| zGf?=`zm0MHp8rzvP|8;m97^Q4N4h3D5MGM5voU!agNwJf2XN}U(l7`A+TX`|gexDO zD7ZIUfx1Yx_>%mrz7xKLTpj%QQ1~}cMaWuIS4|)4L5LXrh)CXABM}Illus~4>6L{c zaftlZw-D>4*A23^2KU|8fXpnFsm%q^Vs5R1J||9zs>#^5rgTF>W-P-cz^4E=0@4UR z_uE^&eJTkmEh}I729m4ZG zM*E6#Ks$-n=&te-?GfFWA!GsgPhooHA>V71)I(a!9)jDwmB|s@M;5dN)bFuIT>FrU z8qC^G)a-a?-o(5I)k4>h>JaYVN(_QjNO8(G&2p__`Ir>oIYbSoYdSYIKj!Fdyrt&Q zWuo#PCZdJyxbjG9PX1w?qe=iPc2h8+J8lBo1l``7FWV6PR3Z%nPX&Y}ziKm48T~%9 z2+B(DR7L4$uha3KhS6gjr*;G`XI~O!6~>o+t7OI=t@Wbi@*vj+4%JEpuXlpzGmy3_}x}-kX-GM4wp>L$kqKup>v@%rj9j^$!Des9)ueO z6#61-Xg|hog&M~oyQf%1624h#+T+PGwT1-j{TZ}NbU%^}Dj`M2L*R0)YS-J$yDs41_yqooh907hDMe;a}b<*gG1bPZA?aW6HJYC&u27C$L#s-@h zyP^Gl-?W{|KM=r&zC^fG>3?#wHdRmLeH3JHT^%!c_=B)8@jpeijliJge1N}5PFQ3d zelUnqY?t;SnZ2HKmbaV)Wk8_s>Py4=gxhm0{{ZuD*AL^DvIS?Kycy&UQgfl(NJOG0 z4U;FWSksN7Er^NEo=r2`4!ONwe=()8)heX{7~jHlr+}a#;wXYW) zl6v~SFnE;n(GxJ0MNOX*C%EDW%OFWMg>Zjy#+tDwXa0iG>EYW}l1WLvK-$XFhP&Xx zzOQ<$wvz?GbIwofty?1=p5k=!vP8~6G~&7CVsmVrjHfq->BCUzDyH=8UZMB(JOK!E z9h?a9@01sII8oe}a@PMv*;Cr}hly@<@*-%x3S*4sr0_bFZ#%%f(&qpeeSaU_Q8-rb z8vd7Qy8S_!tk!0`nl^BC>xfm0!Dan3%TRa}SlPtndk%LxQbqRpt$bKyv<}J;So6&R zJj;oh(T|tXm2kvcp23n6P9-GelW@Y6%Tn~z!@(j@9s_p{U8iu*~3XUf|o?}u(&Gf=u2(j0OU_1HKX&VQU8J(^hslKn%(i{evVdW9RB1>kw{30Vd$zhA@0|ebVoc2Qu_F zZTp3Rp-rDL{P4JoS#W(&P6SxIG*{De)gI>g063`6od2-c*AP^qhiN;KK9g(LIL#-w zJHn&AfI#DS3VZEGr1J|kn@X8i9Ut4Ox8o%Xi{n91$_F9fge0%KUS?k`t3+8!|K(Y}f#6|%+ycv` z22_#G#_NU`Yhr~yFFliqyit;Qnr2%!uaxvE#AGSAk)kAL?C4~Afnb+PaHP8O#^PFr zjz}V5@qD%9DKg1&w0kFvy)u4%+fSrR(_2|+FTtR(g5o|`2P-X1Con_7W}I~^IjU+n zM?+6k32JxgW{Oa0m$6SgGTFIdE+Z4Lr)Px1uHXl;`=U{5L*VCF!8(8va^^TTKADcK zXjNuKN4CkpB-R^2O|&X<9r=RqbTj=!KVxi)cJIB)CyQyF2pY=d<-DS;v0N4rUOR&u z6@NiH zRcN-z&j2u6IDMQlHop+jD?Sh5{wh6u&_F@9$6u-^4Xfo?;cG_c=C5E`Hpy1`@=4#L z*LI$Y4Jb;IcbJ^f<0&`++_EX}+s>UfH1i$_|heg(*zezV6H zA~9YuE(&Gi*m_LUW`N4MdLImh8i;sz)n!0X7cRRNCj=-^$30n8W&7J0Gp_t}+`iG_ zB6T);-KwEQgb?ibXU~a4SERo+Hcc0To?7yIt2MFZU<{u{ia6}~odqgPToUsbBwMd( zu7ebfM`#7ZUcdtcD%s)c1XZqFwNK&Bp1=qWCutE(?K_?gbZonctisEr;49=i$K^g1 zBET@=8Zyg+ag} zE<4e>F$irp0UDAdfXe`+gNtj&q8_I$mEsALK^n3soqqJC%x!DYu&Vck3@QwXX2=wG z>XR=v*JyKPqUs#<_fbSa+g!5`CsInOu97wTIVoL#XEknl)oZ&s4_+={LhKjrWarES z^UQR`AGl&85meuI%%a_e18=gzjNzl9!a8J2p)F7Ew!9$v0MHz^(#_3+rew96+qhf! z3e7&VK5p?g*_*Tgn4!&Gicx)vXuCb7TuW*>y0(sX$$$XKi=!~Xud@A65>(P)0q=g8 zO*Ifx2he;bz6SM}5(ON&%6(V36RQY1@Pf&MA;wudNYf0!yqA$@)_*@uJ$_c7o+h3M z&5CI(YYrGV?x^)sli(eXM@Dl+TakXYo`8GJ;u1Mlt7&|0-ENWH@o&7n2z(*5%dgy( zDeU%<6hj{}F^nM}&0mI99nRlM7ht6i2))Iw(9XTkXUZN@r7AIMt-ice5C_L+S6Jf{ z9^e-_DfSq6-UQP>vTl{dE3UEdJ?&pAR>P7VwvtN}C$>=qgU%&VG!!v;N=r4(P+JL7 z&xL8y?cA^cm?m)*vtsn$T6HyAmno+LbeZaLv#D5gZCq!cwGafDw{8 z^kJqL8lp&SLU)D&sZ~GH!6p79;K%0{8%m^q;Zc7$Xkvypk=haRzEptHFi&1d4iNQ@&`+7c!lK{zdC8=C#b;p4}ha#XaE z(FIM>zQ(c2R|D-@#u2B!c-J%1eHNz0)Z7NP%e7va541;E(=ue%3(_!`f6}Y;(%uIE zijIn81v+!Di?n2)1dFnUq7|Vb&n_mF^3?YfNa`I3aK0`0G+_BCvTw$m{y`!ybx)#O zlE@&Xow2Z0?}r}r|BCgZedo>g#)AZtQJNi1P#F(OWb>hoZm+6AEWdKQ z+&xU`oj#D}hh&goTGI7i1dR{uFhusKmLxDQ!3a#)p9|07|m|xn{iX|&673Yt`LM{9a{DdwG4n$-fZGhzs2*-yt zMYV%wn%2jk@Qio25d@?uJDOVfQe~@P>u5jNOH7_n<;r+B?p+RtEx><9!Bo{QU=S-* z-+z(+ZIMrwmD7&|G=`;3w|$)`X54AtyCiU$x@<{T#AuqtG*7tTy9{e z0`jR)MBufdqy-Y@N$>vpomOXUTN(wYXZHR~zzdJwG8t9-4|CX0@nG+XuSm@&_@MyR3gTQf~jwGqv+2gPTIlcw)S2RRGo_u`^Am6`v!)(&RuDqhGwhVw+97sHdiyeF4mOEKb z@J~+Vo`hTe8-aK>6p3>o)WGL3D-ucTReIR^zgAOz@rlqDYh~?M1%8NB`bW75y7ELn zFGxZ|KJ&buV2pg6@xoJfOY6Xg)L31!rXVjEnP{y0ZgE-v4yNy~ZQIwZU&dAE9;_oN zE66OAw2gcycYr*AsMkG$?y>g37Zk(Iix>G1XT@r#Tbd`Tt(IJpL;yRxPr9uzHhNF!~LsMVRQLFr6JE&)!$tC>a z;?l~^-+oJ{?`m`YZ*3>Ok-@?naityg4=aJ!=V^YZVv=)8SBJqQSTe<^<4+{2l4VW( zMmtTgJ`Z_dSU>%G@Z%Y!~jcq6@(>U1VAiys}u<>%7JM6L9UP0Ec3<;^*Jq;5Tt6$xWp4*K&coqJ1 z?fY`DwU-ojP@I_7+H7;(*SfChi1?(oP z00!4i{rLYvRZt*+xVNgx?x8oWx)1_WOn&MGxg|;C0cZ#sf)xmm?OW-^gk6*h<<8ja^`~ziXe&c42n{Se#lujBXsdj(F9K3E zhQjE}YOR9}*-!ci3?Hm8(tMV&n{&al$8vno8u*;F_2p5_n*=9}1g@^I+X5g7;nnit z?5TD zR2gNoxe57Ux`+{MjnOVftxgr!!;w~Wk9`8*MrXv)jY1gLilB$SU!r0=?=?u&E;e)+ zb+{8c)SinL^mB3#gL}~V^nVW^gBkmgK7OQxR1~dd&H!D`0jCgF-U$Z(Zj3cqdL02v z)I?`;3PVi*g%e_=^#aPKmh$-!%?&s)QL4YHVU6#DU~I6<1_XDTMh#U5t<>sti~x&51& zezhSq7}z642+f8Lx-};>a?j*X${SqWzO}8PRC8Gy8K{FDW@~B-`crPibbIq)g_SJ{ zMuO{5D9BBenw%*cT?I1@-QS#w+o8<3aYKl6 z8D+-{q?juMO_db=kYQt;hSD`*X>eSO*fwFjISwd9>Oc21X9KlKImldLQoMl94bSR9 z(^BEpFmG!_ROV7PU^Ai@$n~nr3E%S#tKUVvT%g>nqz9$=qvhsl4!;6*^31~ea)7*V z-84ZH2f%IMf4t1h(=6+$?edbIeH^C4-?9p^0Y{3n_YQ_>#*Q2?nMk{D%&G?XF(nNYfr0PW z?Un#_B*C9W%-ZA3je?mqv-X`+cO&265xzb^3+H%i$x0QC3k9irs7*#c0U#??jrUMX z082o$zqr8e&7%SRE3ldyxsT!cEH}&O38sjinmG?==A=mG9Db-oUU9?fl+0t{_l)!Z zN!8iU&1oWZaSWg?$B`3W@J=l<@V24xL7!+MDq%ZU9i}>iRxrHeFd?9$fhZNFN~)JX+4jbNCWysBfyv8{)$J4g~Wg$=~dg96uBX9XkPUETQa`$AZg{uIzjfP-{^YK zcPI6!5(gx=T(d)$a^7p`S3et8Q@EDw(F?n*DLz4pPj#3wt(@-(vO$IS4044#mA=8I zyCYtdaKJqpYy0t=c+$v^g!Y3`q3oU=FtlpcMe89oG=f?F}#39B>N$EwabLQ%7D zXx}3H-3%ibGK5O%{FIEf?Bb^nifCG7w?$4za7no$hBUNzfVqJMJ4}Eiudmf7e%Z?` z4e#KyB;01MqZ8>^uo9%62Fag{c$3!EEaN4F-k`AT;=}hzjx1+UQB*3X2iD7+@^h}J zcGL66+Nep}!KZ|M`;S=5!BHTQW+0-30)hZUW__R!{-@nBVuCcE!=9wGhv8K6X)O)` zB^%ZCwOB`?TpAJKR3T^SpI(gg$Vfi*mXUR?tXjm(!w>oGGS1Ybt_v~gmp6+BE#T7AjIUjXhsxpnUV0lM=?q=XydsGOX>vwj2`TsUKmrh{F<7r} z8xxm&!G=h+uI~QI`OXXN{yY0Z9zd(Y;H5$f^4MDw?*#dE zyi(0 z@;4_2ii75fj03p3gPYg)_#t{VpIDr;jS_;bK!&Fjaf-toOH0dEvLf%V)-|{@Q7{oN zLW6D?Yl>ywH!xF8*IV9WGraR1$CN^xqWEm|2wFGuUx*N~jOS7(5wbsL*pdACL`J$J z)^T^llqxt&;W~f=`FQt%%-V3}BSn-B=|{Q?ps$J8?R_;S=K($bRy*R;6Pi4VJ4Io<90GxUXk&7!u2u4nK>)0-fw$MC;x zeLgkw)>0)5SAzdg{&F-G5nMq?0U0UyNb1e|5CtjnvfvRv0CkLg0XNeLPJiWwKVbWy zCp%GMC%0-6Fm5TVV~Fen=H6T2C&=fcB%9>Pm=0-=%SGZaniT*hN=Xq5PDY9tofejj zklSr|3Ia{e1WkZe5yZu44C`5@M?<3ECX-k37mn08JLEG+RHRLTl5O%-PkT^9y3fh| zRoe8u{vLXv{<1c7^=MlNaxh4&AeAkBL_z7bN#2YNDWdIi>pE=lj{I(tApe;Q;(_PMGntBM#hnqU6G+~1W;aOq4?7QRUfe2T2H%n;okXD3 zL1sEa`6B6tI$R|H@SW0nEqLOFTEw&uRSIzWp9qdAoC!+Sa#5fYdkS)bNj?$y2Q;RQ zfIs%yi)8!d_4ifm`SjWS+U4Fc3SQvr_qlY^BrNzaR;#oFs0RFSe?{9kv*X_y zbU7~(z#7F&bhY@$5ApXo*MX{(y=;o40=fK9`r1(YSIcyK`XbYgbJJ!M+DbyZ7eutf z(9uQ*8j<=`IxXK_)_1;>o|4f|2^Sb?^2OQZ22}{Ecz)9&O`{p~;6kI=%C&x9MMjb+Il*B3UIW-3{ z#_XDYb;yCmSw~8o;ttHy(CVU7F!)1wa7_XTB$i*D7RTrG+TV23c4Y5Xu{?PiY05kY z6v0;SAk!e~h~zze@d+#>zRlNl7PF(uGpDO=)WAyva~{GJw)N9p>CkAvhMF9bwlqK}Q^UzX}v;5={n z{1cuTt8hB2Z;BpLaf+cPt)~+1Z4=Jq1R~)j<~U5H<0@tnsBR9OST_vkHf~oscboAA zCzt^&cmgXZ<2!B(Ju*y0kMiI$LF@5#DLl&HUP?H4h zrgjxU!TFckD*;FA!$nm44tRQ#M_A!(`>++$%z#YgaWtSPjq8bpFB8HWJi>#U2u(eb ziC%Cm!Gmj6`N#3yuh!yukI;{#LdS+chpkOIC7fr7_f$FXe)c#5ojm~D95BSco6iV! zY=qn4_d5sf8w#~A%mNK+MS+L#0?Y56|GwxdmSF;66I9^8yF-DM{JY zO=If4^05c3KeV}WK)>vKVh~<++s^X-$*Alpp%C1ceQ|u(ekE%5Y=U#Y)+G4 zP>R&$bFr)2vYe~fGP#+aUz&>=yDTBB2~(D$D%WnDP9&SKzwAK?=~)Ar)f6KOH{CEu zS?Q11%G&5j)$V?C>JMPj3+Smwr4_4QvoRSv^aA>#&!Nf+^+1=vER>gU z&>?;){*>pYj^;cgB(bO@p-7%g$afes?1RcP{!(=tn$oM=%qj8Qk=@v}c4?ybfAPD;^hH6(q{g|SHQ_JN4mhaVv$guG-BdGU5)3jWq=_9Y!DdVv6K&pYpn>jqt^|M7WL@P1#I^X$4ZV z&-tL24$u6$Px`l)0eOtx9OYz&E-x;y0;Y{zw?<53kl@5zUSHfvPJCue(!@%iu<24o z1eBmFi*Dilb|1tki-iYvEo!blkV-|s$ls-%Ri_#u+ z?Qgv~>u2?;6ZxpsIn}gVyn*9OPh^~Qn||Gt*y=5##*_4Q76s| z9gO{%#NohSMwWdeD$$*6zZJI$#SPE~kp@yTzx6tl*gIf5(i`rebxXOux8W7IcqYJ* zh+`@|j6r1XnGGy!LoXmiq_oiba)B!8q{)Gf~WG5yDsd1H6aYGOr0Q?`X7 zxFJb;8y#Sud&&J}LKu=1S<~p{3X06o7OV)($aJ^b1FVXm6tt9t;i9{)B~PwxFVP9@ zHEb{b_9_C4P(zVQREr0u?Xbl%3LyJ}^WDc1!&>HQC5l!@du|LcMYqXw&4p<#V*o$< zhpxE~ywWxom~8^yJQeo%9rK~e_h|WE(U?j#;`f=3 zk2+R&jt~+F&NLRqU{lh@x`2uvZQ7X3^lA#;^@&(;53Ai)gWSe7WOB|yw8g2fnEBZw-OWmW zMkuNK)W}*1@m4}1-D#%CKptVoof!{OZU$Q9(7yb-oN4@xgBXVo#+pxW}K1}AmsD9onN(?#T6JSKQN} z8w%71)B_G~anlZzBR)N^3uOgfc1E6^bAZFkF2Q-?@OY63UFL-YYyg{^Dk#-pX+E%k zqa53ec2@zkF1P#sp$VKkQZU460pIejJ@Eg{2C;jt+r!bxUc!RZ|M*iWDpl={*Z%>M z2&6yU+&mz}xu>zGBh?o4?(*TmD zeOV=2xKF|_v{5r76J6y|Bz zc6ymdys=#9GlBGIo6TC6Tq8f@)TF@2my%`E#tQ%Zx&cCa<~ylt4Tv*d`dw)Plz84H z7x{^bk3Or2Y;=2?L(ti8wg)S)v(w`W;Ovhb8MVTfHKo&?9(@_S%&w&Z{JId3^ks|j zQ{rsCgeyY*+}JHVI&9!~)SF@#*%tzId}V@vBeBhMA^#bnCcJKhee0A73d&)JiCanN!YO6y zxWh7iUmYC5)3YL0;377p^h7uXxnm(*xMs5(cUk$ZPzZFBS$p(i+@;N@Ut9^cPN=H` zso+RAQs9&hrw|`zqAN|N1*mrmhvyw6&}5IZhMLF2^mBRu>lBrekGgpG;$Ek+7#f2e z9z=-hTs1y8795mFjaBp`-mPnCMeo1T5@Y#J)wX$+%94caHJKmp?=NI>5aO<&sIWuL z$VMxi7nKk+S%MIc3Bdn$r)9dWv+kVm)WF!o+LpisYGi+no8w`h_em`l>h351o@*(a zmL>Gva%$O9wbmVQnJFl-`iz-pzz`P9*Za}Udt-U0K_I423VgmZS(;yzrCYp;m?_Z$ zXB!&^-L%kkmP3B=yb0`YiCvZpk*81q6_dyI_3(qU%7{G?+&Vg0R*cTip2v#(J|9UjC3Q1<}9#2a8syL0*8wg6dvqKQqqnP?B&z-qs`ebb!3`c zs&5Up=p@=9W6)AV%@fiqWYTk#0yn=1_;tvB*)#ox67AWMo2^fX09K*F^ZQ8hQMx^Kz zp(-}{Za20a#-W_sRoF4G-y5q?GBK_c>+yEKgF_*MGGne3vFC)!3CEb|w*b%zI=Z%V zXoVAy>Ti9q+Jf*1=C+SdBE6R5JeoFMNUNrei3yKVwh+smr;M}D8st0amo9Tt07NI2 zbclQCn!}f-#n{Ue%P6oYzVv*H>wZPt{0o=17ovRA)A7#vil(klrT~yo%&*HU%|`^? z*I09)Ee}*R%WKN~KaG&}#-OqCN=65CT#{Y8Zg<_X_*6%z1&s%$isdo#b(47k_nS$W zuQG7O_ip^k^edI;P1(H(0Jl(pS*GC@o=ytV$s!OSya0euarFH{Ug zKzMOOD{Hpkb%l#eXj8n=P<^!TNr`Yq&hqAj4F(mT+5*tY(@-yRz46Y5Y|1GEZm$Go z)#jRGqSmVudgmCg!vHd2T|e^J8g*ZOZJEZ2_uTIf&0Pgqs06YfH4~x!R(86drm=FcPxcKUY&;Vba6^|Zo_0Q~h~t#BJD*3(c-%tlQ`Ubw)7*&faY0L2 z(=T<>sE{vn>btO~^5Jg&hAi(E%nCmqcc(ko-R-hPsmloO-HrmZkgfuwHFX{EU>|LV ziQ`My`FR!zl3Axrnc+%Kc#Vb*k7s;WT*3o)6U+7)AEF_s!S`xFR2&FT?G0lfN5on% zc#2B8!srA&Rl_V|%@6cmA?=i4oEzSp;pX$zl<%;F?ouv)6TqQCGCim0l8sJn1=LENh3o_ly7k zXzaXs&@4-AuRIx%RqVvICZ{;CC&j?Hj0-6+Qb*RbGe^eMc;XPM595wpoHW>Kt0 zO0@eK+O#NNPKKNg{ZxI1(1Dbm zx#jhriuxgsGfAE&Rv7v^tg4qZI}(5Fkc+54@|JN!biVe-=gsi+22ezimHDEHhh%OB ziDbT6VNhV%BGQ&CTRb{R2J<-rD!%m{a5}hYx;+ip2tQhu46{{!L2r+Ip~1PN2Ri7U zV@?xC+>iz|D%4;MfAr2g8JZjKN^Dp`_hv9B)`Mz`q|M`@)^_}_c4fJ@-ulc&@4tq; zckEA&>88a`lvw&6L%ZTEO#lJ|hG1!{nfsYOh+r2t;~Tvu;PGde{@_2V;_&D&GOkG~ zqff6!pFZ%m2{yTANI+J@<}>ci^u6^}Suiu{b-R!~y!DQiHd?HPt8P_&2sD+`3}Bpf zDMT3H%RP&u0nDeI2hAjU+B>%P_@|T4Zde8U;IQY*SN$jIbk_G*QEImF5uc9_6hwE) z_t8|qjc2S9n6oH8{7B&acBCrMm(9p8V5<;`W( zdg}Q&ZoY+UCwdG_DAYnE=E*_MBKy2vxKkWdSn#WGSTz(9M{yKnjzMLCBAgR&2rIAM z+RVHCF41__DyP|pE;xyRe2UDUW*!#0FKL941v`xhp}RFbF%CZw*R<^#w-t2ocLt_5 zwdAX7Vk!ZK2%IR~B}-OTbhn9Bf{~O>S$we(h?G+sS~dk}mTw_bUVSSMiKlT=q*)mJ zJnJGhk!_f16Ega>opIhRYM2m7JJvq6K1QxIFaw;YfjPfzFd#+$f3HTQQJGrJ%C=|` zhckX5@oijze3pH~HZbdz1req?f~2z@;DJz1U6NDuc>F^>II64E2+c5Qb@k3LsF@gK zZ@4L`!Rqru*Fm{@DC`Y?c;zmO%xezflJ{$iV}4E)!b@7deeR~u91uwO3TJ`i<^_WK zdKU4hcusn1Xy$%2RW1b6KOO6ye`xxP6-fIBpBp0{JIEt0fD|1B+x?i(kshh2ir+6D z?=0uh91mG@An2TPBsjpX$kM4b0vcKe_ulwH?~RFz`cj~=-PqpOK{JcXe4eJ{whm_n zg$&v`B{7>*5k-KY!E=N*yl<}4f$WD4u6Xz7muJQ1)JG~FT>l9aEik!`C$)b(nKGHu z4CTZsEa}Rj3ky7K@io#MJ1w#UgTW-Gq}325?W7VFI-9(qI)AqKH@tVmVXW^JuR>w> zF&^iE*T>pvqF@~{TAF9S`lDx+7`TOcqwkn8F9ptS)0EAwc* zP1vG-KxJnp21O+b+mh0Hz=2U}&xGigCm?QD6d>p-v@qf3iq~a+Z|w!bJ=oT2Byr;L zQ0pQ_%e2CRUbeDW=qv+e=Pz~r5)|5wCT%G4LTp>bZB#B{;mfRNEJGmN`w)Oo(8z5Xh1P8Q9j)@*hYK{gUZm6J- zn?YeyFLUd(-O_`!aZxsdvG-C6BPR025!h5sYB%lm>4WGC@M(+4#Zl-g(qxl-0`-3* zg#=&!hB;O3y#Yvh!5%h>(BbNsjVrAGb&7~pYSirdG80^9BB7ESgj)p{$rve9`r1X; zB#WUqV|U=y&QQ=B;VJ1QEILJ<)~f>;X~1RCX%8;~Y222dbIb+B&Hx!;o{Y(Rhgig# zzS#U#S6fy9z89S~$M=m!w7>aK>#sUl)Feq=JU6GF7u~E_(K4H3A!Fpm?K|xr3L@M{k{~H=4SdvI9Od@trKQ zkq4^bon1!NQ5TS_(StOSp-P9YYt2*0o>XS-HRL_(3eB!?*bLD#_fmy=%j17YVQF~7 z38KFk7z(>wIGijCm`Xk!zxq8Tg4i?*bC%daEBEqop&dkp2!j-{w|Kw?qK_#qgfSD~ zc?>_y0*Jr7HB$|sLMytjpW>bIv=u7hU*CA_t<-^>6`>Gx(wW>)@1SVi#GPWtYWADm zRbV+MGY27)>=B*y$^JAp;WGQp=fR)Y}k z(Jc_cX;95}9&VF$utP@|l@qYdyD@7saf~uLOFRp`80+&1g@em>o$L1s;HN|SFZlQy zkAU_;96bUwUhz~*UAivR^?gB|cnR{xoHf&Z6t+E5SM53WVPHI`sF$EGj;hSbX)YozZB7(-(hBe|=o@ z^+K#LFY)q}BoD#Fjq3rdfe9%S>P+l^_C_RhCMg1E@6lGCo?f1AOj4Ax-8B(1dIs?^ z^nqH137wCByu=EwJjf3BZ{t)n@X}-oN8M~+*Imdd!VsGy#e~aZ; zs7JF93|n0zw9%m((qOLts99mm1>#n$JL7g%?&*$r8wWcOVvG7PBOukOnhf^!vh>SS#A4Mh(#X@QAn$d+Z?f(cRBNRK#b4^x7I<@yjEfi^C+pRU! zs4K@&8;>aY9n*W#ir+ZM5wDh8WdYkDkSrkxi3mjlnHd*51gQL~w$7UdsZYV@ zivYNypBjvq`_c46uLU}UxY&)-rB7uQi)+_A2oQyg`WVuprAeU40f7#JG3E#83WmLm z+>!>46Fp};G`8YkQ)8{2D%~>aW)t~kcW9g3Yw-N6l*%&vBxW`Np87! zwRls2u}1-bJJOZ+-^fDQs>cgC^~&$Hq7wm5qSpHab_E9847ESYY*}MPN$$|IWZgH& zlwcsc$c(n2)yE+mP7|4IB#1kGnp}JTTkG6boQ0ts6{?MN5p5mEwO$I^cp4QWW_`4R zeY8p-_KFwq%PHSo;QZJ;b5kti)C%7V;R*_VkYRK4;T-6d^La5FxN!PIXqMNN0f0p6 zYS(5q4Uwl-Op%JNM0BtKg77+tDHJl&{rhWkl-nhnu0=Un=-!DKJ_cMx5OoOmWx>5Y zx6u>l|wnPM; z+ZbhNgf=HpO%aV1J#~Ts7e#;#2mpkXCuE|+@rDTqGu936q_B!vEM?PSl7x2GalH>U9I^D zYw`s=L9xoQ{B$TEaSla;Nuj^uETg2)=-iyp)E&wU7ap~Q2ChE204|1b&d+XSAs4-4 z52XMBR$k^1Zw^c5U6Dq*U}pexii#pq4iz>|=W zsM%Of87q%MIsFp*L)H9l+`G9MUBGo|wL7R2amivz7>e3mOCu36J=)=R6*<41ku+1GNDq7RE^Ulm_`>rV@Hc#xZC++SM67D=C9XnzU25% zl%jXV+hn_om`xFrbxitO7`PIXbz3gHP4bDa+`B|*MXLHYf>Gl|D&NX=$_C((uf&y4 z;{8JFR1wm+hJrbqx9()YK!H) zATUiUIYSFGmh%Yto{1sbRE3RigG!TDO4PA_3018RA&Pt7jWDBv2tt$L8Fj!QwnddQ z8RztdWQG{e5WM}~CA);ICb72exZ_AL7KT){84_5=umD)61i*BrqaqjB3%iU{(sP62 zldd=336xQ1L~%=HHaLJUHBt~GMa6_ia>m&*KT(d1tR^j;-Eys>J4Uhb3V)_$epR*4 zQfi`12Ak@$-phXp!kuh70>UKxpR3OHD12oy8eo)PL-yNCj%I!41|=OmMVTo?E4;i< z;UbzpGW%t_OMKhl5qfUyfNWvt-G(DxJ!liIU$Bgdq*cp9?xo6&!yDjkx>!ID`}}u% zfxS4Wzf)N9n23QUTFTRaoVzjdw;!v*<@%IS7Ms?98j&HGmFZ}ao-lI>a})fuj!t3c zYs7mP(DQx>{yBN=C|+|_WfkI2j`a`R63}|ngjV>B$LC|ztHf9(6>oblSaK)qS`Y*4D zU7+(hX$QK!3jy-k4H(r~Wm9Ghr9U6B^O1&P%32j(ER_BeYZnd5!l{{fs0*I1HmvsI zpyEXUKUDAwRFS~;cc=^3=YgbG%@>72Bp?GTwW?48m~>GvwHU7mxvUh|MfV~y&!fE= z)^T0c#$|%L7wPF`1)2kGla@Y3;Nu#tLwqatxevEWYw??@o+TVuh|Vv}q0l z6w@2rfm+}}XDzstTOWlrw(-Bh=ZH@czW0*j*XA1t#yy)sikB(pka!K4XeVZUVd*X#GW?qClMD zWsGWKl@s?U!NVj=_S5m`SJxqx&>MYaq0aP-2n;@cT1y#IksR$|ikB}riYL=)hd zb*3@U1fFOE0~e#*n;zomgh#$}rvT|2bl@Q|V*Y1h$z=jL8S8!Q5blx7J{j7o0O*(n1gOS-!d2> z5^`0sRd{w&D)oGh7=qQk$GwJnDq}6D=3|!&Z{+Mh?0tXhRaJO3{ZWbl*om$O_Lv+v zjp_3kL{bE4q2?NmCoZNSkf1DWpSU(gRh#N%yrx{nO zy_ScUMNzhWnlmQ5om@0ofw+>qG%cW9jtQyJsLG`wDwGLodrt_+lE}v2!@N`c&or_f z=~h+T5LEXoYqesZ$1DU(b#ZMs1fd8TR2|cm<5JzME{u=|rD}EAalekUZM?a{k%T#c z#&8@yL5Dia_k5h!y3JlM`p0Q+0Gw^g60#gD)G*1C8;Elm5`EML>46zw z(@m*NJXGF!QFk2QUh!IYR5R3c;0a zT^ZX(5gzwejE=Y$T-fiL2U&X_mahav){n{IG?k?g>XAgy4B|g`jUnr|`O($XocxX8 z*sgP7C=f+ze@L9u|5;U5M_WX?`!+tako+x~Hhpr$27VyTtkgs04Zk*c zqH8w(vTbLWEMR3CHoNRZY37)_aC*z9Y4owiI08<^J!7*0((#?VPm@{bhY98X)kd%{ z?uZA<%urbMrYxUO?PstuNSDrH^=N^-E(w*Q*-ecTRC`j!07t(je-W6{$)2@(FhH1% zZVZNwj(b~Z=+K#d`k(EZ_*wgtTn~{%+)je?20M)&Tvma0=@ca-+U_KY<&A}n3@pe+ z;R(FmF@M@7`1bf2#Hu3s1c)G)V{)hC3YdC&n;DhuKcGFie zC@!+YU9Yc|5(zh!4g$uCc^u-;Gs-Rd+LdtFCaE#W+gnTF*o2nL3$L8evUbR}%9vdu zEJo4Z7OSdNoLqQ@0vFX}iSyVTGvi;paFfv3^SMv>G6$mx`g@R<>*R4*9j^xNMyr~-aQ^O( ze^wktTKQ8BH0wGB?7kIjqWg5?YJ+~%$5%ftgb?27t{huhU7t!^l}l8!sa5uWU~qL! zu?gEA!q?;g!8~2fK;F;I_f#uac$gdO#5-24MKZ^2?%@((t_DUp;|CycK>j8lHm*WG zEgyI}F9?=XO8d?Xsw9=4J<}FonB>QV3oz751p4h9$?kvv0>xmc2-cxliJzP3#Fu9_%x7k9GVF1GECjcC> zFcti4^z!3gIGCgt=OjWrYfTOfz_&4?i1V0{cyJM79kiC31| zZ2spT{1p$$joLhEOWgTcuEfLW#rm2OXZmS%L!7U<(#p{fW-C|rOFz=;hE)Z$_f7rS z4xzNQ`nvDa9y!HA<(@tcnW_#vhcX;}2c8es-n;WcT1d!Oco|X}us;bswIOD*Wyo*7 zmOrBX_hX)Qq2+xtHV9-deWgXwQ8u(>rgSEl00qf%vw#d;o3wk1M^nc%Lq}6TIu9=svOmz)RaJ zk%aznB2SF~^h<~#rEeH!|Fqs9VYC^ML7qC~)m;3(_kGxqc;O%{Ph3rWrx9JA(T&b8 zjV)OF6~0N;+muhsx<+S`Sl($?vy+U1cf>N8gqgDRJip92EwSy^A61L7oor5RGeps7 zG4Si}_`Hs!^j6j4F|okXeCNvhWpql>0Wu@$=VD`X{%ee z%n8#P#n;~;5-B+B{mSVLx_%tLMhWNg!>O6WV?p;7D^5a2Okqn4bV%jBOU9Gg7#0c(!krdL)A3qI>|=5ce=+H&u1 zc|K86R?`xmxpKzq?}vk?dw>Jq_zIuDaIG`1^y$U3n7_P;E~O(alwjC0-}QG_sJSk6 zGrlb#vq|8tejkq1v$&6Qro44B;jHX=5m3~4-r8SQb}KbWr(XY?T?FX1Dg!#^4RXp) zq*&7g;m7eh)pHa@>5_ZcGDhgTTu`b!T8gkoq%69ILiUuH%8SPF@{}xMymwYRC%y9E zIm`*_h}eY(%P9m7!8uiU)UB&y?{qfVyRP6YtR;k}hl^~w|8k{BNGYOCD67zaF?ugb z@^wNeTf6{DJR>w!6yajWwm>)z){ed$1UUHr`me56JL$cssro}&f@nP2u-z0KIQAl| zGKN`^?=`Z;vk-$FB1y7l%JR5{mU`8Q=FV<-^RPH$Mi*^+8BduDs}ZuIg=u zl?t$0)NEgNRc9{XheVpwQ zIff2@xIe~Sk>F;PwXA#42XOa7Dzuzgoc_Mtu;~T96aK>_QhEA1Ryw+ZdKNYJ>wDn> zp+5z`*f%x;-OZhf)$zXjV(G-k94Tm182fA#Q3TIuwbcLZ;ZwE?M0%-wRlYA6d-qh$eg@(#e4^ePJFX!$+}DUdLZT#4fJ+G<;I0&U4AM-!X(kTOvYx z%b|%z6*M;*d=*Gol|{x2{(&#^6DVLQwT+?I$ZuP>U1X_h0d11T+P7^4pVoNXt2!iPg?}XcQ2?c`2mw*- zueHST8Opzcpmg6an!3ITXNrikTfm82%Z?3{T6Xo&zNdvPl`ud|vg_sOMA#;74QGXz zvTVjb_SG8}#L%gdMY%;n04jXf@eW5`-E&jRutcMKJiQ0(FjMu=jY2ArF#*ftf6ck2 zh0G0_m~aFwbefc~J@Olo@HG%b+PmdP)wRsMz;v9XqG6>LT+7aPZ}|Aa;#97AU@tBAP)%l6R*?q&`|`Q1{678$8yXl zO}|$;BB*Qo`;U>KAxa5lJ!f?UdC9mX3&aCt`+q*5Hf{slLf)-ZM|%8{-piknS=$+f z+=Y6@`^}-h8oK5tee^v}Vm71-WWQw7;0B9JFDK@#Wf|CVFV1IC_jT=)Y+TniC>Nf2 zeIq4K>FA1O2dCF0uy%6ettL%1*(~PJ4)R2sdJ<(h?K2a-D)hKizX`Xo zMg(%c1@B`-{|@%~>l)EPvKbz%t|D7mW$b`ssg|PvWUSeOPS{zKPYbZ_BEp62`dZw* zEkIE#{A!QRH;xS!Ng8JZi8wnR#D{A^{d#u%%V+|u{eG|-{RFw*Q0h42=MhHd%XpUT z9g$`VP76t|$v^IqYZpy>0jmMD{wsb?Osr%KzD6e~4{W4f%iYruvCp{p7_1?4@5&#- z-uUikDqAkK_T8>jBdEHk?z_=ygE7c!MP7R>6-rDP3o|1JK_lu1rx_uB6^-KLGCcQ) z3iVHX)pb^%E3stYvXyl^A@6uNXbb*Np`c{cXERMjj~u)FNIl z=kyQ5m)l4qTjY!a%adnpVavpK4Pzv*RI;FevBP{(%g$(UKZX~y1JVA2{sKWH3g7#) z^*DNn%m-=-hU4rw->WItW~Lk1&wFB$l?1zra0Tnp1L$Kk#rs)Q*lL@zC7PsvD;W zAyLvSqwI7kp$NVC&R84Z>Z;P*gP-RO6*SNssZ-cKZU=m~1D$JN_-mb2zP%fm(RaLs z@Pbu(0vIdkq~(`XqMBsBUG`{VK3^dNo6#+4n)u+jm>)J>8IffbPL+2iw6uRQk7lcb z6>nve3JKt!=DgMO!Q}0b%M;1#y3Hp0fSY+)1uu+^s)eC8k_2T#tu=!Oi?ybP?i(#o z-mS`N5(*_nU*yd$&p#a4^~E?e%|}DYK7AN++Q6nM<@nsr6M%hL`#>@ed<5)2l@YyX zchD+;D&wxQno+nnCms7Gsm7j_W_JF&Oy@B$cUsRB9J&|4LRKjr1t=caeZLDQL}GzT4GRKKeVHpApoPjRb~guKQ}Ie8HMVgAE6>5|UT zl4CULLGC~k)`6W4P8(Fxc*u0T7ck{4wVIE=aT#~esAx!(+|^QxFk$23vIF_kR>kpC z#2BA9aW~^cHB0~iGa`YD0lAl@)8W*t(ps%Ja)Jpao>FXG_XiVFARPr$3K*4T!&zk( zW}iB4Uxyi44slQ_3gwt@-Gpkmzc$kT6kf6w;ws8=^5(og!C6&N4UMHmBUrqyM@8?= z50sP>!JY8hf0D{X6A--UbqWOA=bP8G>MZ^GW+ZoMEgy1wDi!$~i{s(RIt$QJ<00al zu_y!6NFsDF|0vsiygyvLY3pUinbANGQSgf%oPs+>hRY2LxSD9S5X@McMP1uUyxOY+ zEg`mE>D*czRv@=4!qazfTOV(Fp+rov@8PasyvPfb5L!LG0zbOevJH#j!ZDPyevb#U4*Z zKvyZ1)$MGokYAIgLcMBp%DR%W>m-YKY{_1&j$zzrvcOCbagCY&G676SEkL^Q4N=(e64sPK`Zj7dT~F#RmUl zdyv}57H@ggQ|&V(0I^Vn>Wms#dp0>?V?}C}U$*jLXUT2I4uNTZQx@;m<$n{P$S?(> z*(C4Hzd<2s8v0s{SFM5%1~Z;3^q0;vclthEwpJfPxk`WfIEqPRvXji}9gZzq2>eMN z_2hvJ6JIdHg5aq;7qoK|uf3dven%`*Os*XS9nQZbpGOx=f0LBbR%Y;)aR(?3U=1$p zKEY`ZN9C3VyqM}{&p-LFmhMA-IIzZ`-1i08Px zl*&~WuOKHy4V;&z<#NV88X!gfZ@L9UkO&Z8(kKn2INi=e)E@`1fW$TgWydO7=nnL^ z3Z6{DuHNRPqp>Sq7U6-5N?dag+DLA6Hvf|x21$`f%$Vu zTu$IBQ&fk_AHL7Cv27lK+=e>X9#?<$qH=`GEtaWeRJV<07+)Z*Pl;1~Ok%Tn*+~6w zezMW@kuPXxhs6Agiq-g8%_qV`Nu(7~c|khiK15v|NB4$n%hHX3ntBGV!)5eMGCLAA zR}6dQ`eRZCwSuzJRYJbJ)4B4VW)`{ddg{v ziG_EfV4%U9P`gY^vJNgNCU^Rn{vWE+NihbUCRo*#v1Il4*9A>n#}yBN4)&ByDGj{F z-7baB#P*FSrZtLWcO1F-4B}}Q0r8A$Z@Bf}mQiXuxG@_do-IHY$uoeR2f7S*#ACpM zqQ?&iP84qx?qNo~B41oy(s*6&25tsolPxheQ@KifJfUJ!7AW6SdMe@S{W#z5Q}423 zZv$VPdxn%Xk6_YvZA-Mf?$JkG>=;X@KS>RPD8dRwb*ZGe^$6eZ!X|K(599-H2)9SE zZ45yi#lT`;QuZ2^!)Y5?(ZQ)T##-0nC_^+9KK40RnF6u~C(=k^?QIRxEr3+Hdw#FGI7pH5kKVvo%X23zS-OW$~Ac3zu zxzs0t%WQi7GCs?9E0n%qb)9f^!TA3I{2~rjmm8gEy!N1}NWx%cnc(=kfyO{B1GnRI z6Kw!R#HHf_5SY2&<5PB$8%wmVrj);Tt1f`Xo$vm@YJy$^FGqs&#Hq8Krxgc zf&Y(Ad>H&=#M|V3X6xk7k0HBgv{~5uKDFB7yu8A-L&`Ybzx-Y8(oZp1$~c;HLhtBM zX$XC+$v8$k7dl;B#j*;@v~@Ux0+)Ow$KfgRj^534`BC5!;KlS%aF@<&l~$LXXO2C@ zV?nR?I3b^_adSlb0@TmslX0a5^xnZ9R&PwL{z0LkD7%0P0005FGm+qv zncS3>4hn)I7VViG$iJyw)9_ry4V5zN+CZSLPnj~RU zIp9ipW0_>^YyQc9;(G7RCYPtuvwhY2be zcyOi&e+K%>-$By`;0y;k1bT#)vO-fi$i9W`FgY>iyyYdfbR0~UIQ)k|T|wSD)%`lt zspJ6jo$N=zMift^$tLaW2N{Ea4hYdQZGoD#Ax*CAstVPza$sO`9N!oAWMAC<=>vaF zZ{3T|$^r~ujt64PDh+!A_eEVv`N3Qsn-2E66VGvdPD;CuXyhNdWi}zgG`C9#e@e|z zjZzLf0B_!tW7(V8AxMF$Y#-d5Tc&y*Sv{bj{ttO7x@Rxc@?Ui;Qnn5yLX*T*U41;( zp8YO??H){zb=t&Fs^U?V`t~i-G93P;+4dSP?|x?y3C?E@^PKN$t8&Rc!B@Y zyvsXK9jIBm0iufFx6dBgl98iEIewe#kkiyD;24&P8Ml8I<~FPk%pcA^&Qrq}V-ICO zVYVhXT3I=f7^TfCnQahl5bg#&41}qPz}xNR7I}z<%Q{h~j%iaUrE6HLGxV49;q;MM zgx=;n>GR*(5s2VI?%nq!99{aC>TA6&r8+xvNNCOijQzhZ;XVyUdKjj}u5E+F8O)&@t}ac&g!q z$Q#{CyJ-rq2s5V9%c;dr1Nrb102U0qLt`!c3eN@*wf%BrZ3i^uEEZduDR~9ny_Mvo zP>Jytb;5a$b1Qwn*&TLHd#35WY)J3D*+f@Pvy%){cW;ssnRw%@_LNradO5cAhVVr7 z6;TJ#I>VQVQ*WX-D)A$zQOBXblD=U zj!bw4?Ase+GBY^UsD6srZm2Uk?@un4y+3uw0z7RlFpM`6THE*9%6B_@yF`#&|L20@ zr(4L7i61cExNiwoA4&uQ7@#*oLafU?0u%||Dgyd@RG`0a&AbWL$rEk(it}Q6(nncg z`pM)_7iMll#^;JH*DIW7wK}T_J*_|L@2Mr`i8ZTIF1NuE7QN(j(T)iGT4_Ewhq+G6 zEx8+y(JXs>PQ}KraE;CsPTm$b!+FwWR5aWDu3p8r_4$t3&+92WyBEp6E{2Ys>DfNDSqlw?&s>;@ z3q~f<%`7YmY_!-r+}P@zhX`i{;h%(M&`cVs9J}D7vM5)duq2Pl(=PYSR=N4yxw{EV zjy>n;A9*2MIPXS;Zmid+(JF?&e#)Htv)TPn)=AvjY7c>ZY+uA^6I<8Y*UfbOfRL-+ zt|L?D0d#xiUb%GnarB%ZL+w2&vzjL#veN*rXF}UIQyxpyU7fTRZViFE<@I-Nlo}-4 ziML0Zlu@~)AXIHADYk(V?!f_-0-|_?!?8bY4N4WqTdO|`kGqcPSNPbOF46ba?1kud zx2?m#<4;5Ft$mNd-ox-C7VbICDNs-k*iDVUaG2L!;Ohn(8OPP34R(+3tU`VF3s<>u zqNdJBBpgvWa0y1e1rLxE=7J$io1FgakZ$r|!&IkLCh#ws3d!2hkAcVhpKUZO4glXRdf1M3vv0Y&SKFrE6 z@^@}T8e}vo3;2RT z>d%lUk#V1d-Q<&j$aKx&9+1x1?QOhHx73A z4XPznHhvuEUrOPh!F+XvFDBH{!f{eZ6(Pl@rg~n)^+nBX&Ep}0uw*HEvicB6WL1oj z38`Wo_z7@FcqB66{jZkX&s+@3xOOoC&NeycxG;TgeTUg75XQX-Qd<{eUd|}CXXxkr zk|~t4Qmox?V6(-^`El%ofUrKqdr9h|^L?J#2{3+#$Fu52`rJ)CtQVK+E`}Kk>|ArP2X}VEzTp5K0-RGIF(_@_-7IC z65V3c_M>T+L6h1687G1%Nl0!Gk0z#RV} z$pH3rF7|e13LB_v7d*#OngqPM1?9No!z3>*4L&b0&sY~aIwM{Ilm#gqWgiRd2b4yk zzOE{HGJoEpGOe6$NX3J=YH9=jO{|n4^6ce_uPAKXkM_WM9QMEtOL6)qTj1uzUWOF@(aT7YcjI2_$L+b#svI)K5aR&{(3?fl&@e8 zkC6CQ5!Z5JfveM~YHPh~JyKKu^DnSOf&aU?34MCo_T1)I?lI;JACCE4v-kq>Q_&Nw zQb<(&zF{D=E!DuDGdf#rH?`Npy#oP6rsK~wasCCA zpK28{hpv=E&mcD{0osg;?FX5SlR8z4UQa`QN}~Zvr9rH6XB-$5V`o` zw$3sEbW5upfsS30kpmR&uBSwcHQe!7=w$DQCXD6!os={$zESi{oA5}@9SYp)^N%ro z>mM^Q?;nAO3dvYB6}c|0KrZqtRXTR^|0DIqN#>@n`)hrENd)OxGXuQU-LEiUfzJATw~ z^R(9=z@eRDJl(|zE*4u5hxW-|cAg9Mc4n}>8_@?>1j90gSes3&Y0|4Jr(`(WsQi=v z5Cc8Iwnp^CZ2AUN5d=mf6nnxfU|!H7XkykmkrY=Cg7hY0u@aD}`$Rze=7rma1aZFH z?A<^BQyddVv#(?M@9~IV$Ndf^!%%%3DJ1yp(?8c|9e7p6xgK%s6{&P^bE}XHvKLZn z3hjW)hIs`0fd`Cfp3JN;3Fp6J5eL*td}{fNqHYpkpvxvBzi?o)`gwU8aeoaAIXA=T zNbOUhtur>5IteC)@x6&VZ3*jr6r{gh?L&!VQhY}{p|*rB8*}`YDwuPqZ$t5_v}EwF zb$Wh-K9@zwev10=&IqM-qvRt*Up|S$q|SoJ6i;7X7V)6j$DhEX9@Jk+>U6HSgB)QS;XYEPeJYy7$DCcS#%TC)=B@ z(w7vcw3ex(+?w1Ul9xC53%xB1>Xrm4eVH=4_c`cj_O;i-+mnK%#pmq0m;C zOIoa#q)l}zuMvu9pRD)AP3bk$?n+}>u5U7#E_PA}F?ZOfwKWQS@F(n+;i7}w&l7Oc z;Nr&eFQPzDhs@~F6aip7?l)r&(qOb8&=skIV> zqDJU8xNQZNs1$IcVQ*z2Ilvdw0^l-tde=Hq6X!S}IFba`w=an?wpwbwNY>(8ST|F} zhC!z9MI^cwQh$szeQh0VuZ`yxfxbrKf?c5C_Ay4^r31#Qgi3qgmjk#W&@^cw`Q?t9 z2`_o)2@?jPbzkH_B6MsG9X}`dvGlF=W70?&Kn;JZ_>1+8gBCX33M)!LqI9d{Jy4Yi z6KKS#I<4%)s!bsJFam4l0R?5(g4e$EuP+ z+SiZrs%G7QZ0{knP4nM0Mv0+#Lx~U9?nxIsq~kl;$b#oavIKjbiG~L+kn&y2in&0C zaF4YEKo$~t@B1yovZ*GUnw7qs|1^!)#6!;}7sB8J!U}CHI^KVOx*4`)>Zsy`_B~@^ z301+RoQycOEWJthwg;$Z>`^S-|pk!_WT7$1|&6#Ve;0#($(=KMx+Tq0fs+`wCJLE%Ou6?%% zucIdj<|jPce)C%Byr^8?=Ou>GDx2@gZR*{7YyjN$#w5i1#Ut{Fou8)fHdYAIV* zt|1PK`v#uga~OG~(gf=@9vaVkgbz;?8i2pU;9VrYB$tGg33?L_vMkw9lRw|vfXJw+ zs^z%~m`utmfmROC^~n5^Z*zhI`#a^4aSF~5z9^?F#UdL$;t{#Oe43Bv>C3E?B!r;e z*_xX0K0Q7(*YeIjwU54vPp4ATc34sd3# zlo_Fh-t`2`-?Cy)5v?qb^KFD;9NvIS3_$Q?j6xaVG=7n#K(M>;Nkvj~JMP5zUm5%U z%e`IAB$u{6R#A+Empx0JJqKt6b;_pyJQ);5gFvav@=l!q1MVVGbEm^-b0(*ZcZNCj z27FO8xD=Ki4pf=Gn79=@C(@KOrcod%n|||96ea_a;f_8qA$v`H6|aa(JNy791y}S5 zJBkh`;Yq21v80kcKa?HqnSLnlhm8b!0%TE_)_FShQbp>q`3ee%`j$By=i{ zP4|f~lA0p1#>)KxJVy*K9{?7uTKkk`xg|B=mSHqcy5ZuWSI{1q)sHr}v)bQ$VSJYS zkS)&1aKW5*l%@d?Wp{am^Ns9o%*U5jR(N{)5}cH?4ge^i!eX#qTtuqnUt^Owq?xET ztO)A89<-p&j?wBK3TE@dk;YBBb=w}aGmL~?v!WuiKYxsZDAPA`Y47mt0%Whlt@VR` zT|-d=D_zILpRA?!jysa-Tq>t-?O!XyN$6YC3`(aAYna9jvWVA$anHq`@X$w;f9-;Z7?^Kxp{+O=*DEPc}* zK9&M2ft!-R>HVbmN zt1wdN_)f4fVg|Y+xjPWTVqKf;5Sd_{3Z4ANX^&H^t#y5IeNGplY2h6+3x_9Vy?W+s zA&8yEGDi#RmxOjHB23nsv^A9C>E_@avev!%op7L4^|vPxhS4<#(I3lvV7U)moQ#8*Jxv-1*deaxiVX6mn1UYs*XqUW)R|Ly+^IJ4nrD5axCF7D8a7z;1I; z+?hHaPW;$*X%bECaAzpyEh}x?rU-#$Y=U=!pBGdx=;2nKA zrI{k)8@&gaH~aM%&)b@pES~4?sgl~mfl5^yNCSQKJ;dlUX7qXe0-ZL1_gVf=7c3gXC-z54vDMd}O z2X%v?NRw6XqlhzI1zO7Y9i@xGOSj@o2wbs_1NV+^^RfXu&EJeo?*4@s6+BkvOuPUe z{o%bs*5LBYU!qPc{a4T8Ce0pWiT^>-PL#GGM68p+3bfzB?P$0Kmw$HzIj2! zrY2MOe5*CvgKk;(K<>Y1L!)lfFH>XK~&)9I4UqGfSKD;(~{zL!K_KNPP=J z6idL9A*?!cz5f;EHuX&?fP*?6GO#uOwv}0LbxVifobAU_G)0wtW6pH2C_7pFitVQ!EAF#_P!Aq>htVy!&z%e+=GUY!x%N`PdZbxeMNk-JfTaNPK-(N9)Rmj&Nf| zu}C=j1e@~s6L=dERlNn9#UTmcD36-^T+rB4Yg!U$XTiAGI|;P1rJMe zNVN2`k4A*saTXGHW=o$?kkGY&xbk0Cr#=J)E(sI7I~>7XZq(bMN#6PvRae999qqW? zeGi5SxSyhx9R{@5sy`TSn6NT&nOw~@f9U2;=_&hQm@AETo(Q!^7Fu&HMoVDpHJ+ml z%@jM-VPIijuLWlSrGyf?nQFQ})E64QsD#6Hd%~G@#~BL4@z>ut75hRFjNW%8V8nP+ zEA<5(Xl^lR(53K0-&PE&<`S;&(D~&0h1T~DaucI#3QukJx1h~5D}%S~tduC$MbF+C zpX&4Q2{ehMqx~=a4R|K+)|uZ2XzHYv&0~rv%#%BN%-*?y7kxDs*DDQL^pYUNZ(lf_ ztwnsR$;N>Q*J?Ga9M-c_rau*Zmrh+Apjt=5>yZUKUbOMeeHxfBRyLwY?gbu8mJHFa zWa+b?OrJFiG$jw&x$As#v!w1m$p2}xJ!(-y2^y5$)L6nO*&B*C(Ifc%Y*S3n8q$~v zp`1B|Jq8Cm3+Y~rNOY!<5jS7;YlFbXLXt)im(nq~ zWqP<2WMN{6$WEW4OAxAldR&?i(P1e(Gr|!naPj+*(R;W>x9Fq&#R}0-80dH8B%#sm z+mHbsSK^I}8yAOm1P}La5s#>g#s5tKMJZ7TV|oUmNq?fcpjb8V{$uGdRsf{SOaNX&loSq) z+VM>@(aeo473jZ6ueKTrX#&457yAf#o|+$`oJpbN-5`!(KeL;Ha@+FEQD#mZ*$M>^ zqa^~J&1#R04qeKiE;@;fnI`nlTMF8%E!r}Urol&5pN-LT>~5XZlD3$;)?OcbEzg)ukTRv$qA6qOvsSJUS(7I| zK4RRd@$9m)I&!A*obS^6jwd^PDJCrglm6S3BFvS^-j`A} z%8*x{U+l_dsk`WfLuW6G^nQz8Pr)`a@RVhlETV59zHclQNJ1Tezyq0DC!*|;Wq5T+ zw0fxhDT30y5vb~Zzcu@#rXZf51zbqu6Af7IKEJS8ScZ-uxCem~0Ug7wJZ5VH!Q0=W zb(UcXaBm1-tx|yV9hi#aT3%cIF7<+s_ zf~d}x{$pSV{8~opT;fy>o2drZBhKK}8kNm#PiC5XL-MgwN?ua;F9TFDY-x<>gXsb= zuwjn*R?)}ZB>k*z-GW}2-VL}^e%T8K-J|z_@GOTtD=6F9HEbY7CaOA?{Ic5oHGJ!; zo&x5K@|OU^rYAY^O=i>>7#6t>qh3`|Fz;P)W@iN|M~Tdke0gd5QV#3uL2)O|q=QO- zfZ?xEhwG$SKGP^6w|eqUGhD!|bu-Irv|l{XVPhP6QX^DusD}w|wXU)%!YtiyeV=)~ zbXaWsceeM3iFEAM%^_lurge=0)I3iLq5Ps^_f-csMb&qi09!%H#_^qNj>U?}76h&M=L zr#*sI8kqT>l<66}w*ciM(Wo3gmOYTr&f8@{ipV%MNJl@lUwhH#v6~I z-8)L6n{c+Iv%EgEts&zYdNCEs+_8#&lG1ru^cXCH;>S12t43xL;kk^MuWcg2qY*GP z&SGUNMP#PC;3F1p4igrtl<6sK13Sl!Tx5u7ahW}Ydf=<&Pd9zz6W|ysE8^(K!|y#n z$Vj1Bs_&y{ZwwnbWD2Ig?kp2Kly`iPj8)->BKRad`cFmUEJ?pN-y8stvZzZ5(B9<; z`f*@HK}Nf;mzCtDmfGq#&NZTY7mCiMm+G}240c3j&S>qRpf&C@sC}x0yh_i_&bB@d zF{RY4*8i=~DGq8ht>QvcQ^jYQ^EVAS8<R@2Vv9!m@ z%UKBYB3jOYUqnRw+`!(vE1Bv?RuO0ixF%p(U zzIe}17ac|9lrW{Gmo7i8we|&8lq+`h38961=7w=jVz8C#Ic;}3Yy#l2l*}KvPclS? z@O3SLi~z7$S!=m|n`>dmw*ucb^tx?WfU4XG63-REDQnw8dAkUG@1MrSI5jC;b$F-a=f>uNOeSRhWhNhJ199nvzr7C#mmpPIJ76q6bG}>m0o05r{iDlj5WO#(gg))_uk1ti>ggZa1&L z!nSE*P}0haz_L!GQm1{#^{ra7l7QhE2g>Ug#AWam1Vlry9^Y)p#&8-)tb9nhPMxSb zD`IMqujytSP6O#!c&a;JCN8 zhZ!hrW{ogJq{?NXeeSj0CrPoFE(y|=p5P{a1g%cZZ@(D86eMp*>}9vA@gP?fUKH5dcPxy1!xxKR>!?sE&j}0G3b`K=K&qdSw#55`;33)n8*WBR$q7d zOz^J_TGtNEsHiGFfL&C-x88gtC)w0=Y-dpquJKrDmzO`+9406Qa))bJ2soaVIS-QG z=iKS?vx&5jV!v_@#sQ{Sx};g>rXDW9gA~erH#`95TPa{5G55?vydXCEZXTVWRFr$lOCJFn+3jcy3hW=8mUCZ&QBRqD1<*f z#O!6AuQ5m|KJsGv=4al_{_~uOb+WAV9gaWHwu064w?e>BFqsyepoDT|EB3LMvHG!BprH>y zl2jGDbgG?mNPsmbmPizwv;4D~pmk2B3s1wGo$1ak*^hBgi8QV;-36qgl$m&Xx$}Ba zT9`YxS~^IYnb|-d`YUH9I1mOvBIj1>jVntcR_s$+Nbc{rGY?J?^rZRjkJ9i!R0T(M zo>@E{uL>EA8^u>-PcntN+=P%)f{NHp_Eb{^S0rL&DX%+&fvYg*Lt+z+erz+-CIWDV z`Oxjxx^8-)WuLDXjuO#{*zvatw&64Kd3~>UYSAXeoji1!1=9cg6xuUg%e|N5eZlzd z&|0z-1<86c+;2HOhRS{hNJ%FJXjXtI1CE&3L$xA~aVnmmVl@dgBXV8rB$+$!%I%s> z{&m7Xq(gNBhgtdgn6yU~m-FTJE=FQ{sbL;fb{0{IK(EeE8G_aQmTXvr>kXb-tT$#g z4ScE5A(!+Jjs-K+yn$qeE=*eGTOJ1v3YSuHY0 z5>L}1b-sG}_+MS0u9n-wjm*c3N^BJlJPMU6=YuMW(2*Dw>m9-fyQYB6J%St(>?HVD zQu(`5y$r4cYI}(P3-R_PL0Jn-PO0R$X{QbMg0074muB$C!FyxPcxHi#fd|C9W!Wmf zdxp=heHAeN%_~unQ4$-V3=9V1LwH_ID%1)5m0kmM`KuX-#YtpRCn1V)CHar_ZD*AT zMbIOde9q@}WUEEn>3{Sc6Sf@6#EbsTPpEv!o{A)&*ntXrEFspqk}4V&=Ua6~HsSwXgj zkCMquZQb9pC0gK)x}rd(E-R}_0d>@19r6}%dR?q{;rR*TWCW_j zJhV&-rmmak=Vbos6w?z~nMBw89>0W*7YI`ErsI=2hRDI0kv&>>{)wZm7-IaKA^f40 z0m^m-IF!$pCzzv3IN242&rlr2IRr@VEWNd# zhD)bs`u>)Dl1$U~Vv1&Vol2exv3Hk!c?a5M zOIr;z!%B4a&a~gCJN5dOE+%P(pjpB49fG8V(a+><1*bZ}7e-*li2J=XtPk`th?%Ra ztv<3uyPAj-p@%T^the`iHi_fStiG;yNB_9cLAp!^D^>qA(nFT(wy|(m;99P|mE&@g za+Fgs?FHIx$Hfy?R&y#;?!hzg(aDz+VSsTBH=EWUt!`@y`p*kNBvtkmyVw4HNxrt( zR3~j6aaiBg3`f_m$(DjMvm+c%XwZm!s;)CQbjce&1ww0I(Yx3svv4aZ834awQUzGM z^}27XK1s2e*|pA&Lzw!Ciz$@PG;aRg6{S!(E?T6PLYDZd{PP<;Ze;29v(VcXsqYvA z#;9QiCphC&s@0vFl#$g$qk1j0_FWMfH}0rI>KnpGPbe|SXjIwqO^~))JK=-M4`_z; zGZ8^inoR;CZup$ZiU5ge)hBef49zaRaJdUzv^PTZFTi^)H08Fk*F_2@XDF6WWF*Oq zdK}V~59weF#)oQ8`CFsI@R$Sl0#cF~0wLWeXpP-m&61ssl(>GBW8|kcL0{)T^QaD-%$_ z2)r{n-NURL$y=nGCXo9_u&0LHy5aj$TR&O=7*m|zH$E?G;Mm8e1-f47v`Kx>b}f!h zoJmU};fkmX&?#AZKTCB&mtSd!+QR=VC8FdAmz?(1~`J2wpWSblmS18_066(~{qG zy2v4mKn&YMCfcWDd|bpQPYiWc5t2l$l(8 z;ov36iD5k;Tppmkt;3DbM>N<7><5@A8jX|RMPGcC*l+GteyIb_1uged8< z)!%s63Nr7fT<}qE8*V^#No>DxZ=X9!zJq8&#vcVm2dC?{!|(S^dnFg)^&e4Rl9enL zxbw*I{|(w^^LJF1WGM^xO(o~V=p!X+2}6d+9Z$DY)jyT|k1eRNi;|T!c!Vs07Z)tJ zmL756F;r)`r6{Tj4?(*{NtB0xFKU&woS+o(tk<=_>RW&Rx~IsBYo>_T90pd*4XUt@ z<#CWnDt28ir(}xWfxBNQXN>TZMht>afU|T7H*mQjOOP)GPJC&q)#wL6+??JS|J}vj zb@x=hb&*L-SX z`5jLvt9**^JH@pqmNTz|>WM1b{S7GvLoru4)J>8OIS_VAa7RBBC`yI%WFQ&HfE;Kw zcjA)><|dKfoX=QC*h#kGc!H|tq*v9U>YIbSoPz?>A}#P{6y(vf<(O~i-ubgoidf`* z!&5Z#{IOQHrjTfEdVAni+t4t2n z5RGE}EPo6^Z10#RYaPA>y#p91*tQ2nXt2t^Telp}xpWD*wHq0lhpWCBU(zV$Z=n^? z5RnhV6ucW2GGtUn&qc(b1*(4nGlSp_q&zaPSAt><6$sfjo$NX?!FCP&y*VU&G>4pP zcmr}qhd?blk|5AzPtk#kKG<6!aqZm9sdS=(wk0}qo*f?>5}v<N zyG=`H!U#4*z_d?Ys>)M9L&0Q$2RMg7ByNj#kD4=yh}n4tM#bgZvNqFZevHj)eC8)W zhDdf0-lA{B`SNb%cQ&1Y6S6t~dWh=!b!*stqU{Iyh$w3rRpBXX%*InE!#)b@ zt*i8vWmD$lHqCZR%Q3Gm+prhJMws^Z90vAQ*x!Wnd+k7%3hg`A&N=D_H@DYtmT;|xdDue@vP|CEhK_C`H$BPw#P zWst(+GLh6*Sa%+GF<;D{%LiuT;;!t>dh_dWO>7}+VCO5)t2Gq-MveWAiouFIbyibfj>h&zW|UcgowWE!LmUu<;DxB7 z@2mzVl316g&nr_92$nMZegS}IQVetRTgg6Su}(!p?FBN%)In~J@ccJN*^hZ+QJKHL zW?pSjC_o~Cvm;0~>)pDRhoCiO>S*9n)mVnode=O&I?k&bsq{XOq(_nQbT{@?ugUu`h!+z`ywV_S8rgUT?2CYex&k&wg))=jLxR!;gSi_0zjWYi~M#*qzptZ;%BQMPKx*->;e$ZV$ zI0=AyNCS!XwU2vDVWJrQmMNcb!y#yir~)y7W(Qq8fw-i>Xgl(=e$SZQcdTq4o$NX# zgQWZtEQojXOq81b!?oi`$ppcOLko+*N;AOpV)pfd4Lk(6-sDHH8VhB<5>+>39)fJ+ zMnughqTO;3VK*%q+<{1=J)MTBv<%rSUPM@qB=N!!1O*MYt{x1KK>EJnc?{{GvT(X! z+i4G_hnRzMZ>=3~_B*OK1A*^ix~~Fa*K=b(Yvo3PssW&se!cWU+kF*8;YO`KQ^v9~ zl%^7W`StmqMxg)wCHE+jC3ETdFjvl8Jh;gDQZD`b zrj_JM8VqN$dA>lV;fK@CHLM5U@%oD_H$U_%78C(rqi5z(p!*ZqaBL;Y8bE?G>oiieAZ+o)cf)49p+I=75^n{6AV(-ut< zY>4F=?;HP&_v8;e-%PI-pg&6enRjhAoI@ zb#)AZwyGn`^=bhR#Im;EIsO;LqM6lVxrPYcx(2!f&eW#pAk(^$5FiAPoQ77lo>jgY z2(*cJaz`u0*#M_t2*XYq^txVi-eS7>LJ?J?t!c4EI>@)!rW)dT4j|(P&$*H379d3` zhvj!^>2Bq$tot-dUMNUR(ZVvX+q3l8Jw8NoXBrDv!zTQ~(0mi8ix@=;m-+$Yt>)W6 zgRz>i(FMV$hSMh$NQ+-@$BZM5gr=wZQLh|k*UXjCD9SN{Te($XD2y-ja!j(SR(hWk^MN!A zD(6q0s6t>$N96ojz~j>Rqod-SAngmIZ;kIcY9Ykv=EHPlwO9ks2R!isL+PJ%2h(T3 zO@=03Q5-vldRcz*AK8D@%6>Md3@dNBrT?^9-ienpevpWt`%W&q#tT z?Myoe!mnV?|FsR@Fr72#*_iq66y}3xkC4pfu)=Bfwr`YgF1j8-v9o+T7Bx<2r17jx z;RZ_zlq|MRPlVg#5ERJ%f+Ep+?{@fX#3ee?mp9>v5CqtRzn>d9VY==j*--`ETv7sX zmiJacb5>1PEwX8Ne7sSQg>O!4s+9|@pa2{z-^UqB5b|hL@%oGe7r}eEdWo7WO%J{G zoG}OuK|!L$&u-1NAK)XQqsM4_=@wE?8Fl%|g_^lpvp#TQvp5dG96OQ1rSBOI^J-D* zB5r;Vskntk$ZWd!hhyvfkQL|X*B|GJl2~l%C1dt?r2V9+%g+=3n81tWk}2fM&=!D| z%lB}R{E)j`KEh1}w%8MO2!DFXOR@*ey=*h5=QS;Z>Z#Wsikx<>O-1Jp>hNqjp1yG) z=NRW!VB0NvZJA<5E|LJrz?xcB{N~B$up)+}I=#;g9n!h}Ho0}WutGoxmy{?G0nOQD z0lP6s5vsfxdN_*7?d?j<7Z(1#sPB@Nmq@dsJB<@84|T8=r~g@DYT;*;!tT}a*T>3{ zta}4a%Z2fKy^X~m$y2|3Qtjm!(pVbg+H$EjCIEkzGaobnG}dq3AD?&>+jA|H_938wi5BJVy7ISzE#M`J0?@ zEzQGbWLAh2EFO^8Ax+|OPw$6+&%x);3@Mxvs}D$l>E|L7{z)7B*Qzp?=&89yw~mE-3$4J69}L&3xq!XH@OitjJzbbB zRZ2f!SL22I4R3RTDDN$JN?W$q73UR~q)+lQWY7-4nQyV$F^pTBH1KB6byM)dCI($s z!`jtD)$5Ad)8@)f*squM#$haftdDP#uwL@x=+BQMiHNYwWCP3H;dt0t=qDDdxSaElu+kI zyd;AwuKa10V6=pMjgap&bkqrR6=UT&R8X9$)V2<~jWO~bqf*7&)7xt9lzyUWA<0)0 zI~&`fuYfPgRMjvhPfTwH^Vrvy29iX*`qLzv-Ij=#x)^2vJn{8@maVP zOciRB_hp)sWU55BQ*tf)($(H%?mu`ppIsF0^jZP@ii=+)G=5XdSm z9f9>sZFAfvO)wW^V25#*c_Z!>%H$J@rgRz?jS(oQu#Dn%-VS$^9D=yJpmz1lO=w*n z5JmVj1}o7_o*~w-?eOcpBf7E6ZR(340rjN!BB|e~ zJ%V$?W{x^^!K9VEtp)Th8C1;kg)?d-1#R)+%jP}3=nx-%nJ!P_fjCbh1_&ISH&9&{ zH5B}0Xdpy$XUKd>8bPn{j3=K8=Y8hNN(J57P3YP8J?tPyW>PtH^qcnGj%a1rpR(!_ zgP!(TTpiDz4i`hdlq=B{O#M+Dn>*?2Nvv`vlI;+k*)Y^3GE#!^EG3e$+W3x1%>N&Q+{+Wb=+3 ztMl=V0YP>FLn`<>VMKoU|g?AoZF<*C-un?Z9oIydG!rcZj zUHDVhvG1k&oT#zwEm3Fc?8!&YkcALm2Z0O4aw1pH0=N{`$||Rr$AHtb!X8%|l%%k0 z&c?*F@)1$)N^x_Am;(3yA4s4GBplC(lS2(pnn;A7UzHtqy&d%$<>0AHe+gsGJc;ds zT1L8hcK(%bi$y&*os~mE0;w9;$&X&1XP?9pn1avJ>chQAE`AN970lF%Xn36~cb;md z^yj;-X&SZZ7gJ2|)?2}n3XjKulEC6i2<#V9KC70MtPG`D0k^=Uic_o^Wy>~nu zv!ggp$=To2&R^z~I6~NUv;q=?yu|+N;ZI-^UK8Jhey-GIC4!h+P2`T)wk7E>;0D@)$Tz?uS=HX`o_|3^R|l@-$z+yZs)imzJ&XN5>`GG=BH$ogI*7zlARaIWGtT_o;ZZgu@vp-Ftf?!=@ZSbe{ zSkmH0N*rtD84oaRHWKi_rKun6Bn${3b}|e1x90Lbu*%Do2X_T2N<2n~_0LUL;#O zl@Aqe@bvvehgpaLtwltkAi|Na3Sc}>COC+ZgqC$YxtuZl;2+0dD#o5WK~jK-t~!mFL(=d@yl@EzAz?_E0qoOh z0k}0s$_JV?>>aeI5cgf0ihFeC1de5N`%eO_B(^V6Yv7T+~%z7@>_E!%GH1ohZ)5eq^bebwa(`SLg%dOPRA4IV{_* z$v&1!)Xf-|0BYOEp__0m3BW1*UxmC^AFXt7=dL;XbKY_54KBOJfr6;TX?LiN^^L@n z^N%ydCq%fk@$J`BAxX~8Z>@zCgu?6$a$wtFmuvlwSbX!hPnR4z1{ z3SV?oYEfD!Q(DA%Dx9v2e`0)evD0#;LkP}$yXBnn7Y71Pd^MCRsmzbUA^1eX1RH93 zaD4nl@465vCfl|8Wy>4{{~U%@Oc30KHO8(w)y>qe?KIJT|5zh*0P?m61@ex-u6m-+ zl)#)^9-k)T(gwkvx*Bm!d`OEs?gqc%2?h1)LiNd#S+6V9g4A?zYMhNZVxq~>*nq4H z@g1-_p8aK_zXR@t`4z;g&Au!CZLLoOG>wq;7bld@wdw?=2SSN`=(d^Ze1h$KxS zphD}%Xf)B@(+^!L{PCHr+(B-G-OJ7TRD8|e$)eq`p!0k13!Uts#0X0(7|K zz`My^>l|$ksEV0Q)q9vV&jsZZB6|&PNsE`sYGDP$_(yseyQs`U!YN!E@g!q|A{f!$44*3>XiMP2m)&M zUlF3v#tS{5w@9BD}o=F2TZ5H;UN%*6^iJ57biLuqS5 zMcCC^Pv&g@2f4?ZiPpFshX02;rEulI8Wh-dedwk%cDgmY=CxV=hTB&zI(G@Ah~}8%{bCS|Cvlzq?1C&fCm_pF|MCdm9*gm zuD3i5SMX@)-qdS?yNU+!Cy`;sD08!%)+%e+SG*8zQ@S-Te-?;cMinRugDBgKves&j z#Ok!0oWM=Shq(*ue0o$&&cPeY4#fryNhe>feT#Z9tUYl*i4fRISs58~TX@6objWJR z)x<74DrBoEa*wSUG^2wWx&adOa(xphMu!AtKj}VR)&cV zO9u{dB)|S4yYMy6f-ZlVxgF8Z4Q|A*e&x6}R$e>0XpaTj2U=x0?tmk84nERG(t1z| ziR|kL!PPki+D;D@2!Kh{ObW}5GHiy))*pBQptPEPWUt8|6m0lkz^oYa!bpmxD)WCY z$yjw_Q$HMR+2_l`lK<75U;_~Twc3JtDdh(miBtSK_2y1te2sc(JFy`9i)ysrF$|Fk zPyr4?cEx#ru^ImYrD?WsC=}goqb^bY*gFWQYCicJOf0rP2>`_Sj_<(C=#{rSMe)*8 zCuI(&Kw`aesNguxNq*?p=0i$9z*S4{+42ar6nD+xVhIO~0O0hBZ=w@jC`<({uVB04 zgFB~m;f`z;ME%U;3wCssWk9A%g&OFjB`7SQZum$4-`-vk>@B*I_|Gr ziMM3A+}SeQV!~$1G~(2XZsd zEl&zAE^Nh#?Hv~92ZI;HNDpMp_X@e)WS?`ANg$1X`D0NG}4SIc&@lcah8sKwD70R=M?8yB%1vC<^cSJz`~ zAapArvh7xlyFnQq^I&m0j)|S--&(9jsJHu0euyqhU&3^9&8m$jqVq~)+!~_2Cu3R^ z{0z9Yi(~n2ahMu*CI2aIq3XqSO(k_LS6aTXi(t_HcuQQNfbvvHp|px9@nG5%o}9Xl z$w|Rgc@hIQO@fZ@7Alft9QE@9lyV^Zt5|(4s`|3jSs-E^V$NrY zVxzlB#f=r&%3Q?jYlrd%KAF3Lo&rTPK`*8{*`wA8Fox(evNp-jj(M(Tzk-vraCzMB z`3CG1bhKs-F{wIDTy~<7qp-d07D` z8k?H|$S`}lW$hJ7tulBEf!L}=q9J`HSW4Whk6D{#P*gseW+j3AMXCte$%F>|$WWIT z7!PJZ@#IMm?5e|s_|v-*9bFeLL>lQV!gdX}+(>xAI9033)EX|&ivj#Bs^_!_wPd>Y z>mN!+5gV;`|A7Mp(*5kPE)pc5AXPl(tT$Tv#ij~C<$a!!0USacnCbD>7Rd$3B4Vux zyAwYtC}Uc){@%@r;73^x{FyqhJ?)_iMGrPc} zIBR98;q?1SF%?d_&ShsC!b?Gvx?NQdAMn5RwVLo1O}!Cjla-U}1GFFEI2RCk<-;&) zQ2WI0(&K~Rj+%-aSOXP(v>sz54soZ_cn%5e0ErikS$A$JwH-utZ4u6kYtzleCB)bN zlM<5BBj+r;y&dK@uQuVl&6UwQ+(o%8kx9ceutvm}AU@Q-BD{DtX_$rR>#-t<#j_;O zx?jaja%oTh+j2!Hh*W>5NZh9JL%w$qRrd`_@{X%;@fybiEhFeVHgQ%c>7KbD=@i76 z@di9}%8awV?}TH-v=q#y*k163KOB=Co@}QzrugYvC>Z^UyzQNhaTvU^2K1v2fMyF3 zSZs&qv?C$8rv%_2p$CCiQrN-Np2Kham_FAph! zE&vNK{)i)6%h--$R?RjWFMjj_G^!DHPdT9ou4^z$s`-HOh60`ZiL^Nqv4@9%@@rEO zjY&^aP9}#?k5`SxIt?_vp26;!t9x==i8x!3Al5u~Koey(V*0D>yh6Cm$&B3h#HKUV zh;gJIuSHZm)$`Vp>9_~JHVsa^q2xPR$B3E>s#87b1w7qN74*xx^1uYDMT2 zbefHFba^&*qev3=dfiUN{iY$$UGj+=Znf!5ascnX=R4NK(SNv&5>B>vZL>3*+e&!~ zNW}+%6pP^f4LOMP=ZWD99lIAPn=>%OhH#+heEQ7N*Tfq~!T89gy0FBBrg10WT3f3T zuE)+t&|rmbuY3isbaLYB6ZArg_uoo>CTeZjC1nc+uGN^XKWqfsa!(AMfLHjAH9qx{ ziljXOO%?V*UypumUHAyFb0w`w8``ZQkGV5j7hm2L;Il;Tv zg>`$}PW$YA*oIqev!ZX-Iv@lzkI-kKMyMH6TL7)bGMq7BBFT0&h zVa0Xb^GP%-882yL>oDn#df#kQ$OeK#6y&`7_YpZk#XXiz`Fin!U-w-8#K{@vf9TPh ze+o5j0^KAUq@#UFTpUr{&&r=2BJmoEEE<;HJuYx57XoI7EkjoHW0ZBZmg zRlBviS1Oox+QHC>NerLb&ENI-ly(nR2~`N}dr<}6(+3+vWTF^0GJ=a9?-VCrlaF=L z`v95)n`3K)1YjK!zqyja``AQWO^l;3&};Z$-VdnJ4E+ zAWL8lbem6f0d&t3%G#vKCbn3%h*y(#Cdpm`R}E>vL}#i1g|JdSBjO_0c8~O#rpND1 z&6dCX52gdOYH&za*muIyrmJe2rcI3$hrG5f<;6g98kRwj;9PV98uBMxQv+vjT5$i?(2R(NCAqFHI^`}kNL9`R?>AtjavWwXC6#m<>(cGp6J?gh$4wTGm66dQmJ(2f}QHT)U;Sa*Q>F4z$N^oFj zc5BGTiFZ#{QDdT*Ce;SN-{F5NWpc^PiW{=8OaRMuDU@w`?2 zoJsFZGBBDl8SIP))AXBNYHt(j`^f|w4dJp>$cA%UD=3|D5MMb=7*H=zw;UK1+Wpsz zhOyeZPm4=a+wo-nLWNbcX^PF<*1-I)8O1j(kI`OcS*-i7?`6V*RY_2)A)e_sE}p3h z>6F&SVR#EjWpOY*jFgeEfJ*CUl>-)GuW`7rS<%-A^xPYb1pd%@?v=q#u^mDO^^A+m zI^YL@jXAZ;04=Nb)NZad$G=SmHM#<5XuP(DphpM98CBlD8DQrrb+SkGuBuf$cPYn) zQ+}V1ZZXlPIZs%<(>`Y0EUbv)wFB^oX-#aD1SG%8S`}a(N_7S}A1r8)99_euvAu>X zn3%JgPuRbL@@czI*9y9oYxu-Okj*;Mv#e9Z+@EwWRP}W;D}(G~;;n4U3uCl5>S;O) z9p^Fbz+3<`+ZwrBdn?iF5UTgD#fEa}xyYw~zuOuiYBZ?xE8SXvG~& ztyp|wB+CL@?lXQvpOmje6_dF5#T40SB!0wor6h(V1>d$PXpE6uq{)b6hTrf0eo|o5 z5UBEXI?ch>PE3L~hzVo$UaN5R-#hf>?+f%4O#OT)FwtjIp!9>ZxL|iz?DZa~Af3*; zX3==G^jP07cQmMET~~}1ITl1 zm1Li$^C9~rJ7=B?MIRF{Vw*uAN`u~ModqI@3`NbtW*C9@fY(q9o^vmMFJi=@n|DxW zPEc$!o(}o%M`*O>F;bK=(rhQ3vS8-?BQ)x+tpuXf_>P$LDH}aTPo)2Ya|Q=}(AB~k z@0QNqr#emHOG@IPlMYP=y4q(m6*y^`msX##-)ZEvcl{9-g4^vb3ZgH+CnirH$;{SRLW;l$-8Gy7%J&V^ke_i1-kT9+kZf{yOj?xxxb0Eeh?oOT$ ziQIWV>Gc}B8lITx%bLAz!>eD_mIz#%C2%lzl4uWlOe zvw0hub&AV__sQqH0qHxo$Avy?sC>ZhNqA49v%BNb!71F$lvn{OA*w!?(rx-iyDDoI z8ZoMW(p8XE+vDf_@M13qgmlq6yX@w->a!v$^WF1pAV(IP?*@|{^1_#i=~1ulUGbgt ze84pqKL}~378LldypG7V0;vzOEA{ML<0Cu7qnEwn|LTyv$Gx*5W>LYstVOcP&Rmix z8o}yVq+uzNMogj?$mde!u8el+`<1yW6;-2BY2F%^^ov~7)tlyvKbqaAZMxw+g>d4W zO4~Eew6b1E0O;box8Pm?)MkzKY^T^*ML0M2upw4ect+&_9UDK<%6)+}-YjJ>kCDIF zf8f$sx5)i9h32Gjwj=gwEouTu{7uyr6UzAaykp_gvJ!wUZ*GV#Oo~eCG`BJn(INwo z1VdI|Cayq})$c+cGGCv|qgTBf&j{RtgCx7`hf{Ojr$L)HM(RTx;7lV2$}nrI=O&IV zslI4gy_inUzLF8k5#V=0b)}Hsq^5?T>8TA1 z_s8E`*1h)pUU$9_`f^bT7TceX8CSy=qff0O)Fu>2y4?+2n5UQR{Mjv^ngWel+8Vi| z|5NX;CbKp|3%wq%;ku~8Fi04*1e99_)X%&`Yqz0vg;c1+ol;i55&e#YVc{pmTt^v)j{jKu+m)crHyw7Hi*-d&u#iRm4xB;!$3ZPUhc6}k-8D0lV=o;dxKdo z#7fm>pxgZG?jpfb>ZoX?eG))!?$S+U@bx(k>IUS>SxrR%45Q^J1;hCz4HH&bY>ze9U3i2nZGkx< zMn7N1#EpPtk4X+_#ndv+=m5{d??-tY47kBeCklI>bi$`kFZZJg*OgGg-VFNPlLY5G z-BW4qsmtFh>=HGxl}Pl>nt=DKw8bcnBlM6>(nvUH;Jy1`QC;yLx(qQt!kRAw|o}_bqL9s;P9Q3iyYt~T@$M#f)1|J(+ z3sJPe?n-i(N!Ym$`HD!cV&ktiZ1)bx-RgNz0BgD1z`Dj+2eXT z&Qgg41QOGPemzjfQ`6*F8iuB{U^uE5Gu&xgNC?Lco$vX`+b9@Ucp7C4zO!1>>R@Iq zjwIij*k_SgHY&Zr50FH;wZ)*^F8Y`4=AAbveh-N4d;k2Ibg;`vl?}|e6De+C`b!-l zvbkSiMN(Bf^sL|HTIC0Sf+#^I>Me;FL+5tTqoMz#E2Qd`4W!W@N8J#dbVNDGHfsx< z8?2Hhmz5>mf#Tb`|1fCo_Bm%KEsGX9=P_j1nF?4~gbG$_lzStPl&iKSqAERwqIHy9 zQm;J^_x`D;f@9!XE}YRluq30DM#q>7Qax1P5#)jJE?`ULCmy3jBCloa)?C@P(k{1O zw##|}J~}`4LS{bp15@aC&MHb|4SHv#<=cvl9Z1m)wpiGG+9rV>KCa20A{!Dnu<>`X z|3cjQ=XXKPLV9&c+YeDc*})*WM~3#{BV1Ui07;g3YfU={_)X>G5V2&`El#I;U!7I| zek^X(h-I{_KhleC12ZbU5JQ0neV hvdh~ef!yT&u)xoX*1nq7M8Uz_RB0HSDBUr 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 0) { - duration += `${finalYears} year${finalYears > 1 ? "s" : ""}`; - } - if (finalMonths > 0) { - if (duration) duration += " "; - duration += `${finalMonths} month${finalMonths > 1 ? "s" : ""}`; - } - return duration; -} - -function formatDateRange(startDate, endDate) { - const start = new Date(startDate); - const end = endDate ? new Date(endDate) : new Date(); - - const formatDate = (date) => { - return date.toLocaleDateString("en-US", { - month: "short", - year: "numeric", - }); - }; - - const duration = calculateDuration(startDate, endDate); - return `${formatDate(start)} - ${endDate ? formatDate(end) : "Present"} · ${duration}`; -} diff --git a/assets/js/experiences.js b/assets/js/experiences.js new file mode 100644 index 0000000..a872619 --- /dev/null +++ b/assets/js/experiences.js @@ -0,0 +1,2 @@ +!function(){"use strict";const{animate:i,inView:t}=Motion;t("section div",(t=>(i(t,{opacity:1},{duration:.7}),()=>i(t,{opacity:0},{duration:.7}))),{some:.7,initial:!1})}(); +//# sourceMappingURL=experiences.js.map diff --git a/assets/js/experiences.js.map b/assets/js/experiences.js.map new file mode 100644 index 0000000..77ecc47 --- /dev/null +++ b/assets/js/experiences.js.map @@ -0,0 +1 @@ +{"version":3,"file":"experiences.js","sources":["../../ts/src/experiences.ts"],"sourcesContent":["const { animate, inView } = Motion;\n\ninView(\n \"section div\",\n (element) => {\n animate(\n element,\n { opacity: 1 },\n {\n duration: 0.7,\n },\n );\n return () => animate(element, { opacity: 0 }, { duration: 0.7 });\n },\n { some: 0.7, initial: false },\n);\n"],"names":["animate","inView","Motion","element","opacity","duration","some","initial"],"mappings":"yBAAA,MAAMA,QAAEA,EAAOC,OAAEA,GAAWC,OAE5BD,EACE,eACCE,IACCH,EACEG,EACA,CAAEC,QAAS,GACX,CACEC,SAAU,KAGP,IAAML,EAAQG,EAAS,CAAEC,QAAS,GAAK,CAAEC,SAAU,OAE5D,CAAEC,KAAM,GAAKC,SAAS"} \ No newline at end of file diff --git a/assets/js/landing-page-animations.js b/assets/js/landing-page-animations.js deleted file mode 100644 index 23c9bb1..0000000 --- a/assets/js/landing-page-animations.js +++ /dev/null @@ -1,23 +0,0 @@ -const { animate, scroll } = Motion; - -const yearsExperience = document.getElementById("years-experience"); -const programmingLangues = document.getElementById("programming-languages"); - -const startDate = new Date("2019-01-01"); -years = Math.floor((new Date() - startDate) / 1000 / 60 / 60 / 24 / 365); - -animate(0, years, { - duration: 2, - ease: "circOut", - onUpdate: (latest) => { - yearsExperience.innerHTML = Math.round(latest); - }, -}); - -animate(0, 4, { - duration: 2, - ease: "circOut", - onUpdate: (latest) => { - programmingLangues.innerHTML = Math.round(latest); - }, -}); diff --git a/assets/js/landing.js b/assets/js/landing.js new file mode 100644 index 0000000..f2c6ccc --- /dev/null +++ b/assets/js/landing.js @@ -0,0 +1,2 @@ +!function(){"use strict";const{animate:e,stagger:n}=Motion,t=document.getElementById("years-experience");if(!t)throw new Error("years-experience Element not found");const o=document.getElementById("programming-languages");if(!o)throw new Error("languages Element not found");e(0,6,{duration:1.5,ease:"circOut",onUpdate:e=>{const n=Math.floor(e);t.innerHTML=String(n)}}),e(0,4,{duration:1.5,ease:"circOut",onUpdate:e=>{const n=Math.floor(e);o.innerHTML=String(n)}}),e("#years-experience",{count:5},{duration:1.5,delay:n(.1)}),e("#languages",{count:5},{duration:1.5,delay:n(.1)})}(); +//# sourceMappingURL=landing.js.map diff --git a/assets/js/landing.js.map b/assets/js/landing.js.map new file mode 100644 index 0000000..3c702e7 --- /dev/null +++ b/assets/js/landing.js.map @@ -0,0 +1 @@ +{"version":3,"file":"landing.js","sources":["../../ts/src/landing.ts"],"sourcesContent":["const { animate, stagger } = Motion;\n\nconst experienceCountSelector = \"#years-experience\";\nconst languagesCountSelector = \"#languages\";\n\nconst yrsExpCount = document.getElementById(\"years-experience\");\nif (!yrsExpCount) {\n throw new Error(\"years-experience Element not found\");\n}\n\nconst langCount = document.getElementById(\"programming-languages\");\nif (!langCount) {\n throw new Error(\"languages Element not found\");\n}\n\nanimate(0, 6, {\n duration: 1.5,\n ease: \"circOut\",\n onUpdate: (latest) => {\n const yrs = Math.floor(latest);\n yrsExpCount.innerHTML = String(yrs);\n },\n});\n\nanimate(0, 4, {\n duration: 1.5,\n ease: \"circOut\",\n onUpdate: (latest) => {\n const languages = Math.floor(latest);\n langCount.innerHTML = String(languages);\n },\n});\n\nanimate(\n experienceCountSelector,\n { count: 5 },\n { duration: 1.5, delay: stagger(0.1) },\n);\nanimate(\n languagesCountSelector,\n { count: 5 },\n { duration: 1.5, delay: stagger(0.1) },\n);\n"],"names":["animate","stagger","Motion","yrsExpCount","document","getElementById","Error","langCount","duration","ease","onUpdate","latest","yrs","Math","floor","innerHTML","String","languages","count","delay"],"mappings":"yBAAA,MAAMA,QAAEA,EAAOC,QAAEA,GAAYC,OAKvBC,EAAcC,SAASC,eAAe,oBAC5C,IAAKF,EACH,MAAM,IAAIG,MAAM,sCAGlB,MAAMC,EAAYH,SAASC,eAAe,yBAC1C,IAAKE,EACH,MAAM,IAAID,MAAM,+BAGlBN,EAAQ,EAAG,EAAG,CACZQ,SAAU,IACVC,KAAM,UACNC,SAAWC,IACT,MAAMC,EAAMC,KAAKC,MAAMH,GACvBR,EAAYY,UAAYC,OAAOJ,EAAI,IAIvCZ,EAAQ,EAAG,EAAG,CACZQ,SAAU,IACVC,KAAM,UACNC,SAAWC,IACT,MAAMM,EAAYJ,KAAKC,MAAMH,GAC7BJ,EAAUQ,UAAYC,OAAOC,EAAU,IAI3CjB,EA/BgC,oBAiC9B,CAAEkB,MAAO,GACT,CAAEV,SAAU,IAAKW,MAAOlB,EAAQ,MAElCD,EAnC+B,aAqC7B,CAAEkB,MAAO,GACT,CAAEV,SAAU,IAAKW,MAAOlB,EAAQ"} \ No newline at end of file diff --git a/assets/js/navigation.js b/assets/js/navigation.js new file mode 100644 index 0000000..32cbb0e --- /dev/null +++ b/assets/js/navigation.js @@ -0,0 +1,2 @@ +!function(){"use strict";const{animate:e,stagger:i}=Motion,t="#mobile-nav>li";document.addEventListener("alpine:init",(()=>{Alpine.data("navbar",(()=>({isOpen:!1,open(){this.isOpen=!0,e(t,{opacity:[0,1],x:[-50,0]},{delay:i(.1)})},toggle(){this.isOpen?this.close():this.open()},close(){setTimeout((()=>{this.isOpen=!1}),300),e(t,{opacity:[1,0],x:[0,50]},{delay:i(.1)})}})))}))}(); +//# sourceMappingURL=navigation.js.map diff --git a/assets/js/navigation.js.map b/assets/js/navigation.js.map new file mode 100644 index 0000000..de8cd6d --- /dev/null +++ b/assets/js/navigation.js.map @@ -0,0 +1 @@ +{"version":3,"file":"navigation.js","sources":["../../ts/src/navigation.ts"],"sourcesContent":["const { animate, stagger } = Motion;\n\nconst navItemSelector = \"#mobile-nav>li\";\n\ndocument.addEventListener(\"alpine:init\", () => {\n Alpine.data(\"navbar\", () => {\n return {\n isOpen: false,\n open() {\n this.isOpen = true;\n animate(\n navItemSelector,\n { opacity: [0, 1], x: [-50, 0] },\n { delay: stagger(0.1) },\n );\n },\n toggle() {\n this.isOpen ? this.close() : this.open();\n },\n close() {\n setTimeout(() => {\n this.isOpen = false;\n }, 300);\n animate(\n navItemSelector,\n { opacity: [1, 0], x: [0, 50] },\n { delay: stagger(0.1) },\n );\n },\n };\n });\n});\n"],"names":["animate","stagger","Motion","navItemSelector","document","addEventListener","Alpine","data","isOpen","open","this","opacity","x","delay","toggle","close","setTimeout"],"mappings":"yBAAA,MAAMA,QAAEA,EAAOC,QAAEA,GAAYC,OAEvBC,EAAkB,iBAExBC,SAASC,iBAAiB,eAAe,KACvCC,OAAOC,KAAK,UAAU,KACb,CACLC,QAAQ,EACR,IAAAC,GACEC,KAAKF,QAAS,EACdR,EACEG,EACA,CAAEQ,QAAS,CAAC,EAAG,GAAIC,EAAG,EAAC,GAAK,IAC5B,CAAEC,MAAOZ,EAAQ,KAEpB,EACD,MAAAa,GACEJ,KAAKF,OAASE,KAAKK,QAAUL,KAAKD,MACnC,EACD,KAAAM,GACEC,YAAW,KACTN,KAAKF,QAAS,CAAK,GAClB,KACHR,EACEG,EACA,CAAEQ,QAAS,CAAC,EAAG,GAAIC,EAAG,CAAC,EAAG,KAC1B,CAAEC,MAAOZ,EAAQ,KAEpB,KAEH"} \ No newline at end of file diff --git a/assets/json/projects.json b/assets/json/projects.json index 03571f8..69db76e 100644 --- a/assets/json/projects.json +++ b/assets/json/projects.json @@ -5,7 +5,7 @@ "end": null, "stack": ["Go", "Wails", "React", "SQLite3", "TailwindCSS"], "description": "Invoie Management System that helps mechanics create invoices, manage customers, finances and more.", - "thumbnail": "/static/images/invoice-manager-thumbnail.png", + "thumbnail": "/assets/images/invoice-manager-thumbnail.png", "github_link": "", "status": "In Progress" }, diff --git a/components/about_page.templ b/components/about_page.templ index 8e6dabf..c53ede8 100644 --- a/components/about_page.templ +++ b/components/about_page.templ @@ -2,11 +2,201 @@ package components templ AboutPage() { @rootLayout() { -

-
-

About Me

-

I am a software engineer with a passion for web development. I have experience with a variety of technologies including React, Node.js, and MongoDB. I am always looking to learn new things and improve my skills.

-
+
+
+ +
+
+ Mohammad Hariri +
+ Available for Work +
+
+
+

Your Name

+

Full Stack Developer & Problem Solver

+
+

+ Passionate about crafting elegant solutions to complex problems. With expertise in modern web technologies, + I bring ideas to life through clean code and intuitive user experiences. +

+
+ +
+

My Journey

+
+
+
+
+
+
+

Where I Started

+

+ My journey in software development began with a curiosity about how things work. + From building simple websites to developing complex applications, every step has been a learning experience. +

+
+
+
+
+
+
+
+

Where I Am

+

+ Currently, I specialize in full-stack development, focusing on creating scalable and maintainable applications. + I'm passionate about using technology to solve real-world problems. +

+
+
+
+
+
+
+
+

Where I'm Going

+

+ My goal is to continue growing as a developer while contributing to meaningful projects that make a difference. + I'm always excited to learn new technologies and tackle new challenges. +

+
+
+
+
+ +
+

Technical Expertise

+
+
+

Frontend Development

+
    +
  • + + + + React & Next.js +
  • +
  • + + + + TypeScript +
  • +
  • + + + + Tailwind CSS +
  • +
+
+
+

Backend Development

+
    +
  • + + + + Go & Fiber +
  • +
  • + + + + Node.js +
  • +
  • + + + + PostgreSQL +
  • +
+
+
+

Tools & Practices

+
    +
  • + + + + Git & GitHub +
  • +
  • + + + + Docker +
  • +
  • + + + + CI/CD +
  • +
+
+
+
+ +
+

Beyond the Code

+
+
+

When I'm Not Coding

+

+ Outside of development, I enjoy [Your Hobbies/Interests]. I believe in maintaining a healthy work-life balance + and finding inspiration in various aspects of life. +

+
+
+

Let's Connect

+
+

+ I'm always interested in hearing about new projects and opportunities. + Feel free to reach out if you'd like to collaborate or just chat about technology. +

+ +
+
+
+
+
} } diff --git a/components/about_page_templ.go b/components/about_page_templ.go index 0224b73..9a263af 100644 --- a/components/about_page_templ.go +++ b/components/about_page_templ.go @@ -41,7 +41,7 @@ func AboutPage() templ.Component { }() } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

About Me

I am a software engineer with a passion for web development. I have experience with a variety of technologies including React, Node.js, and MongoDB. I am always looking to learn new things and improve my skills.

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
\"Mohammad
Available for Work

Your Name

Full Stack Developer & Problem Solver

Passionate about crafting elegant solutions to complex problems. With expertise in modern web technologies, I bring ideas to life through clean code and intuitive user experiences.

My Journey

Where I Started

My journey in software development began with a curiosity about how things work. From building simple websites to developing complex applications, every step has been a learning experience.

Where I Am

Currently, I specialize in full-stack development, focusing on creating scalable and maintainable applications. I'm passionate about using technology to solve real-world problems.

Where I'm Going

My goal is to continue growing as a developer while contributing to meaningful projects that make a difference. I'm always excited to learn new technologies and tackle new challenges.

Technical Expertise

Frontend Development

  • React & Next.js
  • TypeScript
  • Tailwind CSS

Backend Development

  • Go & Fiber
  • Node.js
  • PostgreSQL

Tools & Practices

  • Git & GitHub
  • Docker
  • CI/CD

Beyond the Code

When I'm Not Coding

Outside of development, I enjoy [Your Hobbies/Interests]. I believe in maintaining a healthy work-life balance and finding inspiration in various aspects of life.

Let's Connect

I'm always interested in hearing about new projects and opportunities. Feel free to reach out if you'd like to collaborate or just chat about technology.

") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/components/about_page_templ.txt b/components/about_page_templ.txt new file mode 100644 index 0000000..4ae9d4c --- /dev/null +++ b/components/about_page_templ.txt @@ -0,0 +1 @@ +
\"Mohammad
Available for Work

Your Name

Full Stack Developer & Problem Solver

Passionate about crafting elegant solutions to complex problems. With expertise in modern web technologies, I bring ideas to life through clean code and intuitive user experiences.

My Journey

Where I Started

My journey in software development began with a curiosity about how things work. From building simple websites to developing complex applications, every step has been a learning experience.

Where I Am

Currently, I specialize in full-stack development, focusing on creating scalable and maintainable applications. I'm passionate about using technology to solve real-world problems.

Where I'm Going

My goal is to continue growing as a developer while contributing to meaningful projects that make a difference. I'm always excited to learn new technologies and tackle new challenges.

Technical Expertise

Frontend Development

  • React & Next.js
  • TypeScript
  • Tailwind CSS

Backend Development

  • Go & Fiber
  • Node.js
  • PostgreSQL

Tools & Practices

  • Git & GitHub
  • Docker
  • CI/CD

Beyond the Code

When I'm Not Coding

Outside of development, I enjoy [Your Hobbies/Interests]. I believe in maintaining a healthy work-life balance and finding inspiration in various aspects of life.

Let's Connect

I'm always interested in hearing about new projects and opportunities. Feel free to reach out if you'd like to collaborate or just chat about technology.

\ No newline at end of file diff --git a/components/contact_page_templ.txt b/components/contact_page_templ.txt new file mode 100644 index 0000000..028256b --- /dev/null +++ b/components/contact_page_templ.txt @@ -0,0 +1 @@ +

Get in Touch

Have a question or want to work together? Let's connect!

\ No newline at end of file diff --git a/components/experience_card.templ b/components/experience_card.templ deleted file mode 100644 index 0869e97..0000000 --- a/components/experience_card.templ +++ /dev/null @@ -1,46 +0,0 @@ -package components - -import "github.com/moh682/portfolio/domain" -import "slices" -import "strings" - -templ experienceCard(exp domain.Experience) { -
-
- -
-

{ exp.Job.Title }

-
- { exp.Company.Name } -

{ exp.Duration() }

-

{ exp.GetStartDate() } - { exp.GetEndDate() }

- { exp.Company.City } -
-
- for _, stack := range slices.Concat(exp.Job.FrontendStack, exp.Job.BackendStack, exp.Job.InfrastructureStack) { - @techStack(stack) - } -
-
- -
- -
-
-

About { exp.Company.Name }

- for _, description := range strings.Split(exp.Company.Description, "\n") { -

- { description } -

- } -
-
-

Role & Responsibilities

-
- { exp.Job.Description } -
-
-
-
-
-} diff --git a/components/experience_card_templ.go b/components/experience_card_templ.go deleted file mode 100644 index c60a033..0000000 --- a/components/experience_card_templ.go +++ /dev/null @@ -1,199 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -import "github.com/moh682/portfolio/domain" -import "slices" -import "strings" - -func experienceCard(exp domain.Experience) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var2 string - templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Job.Title) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 12, Col: 65} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 string - templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.Name) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 14, Col: 113} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var5 string - templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Duration()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 15, Col: 48} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var6 string - templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(exp.GetStartDate()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 16, Col: 59} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " - ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var7 string - templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(exp.GetEndDate()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 16, Col: 82} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var9 string - templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.City) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 17, Col: 100} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, stack := range slices.Concat(exp.Job.FrontendStack, exp.Job.BackendStack, exp.Job.InfrastructureStack) { - templ_7745c5c3_Err = techStack(stack).Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "

About ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var10 string - templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.Name) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 30, Col: 61} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, description := range strings.Split(exp.Company.Description, "\n") { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var11 string - templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(description) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 33, Col: 20} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "

Role & Responsibilities

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var12 string - templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Job.Description) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experience_card.templ`, Line: 40, Col: 27} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/experiences_page.templ b/components/experiences_page.templ index 861a0c2..446be5b 100644 --- a/components/experiences_page.templ +++ b/components/experiences_page.templ @@ -2,59 +2,61 @@ package components import "github.com/moh682/portfolio/domain" -import "fmt" + +import "slices" +import "strings" + +templ experienceCard(exp domain.Experience) { +
+ +
+

{ exp.Job.Title }

+
+ { exp.Company.Name } +

{ exp.Duration() }

+

{ exp.GetStartDate() } - { exp.GetEndDate() }

+ { exp.Company.City } +
+
+ for _, stack := range slices.Concat(exp.Job.FrontendStack, exp.Job.BackendStack, exp.Job.InfrastructureStack) { + @techStack(stack) + } +
+
+

About { exp.Company.Name }

+ for _, description := range strings.Split(exp.Company.Description, "\n") { +

+ { description } +

+ } +
+
+

Role & Responsibilities

+
+ { exp.Job.Description } +
+
+
+
+} templ ExperiencesPage(experiences []domain.Experience) { @rootLayout() { -
-
- -
-
- for i := range experiences { -
-
-
- } + +
+
+
+ +
+
+
+
+
-
-
-
-
-

Professional Experience

-

Building and scaling software solutions that matter

-
-
-
-
-
-
- for i, exp := range experiences { -
-
-
-
-
-
-
-
-
- @experienceCard(exp) -
- } -
-
+
+ for _, exp := range experiences { + @experienceCard(exp) + }
diff --git a/components/experiences_page_templ.go b/components/experiences_page_templ.go index b279ca9..a7026c9 100644 --- a/components/experiences_page_templ.go +++ b/components/experiences_page_templ.go @@ -10,9 +10,11 @@ import "github.com/a-h/templ" import templruntime "github.com/a-h/templ/runtime" import "github.com/moh682/portfolio/domain" -import "fmt" -func ExperiencesPage(experiences []domain.Experience) templ.Component { +import "slices" +import "strings" + +func experienceCard(exp domain.Experience) templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { @@ -33,7 +35,191 @@ func ExperiencesPage(experiences []domain.Experience) templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var2 string + templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Job.Title) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 13, Col: 63} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var4 string + templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.Name) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 15, Col: 112} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var5 string + templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Duration()) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 16, Col: 47} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var6 string + templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(exp.GetStartDate()) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 17, Col: 58} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " - ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var7 string + templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(exp.GetEndDate()) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 17, Col: 81} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var9 string + templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.City) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 18, Col: 99} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for _, stack := range slices.Concat(exp.Job.FrontendStack, exp.Job.BackendStack, exp.Job.InfrastructureStack) { + templ_7745c5c3_Err = techStack(stack).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "

About ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var10 string + templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.Name) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 26, Col: 60} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for _, description := range strings.Split(exp.Company.Description, "\n") { + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var11 string + templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(description) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 29, Col: 19} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "

Role & Responsibilities

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var12 string + templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Job.Description) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 36, Col: 26} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + return nil + }) +} + +func ExperiencesPage(experiences []domain.Experience) templ.Component { + return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { + templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context + if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { + return templ_7745c5c3_CtxErr + } + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) + if !templ_7745c5c3_IsBuffer { + defer func() { + templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) + if templ_7745c5c3_Err == nil { + templ_7745c5c3_Err = templ_7745c5c3_BufErr + } + }() + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var13 := templ.GetChildren(ctx) + if templ_7745c5c3_Var13 == nil { + templ_7745c5c3_Var13 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Var14 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) if !templ_7745c5c3_IsBuffer { @@ -45,190 +231,45 @@ func ExperiencesPage(experiences []domain.Experience) templ.Component { }() } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - for i := range experiences { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 = []any{"h-12 w-1 mb-4 transition-all duration-300 cursor-pointer hover:bg-emerald-400"} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var4...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "

Professional Experience

Building and scaling software solutions that matter

") + var templ_7745c5c3_Var15 = []any{"flex items-center flex-grow-0 justify-center w-10 h-10 rounded-full bg-emerald-900 border-4 border-slate-800 z-[80]"} + templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var15...) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - for i, exp := range experiences { - var templ_7745c5c3_Var8 = []any{"absolute w-full transition-all opacity-0 duration-700 ease-out translate-y-10"} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var8...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var12 = []any{fmt.Sprintf("relative flex w-full h-full items-center justify-center translate-y-[%dpx]", i*4*32)} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var12...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var14 = []any{"flex items-center flex-grow-0 justify-center w-10 h-10 rounded-full bg-emerald-900 border-4 border-slate-800 z-[80]"} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var14...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "
") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for _, exp := range experiences { templ_7745c5c3_Err = experienceCard(exp).Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 18, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } return nil }) - templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) + templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var14), templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/components/experiences_page_templ.txt b/components/experiences_page_templ.txt new file mode 100644 index 0000000..7d41f74 --- /dev/null +++ b/components/experiences_page_templ.txt @@ -0,0 +1,19 @@ +

+

+

+

+ - +

+
+

About +

+

+

+

Role & Responsibilities

+
+
+
+
\ No newline at end of file diff --git a/components/external_links_templ.txt b/components/external_links_templ.txt new file mode 100644 index 0000000..940b365 --- /dev/null +++ b/components/external_links_templ.txt @@ -0,0 +1,5 @@ +
\ No newline at end of file diff --git a/components/landing_page.templ b/components/landing_page.templ index 83f39f6..36cbf0d 100644 --- a/components/landing_page.templ +++ b/components/landing_page.templ @@ -2,16 +2,16 @@ package components templ LandingPage() { @rootLayout() { - -
+ +
-
-
+
+
-
-
- Software Developer +
+
+ Software Engineer

Hey there! I'm Mohammad Hariri

@@ -46,7 +46,7 @@ templ LandingPage() {
Mohammad Hariri @@ -54,7 +54,7 @@ templ LandingPage() {
-
+
0
Years Experience
diff --git a/components/landing_page_templ.go b/components/landing_page_templ.go index 0f4261b..10500af 100644 --- a/components/landing_page_templ.go +++ b/components/landing_page_templ.go @@ -41,7 +41,7 @@ func LandingPage() templ.Component { }() } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
Software Developer

Hey there! I'm Mohammad Hariri

I turn complex problems into elegant code solutions. Passionate about building robust applications that make a real difference in people's lives.

\"Mohammad
0
Years Experience
0
Programming Languages
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
Software Engineer

Hey there! I'm Mohammad Hariri

I turn complex problems into elegant code solutions. Passionate about building robust applications that make a real difference in people's lives.

\"Mohammad
0
Years Experience
0
Programming Languages
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/components/landing_page_templ.txt b/components/landing_page_templ.txt new file mode 100644 index 0000000..8bbc0d6 --- /dev/null +++ b/components/landing_page_templ.txt @@ -0,0 +1 @@ +
Software Engineer

Hey there! I'm Mohammad Hariri

I turn complex problems into elegant code solutions. Passionate about building robust applications that make a real difference in people's lives.

\"Mohammad
0
Years Experience
0
Programming Languages
\ No newline at end of file diff --git a/components/layout.templ b/components/layout.templ index a342535..8d767e8 100644 --- a/components/layout.templ +++ b/components/layout.templ @@ -1,58 +1,23 @@ package components templ rootLayout() { - + + + + + + + Mohammad's Portfolio - @navbar() -
- { children... } -
+ { children... } } diff --git a/components/layout_templ.go b/components/layout_templ.go index 0e8a9d8..4566075 100644 --- a/components/layout_templ.go +++ b/components/layout_templ.go @@ -29,7 +29,7 @@ func rootLayout() templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "Mohammad's Portfolio") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "Mohammad's Portfolio") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -37,15 +37,11 @@ func rootLayout() templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer) if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "
") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/components/layout_templ.txt b/components/layout_templ.txt new file mode 100644 index 0000000..47a138c --- /dev/null +++ b/components/layout_templ.txt @@ -0,0 +1,2 @@ +Mohammad's Portfolio + \ No newline at end of file diff --git a/components/logo.templ b/components/logo.templ index d84e20a..eac8d26 100644 --- a/components/logo.templ +++ b/components/logo.templ @@ -1,7 +1,7 @@ package components -import "fmt" - -templ Logo(size int) { - +templ Logo() { +
+ +
} diff --git a/components/logo_templ.go b/components/logo_templ.go index 92260bf..dfa01d3 100644 --- a/components/logo_templ.go +++ b/components/logo_templ.go @@ -8,9 +8,7 @@ package components import "github.com/a-h/templ" import templruntime "github.com/a-h/templ/runtime" -import "fmt" - -func Logo(size int) templ.Component { +func Logo() templ.Component { return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { @@ -31,20 +29,7 @@ func Logo(size int) templ.Component { templ_7745c5c3_Var1 = templ.NopComponent } ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } diff --git a/components/logo_templ.txt b/components/logo_templ.txt new file mode 100644 index 0000000..159dd72 --- /dev/null +++ b/components/logo_templ.txt @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/components/navbar.templ b/components/navbar.templ index db8cf0b..694187b 100644 --- a/components/navbar.templ +++ b/components/navbar.templ @@ -1,28 +1,86 @@ package components templ navbar() { -