From 77581455b3ee9edb46c074bc56aa5f540308d99e Mon Sep 17 00:00:00 2001 From: Andrew Simonson Date: Sat, 21 May 2022 17:59:33 -0400 Subject: [PATCH] Updates --- resume.pdf => Resume.pdf | Bin 146209 -> 145766 bytes asset-manifest.json | 6 +++--- index.html | 2 +- static/js/main.a314a690.js | 3 +++ ...CENSE.txt => main.a314a690.js.LICENSE.txt} | 0 static/js/main.a314a690.js.map | 1 + static/js/main.d8996e76.js | 3 --- static/js/main.d8996e76.js.map | 1 - 8 files changed, 8 insertions(+), 8 deletions(-) rename resume.pdf => Resume.pdf (84%) create mode 100644 static/js/main.a314a690.js rename static/js/{main.d8996e76.js.LICENSE.txt => main.a314a690.js.LICENSE.txt} (100%) create mode 100644 static/js/main.a314a690.js.map delete mode 100644 static/js/main.d8996e76.js delete mode 100644 static/js/main.d8996e76.js.map diff --git a/resume.pdf b/Resume.pdf similarity index 84% rename from resume.pdf rename to Resume.pdf index 1485aff672724c8fffb6c03a66eb8b6e76829e15..d2444b62cc279867ee9d3e23720fc2e04a0b2cc8 100644 GIT binary patch delta 21693 zcmZ^Kbx>bjkR|T!?(X`-1B3t}xNC5CcX+rv!QI_GxVyVsa0tO2HZwcBHS>MD_m5j$ z=iTnpr*GGLRbBP+?%@uv;o?|0xp_b!GS;tT+GOl}oSbAFoLpqz$ynvd*ty79#mU$? zK_I@rmK+&78LP@)keiE(r_MkP0s!%mvHiy)vn50LPlKJCo161r7!N1Mzc4-yu76@6 zb~ezzFb+Q6e_>pF?Ei@Y|BV;~;{EqQUatQK#`AAtK5p)RlJIcwu>A|;dwO{4<%q1qA-3jt}(j^7HZV z{M(tA@1NJi!SlBZ{z1aQ!^`Vy2;9U=Xa;RAPF}KqELN#6 zWZHs;?3~=D+&o;yCS2?$9Nb36T-@wzCLFvV10!xzQv;q)f;@jyG3EmCfJ}@{xY@bc z3`{sojX;KMMn)!ve~H)|oMBABA*#$0*J0TqR*@1>;5eu`xF>2rMl6~${audx&{CmZ zQ7@_EX(lT%e+WjXdUU|SMvtjw8%*F3(IDA)*&CejUdVyn3sr&6-;-j#*bN#}JW|PX zBu-Xohbg)5L4F3>)6VO5n%tr`0Mq*k$)Ob#yF@%pB>y+ z9ac9ldzxUwL}e(q*RKN0O5L+cB)bOTK5V%|{v5q+0a;dqC1Nro4Nq+Pa(k4Rlu}@e zD+Sxt*Ox2Hx#valu-|LctrBDSFkFwB&gp`|OG-JJ*(XK*#C0GTJaq)NmZh;=;gs0G zF1xjJ=r7r$Z&OYLXHcS_U|dclYW9;4%o+Yv=h~H{V#l@rt{QJ$zs3qxQ!zGfP>-JE zpYs&!f%Gk=7vppJ2P(^>4S6E6;4X}onwprBSi`MgRSg=~-}kbNiLIHlIR_aB8wXEf z-8nA6#lcSY=@WvJv!jWD4T5`SW(%}}$$C9=SUXPe`q1Wotku@`cI8$a-CzMMrB;F9 z_V#uGuA{Ao-+Y%3m&fnK0)~SGoSc#|X=zT?E5=_U7@R*B-w%m6cnRS0(|AhQ`c=k9 z3T4%HM$`MHWygm{!}h#B6&n32G%`K{*8o~udF?sb{xZz3dq1c7Nbt>PtgLhN#K)Iu z{agY2Ku47P~Ha zU!UDNVI@VR)Xt?BnK-;z935Gi8^nx}8QAKbAD!Fi3nu)NqYhRCzo<7W;|zoY;CNmT zI)d02Hc{s?;Pur@5>vWhimcMPWhq6YA7Lf0p*pzop#b!&G&6S3=G-7eE|N10f13}& zV?_+ulRPunUN?fM%!jbKF|(|n>r{?ywQI2mtzRTGS}p}OqJllx+MB?2H<3B`hbli9 zrqKL{T3ADPVo|@@U?#K8@kJIefsZv{QufISoXXEtq-452?Y*g~n{H6Jss~t%j86;S z7rp`(*UwooI~(vjiD!cSPa84~U5hF1o11&4)q2?3A!L|kb-;#1oTLSKL%K^xwnc2x)Tv!W!pggL7$7=)@7sY>wo4;o_ ze5?cqUkHJ1Im=8$orCd%Vx~b2PL95ytVqP27vWW`Xr>Qo)cx&UC0EmXFq&fE4CLbS zXm?@zp(;K0k;q;M@j4xKeb18939j%iB=s}OI*KL-wfMvC=9cy2qlEn#ck*ML>g^*V z8z_F;Mw-+MKLP(ZGX(~}+gQIRrC--9_;vrh1)SLHn;NfP*H3^ZE3glrjrW#1h7aqk zACd9VMd5K-ZIeJUQ`R7}kY8~`G7Ak37$+s6*-rQJ;`>@_bP=(_?AGda4dI@XOe)?7 zZbo@!epF& zz2}#Iy5l-4=7rC5C?-F^g;lj)Ve5U>=KJP*As(llbF7j-{Bq{1{yw=|eTDRmXn7;_ zb&K}d+TQDpZ5Q-vo?M5nD7%p&4u5X>*$1+4_mB>YaS*b*KzyV>EPNEMi34&3OEI@pcHSf#N1VzvX()7X9kg2+w?^^p#kT;&-_? zotU?sRFUpVIG0DMlpvPQk1(1yMT_!K1|XDZG301>VgzQxThQ%XSNik)ALoJ_ffWqJ z)LrU9ru*ETmjk?HSdStt5oTRy`?}<;jNLj1wE#;;I#WJX?BdP=1eE%uw~-uNo)?9V zeMq+e}S%yBt6!}GPEN(l|S(Tbo}7#{}OW|U#04-j9gzD?eLNioEh8h#D6 zhv;S^MF^(@e?#y;r--a9SEjVp+jbrm-sIqG|9&W)lDV`QpF%-ve*jS;__DlH7ed)Z zN2K`6**#aJDREnq3EJ?dU|L5NARLxUsa3oo&Oqf2GtNvVEr@@YifU5Mr?KAF{N8}= zZe@4Bv~w&}IwH$bJ)yWV)gr73_PoYCBE8mb!Af2vKxOasNMm@bj`#|!!ZoW3kRCf}Q z$?{w2;B+DGpAC)qb=Z|n!an(^{_H0>tM=u{{-#hWLOOY$o$Qzw>b}&eCiyM7wxT&f z=OH;49K(l?aTeiEyTcxL08Ntqq5~j>y?yFss;%3;W+7_3*+9<&KrIQ{%m4jg(EiFB zTvS$#G$WBL`oRl>0rAeFvU9xTv0<|h$1Wa+1H+OdPHD0DtWHmoC=`Y5az~DQN*IXi(&4yk)pM;G8~97lvbUYVY(|xjI+ZQ<*@XXIKOINQX{b%vwZt{ zw!Qs9O*g1^OVYWbP&;}6NYp%gD#MI?D*C|y7Y@ELZ((@?#8JuZ!c^ep!;iBZN%&UZ ztPpiIe$9c>C%n)!CAL7~hCLSJG*nnF766WIuyuxlUP|&5TAV1% zrB@80qN0^=x#>U3mUU^lvq?8b1qUQDHHSqA44!6eM`)$JPbP=u9P$g1n8l}v8P-AE z{zS=Mqz!Wbl=U)e%M(^Op^2V{*v9co6RYp4p@-~aecH@t95T;T$h*{Re!_`uoP5-B zFvnMaJ!#LJk(kjQd>R&Mm{$U$ z&2RadKf`_8V@~$18$cHh7W3X-V&1-ATPf2$+m|u`7gJ2WQHW011laGpy&I<-{b>p! z`Eh0nKh`cU@y3+NJc0}EvmtKp+S?4YE{Q7r(TEib-erV6sIn}Xmh9~zrpa-ChD+>v z*iK>!m^iCjGL!bB6!~QMZBY5p**Na7ch8y&UT%sww5>wWXWz#Nw9>QPAQ z0eeaV0yc&c@~sU93X&&pR%G^AJPc9j7i=r-4H{Ul6$2?|6$kN^LthDAH^tj$OBO~# zboGna3~0SpFL$4Zd;^yWN`z2%8h^F^2%s&8cT`9@u;IxNlJn}+0XpO%$_Q|Hw4%zOB-`(GrOs@fE;*XCy? zkmXV^AUSGwSz6`RPZZm<*0{%_rO5+NtZnqXers40q>70Dj&PMs5(Mga*@^9Q<_3P< z9Pr9`yX{2TIH$(t<1uA+zIN4r8gg7m1PklNGqYWDgKjBQ%C}ZZ`|cBk1P$6C*wOP| z<@6aDvEomVxhfH{oqVnE4tK)LY~_UqnxwSkJxo=+wC^F>c;YqIEZ_(3Fe#X+^^`7k z*NB=o5h*<2hYAB#7m1iigdN$0cRha96BrrxYqV(xg_M|Jz+!$L3R2cS(x%74P!oSY zr`DeSGcJE%ak0J;FbLj1~ZP2Vj(m@?^Ud5td) z7Zf#oTyXcx!ME1#&fbF!qHMSO*VUUs+ZQ~AT}$0>$Qe(haN2=pB=F74W@JKm*Pe)^ z=GPmTiruBZ`;FH1R&Y1%=)U;50+33~)EJ)cM6y+RDCk@V^dAV{7N33V2}^(A&aqkC zm_Eon8*6Sw1!skeUw+qEw@@fkAs)tSn;Z=6GpOifFHzt!$*HqS9&FAS27ffy>Wqev zGVH|@8q6h1h4D5t@y&fjLF8N_?zO^@m^K(JaT0bpnD{>d+q zDUX`rXFiSsCpWhx2n&u;9o*RiptvK0U%n*D^k% z9@<@Jp>Ier97Vv;WXKWVtI=$nBaY`AJKr2B`MCVKm*O1W7RPA09C!-iLQX|T@|vn7 zp&~*FYZd@a1&LLnP#%dJKw&wwVwn9%3|d$WY4fQ<$T;dj{%zSo02HcKT*9=eq+r_+ z<$0L$HWeXD#RVycb-q7wW0qN9Y4O|Bi$vFmI#jrRP$)v%L=K%-K|C*NHyS+g;yWWJ zu+Fw1$yu!XE8&{E0VH3)Ge$76jE%v~G3^WrrHFV`tx^?l3s(7X7oD}V#*45Y$4@-` zdaWz4IgqLyQL-K~R9e_Su+J5Zq<>ct<92ZC<6a22nE`d1n!Vd_43vuiW~OA7+$Rs4 zqA>_xbUJ8p447!|xdF)+@*-~cpVZ~FI>pL0MbDJoi-T{PfC{(}d7JZ3p;1Jhg52tK z*pa7KDTwTX8*9S3T`Vl!5!st?M;yj{2##mbJJMrO%uwUWULL`e4TLyo#K%2ezh)(z zvCS~+CAp*E_KJBn(%@OJn)S;;Yg}fu5O6+z-y&BzG&#gL%mChkX8fOsraCo^$ZEZE zLS!yBy@Xb zHR$xlk*$dr7nQtMR)4Sfxj-iuyPcQxsl4R#`On)=M07IK^KKxs-)`nvtad-tna1<6 zIN;n20aN;+#|D}y4I4WgyGZy+LiRXmDvb%GEz0TF7;N2-_woMJ&3fg`*va|?wRn7O z7$0Q~J5${gbw+vb>_d;w*);1psB{{hG=trFLmA6w%V(PN4&%r$PRxR;giy|FZT7vb z?nw0tC)WF@C(t@Z5dE5IC)tl{s$tQ@44%HU0O%shsO30y>61;k8ZTERk>w=Y43*@1 z%;TEVjC9RiFT>1WlWTLS3GB|)geJJg9X~HRid}QegUx+cM9gow)b|}IRJWEKkNKlB z;g)_wl^Ytxo^vP98~@Y5FBe}&0H&So<_9a&25~OJDv58G>v<+2j>p!|wyAlMIT4?5 z09Qi8dQjh;(TrkEB8&KtH5_u?jO?ppVE8%GCtVHhj#T%aWXk-2dD)-n{IJ8zdd{ZS z&aQ+3CiLTSE?@F)b*3zOCqGf)``2YNSnnLd6Z=;UNj4)ea#b^BuF(E%5|o*9dqMpV#$is%b4zdd zGPgQc7!zI?5&JU*eti@`==XmqBxE_(wk$DR*8k)I-#(h|AfBxgEz#+O$U_??> zemJ5JN+ANKhjvV?9Bddn#ydOU;lz^n2L?#7#9+7;#}RVV;Uwk@gIDlp5(!_^7b|OV zWBj-+Lb&n5C(AJE-lssaI;L~p*Bjv^I&;eA)P%BfgnEW#!aw zwxPq+>pW5Flwj4qi-z2@`5dU-t!B#-P!P7Wjw_jU0Dk$oFrwADlkMh{{<=@Qj@e4? z#eTEBw>h))xV&6GjjK; zWFVQ!8N9e+hRUOdk??$~W8{MUu*`xkXl86Eqdmdkc28$6^g#jhq$ll*W`mZfE2#FF z?L>37DxCvl(q5LT8Q4d{(Jp!*cD3zr30pUPW&G^PMiPdJY&x~027rirl%vxPM%j}x zVX7$@%6~lheqwcglD(>h=;r%}E5}ZI+X=~334@#Os!t)W4|UFj*N7Zq0sT|7uw-`w zGu8CRTnt+EOkeX=Wro*Bk^YN>lK|0ay|0Z8Aw`Z`-^9>&PNsn`^?jHt^7v$Idu!h= z`ouv*-M@(M>w3fa+P?;R-8-$?U z=YaKWj#>QW%Vxf@uxK@BHl7aG^T2E;u;7LXM^k(}4ye3z#fIPA^ET?PXL@<~JTI-r zKSPkvvG%}A6d__d{jQ0;1dv4>k;>=>Ef70B-P-gOsCh&+g#dn=1m`l!@{W$9M@%$r zUmd!2iJssxiw0t$DMq}p$%kiKr}Ss8F;byw5=;`pxAk)~_{Gae&Kk`QJ%0j}%4){KpisCYd({j- z!5Ks-v&QNjX=Z5lS z-ew8!SSq1HNQubs=G>8-Hp}=lrrfapW~=)$OJEqXO$5Nuzpbptn^?y+M=qR_Gf|YG zAi~$RQP0_QZL-c5$0zTz4!X5>yDIbMo!qV94#-D(ggLi6rZr zE;^p82;-8z;;7nQ4S>`Pq&uG8n_WY}wCjT#^SdK>yTGF~okfGuIBtGjyW9mpgt|7=NF_=T5(sSM-83BptFUMBtXQig-p~__~u)NwexIl_ge&=8= z+3Eypr}CAAw@l7tK=k1jW7|^9@HR(usxUZ@_q?K23Azy4%9H?YdnM!+G3|h%GCM?DH)FISLKZ8S1gSycAu?sG^w4yu-A)8>zIn6Cv zO#=VM%_x^!a%&*rdd>GD*F`QS@{r|eUOFg3SEG!|uLtk(#|~=Af7hBpSK+}@TK6S- ztX2kLs!W1f5EtCZJm-+O`o7r26`(j4frM7nM!Q}zQ^{F+wesd_H=?3+NQdE6iFVO6 zStUu!u;Uz(d_i8gl~6Mm@uk0iJNX=gG%iWPyd!UB;M*))vRZj-*dXDs?CO+&Q#fDc zei|iOUmyul5y_os*A=|w5i&?8!*U>Z(0;U5$Ft;tz4U~odhxi8ss_7pevuHXQ<1mJe^&c>v7>lV)R zw4pO|F@*j4l81J0BjmvdmeTMA*%Letk{BbMVMKp3%mf^68b|M8Xe#yYS90r;WiFnu zt~jQu0z43d1z#{IfFXi{_bqB^nTRo9?Kw!pbQ0YVxWOBSRa)ZPs@cI6FLRVcS<$r@ zo~|I;R~Ug{04Q{Zfxycqp|(LPy(apCO(0&zfaSNiY0!#Z*=?JI`TY(;!eV>VSTFR8 zEN_y?du1@TQTDRbq5s^lx>_#ywXS6~<)0?PvzHu2N~rfgq*7t^%j`-4@({rnuciDq zzj0NEJ&Q(45KP@B+qGD$G!ybIC72k#K!=p=#SUeCCN4%t0g!Z8AhP=zai{poZ4|As z+41$Rgj$%plp@=M^Gt1Er-a^iPB{6}GPy5O-A|;nd^x!wdCq6e-_v)ZlA*`$8>BDH z#toZox~PACyvKZfxai%~A=Fesg55aF_PhkME}SjOrdHz_5kHl=Lqd*)r>u=yce@)N zzv0be#Y(P?2R8Uo1ZvL4qxKn*k89KO?KV$-_r9#x4Sc48k`9o5^PI|{0GHe*ZHaWZ z*(ejde)z#rtZ6kz{5?lYDKpYsJ4&&6uk8XP^YykrnB?$q-z`LEp?!PU%MjwriUBO>0-kxbQjb!{uZreoitNcT-a9TA>DM!4w_nXIbOo;jt*4Zlf-JkT_-?dNuxH;5#y4y_uVs`me-q{#KIz_ z?@-xgEi*$q6g7sL0X@U9l^^MeVTaz60deMZ(WyR+XZtZKw~h&6s15ib#p09dnp9{! zTO~nA$9uw>yYkwsGSiJCc#qeRG4*m<_hg{@P}GThZ}>@C_c9>nYq0Fnb-5>*L)Ji1r&!3yxu@J&WtaRWCmDiAbkA ztl~G-KPQ6=SBf%EIy=*ksIiZqtZezly3$U+t*!|sVSmgpjHtF%vwH7_3_zFZt0UD= zTcp&ig8Ic$_RBuif0_U0^oT8nlC-zC1SbsGHevJlC>$P-)_UX4|DB?SVQxC0ZM!M7 zz7XG>j|}rbXAk8O#xOB?wU7+{5?dxC%#$DltsKF{r8m_xBMqUDI8i}+U{oABK2#4q zo5YGjYW3xCma>kUkaqlx6Ur9GKt_+{yFc6-g2x#S2!8Bn^~*fR=!Y3qDqkOteH#I` z&}YxOTtiw&9Bi{EQ7a$*e62((*Y1Ew=rtfZJOX))iB5F3o2U)Pu2T+R?+CpXnn!R2 z=^6H!Tq(}a$y+wty9HGTCbS9$Pm>u;Jn{j6Ncn2zlln^y-(f@!bDjSX-sthOw*9RTz}6ldsYwX_jpj z@iU2ht5(Bo;+CGKRkBB*M(c8n>wNd7ocFMY3iv_F>wz;8JcnaC`kfzEAPge2trDDM zf7F;dnDrc{Qcu{j$kP=fh%DUVH)16ebkH_YoK-dX@#9N#V(3=X{KT=701|+N=bEgg z7Az+z@|%~C!rRs951+dS>+IsUmEx^-576CLsL zwBgO2NmYZ2C6%>>d~VMeBUIwP4Su3bhi^G7IFDSmDe~wJPYMgn(}$AYxlx_#le%-! z_f^-WE?3GYLwfDWt79+2a7Ez9FjW{_6F*A$$xKGv@gdJIdYEFC`PVK2c%2}}2&M0V zvR@X`uq1{CWamo~2_Qu?mYN}4QU8?NqTf`P-)j3Zea}<~#-a8O-(l2&tQ@Jd`DtJn z^UMd?Tl~iVQgmXJ*4S^c#45Jgl=RU50a~;td^eqP1v+f4hD^QL- zJ@c~PD*QSa$tLrQ`4c@(z*(Gya(uEP`Vz}p8XL33YJwk}x?TW;(T!cmyHG}q3p%~G zrs>Ur=~BWzad!A|0Y=~+5SE|6(A#h)JA}{wnea~y?thFn|rmgOVWxb9Gv5lyK z1*Z`jYu*sr-=7x(eFhg$E;7KiRh_MS8)xy$945T@#gm{LI6m7t*)Un}VT!e#fp9+BPx^cal5Vb-zd|ahZ@00Ry>ytU-7PdT3YE!;t3nf;_tGlD}$j ze)n|&P46&$h{tjqs$mqag|J?@EvNQ`JQ7mpw*Ju+5)xtM0&N3U)FWR@RoUspXd;wC zX2pcp*b;`-hW6x~4r!u@`qcv)o>7A{7gLZ}9N-ic6Clv?oZ`rauFz61Aft|y*?mK- zobV=acEQWdoaUPrA&SJ;%F_k!?Pm*ey?;Cmp<}17kcu%?Y@_dF(NL-h@~7|fOXx{( zk{^J>X&hvEnjHiA&WZ)v*yj$`tJa!Y$~JwAqh)Z0tdcKA(4cQf#1gPJMO=+tytc|g ztGimu+9WRs{ixZq;%m67w6z)$sgghDYyxi2Ad!=UOM|W$z5!oJrEZQD>?ri2LLxyw zk+_yYQR9Xh(c}55#ckSe=AvllY9%5L!5Sq+DLK^xu$DkqHS-2SZm5_<9{d}8u!vKH z7wzt=I5tLSi{OHQy_2_Fd|1Efht70N;h=j3ZV$6*9t;af9)8;fKN=HHCZ-#Qg5-zv zn;iBhrho-|)|#6qVf)8hW9>}w@Kd+w;XK#|_s`AQ&+_h&u)ii||M zX1W5oVabXo<`Xa8$|rJM;d{?!abC}lQtK4arO?iejfWScsCS%Ap<3dO&J)ySS2@kC zz!P98*m}#q8nit1ZmYjyA(9{uwea;7fxSIt`?Nt&M$^G9j?kY;j*+uLMZOSO84lTU zLQg!P4{)~}`pFjP5WWqTq^U;vYXhIYmB_uIk^~$XdxzN8B8$-1d}rjY#JD?NB$#SVc04*#{IF!>dcW#JDm+T>&h! zjV&X;%S#RWqIzXPs|QRz?vH&#n(e2ze-t`7z9E zLPxzJ(pmnog?TYt5rwT~&Qu1scn0;VJ@Tn*;{`Lv#8ici+Ek}Iy!Sbu0) z3@6G&%&aLvT6XBGFBFYYdU#_qG&ISJ*4}}5IO?9fc?)Mm+mo8rr!p8-%gK33waxB_ z1)_3Cm$R&=^`xKv!e{NgF|UHx(-?5*yKlcnkQ(({@`j4>Uk4eO=L}>sUxD!(IksIC zV@cBFxNHoPEyQ2C?{5&*zg4?ziu8jvx^E4eoDnyLuBdYc+-V}G~LaVh!o{JyNwI2JavqM8Lad3($8{i3d zro)1rEs8Lx$YNNjGz+Jg;|5&!RB@|BvqoDB)yXc|G{rYvLpf{nSg6;ka&tn1#sUoKbAxFC((xY8dKj&gj=96Lj? zAj~_J#N8;!g5JZw{`{Mt*naVsX8%*dmTeiEi~7#X(|k;NW4M1FTNf~K!BV4VVzXma z_QR?G#q13}YHd9w@2*g$-3L%TuMad#(RLmGtUZWuX1v2yzsBYL!fxNiwGUyaapQ!& z7^Fg`)YcPJ2gd2%Q#i@K8;VC1R;U#21Kx56Zg1$)8`QGzF_&Snf$j z=CR4;W~){$JNtJ1m{7sEwFF9I!{Un@Ka7IT2A;+?#{QcNp-^&K$F%`o&yoyJf1Fk{ z6?|V8cVJkGYO|xX%D!X3JPdSnMlMKLiPjy{V7myhRnc2p`vL%*0OS&x=!a!3n}*hW z!55pMKi^Q)Xc@s0n~I;)`jmiE}BT#SkG18@^O z1nM#YijyNjW28%}#2&OhKD0OLNgb%q5b-gHHVteJdOfIf-SwzFj#6`Xam0+4!<9j% zz0+kj{d^q#$3U9)h`0^`FTy)LH^f(xqN;Vfc}#Bihj(Y@FDbnm0y@4*{Zx)jBJ9L` zh5p@t0^CevKqcTLCFik}k&JddTz4qSRhVC$us=>-DE^pZJXsw=(&k(CB++q-UY!Z5 zR>5fWGCN^Ih8vJ%Zl09+y$bdp(cZfr$Yqyb!S3FYL;*$>@aG%U`-wV3Twm3o``VXq zQO*ZT#-7LaBkU1jL%lEqmzl6m6()-5U*>vmbA*EsVXl9Wf_h(7u28VMi^tPo0NS`S zB-#3NF8i&3O!Jkz&Q|4A@uisEM?##8)oVtyo=SF}I?TSJF;L)wtT<{kIM1V_ zN#X~UWBA|cHg|mA2S?MPrx(D7f3f*vyNw1?R6_5q8B=skxGaNCU6__*_JCP^R5$q0Ny$o*c`rjhYb7UFsINUgv{J$pg2}cZ5 z0_$2j*1zT`{K?VR!R3s?7L^e^VAlc`e#NGjm%h?1$Z9C4OP<7l+Txr+ePtBvR7{0`y5`vkn9*jEuMI<2n@i63L>s5h@w9T_`^zCWzVxr>jA#xmuAd-}>{`vO zTz?aJbbm73;>FRcg5DCl*KwpiA8;0d1+dZ`GY23}hdU&kth;lajXhdh1owMieGs=?Ib6Nnm2PpEj|G+M zNpo>@%Ybb)xP-m)$ur~>2$d{8GyU0*j60Mrg` zMp(OidGp3`3&`7!dWaHA3t-H#d)(Yu3hlZdrWu?HT28}M@XbykT*|ITCrWVd$iFGq zI^TrLz7|NEEiU(5&)wY=gfQnzgnc8PV&FlDy>C9BtS{=#-?307BayW!YwHOFmelJZwCQS{Np3UrmXuYw%M$PVI9$>b)DR^6lj{~dr_@^%mKb(q? zCT~?6zOQ5QHlAK~9F(*|u>)VDQQ**x1j*LFytb%Y&;)}$Vc?m*WD^jt`K&Lq5xe4F zsc<|e(j~r<){JlkhI29!J>y;f4nqPlLwj(T^eSQ;|Yd005zR2-m4)Qu{sw+ahVAF{YP z8*tR{XaU0tRq)CFlYZuj-d&v&tF0*6nrSv&%~cEt+a;;4Tcz|0#5K_1E;F@HS@ry+ zo<@9NI@!=F%;+y7(moGu$HrM1N};4($0c=}L%KSap`p4pp(Be``=E#il{IqN6%6zYiaamY;CODFMk z%Qz^f8!)SBusUwWk4GcZxz1wDzM(#&mSRgoKWSGp-MynTr^r~oJ?B)fpZk>c@~3v? zhoIel4<`SeaYr5~#s@Q+u3r-vDt?(bp@BPH&(m-`APa=V7QXFWtRA{h82l+!P0=QM z9VE9Z}Ri~jluHE z@rFZJY7SVgsC#;^lm5mi$lZe@8#LM38qNry8yjsc476_N)hU z^9g*)m!?u>GSzI2Wdtg3U)%- z5sj&aL=|l0@FBIFr#6pEDpOzd?0w5F0EnMT_yX&r70Oee*;?9Q9L7g9DQpPhYe`_a z3j2s<>L*;bNS}qm%$(%Df-Gt1`crBv;x)p5Pp-lrPH7xjHV0W4n}(PK-9AC=LrO;O z^E`H-I+ZN{%nb!lel8V%WIG#Ot}o1~FJP>N&D)|9iob(untJrB535!^G6X*NjDqpm z#{njpB5HU}%?V5N4c8pM4_XZu1(Q=Aim=tY*OPgJ|6z!6PYuY;!hz44po!n)MNUG{>vRlD)G&6pk&Tr7o(Ba@r zw19p7!PGQqeO39AvnL9P#FJ^nZA)xYWa1o+u3j1Zc~`WkqXh2aqKSgN;26V-5*fx9 z&Sh7lVD{t@?fHprup3S$#H4T}=Z%dIHw`fYAE~{q(ClH(ppqukMdDj477k9XE*XGm z=9EIcmi$Y!j#D@5ENPK*+W7~o=}{L^I#pb#nB9ybl>lcT5$dvLzBlpO4H@h+q`KkN ztRR1+SI=v8#G6HO4RKe=!u)W7$mf02_3^6qa&#Hw=Km}97%jR9=eJcFx?{^C;)tW*rz=6+t6LtgHFy;ohdgzd#dqH1q}>Fs1SKC zMslht3N)c(Uim!`sg+Bm`S@s_#HyoOoFKt6xeDG&NlnkVuKr$P7GibOz8-Mgx_1-i z8jkU5YQd!&iiC$5oiszY9Nj5pg*zt$4Vl~>D;#U+;-eU#^u$ePWkAHY)iRtBpr@88 z|0nfZPl`vnoqe0Z;Wp`>T`mXBkU+1LvN6b-kL9HGNKp79eP&}%A5kC_JyT{pCqcF_ zxi-42;}o-LppVqY(G+guM1x!(rzDjHyxmu*RRO95oera=S9vY(fgVPNQ4hJJE)Q;Y=(*Sa0a;shu2D|89e|Z&sj5hSQ z;Zplkiu|qTpzz5&R5=voWwo%mT#bCgkaX6N0qHTCvblg6WIh~_p~AT*`^~8X%S1^y zwDj;+zH4${DZ7d-OP{CPBP(2KY?uxE^+%*%Pq^>Hp^c)om*}m?j$4J z=SBgJw7rZ7xv(yZfcHTHLoFe+4d%1|*9^`00!&WHX~L8PYSkefekrW_Uf%cp88r_* z#^fnHR^iU**$5zssswwnXG=+HxH&n`@zfFW4|y$_HW)W8qvXLWgw(M-oMf-zK*MK$ zfg%lZoG~8m(S*$(ix0e(9e#cAL+dq~c-g1P0ec+TYL6oIiDRA2)veT;uB0V-t=@7M z_hd^H&UAqnVgoMP9u*cYXO?Po$GxfdTjq6LO$3RMmm~nneRFj7fjU8-4iApeUhtjp zglu4Upfow4WX0gm8m0X*R^wclC@LBKTcclj#hhg&L8EGNoP^yj{7zsGR}BBe>Hhxx z=cszcbVZ3RVli<}u{GhtKr$yLyK}ccsSndm(!p zG0SPu4n@MH;$#aNLw5J=zaw7S%AB_`6Fpcp4mx0t(4bt2^DC;M0XzTq=(NmxpVtG0 z{b8a5IzsnclWn^CzrQH-DU+8y9u7_i)mU9wyzttUf9a(yC>7tqxx*8IaVg(qYiZw) zkGfk%$60NZnkg^oRtZ^{(l{Q+SgY^J8+c~rJ4Z{vJpVv&<)rQc-6QeW^e6C2I28s^ zcy9xaIQAS9hRKY$F%Sn48ZiXSDqrCjn=)tYVz$le*srvB?O5zLx)Mk<5TnbQPMIj} z)6LyTH<=d0a%cq#9hBJsSE&1_nX#tZ%u_%?qK&PN;LmLeMUY`qcE0jZajZ)t`}L$zW! zNj6(ybiQjW7m<;5&P7PUGk@0}Q zI^CL6(qhChCoR6&Yx_4letqeV?TmtzF*{S+fCDpyEIzCeaKpUs%_u)ukb2XQyf%Ni z=+*6kdLQn(S|yhWUnJQ<^@OrQi%XJ=J)m;LAP;&Qz0Z~E9!w_$jdqr9bzaPC<J`BQ>f5XH;#BxSuEK#7+(O$Z2aOX2xpbAM>o+pq2FA8`n(+#tF5mS`md8b z9Y|?WlZao#dvkv3j&a>uZ|+ZgCKH#Y>~~Br6s2AiyFzR!(Y38K6-SSL#_4w3&5e`! z)PK2G+_rBJ)Zz>29huPlY7+pOE9zO2L?l(?I-%)JNvYZ%p&)&fC@?IT>ns4cZo@*k zF&_#pf@sCiE&FtczSKPG72RVnIV<(A@w8br!SI1%@MSa-ccnk+w+O+vzT9y1@5`!fn2u+ zR?S1{J<0rdqsivpow{Vf<3phLacQDzHVV=P86^yE2hqX6-z`8ly*^n-_t(o0RN!v&`UGl@CqUV*f1;rs47OHgroGj5^Z zp;rhhvt}(SF=HkHSeGW1j>5~8W(zTiVw3M1?;17eKw`dFq*~w?VmB}yLC?N`+)1A4JdLsOaX@F^HOr zdzfHl4XKek1Cu;NgE9c_ccFN$V-s2O=O|_)ShHBJ6V>z216KA;*tgJgAtBlhMKW7Q zmM%j-^&J9^L7Y5G;~&PuW>_gKND2048V31uAv{ugo#R)0C4bIIJa-t^-L!@T?K|6uXl%-5w6&eA72pfA_+T^D4mQ>t58P;f5zsqXe{1wP-ZU3J`fR~ zX^_eBVAfzg3djJZ*;U&X_X>)O!oklYZsebjOLQ!rnD-Wz6DkF2nY%QfBqtCYJ6igVkx0E~NZ2@(Rq z-Jx-J=?y^=Gz1Oq(AbZ=Lud#V++7+8E**lqJ57QIPtcQn&Z+yb?|r*(qej)L^|OGJtZc)#@0n8Kp26qHn&&akDdOJ>fzeJ7XvSi2TmTa^<6eA&IQZNkOUv0bL?`18!TTt%F>pw5ye@554Q`Gdp4$pk=oG{^Hu9O*+8^7- z+N~?(9!N)dG#I)$zc3tnXfhqhF%@yti9({+-~Di>BO=wubZY9@-nXe1pV_RM-2zY@ z+(V&-^D_2ZjYjo_9{cFCKk;jOOP8lV_nozQ2r2loXX{eR64hVZ6^&1` zqJ;fzlUsaR!}}c;h1{d}$y7h4P~AGDxtOEE`6L##0KA&0udCg93yDAMRXRgH?ZX-; zf505w_#CF;r<>t8B<#C=P=S8!)s?<~aWo)@n%w={@nM(JDk_2jvmBg+&Q;76^JkQ1d1g2_y){OHZ? ziLsdxT=Ki&6~PYJ=Z^MsLzbkKW9QPcYvz(sC%m|(8A#<%wtMd_E$^h!p+cm!1 zSyy(3w;jbr(&A=uhfbP(xl?3pSD^+(Al<_}O{RLtve^W#Z@+X>CJQq?F+3*TlY_5t z;~elDA`aiT=Rb7@yx&{|GS zeNJmcC@Bcvnq!fcS>r2CN$yL&AnFXM6VeLOdi!pjx|O7GT$rZ`3XnmLT};VH?F5RY&RlHlsn}|{-OH!6!o=d9OzbF|4k-=mhj=%5Arw&!)sn8S6|7G&_6PYS;%P~^o(`rtc zsZt^3ch|abUEztN9 z4P2F*jjWJXgH|dGgu|c4bM%U(=v`7?zW~R*vgbyvTx>_^C3$o_#nTM#M=b4sROn6S z=jS~=_CoDgdIW;LKH30=-&#W4bJZRZckoxx?$$z36|tM#1^~j7If7Jee^+54WAJ?~ zhnMMQ-!f0I08R&QzW?G7Km9e(M*8zf@CMvO*EBbSf4VJO?500xr%esb{;~-cU7(q< ztX3&;9+89OQ3cG+RO<^%@!|gEnLBtHpwuC#d#12?_{`qC$Z|A0;@&fQ)>4_ofeAFf zd&3_Tp1kW>{i^|~*C+sJ;AJ>y@vG{f|o$;jBIQETWt;jl^tImQ~ zh+EB?dd`}t7bCm?qea4p??DtYGD39s>XvweMr4W7K)690NAqowx5H9?BlkhPV*5rP zp=(gb)7pQ1(TytEI^r>INyFR!^noPLA@J1T%d4ZNO)is9s>O?nVA_c7pr)?1#SON&k?) z_6Tn(fu_-I2il+4zk{yWrmr4j8diJ+`mbGy;yWCDmy3)%>D{7DUvp??ImlcGBwxj` zmU`|u4Tp^6`r{xFkvF*tsw#|E6vumGspx4)`mo=Q_ej`$i|EKSW}j*4#zl|MXvPr* z;aXqMGRY3RiKvTBh4`w_WQ-?$&slNGuEund0YE!2A)QP0&+svUC4p+Y*MRbdh&;le zZ%Z*;$#YqiEObv6{07(X2{{&OKX)U1?(Xfs`~Ekz%=cS8XS(R5Nz=p?3=6?-9LuzX zb@h0kUzwL5?U=T3J?YcFib`;c5K{`fs=`Vpoxj+`2}kpqSRf`Hc}8vWx&tpGooSKm zfS`{raS=F>KILeKIWgLou0Jj^#J~P%iNhP*5B`-v5#aF(Yk?>i5|@08v3f~Q)wSr{ zp^nb|`&$bB4xN#h{;(S~U4dmbaviE}>Tx#t!xIrZc4CLUIuwh-03(s=oXr!j-JkC6 zkx#A~R__bDx98~xIc?!8l`3*KJrjiF0(Hq=M-7@BA8#)-g72_zdNi{}DSU5I<^?Ls zF0NL`X2H|Ku#rBG`zsV;@}x$p*goB!m8%ktR}Rf6u>?masP)09&qsC2c-Ll9G#K;F z4m`Fv*x9^mo~#&cPmPExl#?0^VCazwsCgWTb&_O$$UoebWxBCUhgC@|j2}I_5-g5p(Z!LoygtAY+se>>G8Mpu*>C!tK& z@>+-itAS5+;v_3mXbA7EK9#mVKJS-4_SaXgQe>276IXa2)GE}J+Tq#!69Va_xW@oxc%OT^f5=(2@+ z^oV?Xj^Z~T?+MO^%6<<>)f{md9$irNxy-7G-Bg~@Urt)Lpd2LhBU0HJ9!}*^_>tD- zP?uT9*(A&lk4ljh;w-q@AxN(=loMdtByB){BDj(IfTQ+)*eleB3(Ud{G-o89_7)>e z_cpVNj4phNI)ND;U3Y|Si%=>=+gR^HO7wCLRb~tA?cbz3@q97FhZvjxX05%!Z`r&1 zP_v41SZc^`coVjajWuGBzJ~vf744`lVF2QARJkd}nu)x)>wLOp zEh^OMv`NHtDkHat*Tb<3oP#PcqjGVFB3ClX@*~ z99an#@lq$KU8XPKQwSmso}Wi-39@vnA|v1he?=Ce-*E#lG2 zgT+=Ff?d@Fa!7!ZKYQrEdBVjk>%)k0tUz@0Tx{Iw_1-lU;u{=^zRD95hPA;Wub*WW zx>HESgxbtJGk-FX_oD2Id4)$q*i!%iIg`*d079@Oq_)a@3~l1juXg_d`FT+nPZWd(GA zY-8;*>h4~T#48jHJSc_-RBh3|JRoXf(V|e+Wm6@_L%Or&zCceA&f2-9{w%nsHPog2 zMr2OA4lV-fL7M8cRmiE;GEkzkr}%CBV%a+|>1<{1>7A732Y{N5Ut-8t{1bNy3RJR_ zgx&*`Jx>h0%Jml0@nq3@^%`KeT#+~SQP8%d;;l+;pO$ucNWw8TTQ846r6^w`4o91k zt8#t_hFBZ}gCaON`eoaCgyhd(b_C$05vN^+Vc}#gxw*68x}&j1+(FL(1gL4cGOFve zvHIy3G!>im@}$Tm7CCd$h$2Yd^|65KU8vvXPCW1ql&b&mdewb35MBDxsoVKbDV$ZC zo#xC_o(%%h=crhsshqUQ_kVAgFVd^){p_hGM268_`4;VFN9_>T1a9u_I$#{|Fa|m~ zHz<>1B92_D?0pQS<4Oj%VYiKQ;=+I<%787icQ6fyOu7j^Qe1y&C#UoX4oV(YtgCvu z6QF>%Gjc%WenR@o&#J=ZgTuYs?+ARjej^b20Z_N9y>l$LewT|K8lGr~>zt4UYk1Zm zPdJo8TH|qW18f*oJe=;G?)%_3cpx$rHB&|Ot&L{Z9w9UgwbETkMz?+LzFikp!90@3 z?MxgzEmOh|+*4E6RDIvr83585JW81+fGAh%n=Jt$-7z%L#*l755r2sSQQ!CwWvV-= zmAOS-aWCgVfx;7ACINAe2{6ds-K*e9)yT_9dwoSi+$6RGg;iTl=C^y{9Bof3a8Ik# z7({qFSEASMPeu78onQ5q$PDKFMRqkyMq8`dFI} zV=CqFn^pgL7!5|28<11nnLM!%p0HK9$XkE12w-dIX_5&`K5I&zL^nDE*merN_47*` z=G|)hB8fy95??-qRQf9-9Y)$tU2CFh7rRR#=w?LYSMdzz34IFkAIaY;7BV9~abx)l zQTW@pDqL`N3^&4=`XTb_tqQRZONb5)fjmw(HOP3+F%xiB#hF0ORCZ$&+u4>;C zci^MUg%w)A+(End9q<>!@K ztbJ$TjX!OvGrb&kRi)%GofUHO#;Fpzfu4qAc3S6@MBC=fk ze2V;BLcF4)0zx2pUO@pRn3NDo3M%R!A`m(QLNWh$5D`Tg0{)G0{zEbp77_Y~YWcUS z_iv7Jn8Yhq`jj%{<2OgOP^CllMYZQR-WoO|wmpXc0O{YR}& zSN-Z+)z!Va*XlmFfysM-iDP8rWM$?dVUi-zAz|TRV%SNq$A1U}{?^RG z#m4<_M|RHtrSN|UF_VaN5 zyZt;|JpT^nVfp82V&&raml#$qZjOHz$H~n4{}u=QpTwNZ9DnELKgDpfvUC6QymPa1 zv;9Lf3ky3N&p-VBGVcFu_1|W(a{QgH|HuLS7i4Gshe8%MRyOYcbY%X^IRB3Le+Xn@ zW8+}?7h`AtXCW+X9Bl0W%E7_K$x8Fj1vyz+{xL`_Y@D2&EQ!mILOR^sEF}Nfn54x> zbiSH!v6z{d8u6I&Fmsx*vT<;+v6ynOnw$T&7g9RZ zE9y1vPrBJs%oW}+MYk>}h~YX#ew`T%JPJ4qGh3ZA&MPT^s!)^M*fZ$l`DBc` zX;0)9<=9ZZQdEg(3S5%Ze=m}4AF#6MywAI|fOntD#1bS^faub6R@iloljzwq@~Q@-xAtIwBh0SOZh-Ym{}~@14c+~AU0||TU}Aa*n#Kq4 ztva(YH@CD*>i|dTzM4GK_^Zpz-SP3iHMw=bKh2RPi=bRwYOCw^KQ=vIc3{|DKA16B zTs|CVtS#W%h{|o3*rBaB)9x`tJ=Q++u*^H2f71d5~WV#8ojN5?B*N4yFcY zXZ!>VV`JGZpr5{wN_Z;oX5(Uy*tmdSJaqT6XwSsT)B*&_uCdwC9xTdrJxGR!HqK`# z|NiC?uh-IN-xjgWZxB1Ii31SIT=c2w`@n7kSBPOB2T+txH5lWUPX}@nBZPX_7bWK! z4p3gOtZ{!3GihAEcK)e{oRrURxsY#VE+AB%MW69ui8cAb?~(&q^ySCr1mghC-hgR| zfH7#lf1}V)Y;F2m@`?fDfIvYvFc%r09=^Nz0L-u6F`;%O(snRRrTd@cXZ>oVGB~rb z@guJAGckrp)5PHekMc9eYIHyVTE1OZLxZJ(PzlWf##*8llJM?+oaFrEUJ*OjLdYq1NsoQ}2NY;2jm&x1q4z z8w1PGS2e;803seAzMt?>RX#xG1`>Eh+z)E_bOY@Oh9mYt!Uz(0)HOZS%@+19EC&L0 zEqK&dJVt!Ct@5xLcH5`0jcg3cO!FyR4g!_@_mIN-X4okJj{6}@JQnqli)=plDPcp* zYQlFK>-o6|J3B-|^lVA_kLs#ztb8}yOuXA9YxMbFu@JBM{AEV3zruQtl4v1J zfQtgZy_)7-mgYV;)n56hGKPmZDUeQ8&~y7n2n=%%Smj$inkNCRkU~)X5p$(m3tQcC z%3>-Ho2>or6PpNJ1mlE)+b`axOZXZ3rZqfpVnSc)w;JNtC&rtxq1~wh6V|HY;_5DVH@4g;UfFtgY zaK9(xAWF%>wqVX_ssG>=a3Qy!((223L~X?u zwMVJu@k#Sk@4r>lZy%;q{L!1eV^mV^owuacK@A{cXpHITg>pxyAK62|Sma~mfQiA_ zKJ{_I9|JBS#t=h^NszsvCNk4Vb*7!cwuni#2u09eg+`S8^nS%|>bD(!R}Rw+UdIcG*opc>NG#?@eNQ%d7Kt7e%aDhw14Mw*v}MOPnF?a%Oe zz-EU;T+%q1mn0E}bKFpg5}mXT0F0DB5B*Za!~0^KG~2tMtew>QxpXEKyQ>cU#jWS} zzu>zkBYl}DLG)}qs}@3ZsVJ_a{q!5Xl+*u4SjdC^`{H#0Q(^EA_rYna*7D8CrjHCUa3cxuQyiS>( zY0w1MoySTA(d3LmZITHNIt63iBZSXe>zhxMM!tb+wBJ%Wxfx<#PiD;COJxiZ%lwgr zb{E04xyO*wY>;EEb5S2E$rTOGL$yg$$a_e2T~UDUVMs0!nhz~o5873k(HmtJRj}cJ zk-akH=8cYowO!_kw6DT>A^^(;u|VLUv6>S}{nWWUAS#|{fh5@y#Epjr_Q5H(bv0-; z=K7Apq7{b)#TYBj?>KN`0ZWuf7)9wi4~lp~N8^Q|pt5-=-LQo?OZGWg|7Q|0W;kP{ zOxz#asM@A(W5;9q(vAAodxs$g|HfyB*{aY5NCRv4=KjW59e^ok=Rpkq;v9W? z6JVE0$c5PoEW8Jiwup+3{qEc-lhu)0VUcdnl5JisF{@iuC}-wP$yboKW7W2fmASn% z1a>==#+Z#~u_bwSxXm2ppe}u$U%nHfgPsl{yR`4z@O934A|_>sQ=@qQm_KBgAhmbQ7zH0as8>4*3N%vkkt4+?4fxk4t z-7S%&-zS7;{$sIpl3do~Vx&*Ot)KvbR(JxJew~#igdo8OA842Zv6*LR@WhV5HP`bL z);)c0Wbj@w{Sp3IkGd&$z~mH%cpsO-ir&A8R}M{wOg<*0v1P<~aPxwcH{ZC3yB?E# zsv3*PLM@{Xo(M*J&fFC@nSMi_h#vieR?0CP{ThEHWj(+uqef4&aimW!5$jx8dRJG+ zM_1n=4Ln0T6F4YSlOX3A`P#vkz^B*qaW;z9_d5;~qlDQ90z9XK=}DrK+Zy(hrH(l*N0~5r z{6eNttzvLAs++h~0w7t7@;QB96KkEKRvUrJF`{HKqV`<6-13wJ{1X~k7p>0x`jxh8-pTNnm-^ZDQGl@ z!n~$iqgKz?Rd@sL#Uv5(l3FGYK$;pFJyCjGfzqgK*N!EfX|KoX28(rs*oM)9H%=L8 zYE(iUpOe!$k=SN4Hrx-^>mtS=toGIJ#{hOU!M(adO*wC_t$KOYlDGgG`mF4=p9w^R z-%i;;!n#nb&1bw|n@V)cO?BhdT!RoGIp=mRHC(3oUAu>^S+m5h`3&6V&+2q*RLHZ^ z036r`$M5c15~e!V3twBX<1J65S^DS6$rvaNj3@0*=o`=3$bPU426dS2)6)|PI-v+| zYxO74nTWhwrdv0+hKiFxql>&Wn^+H7!(yPR|JWFV)Onn`MJ}YR$jo|+{IM@_a1Z^E zThBZuB{Mg(jH>Y%E@|68d{&NHA}oJj284z)Pi>Se(c6I2AuS3+bbAdcvD{o#Ntcwo zCsWRtSLr?)V>2H?(gqegODWq(Z$btiM)Q8Zv4VsNx(hAoYbapxt*&x)XkiAUH4@yv z@=@%aEGPvSl1$?%LBNMnTgueBvY@U+zc)QLFt-k8?7Z~L(Y-}b&+j(y!RY4rq5 z0z95PJo8Opo$mE9;08PC6qggXe<6m6K)3IdqjXfQglidKiV?LA_qXGkf~tp_Sz}F`nYP# z)eL_M`5UuaR&sjEWoNqP2Moqf+^2=B6ctV<>}-u+q)W5Qii^|ZQ*L{rf{ zORvPg#Y*5sKS%V$FbP~Lkl!A|jug(EN&RfWg>+S27oIqX*}W#nGS`krqRP7psLG5< zX4OL7kDq=l^A$zLS*5l@Xy4&EObQ&!?86=atH)qdwhJ|5ZQ`3)*ChyjqCt55p$9OS z@>mBj-~E}n{?h0e;E)kWfZmVSs4$z&w(D6`SqJBK1ZK38;tV{JUgMqaQd%5Uh=si% z6un`RhSW!kqEvoSdhn!K%NOFjB3q7&>AaM?UF@Eysj4RBWDBU9tB(|!vtplvhi=W2 zmzs81By$)R<)KH%Z&Jy1<~LF7cvKma=D4*?r+j^$MW&D7k(zE=VMaqh|-iP_tCH06Y^$?6*smPxnu zzYZ<>a$J+c^{_TWz=Do{cq&?qdn1?M>>)TunrdPMLIYbd@(g0Qfa(z5?~92oTh_cE zq)-k%uxK2??vosCX2FYXuP%b$+xBoyZ957|v@Azc6gF{I661AlmS@0oimhVeil+~T z_~BA29jBQ}YKj_K8+aGk*I3{E37nCWJweYo8FiT%iQeT@c{7{AJwa2C{Fv3vTO~U= z&5X%kZ-5H}*yvT0rSTOij@V4H{fGNM&>6D`?9$4deFAO-ci+l7s&8Cs7zoEpwLY3> z>rz0}*WDC?0#C>D`A`48osjeGQf>0|^sSv08Qed;OxV=msC7u~v3L<0bmV!GDzEO| z65TvEoq1<2*`UZvmd4F^Hd&?To$=vy;TD{36$81kAsZ0*RY=Z0#12#Exw0vogkqxf z4w!A47G!+EvFPfsU&t<+wqckKU6Q~1O$=UNqo)%QrY{E=YK_&a;ifS0B)Vp~H^3{1 z7?$V5op`m{*8pg3*$AKP762C};Y% zKMM>$fthMyaNq6Euk>1@5LFT&%JG>mp5M{5+I)Ekn7Is7yQ-@=O%yt$e`j^1w)f@+ z`9K%hMTYj2L8@Hcqw60#jCUBC)7-Asv)akpo8u6KGSS0s_o%ygiZ}Spd^iwkTFhY$ z)k%>tLBXsvKA<l%tT7gn+|PBX z+Wp8=VQnv*b92OkH@LWA-e~y7b3=!BP4*>B@_yx52pVQ~%iB@-87<3}ZA~L5n0hhL zTAF7-C9PpWA_!5NA5+6R{@yA@5eleyu+)8{D~}d(@xC2%=|2zZnntu&yg#^E7HAWC zXpo41Zj3?q+Wc11?bb@cV@=S76W*LIkl4x)z4($bS@K&d>o`pLm3zp1T>#Fn?HRwx zu3_v9J_am6(VpJ5h_9V39&Tr6{_ReuOMY?uTZM2(O4IDOK-8eh%!{9SXRZKwg`#bf zWZrU#Dy}~BqLWlkWJa5jOAl6;CJ3Wy<}Y#x`}W#YG{oxa+PfYaxH2lFSzzxs9UUat zwr~04G+iANCHJx8J=07)_2CVzR)+#>Dp(KiXWsGz!nFV_qodo>`9aPM$^!$0L-wC(wfSJ_>R^m=h^G}LEc!htcAcqQ zr>pbjv6R!Asc3!q4FwhYbwLFfn3KMD`oy-2)7{_3L8$}NjiKggAr6sEt{VcTYmHuu zh!tFgps-$4`%pGKg%#@g<|aI}&LxpcHomt{K~`g&{FL+WpC$ut6(X>iB&wz%`6!4q z@oI5=7sutqEz-2-7tNP@LHpq4@;d1$(YU8*z;t4Kse@=`TDU#aO>B)}qqD}%of{T| zY-3w|bba;IhXzzdXBH+NK@p8veM75%DdD{9A1!rpy4OAJ7c%k)H;auul?e!X60Ob| zRhFJlaMfizrWgV$Z$(N{ze9gM$dSL#5f)&%Z!@8NuZ}~(&opQ~OY!6|q~et>r+}ye z=jMsR7s8knPj<}n6$y@6(Dnn9cDCE&Khn8ZWaJ3))>h_ITVPc*DRqb-OW{K0@-A;jodzuvJ2GNh5~4 zPHk6|W*-Gymz5yS*NmY%SZ4a(*xw#Yy-JfqvY=)4_QbYCo+UO@X$kX-jf^@pf-g4d z`k0?#k5l32gz$H&(#G@6TzXm6^=wM5&DS&j0W-6N~& zcdoePdkRxQOIARC<~VJdu>u`BV<(Q2rMSCKocy`A6T;kH757isBI>AAy$ z%veUs2^y*3(Uo_Sgfevz%T)$Kr-Sd8HZ1{6DUM5&a=7d2q!}fer!0S8rq;%HyuO`O zDA(Sp!CV?#>g`*>M=iXRt^3}B5S5;nnEMTev*B9ck)$FA`Qq&lO(l9V_pScO>KHPJ zC(ZRzT$@+RCrw%?fzDzKUVB~y|K8)ki81lptDd6LTe3il3c^B-Y&Qqaf4M%^`5_f( zQ<+)acF6?|C>e)ov7V)iE%TknBzp(gwJnn+=F}M^#pR0L-Ij3n?s?qG8osx_7oTDc ziVd}{RlQ5&4SOx$U1D1;f$5$??$xSO5#(ekFI6z=s8?kz`rG~%?or$xln(^))Y^!E zqWh{6t7t6HO0U+S{d^FQ2X2Hmj)s4U+|L>{|4Jj0dbj)9Cm3|og11b^i(VQ|H-Bf2>gRQEi@ere|U%#PmnkvLlCp&X&?#`~oX?JQ_aRvwAD5^5* zijWj!7iqgullQ>Epuw3Ok<*1b_ITF);TW{y$W9SlJAbf($EA&5)x{wGn#M4FE=T;m zy;h+bFTRt#{^X(TS9)B+d+;A z_#Pf}2>eWAu_6X86m&f~m?622)a_pgE`w5FM<4Q4?j>(UQsjR^wr*}bq*i9WuP&?C z4qGBMr|LEQ^j(7KgV%#EXN=#4~|ISAbJQxB~| zvGJxz)gW_L60_f%7Rj%lVPH}`4qF?}G$6rZHa05{9krViTlVZn3gy_;3s!kII10EA zl{s<9ZN%$zD$?SPpl{d5UDh9doG%2s2~9q-^I6DgJKJN=mBb z4d)~2QxVoHj(!H(3yBeUq&Yzr zb~ehxU<>{Y37soy%pN+muf2YE!+9&{-`STedT?s9UdbuZNv4jg2k{#PqI8z#FTr3% z3+Y2BnQlkPBSJe6>5>+z8H~cF8o(hjcMapUrJQ~w-edr7rh$!wd=}iXd=5#PI7(lW zR-$avf3f3Ef5-hT3~Q5mfDHnQXfUK(+P1rshagHO66Qv{v{Pnt-JA7_>dGqL3vJD< zI@SV1a*F`eL7aN7sYNps7Z85`($DLP9^?2Fu&$!Q6f{m{-N4PoiF`pAk=(~+>ezsL zlhl*wntYfyUutfKQq^^XD`Jv<80!cyC2M+f9n&jJ6zGJ{q`J>#O4fXskyg1=dh7{& z=SzNF_Ss#peNfT)a`voSly$*F7|)s+HDIO&^x^?EqI@3WY^p6#_~bf2Cyu^l>&jXf zNFPU%FN#ieEUl>X!zvaa*dg|7_t=b;^mU-a&2(x{bN(ub*xIcN?+YxMN$X=o-WaVfX{o_lT9QUO*JLjnvA?#MAn-Nz(LWN1cwmcMyY4BUSSy&N<#q}TP z^Dq5Ce>qC$rX{V7NB-DMqR}&b!Sz}i8g=tFNvCbT!z0h$NF($g50FoNQtBU|}JMT8pmJ9hATkW@}T zU~)uy({7wUJVR9*^zX}VbXl1IpSDn8+f6@nGx)wP>+)am;JMcr=TmpI)z8q}gR!`m z;U512I&eQjZgUYvnXYHAVbDyUDEM!PXz>uSw8xr3VnT3}nTVH4zEH%X7RTJYQV`|^E5Khq(&xSIkQ)VR9?3EgGe2WamI!YBDcdAtl_<@8vJd_OF2V*R zm59(td)2IY`in&>1M@TVhS?zm8tixY8i(K+RaV$1F!D|EDP zm)Co~v~{Mrsu!(anH+Bg4Rd|jiGLd%j5i-&NS;%IW{L_T)s{Y>LW(LdP+^d z=k8+`@plIGIXl8f;L*KfxouNZr{p!sVkJ}<|2_1~uHzd$JaHNR! zBSV!Z>sRt3VnSU2JfZda*o)oJjfx11g<^NsMU%8|N{j)Mg86Zlnc%UqgkB`Ln)Y>} zw>|#OG76CQgpK+2ci}T|8q&Y_gAp1Ju7L)kNLKQj3|s4|IIh^$l2qpAcR7R51e2!{ zXZ81@xQ4f+2}&qZGLZyiG8ZVcVQwshx`x`Xy-{o(vGKIk3uuoQdVCMk+#OpQH7mf-Jze7966ua~M=yGeA1 zrL&(WOY!Wu_Ac)&;^S&P1HBw%DcUcArlGYav9H$0K2Pru2K>}Po|4gg;Xw=43}IJos5Vs z6+NGz}hH^VRhRk>^DXcp8C*M3iYv~wUb7VlhG@mLX&l_pUs5%#kM`T?pJD7(tn-uf&cA=S;O)rBOpF|TZ_zP9ri-{mNA z4;6GCT|ji~?4ZGe2~jy^^WrdwJaSq_k!b_sj2KQPF3wU@gu4Ai^U)hj+#eYm&IUv1l`<5zXG290UrtP0DaWZ3?hs zH_a)4!q~q5#?g!Br#b3R0a}=$WCQ1vuiRH|EPfkSOuGuPuu*r_W<4B%bT=}+P{Lcn z!p828VYOwQf_0H~O}{@gzKj@1n=Eb9_;ZJ^VJh+;3E)Tm)LlO^B#o9WY8Nr{^phtJ z^gz6#fquMVcCBN+?@Sn6p^(KUpr+ODpI1)@3JDP<+U1##Y3n=a>4~|_9FnD-1myAY zc$?g2O26`OE0u+*2A}LsS-P5|u+HR9vu7Zos!>5~%A%aVuDA|=+_QysAL+FzztL+M z5%xam4vruO)8U5QaFp;b$6lP#a&0-o&e+<8Ifv}YYhvk6*G8qr(O|W|8qz|F4@kNQ1Ee!e zNh<6_{D;~xyga|{1U{jz*u@&!wJ)T}mxv^5Uf(6C-Jc6^2Gba9c$mF83d7O|x^#wE* z;Wkr@QAETL)9|2BAwYQ#YS!Gx^!!W8LRozTpa~j| zE(ym_)3BVfM3B%Oe!GEG+7!<=c<_Hpq2#7@ys1}r(`NTZe=lzWQ zGA2k8r<>*lIlI+LQVsYo}*G^DA z^)QgcL~528b5_3-b9dIxG<5KdU0x_T zEQu3Xy?h-nne(4<7WS@Pr$|y^e^r#zESaBugpbI+r1qW|eADJ_snYxt8|ztdcTY33 zmIy{~$4<6-{!TMdiBMhz>*&jicp)qI^9M76VHp*Eo)kj}8bqE!rcl4k7wzVOG6$X> zD{%0kDCJC|lHHE5YWrCTU4XW;vhuE@wIfKmsQ=ljvOdG$+s_YHGmkuIoTBEp+PNH( z&j3YOj@xJI!C9`1^;_(|_Jb-yj0}op+05v-7DdJK+`MhPQ zqhrW96|?=(6ATsUwt|hhCa3#xR-o>&&q;d9HIb0kQk*H&w0E-94(Q=w?mNmz{}Wc?b^qo-E0j8@$*<|DIzZtxEXjf^kn1n_802mo!jk)!;}u;B>HD}fuje+zV`Uf z@h>mu-*7we4@CG6FL{CkLP$^o-ENjEitD~(R#7e&J06v#z$v#Rn-(OwaKwiCWT*R+ zr$mr<7R?IZkPCUe^K$O__P}mtM|%@NXAwa?8^la_yn3^J9DH=quvqqmw7d*Clky#7 zr@7{i{%xs%tBg1ab={^yEsgjrZJ0xTb2OhBQ)$phaGqm*i;NX9=x!3M$7=-xks?v` z#(D0fKe|6SV8G^-?v`LRWBOAdbF!ep@o;H_yhVIae|rrj4(XZ0nre6q8w-$wO{F`f zcpEh6Kbmuw%*7F1qk*!%Peda?06Wq+T&d7ND%^`-CUb&>WV1Z+QgYQfhc>)(F8fCA zVu+v#-@!3X3THpS=OsMH6xeZFP8|Kmb*5=X9aIVvSl)~rB-75!t}s&}_v_i#`H0C6 zQ%k&QdDRY>+e5~qD|w@ti`G<14YfjA;E8itD4JEY$SuNbOI0WSq!^>T?wn@En?RpR zxiSu2si(Z$60VoC$Jfk;>njD-74Kak8qpe@TRFNP*)CIAc8U~!@_7Dbz=Ne<4zUs7 zp6%QZ*orp@zwYDL5sJT`O7Kh8+6v^=TQn=KmET;&jTKtkAkG*=6AWz)WYti)@}qs7 zp@hqZBYm7_hMQqj{sp<>8`9_f@QT^?;rnsEUp+zQFq2lQs6s(jr3$i~{;GaCua#5tSl6X;Z}-2fU#urg zZ->uOTsl8HX#2VF3N`T1eE6GO$u1@pe<7w8lpw*QynVM;=58G2=M8@Pc1VQwsb9}I z0hlFjBHug11RNJ!>_W=eeM0a@z?QTb2#HQfBMD!VWwBJ%9brO7rkYjrP{}~0gExL2 zK(4?*=`jQoY`eQmFhi^Ho?X%K5!s$5*mus^rkEW6EChMQ1pUvSOLAv~NR@Lj*~I0vNiVE!sq_k69pzwL z8F_N0C>&o_A3cAZH-pu7msILL=qn&(;v3hj53k*5MecQ$K`dLgx%%-#0${3I3QB;(p4@_9?C(h$3E8(PM+W_^M#(OSbJr(AR9$7N*_9LM zXK<$%(+|dI;N8g=GLC{UVi0*NvmuYQsmGUSr=5KT`Upw<*E7XGVt|K zhJDC?Z&nP$IY(N48L+nwHWz`3qmD6ZJ z%L^qv3>h|D&&v6thlfEMW9KWB$IniK{aC1wjkUu_7Ltug3uavSY{*k63*gHJ^p`6c zko~6lZfKVJM{ZhK#4=e$1J3*AJjr3MvyxdX7N&8@M=mN1A(ZC+os~6XF5kx(cLt$o zCA(_=KqR|UZM^k36~B#ViHGt7?N2jxAlm(U$!YqP8z)xDH_6QL>vU48YAW+*3oj3+#I&)it;daktgju8gw!%V?qCXB2EUbDd*nK;g(*f3BC9}D5?RSCVTZo@|3 z1gNDy-NM_e5Nr$2iNM%B0tRKEi zpo(zpM8_O{of$srsZ83e4fpWx89j*`r$kvy`bUxnH%4F(SSItg6jKls%E44 zUJ~71kQtuYsH}!YcsW;A-}!1Ibj8f~O;*+KZ`jt9Aaxb;{Qi($h)QK0SkM&@VWBwb zrm!ZB9Vo+vKUtCsa|9ArOKcc1bNaieo;1lG>@uPiR6=2-7ah^r=<^o*2aImfs5>ju zmlQE}B&?scZh@{25?9hLyTb)KGqN--1OMhC3#J54q)44;&=Zxd2Wm}oz6&Jp%Yj<% zAxb>!fgH8xY;2)x7Q|xSp0JzbPzQG7z9Uc0PBeg}Qn3_2xoY0* z5#JGgy(U?J+kW$H#!@U7tc-H~HZQF}VMzfGe^4e!DpPbKk)nC9j$G62 z8)7{%{eAIaCgEFa$d&8@SYCBE+6H=1V`B!>H2Kj^S>OFjCrpEpCb_cJ6N={#8gW6` zsL%q+ksNOp9_+N+NF0RL<^prKSwnj2kowTb7GUr2Fz+WRytz|KzYg}kP|d7C)=APF zt3pHagoU{vA z<>K^Eo{-3{`SM6*O9>hVrFhAza)*AEHs8G!s&`=|*&}y!Xuo z6bPOvzPK+KoFfS#iQ%D>8XD(mx|LYHp%LQr1A{)Qv-bHxvL61 zONs_RRFmAZ5{sr>hK=QVjTWu!MkzagFKrwH;yN^$tYt5^;2ImHJHo&Ymb zk&FmkDW$0&;+wIbuw5N?-<8q@ZHCv_!>@-j=BV}f`d{?{7N^ z`EXSoz#5TlR=Pc!P!nnKnwIrWfJW=qCP!)<&>yO%r-oC95Er3-Fefb5agBtTEl!+< z^Q)2;J5RVqXaIpl2PP&lPFgh&G7sN{#Du&Qem^Tm7Sr}hOpJiR83{lj!Xh3b z;oeHH$o(diy=<$^*O7uk7q{g==(eBoGWJM-R!}yLF3{{!*oi_Ij@ThQW_f;akpzBQ zy?mMty{i379%5uKq)oD^aZPpBqOmc~8J_gyy;&mKP8G9xXf%zXmDn;_;1664tjKIK z+iA+dXY{gU)e{i~zb5Ttt{CtlZ{0nbQkcueIRPGZf!$s!icfuf#0y*zvtN7a$p_ls?iND+q@ZP` zsJ^#F4xH;`K*`X`-gm$Hz0rftosHS-*Ev(q@qy;i@m6E3oo_va69eFp`QVSS;^4y>}^|z1<_;K+#96hS$)sj zgAdWc!s&djz@DP06J}bLwr8eXK#~*~L5U)Zy;tv@$m!7%csVc_Tq-1j2j5IFjRC5T zPgBQ!YLE6|UxP3;;`tpZo3U&Zasc7=Q2}&i4ze`5spvc&zAB0GkY&i!T@XiuzUDNsc2>Qe?Tnj(5I4w+k z+o!T2fvCp!juuGvy)aNHma_KyEhkOA9_v4FZ)a}?lZflw^#%~vM<~OLe zaW(?F#4q<{bnSbyo{tVRIyL7oD2!l??f=!|rCZnwy$yBoX*QmgnuHLYF| z$owBMt}Y;u-oMtAD}?$w9M5S$4=%aUjqnc6!!fEnJ)9WZB9bK$#kxU|Wlro9m!9LK z#BB+|cH zuk|{d>{&1dZ8*%hT@qNb5_}KSQigYDV-~6~`or7IVCG3kDC)uu<`u`c z(VbM56^G)lI!p}SmfJyP+y-_j`rwhe-Cuy{+6Je^#+@y2q6L?;#|4w0E|4XTfB&A3 zCjZ9A?sx8I=vh+s_i<$A>UpF;etJjN?28RXv>RQo-<+@=g4xe5ic_zR77U3SpGU6u zE0}#{EA)}?#OH?vCbkV}GCy6elz*o1BO?z&Afu?ArKRe2eEf{wpg2~9y@U-xn%8*& zz$G)Ba`9hHGH1C$W*_S3xk(H_a>C$m?s+v6@4`|qF??&r0vp^^!=mDk^hr{k0WUmd1d12sq-=U@An@A1q_0??33g+4%1maS5hBh z#8>lQKeAR*Crj_Q;!5{#U$>EJV7W4|07$2EP=h5`{TcYf4X!#8{j?%QwPHy;;kdBj z`*@hmVT8SUT9T4B|UnIgO2&ZJRPaf3Y=ZpZ3m z{PjJisYBA?ScDX|DRgh>OZgA<`#E01pSAD`m$|Qkbw2rKWB0w*@W*kca9OD4#As4u zKa^Q3@zq}2CpRh-cYGa72rAy6w}2lxaT--Lp9hQ654TYJXNSUy&fJP-P!#)c1y`%V z*My>F%wH#qm7^v7r*o4}ouj$Zr-ub<$(4hM@rNz(W*o%JU^S@JADfV!20F5qWlBc} zh;YUvSJ@k<#lpkul>}RQbhud;s13a0$9{R@eh*aDWt{1g(sP}ds)>Oxb_H0kWc<2B zf=`xS2rQ5=RNoSQBl{fm1^W)CB(0Mu=&z@+Xir0 z8bL}z8cFF`*j+l76cD6Smyqs`<&Pk-lypjm(g+Ajx^$;>cdeqJq`>3c&%9sm=i~eB zm}BOgbLRSZUNgThaq3z1Jiv2DabK4(78!w_gm(=FH3q_GJq?~jk#~(O0l!bYn$N1Y zUv(y#=TNP^3)nufn&UhX*)@5!$7Z6@gI~1$(wdenhLQZOdnFDLbl*V;?Q7ZdOKfLgYzpMw?0X z=jJxrDl)MDyu!oevAnpv794tm6XO+@eVVm*F+It~mpx8u+pc+d^<+V1Rq z*8?ypW_4N*$UK*s0g6beX*OSrTDV7a5PI=POP)C9bEf2~|1>vVoBljT_qIVIG^vel zajhoX7p1mHT$8T1@kmV%_A|aSc<%7Bdhx`#AyJ=t_sLf!>+z2$yPeEgj!60YQk$C2 zZ0mjw-rSIP4qsJ|)R#8`R(Mf_4?CyV$9D*&B*%iJ#x)n#KrA+pXy zb(FI06f&AA*{Y;Y=ZyYUkBRu{?%}v*QDuS!)dI%(1{~sWef&e`?=Vbm{U032-;o?P za*n#=;Cr!cBe$4gpN#O1vh*z4O0Eu@CWKA~ZeFNUqbf6&>S%1}_U^di)@@ds$Nx}k z43wBsjB%y6-!i|ek&`(Fo?$(mdbQ6w94ERgA70;%a!}P#6`p`?=V~RDXU;ilSG#u_fALuP5RPyd0=D`DpJeO zWS~9{3SRuev{c^BH{i3I|AmEfDEEo<%CM|wOq(?EdSR{a%E)MefkouWn;|j_xW}3n zzyFtA3xNBo#p^B+Eq1Tr+m8kw-bal2Uj&ip{x7+eZnDN0Vc}l|nynveKV>)|I(j2f z1?Zm zwQV#f5rKkYCe9}3)5%4cWp(i$U9>_Tah0TcH0Tc8eXn0StST^j!G><3ePocnrrM(8H$==h|m2VS+Oe>~bN-P354OmBk@ z9`R;p@_hyh!T*{6g(`rFK~~Q3m*lhVKr|cgX`JA|WZJIkKn+QAc`!ix-u=wdB}tbE z^|eGGS;SSbdL6z!RR?+vUpo&&>_6PJ1qPC5cFWsI%5h?JvIbH4=XN__39bl~8g0hY zhtsJ~z}Iz(ow?Naq&x@V5htrXaxAgOyv{+drQpBH2~V7qQ|i5V7<9p&V6s$%q@t0 zhz|&RBJ7Ymt^m~=@k431XB8og!_;8Kv<0fOhd|M2=(_D zIW%I`?hQo!eMwti zE`(*v73a;BmsIUoUqV#s7O&sC7)s(gUBS_9Vn;F^wM}&uGxJv1elGsLX>_ThZ}kaA z#&jowJk;X!%FIyed(fob`9SbXB{-uq&z|wEI{L8V9$DZ0x}%(2Z(=gF{UJYUP5R&_2S+;6n{r*sMmYx;^G*&r!ygRGPRLdv<$WBEPqE%D83x zEL!prd;R*^@?|kCQOSrb|8;1{7~Y8%>KxZ`)_yZNUhJlXkzQ4#ZC<7{H1_t)PdHYC zl9+>0)}Xp4MUS~KWbs3lG>}i2k1wdbbd#(ySSl0b-BDtX!DCXoaYvI`+8sHk?&UA6 zY*h9wda`gtXAqMUh3*kitewwU>_6s6|KX+{K)pG@KB(+X(_yjPKIu`ca=g%blDSk8 zZxP_m453Kj&I&|R`hpsIN{5Nv6L?yG|B@&iTW z=mO-`iyghX&OwqCfAv@n7VuoiywI$+y)*pYSv+mt4~CoJ*%gt%_vWs{WajD+6NixL zWC<1aClM;-AzHs4Gp#y(o72~@c2uN1l?__k@i;L{<0gUuSj4+LVj|HjK9qyHR>Kel zT}RNtX)kTNb`SM_l)uyn_OU_y4Rf$d&A3_G<>gTGt~Ek*g7uxvz4EmvOigmT6}Q@A zaWjWb)r5q|s86y(Pgt_z*n~l2W^6aHrfUFGA<4kld;cTM15KRV;iZK_Yt&af8#ida zL{gD1o}MzGS~?g7O|R!9_~S$C7BT-YHckpT@2`gtWsStBG_3b0%nm7nUj!@0_Kf5y zMw61Ip>r&xAg6}-^fgn0-x9{<`SDatb&6GeFh=4A82iOL=LHM%67H9nba(KKlw~W0 z1fo3g#S0gx_WdZnsTSG2o8s%49%_-mt-@anHQj&|Ek8Tbuj?brTF2`f!>z|g%oCm7 z<4>MJa-fz`Du_52^`V7F@6qMw`?g`P`*B(=rGs&l`Q-ET$qTHY!%#pF*#evG();zD zp>02iJ<824tSaYb!-l>hP~-h?WRY!q;45+gJ#4Mwo_U?z8gGeJ?_uZ_`XYv>3+DFuYs$r zO?3ND>FRsgNh68azx<68EKjSBo{>vP_wRO^ewp4UyokmwvMBXWEe^4>7^r?ee`g^E zVmu2ZFiTAl5Kulpwqcy{Ws%UeY>Kjz)Fubqzp|!AeHIA=BPm~J7%^9MlRl*&tDnto zDd1l^30_Q}RLrKt?zv{8|gOVysSNagf;b8E)}jU-T2e1SA_i=2EMtrMd9G!(o zBBk1;$lb1&m@39Cg}ivWVB037PAabRv+^Pt?L7Z#82a)yZX%mPCp=F89G{eipsR7C zN{-y_aTMU1z-^?-w<*s`w*)Re=sB9L)I5iH7%n>X4OnA+bWuXL^ZlplT-9-H!3m(RuJewS$9vQ%18_+Qqkm=!X-<~yq{5eVC zl1nv$8;TNYD%Qns_PXCd5)h2+&~kDX91$+_W6$7WSfWmFioI?b@b0e zK3-3#()|f>mh<-Cp2}%uuHy20u{YK&F|<+b`K}t58I#s+ssT#3)2uc$;Gu3iL9D#t zo1k87N}{a(<<6t4Q@;v4)z2;BR!gC<=?#WTVfJK`ZqyZvHNYkWem93M3U-EJm_KA5 zTm^ecI~Ck&5GC@^lV4wolol~IMw3c3$bn`md<^fnc!aH0jf}hCWqS%_Ph+`mnm4R> z9^!bhm(zlq9~vws+vg3GXr*`U^`@5kM2{WVrMsC*F?85+9>jNFvT3c3vmdZn<|&}I zg7;<`c<0yZfnMhi6AY4boFaYF=*5^R7ayxpX`9~P{BOF>gV)o^Zev4@$4bg(ke`33 z58>eV5MSKXOmVN|gde}43KNqnRm$)3I3qb!w&cU-QQcTHauB6GG({InHY`|sdIMBQ zI=%YdH;c8!~02vNzGpAAq;HSsd zwmxGAJUD1eZuP$Dj$q1JyiL}X|JyKv#pmglw4v$rt(Q|fZ_|*H%P>nT*CS^w1= z1yR97MYz*>_o~*L>iF$2Dac3Zq;s^0@;0xP_$L&&4n(+na7(Dau2tdp=fmF{@0FNz zWh&-vPWGC&@fZ!V@+%0}=TwBaHTd*Yr-3z!wAmtWZR*clBEE_Xzv@uItK$uE9a&vq z`vsNH0R}$eH^`mk!lp20?h>cMwpZX1I?+sN@JYf`Lh(emK#wVOBg!8$N#BBMvO zD2#o3P(vHXs}*qqHRfw5OQWZno&T2XMva4kavz_FoNf+Sj@%er<^UuxyrY^l$Das zRRp$K7rKQM;?INSH9S3Fw>JA3bpMS1KZ^8Z45e3}SvHvvUAXPXo^XWER;4s7=3 zJ_YQiV_dM9q5&!B^V5dVZ=2&fPEhgAKSM+p&u{SO}rgZ)nj78Vu$ z7qSimonson - Portfolio
\ No newline at end of file +Simonson - Portfolio
\ No newline at end of file diff --git a/static/js/main.a314a690.js b/static/js/main.a314a690.js new file mode 100644 index 0000000..e769d53 --- /dev/null +++ b/static/js/main.a314a690.js @@ -0,0 +1,3 @@ +/*! For license information please see main.a314a690.js.LICENSE.txt */ +!function(){var e={757:function(e,t,n){e.exports=n(99)},945:function(e){e.exports=function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0]&&(h=!0),h)return p=(0,f.default)(p,m),(0,c.default)(p,m.once),p},g=function(){p=(0,d.default)(),v()},y=function(){p.forEach((function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")}))},b=function(e){return!0===e||"mobile"===e&&s.default.mobile()||"phone"===e&&s.default.phone()||"tablet"===e&&s.default.tablet()||"function"==typeof e&&!0===e()},w=function(e){m=a(m,e),p=(0,d.default)();var t=document.all&&!window.atob;return b(m.disable)||t?y():(m.disableMutationObserver||u.default.isSupported()||(console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n '),m.disableMutationObserver=!0),document.querySelector("body").setAttribute("data-aos-easing",m.easing),document.querySelector("body").setAttribute("data-aos-duration",m.duration),document.querySelector("body").setAttribute("data-aos-delay",m.delay),"DOMContentLoaded"===m.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?v(!0):"load"===m.startEvent?window.addEventListener(m.startEvent,(function(){v(!0)})):document.addEventListener(m.startEvent,(function(){v(!0)})),window.addEventListener("resize",(0,l.default)(v,m.debounceDelay,!0)),window.addEventListener("orientationchange",(0,l.default)(v,m.debounceDelay,!0)),window.addEventListener("scroll",(0,o.default)((function(){(0,c.default)(p,m.once)}),m.throttleDelay)),m.disableMutationObserver||u.default.ready("[data-aos]",g),p)};e.exports={init:w,refresh:v,refreshHard:g}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function r(t){var n=m,r=v;return m=v=void 0,E=t,y=e.apply(r,n)}function i(e){return E=e,b=setTimeout(c,t),T?r(e):y}function o(e){var n=t-(e-w);return _?S(n,g-(e-E)):n}function u(e){var n=e-w;return void 0===w||n>=t||n<0||_&&e-E>=g}function c(){var e=x();return u(e)?f(e):void(b=setTimeout(c,o(e)))}function f(e){return b=void 0,C&&m?r(e):(m=v=void 0,y)}function d(){void 0!==b&&clearTimeout(b),E=0,m=w=v=b=void 0}function p(){return void 0===b?y:f(x())}function h(){var e=x(),n=u(e);if(m=arguments,v=this,w=e,n){if(void 0===b)return i(w);if(_)return b=setTimeout(c,t),r(w)}return void 0===b&&(b=setTimeout(c,t)),y}var m,v,g,y,b,w,E=0,T=!1,_=!1,C=!0;if("function"!=typeof e)throw new TypeError(s);return t=l(t)||0,a(n)&&(T=!!n.leading,g=(_="maxWait"in n)?k(l(n.maxWait)||0,t):g,C="trailing"in n?!!n.trailing:C),h.cancel=d,h.flush=p,h}function r(e,t,r){var i=!0,o=!0;if("function"!=typeof e)throw new TypeError(s);return a(r)&&(i="leading"in r?!!r.leading:i,o="trailing"in r?!!r.trailing:o),n(e,t,{leading:i,maxWait:t,trailing:o})}function a(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function o(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==f}function l(e){if("number"==typeof e)return e;if(o(e))return c;if(a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=h.test(e);return n||m.test(e)?v(e.slice(2),n?2:8):p.test(e)?c:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s="Expected a function",c=NaN,f="[object Symbol]",d=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,m=/^0o[0-7]+$/i,v=parseInt,g="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,b=g||y||Function("return this")(),w=Object.prototype.toString,k=Math.max,S=Math.min,x=function(){return b.Date.now()};e.exports=r}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function a(t){var n=m,r=v;return m=v=void 0,E=t,y=e.apply(r,n)}function i(e){return E=e,b=setTimeout(c,t),T?a(e):y}function l(e){var n=t-(e-x);return _?k(n,g-(e-E)):n}function s(e){var n=e-x;return void 0===x||n>=t||n<0||_&&e-E>=g}function c(){var e=S();return s(e)?f(e):void(b=setTimeout(c,l(e)))}function f(e){return b=void 0,C&&m?a(e):(m=v=void 0,y)}function d(){void 0!==b&&clearTimeout(b),E=0,m=x=v=b=void 0}function p(){return void 0===b?y:f(S())}function h(){var e=S(),n=s(e);if(m=arguments,v=this,x=e,n){if(void 0===b)return i(x);if(_)return b=setTimeout(c,t),a(x)}return void 0===b&&(b=setTimeout(c,t)),y}var m,v,g,y,b,x,E=0,T=!1,_=!1,C=!0;if("function"!=typeof e)throw new TypeError(u);return t=o(t)||0,r(n)&&(T=!!n.leading,g=(_="maxWait"in n)?w(o(n.maxWait)||0,t):g,C="trailing"in n?!!n.trailing:C),h.cancel=d,h.flush=p,h}function r(e){var t="undefined"==typeof e?"undefined":l(e);return!!e&&("object"==t||"function"==t)}function a(e){return!!e&&"object"==("undefined"==typeof e?"undefined":l(e))}function i(e){return"symbol"==("undefined"==typeof e?"undefined":l(e))||a(e)&&b.call(e)==c}function o(e){if("number"==typeof e)return e;if(i(e))return s;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(f,"");var n=p.test(e);return n||h.test(e)?m(e.slice(2),n?2:8):d.test(e)?s:+e}var l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u="Expected a function",s=NaN,c="[object Symbol]",f=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,h=/^0o[0-7]+$/i,m=parseInt,v="object"==("undefined"==typeof t?"undefined":l(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":l(self))&&self&&self.Object===Object&&self,y=v||g||Function("return this")(),b=Object.prototype.toString,w=Math.max,k=Math.min,S=function(){return y.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){var t=void 0,r=void 0;for(t=0;te.position?e.node.classList.add("aos-animate"):"undefined"!=typeof r&&("false"===r||!n&&"true"!==r)&&e.node.classList.remove("aos-animate")},r=function(e,t){var r=window.pageYOffset,a=window.innerHeight;e.forEach((function(e,i){n(e,a+r,t)}))};t.default=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(12)),i=function(e,t){return e.forEach((function(e,n){e.node.classList.add("aos-init"),e.position=(0,a.default)(e.node,t.offset)})),e};t.default=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(13)),i=function(e,t){var n=0,r=0,i=window.innerHeight,o={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(o.offset&&!isNaN(o.offset)&&(r=parseInt(o.offset)),o.anchor&&document.querySelectorAll(o.anchor)&&(e=document.querySelectorAll(o.anchor)[0]),n=(0,a.default)(e).top,o.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return o.anchorPlacement||o.offset||isNaN(t)||(r=t),n+r};t.default=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){return e=e||document.querySelectorAll("[data-aos]"),Array.prototype.map.call(e,(function(e){return{node:e}}))};t.default=n}])},463:function(e,t,n){"use strict";var r=n(791),a=n(296);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n
works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n \n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n ` may be used only in the context of a component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n ` must not be used on the initial render in a . ` +\n `This is a no-op, but you should modify your code so the is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A is only ever to be used as the child of element, ` +\n `never rendered directly. Please wrap your in a .`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a inside another .` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n ` is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial | string;\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a component. All component children of must be a or `\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n \n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nexport const Link = React.forwardRef(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n \n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n \n {typeof children === \"function\" ? children({ isActive }) : children}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\nexport function useLinkClickHandler(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15, _g16;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgMenu(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 377 377\",\n style: {\n enableBackground: \"new 0 0 377 377\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 88.5,\n r: 15\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 75,\n y: 73.5,\n width: 302,\n height: 30\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 288.5,\n r: 15\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 75,\n y: 273.5,\n width: 302,\n height: 30\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 188.5,\n r: 15\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 75,\n y: 173.5,\n width: 302,\n height: 30\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)), _g16 || (_g16 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgMenu);\nexport default __webpack_public_path__ + \"static/media/menu.f52e22ef2a8353cc027299adb03337ca.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\n\nexport default function Nav(props) {\n let items;\n for (let i = 0; i < props.children.length; i++) {\n items = (\n <>\n {items}\n
{props.children[i]}
\n \n )\n }\n return (\n
\n
\n {items}\n
\n
\n )\n}","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGithub(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n width: \"48px\",\n height: \"48px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.9,2.1c-4.6,0.5-8.3,4.2-8.8,8.7c-0.5,4.7,2.2,8.9,6.3,10.5C8.7,21.4,9,21.2,9,20.8v-1.6c0,0-0.4,0.1-0.9,0.1 c-1.4,0-2-1.2-2.1-1.9c-0.1-0.4-0.3-0.7-0.6-1C5.1,16.3,5,16.3,5,16.2C5,16,5.3,16,5.4,16c0.6,0,1.1,0.7,1.3,1c0.5,0.8,1.1,1,1.4,1 c0.4,0,0.7-0.1,0.9-0.2c0.1-0.7,0.4-1.4,1-1.8c-2.3-0.5-4-1.8-4-4c0-1.1,0.5-2.2,1.2-3C7.1,8.8,7,8.3,7,7.6C7,7.2,7,6.6,7.3,6 c0,0,1.4,0,2.8,1.3C10.6,7.1,11.3,7,12,7s1.4,0.1,2,0.3C15.3,6,16.8,6,16.8,6C17,6.6,17,7.2,17,7.6c0,0.8-0.1,1.2-0.2,1.4 c0.7,0.8,1.2,1.8,1.2,3c0,2.2-1.7,3.5-4,4c0.6,0.5,1,1.4,1,2.3v2.6c0,0.3,0.3,0.6,0.7,0.5c3.7-1.5,6.3-5.1,6.3-9.3 C22,6.1,16.9,1.4,10.9,2.1z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGithub);\nexport default __webpack_public_path__ + \"static/media/github.bfe22a7c4c4cc4b7490fd260eb7d60c6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgInstagram(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 30 30\",\n width: \"60px\",\n height: \"60px\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 9.9980469 3 C 6.1390469 3 3 6.1419531 3 10.001953 L 3 20.001953 C 3 23.860953 6.1419531 27 10.001953 27 L 20.001953 27 C 23.860953 27 27 23.858047 27 19.998047 L 27 9.9980469 C 27 6.1390469 23.858047 3 19.998047 3 L 9.9980469 3 z M 22 7 C 22.552 7 23 7.448 23 8 C 23 8.552 22.552 9 22 9 C 21.448 9 21 8.552 21 8 C 21 7.448 21.448 7 22 7 z M 15 9 C 18.309 9 21 11.691 21 15 C 21 18.309 18.309 21 15 21 C 11.691 21 9 18.309 9 15 C 9 11.691 11.691 9 15 9 z M 15 11 A 4 4 0 0 0 11 15 A 4 4 0 0 0 15 19 A 4 4 0 0 0 19 15 A 4 4 0 0 0 15 11 z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInstagram);\nexport default __webpack_public_path__ + \"static/media/instagram.246d7b691353f58bd9dd2dff278721d9.svg\";\nexport { ForwardRef as ReactComponent };","var _desc, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLinkedin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 256,\n height: 256,\n viewBox: \"0 0 256 256\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _desc || (_desc = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Fabric.js 1.7.22\")), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(128 128) scale(0.72 0.72)\",\n style: {}\n }, /*#__PURE__*/React.createElement(\"g\", {\n style: {\n stroke: \"none\",\n strokeWidth: 0,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"none\",\n fillRule: \"nonzero\",\n opacity: 1\n },\n transform: \"translate(-175.05 -175.05) scale(3.89 3.89)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 45 0 C 20.147 0 0 20.147 0 45 c 0 24.853 20.147 45 45 45 c 24.853 0 45 -20.147 45 -45 C 90 20.147 69.853 0 45 0 z M 31.187 69.956 H 20.822 V 36.617 h 10.365 V 69.956 z M 26.005 32.062 c -3.32 0 -6.005 -2.692 -6.005 -6.007 c 0 -3.318 2.685 -6.011 6.005 -6.011 c 3.313 0 6.005 2.692 6.005 6.011 C 32.01 29.37 29.317 32.062 26.005 32.062 z M 70 69.956 H 59.643 V 53.743 c 0 -3.867 -0.067 -8.84 -5.385 -8.84 c -5.392 0 -6.215 4.215 -6.215 8.562 v 16.491 H 37.686 V 36.617 h 9.939 v 4.559 h 0.141 c 1.383 -2.622 4.764 -5.385 9.804 -5.385 C 68.063 35.791 70 42.694 70 51.671 V 69.956 z\",\n style: {\n stroke: \"none\",\n strokeWidth: 1,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"rgb(0,0,0)\",\n fillRule: \"nonzero\",\n opacity: 1\n },\n transform: \" matrix(1 0 0 1 0 0) \",\n strokeLinecap: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLinkedin);\nexport default __webpack_public_path__ + \"static/media/linkedin.9e984989712b2f3b4de55b0e2e09e8bf.svg\";\nexport { ForwardRef as ReactComponent };","var _desc, _defs;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgEmail(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 256,\n height: 256,\n viewBox: \"0 0 256 256\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _desc || (_desc = /*#__PURE__*/React.createElement(\"desc\", null, \"Created with Fabric.js 1.7.22\")), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null)), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(128 128) scale(0.72 0.72)\",\n style: {}\n }, /*#__PURE__*/React.createElement(\"g\", {\n style: {\n stroke: \"none\",\n strokeWidth: 0,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"none\",\n fillRule: \"nonzero\",\n opacity: 1\n },\n transform: \"translate(-175.05 -175.05) scale(3.89 3.89)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 0 11.755 v 66.489 h 90 V 11.755 H 0 z M 45 50.49 L 7.138 15.755 h 75.724 L 45 50.49 z M 33.099 45 L 4 71.695 V 18.304 L 33.099 45 z M 36.058 47.714 L 45 55.918 l 8.943 -8.204 l 28.919 26.53 H 7.138 L 36.058 47.714 z M 56.901 45 L 86 18.304 v 53.392 L 56.901 45 z\",\n style: {\n stroke: \"none\",\n strokeWidth: 1,\n strokeDasharray: \"none\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeMiterlimit: 10,\n fill: \"rgb(0,0,0)\",\n fillRule: \"nonzero\",\n opacity: 1\n },\n transform: \" matrix(1 0 0 1 0 0) \",\n strokeLinecap: \"round\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEmail);\nexport default __webpack_public_path__ + \"static/media/email.eabba385e24d37dd50ec8e2a2bd31270.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\n\nimport github from '../assets/github.svg'\nimport instagram from '../assets/instagram.svg'\nimport linkedin from '../assets/linkedin.svg'\nimport email from '../assets/email.svg'\n\nexport default function Socials(){\n return(\n
\n Github\n Instagram\n LinkedIn\n E-mail\n
\n
\n )\n}","import React from 'react';\n\nexport default function Home() {\n return (\n
\n
\n
\n

Andrew Simonson

\n

Computer Science student at Rochester Institute of Technology

\n \n
\n
\n
\n )\n}","import React from 'react'\n\nexport default function ProjectList(props){\n let projects;\n props.children.forEach(function(x){\n projects = (\n <>\n {projects}\n {x}\n \n );\n });\n return(\n <>\n
    \n {projects}\n
\n \n );\n} ","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import React from 'react'\nimport placeholder from '../assets/placeholder.png'\n\nexport default class Project extends React.Component {\n render() {\n let links = <>;\n if (this.props.links != null) {\n this.props.links.forEach(x => {\n links = (\n <>\n {links}\n {x[1]}\n \n )\n })\n } else{\n links =

\"no

\n }\n return (\n
  • \n
    \n

    {this.props.title}

    \n

    \n

    {this.props.children}

    \n
    \n
    \n {links}\n
    \n
  • \n )\n }\n}\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","var _g, _g2, _g3, _g4, _g5, _g6, _g7, _g8, _g9, _g10, _g11, _g12, _g13, _g14, _g15;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGlobe(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 205.229 205.229\",\n style: {\n enableBackground: \"new 0 0 205.229 205.229\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M102.618,205.229c-56.585,0-102.616-46.031-102.616-102.616C0.002,46.031,46.033,0,102.618,0 C159.2,0,205.227,46.031,205.227,102.613C205.227,159.198,159.2,205.229,102.618,205.229z M102.618,8.618 c-51.829,0-94.002,42.166-94.002,93.995s42.17,93.995,94.002,93.995c51.825,0,93.988-42.162,93.988-93.995 C196.606,50.784,154.444,8.618,102.618,8.618z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n x: 5.746,\n y: 98.304,\n style: {\n fill: \"#010002\"\n },\n width: 193.734,\n height: 8.618\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M104.941,62.111c-48.644,0-84.94-10.704-87.199-11.388l2.494-8.253 c0.816,0.247,82.657,24.336,164.38-0.004l2.452,8.26C158.405,59.266,130.021,62.111,104.941,62.111z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M20.416,160.572l-2.459-8.26c84.271-25.081,165.898-1.027,169.333,0l-2.494,8.256 C183.976,160.318,102.142,136.24,20.416,160.572z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M69.399,196.168C26.933,96.747,63.584,8.604,63.959,7.727l7.927,3.378 c-0.365,0.845-35.534,85.756,5.44,181.677L69.399,196.168z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n style: {\n fill: \"#010002\"\n },\n d: \"M135.168,196.168l-7.927-3.382c40.971-95.92,5.801-180.832,5.436-181.677l7.927-3.378 C140.973,8.604,177.627,96.747,135.168,196.168z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"rect\", {\n x: 98.306,\n y: 5.744,\n style: {\n fill: \"#010002\"\n },\n width: 8.614,\n height: 197.302\n }))))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null)), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null)), _g3 || (_g3 = /*#__PURE__*/React.createElement(\"g\", null)), _g4 || (_g4 = /*#__PURE__*/React.createElement(\"g\", null)), _g5 || (_g5 = /*#__PURE__*/React.createElement(\"g\", null)), _g6 || (_g6 = /*#__PURE__*/React.createElement(\"g\", null)), _g7 || (_g7 = /*#__PURE__*/React.createElement(\"g\", null)), _g8 || (_g8 = /*#__PURE__*/React.createElement(\"g\", null)), _g9 || (_g9 = /*#__PURE__*/React.createElement(\"g\", null)), _g10 || (_g10 = /*#__PURE__*/React.createElement(\"g\", null)), _g11 || (_g11 = /*#__PURE__*/React.createElement(\"g\", null)), _g12 || (_g12 = /*#__PURE__*/React.createElement(\"g\", null)), _g13 || (_g13 = /*#__PURE__*/React.createElement(\"g\", null)), _g14 || (_g14 = /*#__PURE__*/React.createElement(\"g\", null)), _g15 || (_g15 = /*#__PURE__*/React.createElement(\"g\", null)));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGlobe);\nexport default __webpack_public_path__ + \"static/media/globe.74d82ff17a3f6b7094e280f108b437dd.svg\";\nexport { ForwardRef as ReactComponent };","import ProjectList from '../componets/ProjectList'\nimport Project from '../componets/Project'\nimport github from '../assets/github.svg'\nimport globe from '../assets/globe.svg'\n\nexport default function Projects(){\n return(\n
    \n
    \n

    Projects

    \n

    Project status is indicated by the color of the project card:
    - Complete
    \n - Work In Progress
    - Incomplete\n

    \n
    \n \n ]]} >\n A personal portfolio site made with React.js.\n \n ], [\"https://slate.cs.house\", site]]} >\n Slate is a web app designed to help event coordinators schedule events by congregating participant calendar data.
    \n Ver 2.0 WIP - includes analytics, faster processing, and better UI\n
    \n ]]} >\n My Resume, made in LaTeX with a custom design derived by the AltaCV template on OverLeaf.\n \n ]]} >\n A Discord bot to handle role management and statistics for RIT's Humans vs. Zombies games.\n \n ]]} >\n A team derived from the RIT Financial Management Association dedicated to learning about financial management of equities using automated solutions developed by students.\n \n \n A tampermonkey tool used to automatically answer and submit online trivia forms, which can be tailored to different site layouts.

    \n Source is currently private for competition.\n
    \n ]]} >\n A modular discord bot to manage class discord servers divided by class sections. Used in my Web and Mobile 101 class discord server.\n \n ]]} >\n A personal Discord bot focused on statistical insight and role management for NationsGame, including NG Rolls Sim accessibility.\n \n ]]} >\n A simulator for the browser game, NationsGame, to analyze unit composition and predict in-game victors and unit statistics.
    \n Unfortunately, NationsGame is now defunct. Limited screenshots of functionality.\n
    \n ]]} >\n A GNOME extension that cycles through a folder of wallpapers.\n \n ]]} >\n VEXcode button library + examples and template for the VEX V5 brain \n \n ]]}>\n A C++ keylogger for windows based off a udemy course with my custom modifications and powershell script.\n \n
    \n
    \n )\n}","export default function Activities() {\n return (\n
    \n
    \n

    Seminars

    \n
      \n
    • Intro to Web Scraping
    • \n
    \n
    \n
    \n

    Books

    \n
      \n
    • When to Rob A Bank
    • \n
    • Disunited Nations
    • \n
    • The Absent Superpower
    • \n
    • The Storm Before the Calm
    • \n
    • The Parasitic Mind
    • \n
    • Courage is Calling
    • \n
    \n
    \n
    \n

    Chess

    \n

    idk put stats here

    \n
    \n
    \n

    Racquetball

    \n

    Clearly running out of ideas

    \n
    \n
    \n

    Volunteering

    \n

    I did stuff with ACUA and stuff

    \n
    \n
    )\n}","import React from 'react'\n\nexport default function Skills(props){\n let allSkills;\n props.children.forEach(x => {\n allSkills = (\n <>\n {allSkills}\n
  • {x}
  • \n \n )\n });\n return (\n
      \n {allSkills}\n
    );\n}","import React from \"react\";\nimport ImageGallery from 'react-image-gallery';\n\nexport default function ResponsiveCarousel(props) {\n return (\n
    \n
    \n \n
    \n
    \n );\n}","import React from 'react'\nimport Skills from '../componets/Skills'\nimport MyCarousel from '../componets/Carousel.js';\n// import img1 from '../assets/photos/itsa_me.JPG'\n// import img2 from '../assets/photos/me_robot.jpeg'\nimport img3 from '../assets/photos/AcademicTeam.jpg'\nimport img4 from '../assets/photos/hagerstownVex2019.jpg'\nimport img5 from '../assets/photos/WeThePeople_Districts.jpg'\nimport img6 from '../assets/photos/WeThePeople.jpg'\nimport img7 from '../assets/photos/WeThePeople_NationalsSetup.jpg'\n\n\nexport default function AboutMe() {\n return (\n
    \n
    \n
    \n

    About Me

    \n

    I'm Andrew Simonson, a second year (third year standing) student at Rochester Institute of Technology \n in the Computer Science BS program, pursuing a career in data\n science with a focus on predictive analytics.\n

    \n

    When I'm not in class, you can find me working on extra collaborative projects,\n building discord bots, playing chess, reading up on some recent geopolitical\n development, or haphazardly expanding my list of unusable, yet bizzarely wise quotes.\n

    \n

    My goal is to strive to make the biggest positive impact on the world that I\n can. I'm here to improve and optimize what we have so that we can spend more\n time on the things that matter.\n

    \n

    I also value the ability to understand the world at large. That awareness is\n what grounds a person into reality and gives their place in the world value.\n My favorite part of learning about grographies and cultures is\n when I can justify to myself the hidden causality to historic events, which\n presents an inside look into how we can act in the present.\n

    \n

    \n It is my belief that being able to channel each distinct creative interest\n into a final product is vital. With this philosophy that promotes dedication\n and enables an in-depth understanding, I can take pride in each of my projects,\n bridging the gap between the the multifaceted purpose present in everything around us.\n

    \n {/*Me*/}\n
    \n
    \n
    \n
    \n

    Skills

    \n {['Python', 'JavaScript', 'Java', 'C', 'C++', 'Processing', 'P5.js', 'SQL', 'SQLite', 'Sequelize', 'SQLAlchemy',\n 'HTML', 'CSS', 'LaTeX', 'Object-Oriented Programming', 'Git', 'Github', 'Linux', 'Raspberry Pi',\n 'Angular', 'Flask', 'Jinja', 'DOM Scraping', 'Google API', 'React', 'Node.js']}\n
    \n
    \n

    Extracirricular Awards

    \n \n {[\n {\n original: img4,\n description: \"High School VEX Robotics President and Team Leader: I'm trying my best\"\n },\n {\n original: img5,\n description: \"We the People Civics Competition District Champions\"\n },\n {\n original: img6,\n description: \"We The People State Civics Competition Champions\"\n },\n {\n original: img7,\n description: \"what it looks like to compete in We the People Nationals, circa 2020\"\n },\n {\n original: img3,\n description: \"Academic Team county championships\"\n }\n ]}\n \n
    \n
    \n
    \n )\n}","import { Route, Link, Routes, HashRouter as Router } from 'react-router-dom'\n\nimport './App.css';\nimport menu from './assets/menu.svg'\nimport Nav from './componets/Nav.js'\nimport Socials from './componets/Socials.js'\nimport Home from './pages/Home.js'\nimport Projects from './pages/Projects';\nimport Activities from './pages/Activities';\nimport AboutMe from './pages/AboutMe';\nimport AOS from 'aos';\nimport 'aos/dist/aos.css'; // You can also use for styles\n\nAOS.init();\nfunction App() {\n return (\n \n
    \n
    \n

    Andrew Simonson

    \n \"menu\"\n \n
    \n \n }>\n }>\n }>\n }>\n \n
    \n \n
    \n
    \n
    \n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","window.onpageshow = function () { onLoaded() };\n\nfunction sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nasync function onLoaded() {\n scrollFunction();\n resizer();\n window.onresize = function () { resizer() };\n document.getElementById(\"menu\").onclick = function () { toggleMenu() };\n await sleep(1000); // band-aid for cache problem\n resizer();\n}\n\nfunction resizer() {\n scrollFunction();\n const e = document.querySelector(\".navControl\");\n if (window.innerWidth > 1200) { // desktop view\n window.onscroll = function () { scrollFunction() };\n bottomBorderOff();\n e.style.maxHeight = `${e.scrollHeight + 10}px`;\n }\n else { // mobile view\n window.onscroll = '';\n document.querySelector('.header').style.backgroundColor = '#1a1a1a';\n document.querySelector('.header > a > h1').style.fontSize = \"1.5rem\";\n // document.querySelector('.header > h1').style.color = \"#a8a8a8\";\n document.querySelectorAll('.navElement').forEach(x => { x.style.paddingTop = '.3rem'; x.style.paddingBottom = '.3rem'; x.style.fontSize = '1rem' });\n e.style.maxHeight = '0px';\n bottomBorderOn();\n }\n}\n\nfunction scrollFunction() {\n if (document.body.scrollTop > 10 || document.documentElement.scrollTop > 10) {\n document.querySelector('.header').style.backgroundColor = '#1a1a1a';\n document.querySelector('.header > a > h1').style.fontSize = \"1.5rem\";\n // document.querySelector('.header > h1').style.color = \"#a8a8a8\";\n document.querySelectorAll('.navElement').forEach(x => { x.style.paddingTop = '.3rem'; x.style.paddingBottom = '.3rem'; x.style.fontSize = '1rem' });\n } else {\n document.querySelector('.header').style.backgroundColor = 'rgba(0,0,0,0)';\n document.querySelector('.header > a > h1').style.fontSize = \"2rem\";\n // document.querySelector('.header > h1').style.color = \"#ecebeb\";\n document.querySelectorAll('.navElement').forEach(x => { x.style.paddingTop = '.5rem'; x.style.paddingBottom = '.5rem'; x.style.fontSize = '1.2rem' });\n }\n}\n\nfunction toggleMenu() {\n const e = document.querySelector(\".navControl\");\n if (e.style.maxHeight === '0px') {\n bottomBorderOff();\n e.style.maxHeight = `${e.scrollHeight + 10}px`;\n } else {\n bottomBorderOn();\n e.style.maxHeight = '0px';\n }\n}\n\nfunction bottomBorderOn() {\n const e = document.querySelector('.header');\n e.style.borderBottomWidth = \"3px\";\n}\n\nfunction bottomBorderOff() {\n const e = document.querySelector('.header');\n e.style.borderBottomWidth = \"0px\";\n}","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport './responsive.js'\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render(\n \n \n \n );\n\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["module","exports","e","t","o","n","i","id","loaded","call","m","c","p","__esModule","default","Object","assign","arguments","length","prototype","hasOwnProperty","a","u","s","d","b","y","h","w","k","x","offset","delay","easing","duration","disable","once","startEvent","throttleDelay","debounceDelay","disableMutationObserver","j","O","M","forEach","node","removeAttribute","S","mobile","phone","tablet","_","document","all","window","atob","isSupported","console","info","querySelector","setAttribute","indexOf","readyState","addEventListener","ready","init","refresh","refreshHard","v","g","apply","r","setTimeout","f","l","clearTimeout","this","TypeError","leading","maxWait","trailing","cancel","flush","valueOf","replace","test","slice","Symbol","iterator","constructor","NaN","parseInt","self","Function","toString","Math","max","min","Date","now","dataset","aos","children","MutationObserver","WebKitMutationObserver","MozMutationObserver","observe","documentElement","childList","subtree","removedNodes","Array","addedNodes","concat","defineProperty","value","navigator","userAgent","vendor","opera","enumerable","configurable","writable","key","substr","getAttribute","position","classList","add","remove","pageYOffset","innerHeight","anchor","anchorPlacement","isNaN","querySelectorAll","top","offsetHeight","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","left","map","aa","require","ba","encodeURIComponent","ca","Set","da","ea","fa","ha","createElement","ia","ja","ka","la","q","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","z","split","toLowerCase","pa","qa","toUpperCase","ra","na","oa","ma","setAttributeNS","xlinkHref","sa","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ta","for","ua","va","wa","xa","ya","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","A","Ka","Error","stack","trim","match","La","Ma","prepareStackTrace","set","Reflect","construct","displayName","includes","name","Na","tag","render","Oa","$$typeof","_context","_payload","_init","Pa","Qa","Ra","nodeName","Ta","_valueTracker","getOwnPropertyDescriptor","get","getValue","setValue","stopTracking","Sa","Ua","checked","Va","activeElement","body","Wa","defaultChecked","defaultValue","_wrapperState","initialChecked","Xa","initialValue","controlled","Ya","Za","$a","ab","ownerDocument","bb","isArray","cb","options","selected","defaultSelected","disabled","db","dangerouslySetInnerHTML","eb","fb","gb","textContent","hb","ib","jb","kb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lb","lastChild","nodeType","nodeValue","mb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","nb","ob","pb","style","setProperty","keys","charAt","substring","qb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","rb","sb","is","tb","ub","target","srcElement","correspondingUseElement","parentNode","vb","wb","xb","yb","zb","stateNode","Ab","Bb","push","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","removeEventListener","Kb","onError","Lb","Mb","Nb","Ob","Pb","Qb","Sb","alternate","return","flags","Tb","memoizedState","dehydrated","Ub","Wb","child","sibling","current","Vb","Xb","Yb","unstable_scheduleCallback","Zb","unstable_cancelCallback","$b","unstable_shouldYield","ac","unstable_requestPaint","D","unstable_now","bc","unstable_getCurrentPriorityLevel","cc","unstable_ImmediatePriority","dc","unstable_UserBlockingPriority","ec","unstable_NormalPriority","fc","unstable_LowPriority","gc","unstable_IdlePriority","hc","ic","lc","clz32","mc","nc","log","LN2","oc","pc","qc","rc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","sc","uc","vc","wc","eventTimes","yc","E","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Map","Lc","Mc","Nc","Oc","delete","pointerId","Pc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Rc","Sc","priority","isDehydrated","containerInfo","Tc","Uc","dispatchEvent","shift","Vc","Wc","Xc","Yc","Zc","ReactCurrentBatchConfig","$c","transition","ad","bd","cd","dd","Qc","stopPropagation","ed","fd","gd","hd","jd","keyCode","charCode","kd","ld","md","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","rd","sd","td","nd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","od","pd","view","detail","qd","vd","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","ud","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","wd","yd","dataTransfer","Ad","Cd","animationName","elapsedTime","pseudoElement","Dd","clipboardData","Ed","Gd","data","Hd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Id","Jd","Alt","Control","Meta","Shift","Kd","Ld","String","fromCharCode","code","location","repeat","locale","which","Md","Od","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Qd","touches","targetTouches","changedTouches","Sd","Td","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Ud","Vd","Wd","Xd","documentMode","Yd","Zd","$d","ae","be","ce","de","ge","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","he","ie","je","event","listeners","ke","le","me","ne","oe","pe","qe","re","se","te","ue","oninput","ve","detachEvent","we","xe","attachEvent","ye","ze","Ae","Ce","De","Ee","Fe","nextSibling","Ge","contains","compareDocumentPosition","He","HTMLIFrameElement","contentWindow","href","Ie","contentEditable","Je","focusedElem","selectionRange","start","end","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","focus","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","animationend","animationiteration","animationstart","transitionend","Se","Te","Ue","animation","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","ff","gf","hf","Rb","instance","listener","F","jf","has","kf","lf","mf","random","nf","bind","capture","passive","C","B","of","pf","parentWindow","qf","rf","T","za","L","ee","char","fe","unshift","sf","tf","uf","vf","wf","xf","yf","__html","zf","Af","Bf","Promise","Df","queueMicrotask","resolve","then","catch","Cf","Ef","Ff","Gf","previousSibling","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","G","H","Pf","I","Qf","Rf","Sf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Tf","childContextTypes","Uf","Vf","Wf","getChildContext","Xf","__reactInternalMemoizedMergedChildContext","Yf","Zf","$f","ag","bg","dg","eg","fg","defaultProps","gg","hg","ig","jg","kg","lg","_currentValue","mg","childLanes","ng","dependencies","firstContext","lanes","og","pg","context","memoizedValue","next","qg","rg","sg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","interleaved","effects","tg","ug","eventTime","lane","payload","callback","vg","J","mode","K","wg","xg","yg","zg","Ag","Bg","Component","refs","Cg","Fg","isMounted","_reactInternals","enqueueSetState","Dg","Eg","enqueueReplaceState","enqueueForceUpdate","Gg","shouldComponentUpdate","isPureReactComponent","Hg","contextType","state","updater","Ig","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Jg","props","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","N","Zg","$g","ah","elementType","deletions","bh","pendingProps","overflow","treeContext","retryLane","ch","dh","eh","fh","memoizedProps","gh","hh","ih","ref","_owner","_stringRef","jh","join","kh","lh","index","mh","nh","oh","implementation","ph","qh","done","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","P","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","Q","R","Ih","Jh","Kh","Lh","U","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","create","destroy","deps","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","zi","message","Ai","error","Li","Ni","Oi","Bi","WeakMap","Ci","Di","Ei","Fi","getDerivedStateFromError","componentDidCatch","Gi","componentStack","Hi","pingCache","Ii","Ji","Ki","Pi","tailMode","tail","V","subtreeFlags","Qi","pendingContext","Ri","wasMultiple","multiple","onClick","onclick","size","createElementNS","autoFocus","createTextNode","W","Si","rendering","Ti","renderingStartTime","isBackwards","last","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","compare","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","hj","ij","jj","kj","lj","mj","fallback","nj","oj","pj","qj","_reactRetry","rj","sj","tj","uj","vj","xj","yj","zj","Aj","WeakSet","X","Bj","Cj","Dj","Ej","Gj","Hj","Ij","Jj","onCommitFiberUnmount","componentWillUnmount","Kj","Lj","Mj","Nj","Oj","Pj","Qj","insertBefore","_reactRootContainer","Rj","Sj","Tj","Xj","Yj","Zj","ak","__reactInternalSnapshotBeforeUpdate","src","Wj","Lk","bk","ceil","ck","dk","ek","Y","Z","fk","gk","hk","ik","jk","Vj","Infinity","kk","lk","mk","nk","ok","pk","qk","rk","sk","tk","callbackNode","expirationTimes","expiredLanes","tc","callbackPriority","cg","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","finishedWork","finishedLanes","Fk","timeoutHandle","Gk","Hk","Ik","Jk","Kk","mutableReadLanes","xc","Fj","display","Uj","onCommitFiberRoot","jc","onRecoverableError","Mk","onPostCommitFiberRoot","Nk","Ok","Qk","isReactComponent","pendingChildren","Rk","mutableSourceEagerHydrationData","Sk","cache","transitions","Tk","Uk","Vk","Wk","Xk","Yk","Zk","wj","Pk","al","reportError","bl","_internalRoot","cl","dl","el","fl","hl","gl","unmount","unstable_scheduleHydration","splice","JSON","stringify","form","il","usingClientEntryPoint","Events","jl","findFiberByHostInstance","bundleType","version","rendererPackageName","kl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","ll","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","err","resetWarningCache","isRequired","array","bool","func","object","string","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","Element","ArrayBuffer","isView","entries","RegExp","warn","delta","preventDefaultTouchmoveEvent","rotationAngle","trackMouse","trackTouch","first","initial","swiping","xy","PI","cos","sin","abs","sqrt","absX","absY","dir","velocity","vxvy","onSwiping","onSwiped","eventData","onTap","cleanUpTouch","onMouseDown","DOWN","LEFT","RIGHT","UP","useSwipeable","globalThis","toStringTag","global","some","__entries__","clear","requestAnimationFrame","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","addObserver","connect_","removeObserver","disconnect_","updateObservers_","filter","gatherActive","hasActive","broadcastActive","attributes","characterData","disconnect","getInstance","instance_","parseFloat","reduce","SVGGraphicsElement","SVGElement","getBBox","clientWidth","clientHeight","getComputedStyle","right","bottom","boxSizing","round","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","DOMRectReadOnly","contentRect","$","activeObservations_","observations_","callback_","controller_","callbackCtx_","unobserve","clearActive","ResizeObserver","memo","description","fullscreen","handleImageLoaded","isFullscreen","onImageError","original","originalAlt","originalHeight","originalWidth","originalTitle","sizes","srcSet","Fragment","className","alt","title","onLoad","propTypes","points","maximize","minimize","play","pause","viewBox","icon","xmlns","fill","stroke","strokeLinecap","strokeLinejoin","isPlaying","getOwnPropertySymbols","getOwnPropertyDescriptors","defineProperties","setPrototypeOf","__proto__","ReferenceError","getPrototypeOf","_e","media","sham","Proxy","Boolean","currentIndex","startIndex","thumbsTranslate","thumbsSwipedTranslate","currentSlideOffset","galleryWidth","thumbnailsWrapperWidth","thumbnailsWrapperHeight","thumbsStyle","slideDuration","isSwipingThumbnail","loadedImages","imageGallery","createRef","thumbnailsWrapper","thumbnails","imageGallerySlideWrapper","handleKeyDown","handleMouseDown","handleTouchMove","handleOnSwiped","handleScreenChange","handleSwiping","handleThumbnailSwiping","handleOnThumbnailSwiped","onThumbnailMouseLeave","handleImageError","pauseOrPlay","renderThumbInner","renderItem","slideLeft","slideRight","toggleFullScreen","togglePlay","unthrottledSlideToIndex","slideToIndex","lazyLoad","lazyLoaded","autoPlay","useWindowKeyDown","initResizeObserver","addScreenChangeEvent","items","slideInterval","thumbnailPosition","showThumbnails","removeResizeObserver","handleResize","slideThumbnailBar","setState","removeScreenChangeEvent","playPauseIntervalId","clearInterval","transitionTimer","isTransitioning","onSlide","onThumbnailClick","blur","thumbnailMouseOverTimer","onScreenChange","modalFullscreen","disableThumbnailScroll","isThumbnailVertical","scrollHeight","scrollWidth","infinite","previousIndex","direction","gallerySlideWrapperHeight","slideStyle","useTranslate3D","isRTL","getTranslateXForTwoSlide","isSlideVisible","WebkitTransform","MozTransform","msTransform","OTransform","transform","slideOnThumbnailOver","onTouchMove","onTouchEnd","onTouchStart","onMouseOver","onMouseLeave","showBullets","getAlignmentClassName","originalClass","thumbnailClass","getSlideStyle","tabIndex","onKeyUp","handleSlideKeyUp","onFocus","role","thumbnail","active","handleThumbnailMouseOver","handleThumbnailKeyUp","bulletClass","bulletOnClick","item","itemIndex","slides","bullets","slideIsTransitioning","ignoreIsTransitioning","isFirstOrLastSlide","getThumbsTranslate","canSlideNext","canSlidePrevious","disableSwipe","swipingUpDown","swipingLeftRight","swipingTransitionDuration","swipingThumbnailTransitionDuration","resetSwipingDirection","swipeThreshold","flickThreshold","handleOnSwipedTo","sufficientSwipe","canSlideLeft","canSlideRight","disableKeyDown","useBrowserFullscreen","exitFullScreen","onErrorImageURL","resizeObserver","offsetWidth","setThumbsTranslate","fullScreen","fullscreenElement","msFullscreenElement","mozFullScreenElement","webkitFullscreenElement","onBeforeSlide","onSliding","slideTo","onThumbnailMouseOver","requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","setModalFullscreen","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","onPlay","setInterval","onPause","onImageLoad","onThumbnailError","thumbnailHeight","thumbnailWidth","thumbnailAlt","thumbnailTitle","thumbnailLabel","additionalClass","disableThumbnailSwipe","indexSeparator","renderFullscreenButton","renderCustomControls","renderLeftNav","renderRightNav","showFullscreenButton","showIndex","showNav","showPlayButton","renderPlayPauseButton","getThumbnailStyle","getSlideItems","canSlide","getThumbnailBarHeight","imageSet","__self","__source","jsx","jsxs","forceUpdate","escape","_status","_result","Children","count","toArray","only","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","forwardRef","isValidElement","lazy","startTransition","unstable_act","runtime","undefined","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","obj","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","method","arg","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","reject","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","reverse","pop","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","chunkId","promises","miniCssF","prop","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","charset","timeout","onScriptComplete","onerror","onload","doneFns","head","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","_arrayLikeToArray","arr","len","arr2","_i","_s","_arr","_n","_d","minLen","from","NavigationContext","React","LocationContext","RouteContext","outlet","matches","invariant","cond","matchRoutes","routes","locationArg","basename","pathname","stripBasename","parsePath","branches","flattenRoutes","sort","score","siblings","every","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","relativePath","path","caseSensitive","startsWith","joinPaths","computeScore","paramRe","isSplat","segments","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","params","pathnameBase","normalizePathname","pattern","paramNames","regexpSource","paramName","endsWith","compilePath","matcher","captureGroups","splatValue","decodeURIComponent","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","to","toPathname","routePathnameIndex","toSegments","fromPathname","hash","resolvePathname","normalizeSearch","normalizeHash","resolvePath","nextChar","paths","useHref","useInRouterContext","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","useNavigate","routePathnamesJson","activeRef","parse","go","_renderMatches","parentMatches","reduceRight","React.createElement","Route","_props","Router","basenameProp","locationProp","navigationType","NavigationType","static","staticProp","navigationContext","trailingPathname","Routes","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","_parsedLocationArg$pa","useRoutes","createRoutesFromChildren","HashRouter","historyRef","createHashHistory","history","listen","Link","reloadDocument","rest","internalOnClick","replaceProp","navigate","isModifiedEvent","createPath","useLinkClickHandler","Nav","Socials","github","instagram","linkedin","Home","ProjectList","projects","_classCallCheck","Constructor","_defineProperties","descriptor","_setPrototypeOf","_getPrototypeOf","_typeof","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","Project","subClass","superClass","protoProps","staticProps","links","status","Projects","globe","Activities","Skills","allSkills","ResponsiveCarousel","AboutMe","img4","img5","img6","img7","img3","AOS","menu","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","sleep","ms","onLoaded","scrollFunction","resizer","onresize","getElementById","toggleMenu","innerWidth","onscroll","bottomBorderOff","maxHeight","backgroundColor","fontSize","paddingTop","paddingBottom","bottomBorderOn","borderBottomWidth","onpageshow","container","reportWebVitals"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.d8996e76.js b/static/js/main.d8996e76.js deleted file mode 100644 index 67a12b0..0000000 --- a/static/js/main.d8996e76.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see main.d8996e76.js.LICENSE.txt */ -!function(){var e={366:function(){function e(){t();var e=document.querySelector(".navControl");window.innerWidth>1200?(window.onscroll=function(){t()},r(),e.style.maxHeight="".concat(e.scrollHeight+10,"px")):(window.onscroll="",document.querySelector(".header").style.backgroundColor="#1a1a1a",document.querySelector(".header > a > h1").style.fontSize="1.5rem",document.querySelectorAll(".navElement").forEach((function(e){e.style.paddingTop=".3rem",e.style.paddingBottom=".3rem",e.style.fontSize="1rem"})),e.style.maxHeight="0px",n())}function t(){document.body.scrollTop>10||document.documentElement.scrollTop>10?(document.querySelector(".header").style.backgroundColor="#1a1a1a",document.querySelector(".header > a > h1").style.fontSize="1.5rem",document.querySelectorAll(".navElement").forEach((function(e){e.style.paddingTop=".3rem",e.style.paddingBottom=".3rem",e.style.fontSize="1rem"}))):(document.querySelector(".header").style.backgroundColor="rgba(0,0,0,0)",document.querySelector(".header > a > h1").style.fontSize="2rem",document.querySelectorAll(".navElement").forEach((function(e){e.style.paddingTop=".5rem",e.style.paddingBottom=".5rem",e.style.fontSize="1.2rem"})))}function n(){document.querySelector(".header").style.borderBottomWidth="3px"}function r(){document.querySelector(".header").style.borderBottomWidth="0px"}window.onpageshow=function(){t(),e(),window.onresize=function(){e()},document.getElementById("menu").onclick=function(){!function(){var e=document.querySelector(".navControl");"0px"===e.style.maxHeight?(r(),e.style.maxHeight="".concat(e.scrollHeight+10,"px")):(n(),e.style.maxHeight="0px")}()}}},945:function(e){e.exports=function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var a=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0]&&(h=!0),h)return p=(0,f.default)(p,m),(0,c.default)(p,m.once),p},g=function(){p=(0,d.default)(),v()},y=function(){p.forEach((function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")}))},b=function(e){return!0===e||"mobile"===e&&s.default.mobile()||"phone"===e&&s.default.phone()||"tablet"===e&&s.default.tablet()||"function"==typeof e&&!0===e()},w=function(e){m=a(m,e),p=(0,d.default)();var t=document.all&&!window.atob;return b(m.disable)||t?y():(m.disableMutationObserver||u.default.isSupported()||(console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n '),m.disableMutationObserver=!0),document.querySelector("body").setAttribute("data-aos-easing",m.easing),document.querySelector("body").setAttribute("data-aos-duration",m.duration),document.querySelector("body").setAttribute("data-aos-delay",m.delay),"DOMContentLoaded"===m.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?v(!0):"load"===m.startEvent?window.addEventListener(m.startEvent,(function(){v(!0)})):document.addEventListener(m.startEvent,(function(){v(!0)})),window.addEventListener("resize",(0,o.default)(v,m.debounceDelay,!0)),window.addEventListener("orientationchange",(0,o.default)(v,m.debounceDelay,!0)),window.addEventListener("scroll",(0,l.default)((function(){(0,c.default)(p,m.once)}),m.throttleDelay)),m.disableMutationObserver||u.default.ready("[data-aos]",g),p)};e.exports={init:w,refresh:v,refreshHard:g}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function r(t){var n=m,r=v;return m=v=void 0,E=t,y=e.apply(r,n)}function i(e){return E=e,b=setTimeout(c,t),T?r(e):y}function l(e){var n=t-(e-w);return _?S(n,g-(e-E)):n}function u(e){var n=e-w;return void 0===w||n>=t||n<0||_&&e-E>=g}function c(){var e=x();return u(e)?f(e):void(b=setTimeout(c,l(e)))}function f(e){return b=void 0,C&&m?r(e):(m=v=void 0,y)}function d(){void 0!==b&&clearTimeout(b),E=0,m=w=v=b=void 0}function p(){return void 0===b?y:f(x())}function h(){var e=x(),n=u(e);if(m=arguments,v=this,w=e,n){if(void 0===b)return i(w);if(_)return b=setTimeout(c,t),r(w)}return void 0===b&&(b=setTimeout(c,t)),y}var m,v,g,y,b,w,E=0,T=!1,_=!1,C=!0;if("function"!=typeof e)throw new TypeError(s);return t=o(t)||0,a(n)&&(T=!!n.leading,g=(_="maxWait"in n)?k(o(n.maxWait)||0,t):g,C="trailing"in n?!!n.trailing:C),h.cancel=d,h.flush=p,h}function r(e,t,r){var i=!0,l=!0;if("function"!=typeof e)throw new TypeError(s);return a(r)&&(i="leading"in r?!!r.leading:i,l="trailing"in r?!!r.trailing:l),n(e,t,{leading:i,maxWait:t,trailing:l})}function a(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function l(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==f}function o(e){if("number"==typeof e)return e;if(l(e))return c;if(a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=h.test(e);return n||m.test(e)?v(e.slice(2),n?2:8):p.test(e)?c:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s="Expected a function",c=NaN,f="[object Symbol]",d=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,h=/^0b[01]+$/i,m=/^0o[0-7]+$/i,v=parseInt,g="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,b=g||y||Function("return this")(),w=Object.prototype.toString,k=Math.max,S=Math.min,x=function(){return b.Date.now()};e.exports=r}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function a(t){var n=m,r=v;return m=v=void 0,E=t,y=e.apply(r,n)}function i(e){return E=e,b=setTimeout(c,t),T?a(e):y}function o(e){var n=t-(e-x);return _?k(n,g-(e-E)):n}function s(e){var n=e-x;return void 0===x||n>=t||n<0||_&&e-E>=g}function c(){var e=S();return s(e)?f(e):void(b=setTimeout(c,o(e)))}function f(e){return b=void 0,C&&m?a(e):(m=v=void 0,y)}function d(){void 0!==b&&clearTimeout(b),E=0,m=x=v=b=void 0}function p(){return void 0===b?y:f(S())}function h(){var e=S(),n=s(e);if(m=arguments,v=this,x=e,n){if(void 0===b)return i(x);if(_)return b=setTimeout(c,t),a(x)}return void 0===b&&(b=setTimeout(c,t)),y}var m,v,g,y,b,x,E=0,T=!1,_=!1,C=!0;if("function"!=typeof e)throw new TypeError(u);return t=l(t)||0,r(n)&&(T=!!n.leading,g=(_="maxWait"in n)?w(l(n.maxWait)||0,t):g,C="trailing"in n?!!n.trailing:C),h.cancel=d,h.flush=p,h}function r(e){var t="undefined"==typeof e?"undefined":o(e);return!!e&&("object"==t||"function"==t)}function a(e){return!!e&&"object"==("undefined"==typeof e?"undefined":o(e))}function i(e){return"symbol"==("undefined"==typeof e?"undefined":o(e))||a(e)&&b.call(e)==c}function l(e){if("number"==typeof e)return e;if(i(e))return s;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(f,"");var n=p.test(e);return n||h.test(e)?m(e.slice(2),n?2:8):d.test(e)?s:+e}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u="Expected a function",s=NaN,c="[object Symbol]",f=/^\s+|\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,h=/^0o[0-7]+$/i,m=parseInt,v="object"==("undefined"==typeof t?"undefined":o(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":o(self))&&self&&self.Object===Object&&self,y=v||g||Function("return this")(),b=Object.prototype.toString,w=Math.max,k=Math.min,S=function(){return y.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){var t=void 0,r=void 0;for(t=0;te.position?e.node.classList.add("aos-animate"):"undefined"!=typeof r&&("false"===r||!n&&"true"!==r)&&e.node.classList.remove("aos-animate")},r=function(e,t){var r=window.pageYOffset,a=window.innerHeight;e.forEach((function(e,i){n(e,a+r,t)}))};t.default=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(12)),i=function(e,t){return e.forEach((function(e,n){e.node.classList.add("aos-init"),e.position=(0,a.default)(e.node,t.offset)})),e};t.default=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(13)),i=function(e,t){var n=0,r=0,i=window.innerHeight,l={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(l.offset&&!isNaN(l.offset)&&(r=parseInt(l.offset)),l.anchor&&document.querySelectorAll(l.anchor)&&(e=document.querySelectorAll(l.anchor)[0]),n=(0,a.default)(e).top,l.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return l.anchorPlacement||l.offset||isNaN(t)||(r=t),n+r};t.default=i},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){return e=e||document.querySelectorAll("[data-aos]"),Array.prototype.map.call(e,(function(e){return{node:e}}))};t.default=n}])},463:function(e,t,n){"use strict";var r=n(791),a=n(296);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n