From 9bb50b115da1f67ddc4ede9203295e4c2ab0e63a Mon Sep 17 00:00:00 2001 From: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Thu, 23 Oct 2025 11:40:39 -0400 Subject: [PATCH] Fix theming, profile image, and add app icons --- # Code Citations.md | 96 ++ next.config.ts | 3 + public/icon-192x192.png | Bin 0 -> 26605 bytes public/icon-512x512.png | Bin 0 -> 216086 bytes public/sw.js | 101 +- public/workbox-4754cb34.js | 1 + public/workbox-e43f5367.js | 2455 ------------------------------------ src/app/layout.tsx | 11 +- 8 files changed, 108 insertions(+), 2559 deletions(-) create mode 100644 # Code Citations.md create mode 100644 public/icon-192x192.png create mode 100644 public/icon-512x512.png create mode 100644 public/workbox-4754cb34.js delete mode 100644 public/workbox-e43f5367.js diff --git a/# Code Citations.md b/# Code Citations.md new file mode 100644 index 0000000..b206d3f --- /dev/null +++ b/# Code Citations.md @@ -0,0 +1,96 @@ +# Code Citations + +## License: unknown +https://github.com/code-art4/chat-app/blob/6a6e13a2e9e11d5e9fa599fd732a910dd126e3dc/src/firebase.js + +``` +// Import the functions you need from the SDKs you need +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { getFirestore } from 'firebase/firestore'; +import { getStorage } from 'firebase/storage'; +import { getAnalytics } from 'firebase/analytics'; + +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +const firebaseConfig = +``` + + +## License: unknown +https://github.com/trinac-devs/crwn-clothing/blob/e54025b3d0f5ee043a783e854924937db81b6b38/firebase.util.js + +``` +// Import the functions you need from the SDKs you need +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { getFirestore } from 'firebase/firestore'; +import { getStorage } from 'firebase/storage'; +import { getAnalytics } from 'firebase/analytics'; + +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +const firebaseConfig = +``` + + +## License: unknown +https://github.com/ricjohn-acosta/guisee/blob/893cab7da639ab586c5ccfe7cb467d0bce134465/server/firebase.js + +``` +// Import the functions you need from the SDKs you need +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { getFirestore } from 'firebase/firestore'; +import { getStorage } from 'firebase/storage'; +import { getAnalytics } from 'firebase/analytics'; + +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +const firebaseConfig = +``` + + +## License: unknown +https://github.com/katayama8000/try-something-new-for-30days-web/blob/f0bb3b9f02262929cf06a28199dfc7c28dd574a6/firebase/firebase.ts + +``` +// Import the functions you need from the SDKs you need +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { getFirestore } from 'firebase/firestore'; +import { getStorage } from 'firebase/storage'; +import { getAnalytics } from 'firebase/analytics'; + +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +const firebaseConfig = +``` + + +## License: unknown +https://github.com/Siva-01/house-market/blob/0b2d7c7a6b0d6b90946ca77e0638e239cdca2e1a/src/firebase.config.js + +``` +// Import the functions you need from the SDKs you need +import { initializeApp } from 'firebase/app'; +import { getAuth } from 'firebase/auth'; +import { getFirestore } from 'firebase/firestore'; +import { getStorage } from 'firebase/storage'; +import { getAnalytics } from 'firebase/analytics'; + +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +const firebaseConfig = +``` + diff --git a/next.config.ts b/next.config.ts index 1f60d75..bfdb1bc 100644 --- a/next.config.ts +++ b/next.config.ts @@ -3,6 +3,9 @@ import withPWA from 'next-pwa'; const nextConfig: NextConfig = { output: 'standalone', + images: { + domains: ['firebasestorage.googleapis.com'], + }, /* config options here */ }; diff --git a/public/icon-192x192.png b/public/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..324764a9d9b50d4d355c57e5892d31da59df34cd GIT binary patch literal 26605 zcmV)cK&ZcoP)KuYhbB8WhsimPnd9mTE6OaKT7 znDUQ`HUXtIlFDoHgMcX~`5)CdR2-tB<29tPjlN`jAsAvLTaiqLFg$pAv704o(OamR63gduvo4}Zq*M~+}e2w1CAOpn>1Se7na%OZ8 zI;!mUI4dq(o{C#isNzmp|JteDlvjXUK}Z?8YubgvHXKJ+0yP&vrhm7LeuFGmW$**c!|5y;K=Kea)-#`PrEZJGB2KS}>H(glU=je-V(X1b65>Qx&001a2oar-B7NlFjg5AJeP8x1pWC$|tjhpi_eyHFy-l)l@ z=DV;_e4tMV(aKz?g=5(XhS&~eE3PygIRyvFZZc#$HWUX2#t7N82m+uTHiZ2*BBD~Y z(L)NwtkF=raefSLvR3fW61`8yiJY=KMG9mFGFku*r_PmMz0C+Zrdp6WwKg{<_A=+w zj(+)(k!AslMqof-k3Z~g*X}8pG-RanRRl&{t5`$K@dH(ZFx4PO7s}*naA=9tva14> z@c|}K*1M1DN5*}T0y(PZQ!EO;oL@Tl(v--SWzav_)=KKi4mU<|ZW4siH-qxee%c;o zj47C~{;Q_zP9QL+xzSfz>sCo3Fhm-9XtU$WIlpQ4yUny+PzRzVE-VOx6v|Li+E#5# z7Qr@Xv6aytJ5exDUVjB4%PFCOdEBGDJ35_{_i8?^Zt5lh5Zbf$R!h9P(Y#+`T~wfI z5I!t7DN)*U3N!yVXRTL=gM>J@%YbUfM5Xdz~$ERqez&kZgbp4JEX@*w#&Lw-K zFd@sJJt!I-q8f*)()7I+8ck1QWYi8Fm5QU+ua2L$nvND(>uHII%)TqM0E3>^wjiz( z07eiH$HFc&~r zrWQeh{AFt3F?zX8As72EtFJ7?%Hm!`MC2S1Q5hg=j*SKtnTXR`vP#){=vV-HH;p?v zDOa31rUX5>Ptq5MiKy9~Ld6f7AZZn`)Gf6|B9cTPNfLp9zNN|RM;9^-L^fG+^cVpk zGT$wuHn>6vL6;QeP@lb2M|2Aj0Rl2s;hb^KkO8KOW2=ZG(W36~J8t}B8rXWv8VQXB z0ppffUw!~^HPd3*Z#w}2Ns<0fNGX8;mFG4hanEfBxVT(1R*C?ufl3bIrhoNnH!zM!;i^K`Oh*v0TB}4+ zgs5h0Eoy#%_5WA$JJq?9BP~(}UnwYzP1&cmP6nZ<2XkMbxB~z{j#XZ*R4Q>2CvieR zOnDCq($dT80u?*?EoF*`tQHxJlr|=Jc}~=Z06+wlN>r&-kzwkeLya#NqND!*SCcO` zN0K?xrtLPR1%Yd)pcM%I&)E%CLEzwG$}B>)T8*M8j^iXwj8M<+4{acM%S%AZ@_kGP zkje>-0%${l2_0&g&uTR4)mklQ$7Lqh>ydGY=RwCUSVl5@Gj9x;_tCu4p)`4f9CRJ! zYzjGf0tpTFT$)6L3~RMoy zp&c7pdK*eP4nknym+KLF?X@WfxgYI83_R1?oa(DyoI@I&a{$Ur9~GR0Ew7+zBo z691la=$ncS)xMRxac(ezB%*4qTCG+{%G4mV&r#^J;i*OVCDPQohFO26Qu*IHRI$#UV>55mBvH{x1*IwItja5>HPUK3Xt}H9ms%~U+q8~FT91*wW@R6A^l6o`F7{-a5pR0W0 zFOUDo|2}52$rC~5+j3>GsLG?G^ri}<<(h%AP~E!cEMc_`J=_Te`ZA)FMS-AJt0U&@ z1!I`fl)aY9nw8Qp2bbjhwVRzz_Jmr3rVPD#B@6P6Dzp+f9#t!ZIjuw<<#Eh0Xkyu9 zKPq~hVYi>W?qyH9@T_f@oVWeb^Y?GHhn#B-LPJL}l>iy4WoW-? z1lJbWPRj2v zjXf^*1?tSz0+Cg#6;kitJ;G?Vf!tQ)@TkxRH;<#xKcgJ|C0B_3XA~2Xq)9CF&`&` zQG_7fy8vdt1Oe7c2!v=2R8=c8|B~H8tpa8zlJVDICzXQwV;Va_I@Jh}VO3s|42I1G zk{XH(N@PD$#H_Z12{wil0`W$vj0h1cQ3eNomy{=#qBp9>r|e^Jc&#WiWKkuO`GUWo z7c=h#npD6f+HZ0l{UCF==T(9JHDlStF=JR%5>-f(AqLsK2KHLhOe_Ytn#-XGlv@PG zvh{MdGXkZMnu6(+&An?#ZuA{YrpI?&PnN+!z5ofLs1mXC&3CxALUm%G<`0#vSq{mr z6Ln>n$4ZX+2dgaf!Zu!_VTD?Ce8-2T$PBt>G(Z5r5PQ9ZM?^$}f#BJ!J7(dIqMy0p zz)XX8BkgJxxMI39)o_FWIm77wyi=xP|AEz0?wgsM=rsny0Gna|#Xq8j* z4^A+Yb|_=m8ze^_I{ocWoc`6zPu{#x>Gl%NS#JE9*PwI46V)RsAZXeIn0&C9tF=#cUF+gHFN(Z zA4O3V-h<}Mm)VqJ!BAmol{mvr zPrUH#Z3pc?dG!91pZ=@kn@tuEGaN!lheL{MJy)Xw6*95S?{ug3JNHw(na#Km^Db=bU^s zF=gRZ!a&=OpUJKw{S!qTLTS91E3K+18qs-*h@mepKU7QmN=TZhNB?pCW8IEub(5pF zPyfR^j~^sLN(C&=qzQwAPoGYUrnE3#8sQ?yc z4;km+MzTQ#FG|j86jxpB`knVPzOXDFF#ic8X`&h3^vlI}{o@@|bG5bQ!P8HefB&0~ zTxkvSja`H}2!R1`2ANdBD8G}*+dM;q5CD)dwzS&6?Da=H_l(V}i~Z^O#$SH=&L7{p zXL6z{r9vw=vdi7Bf}#=>_ZzM|Ze)byT$tq*4@8Xd@MW6NV&1C)4cU>+H6}tXY^ZeSRQX=tAWjE%1TN#oocf(DUeabaqn{fjh7z!2N!H#-P4`f-2A&Q-FL;eem6f` z6C#_TG$Se1Zv)}4K?}U3t8wg{_7`AY9{{DNH z`%#4f0RkB>!N822Nv5yj)jX@sCaFRMREgN$<^GGFyX_sncSvh*cV=VrU$1)jqo4cD z#<{wXxu{euK?cXV`_l|XA}trS*1|D0MyG(xo%s%fsT?28i4F#4hhRZ4q;D98>#&G! zF~_f|7%~5MM0+qVXw-%ILwnJP=0uw#ArKHrNwZVczx?>Gulf0&nGKEhQvU<5+wqLk zHZCsrqe^bOlr4+N+D}B)8bgK{A!AHP386%Qm542^4xV!I!bjh9RA*%{HCw;t*1hlg z_^+p@sxoV|rGc4<1M@==(txsL%whzoku8}J`(9#<2l}D-2Gd=nrqQhM3*FqTh#4<> zcOn~KE1ej~^OyO}yofhcRK+!bD5>d9oRWYstVPiq-~V6#{oD4$L?!Mf|L~6EjyiN| zZ7t?polgyvI_LB^=j_VsA8QY3v6WnT!{fCoH>R9Z_#q&OIIgwg9fwSP`klwiUfgI_ zZhx@#rVrd!jX1LO9VO_ug@i^Fl)VLVz}R>6P;y62Z3oS=Ty?@J9gCHzutycQZ{JSj zR-WfJ?h;YGQRj>mESfH=kn9VG7f>7p;u{6dXo$yWvnVjq6(a$0j@@pud1L+SA3b$r zlOw{ztI5T0``OBBT&b{ZpMJXM3y}yIQnxR*ZEhq|?%FeG)Qw3tb%6-Ofta1G{M+SE z-hZY-M7ul53*UP4p2fJ?h!P??>%*;2-!ARLiA`zV%Y;Uh1{`ZS4%`n{g+ z9b=4U5Wntd6uL`xte?Z=a`N%{(a`NbqQyHwAK_Lz0U8*SiS%sj9iOOR;dw=-e zU-pp=2lBv;^>_Wz;hkQbzHOjv$6)r7j0l^JXy@L+-sQN_h$NAYttgwmApj60KlG-f z51OyV!=y*_NALU9&fUXiGfIRsM=NO|#T!xfPR3$$4DIp7=%bha>U4b|WRvxn%303# zblJzdlxjw3hpdxIjAN`AIYdjd?8n^%Zk0NSv(}vf00Jh7oSClPcE{?Ue)zW9bPcAe zgG8GHLcUERe>GOEuxiAlB&Dd1eBOwEk9VuUHahd8E`JxT8WoxPpjQI`pCo2e99@m`OW>;{^;gLy-q;G z;qZcU&)R?geSdhv&3D{&@6_a^kQsTBP_IYLW`&5P(7m0@J!_{jS;*{K9pQ?41``5( z8O8}y0)eGuMgbhvBcX?SF@tvRc8MHf((INCbE%`*Z=~c&ng>hvs!ucm#nkuBh&jA&WyO*yi+S#(Dr-0o8xm zolY;_cS~(%CR$$YudKyFP{fgQWcu*4{H16R?MO)phjF|xzwoZNy@rea+TLZNJ0f-N8otpLBaB1D7ZqqwY3)oL&6v{Tda(8h_DKw!G-+`|Mom|Ll&HYj4?o^X)5-@9L9;W}VlnoPb2G zq)14ZkB$%kgh*y)reF5r=TN`T((@}YeG5j2tP)kytc-JthcAEebHDbD@5?mgQNuUO zQ4s(DV*rc|hoaXP1hjc$?P;gZpLNQ{Gme?xHeUyVUMFsBtX}Z+eXjc9&Z&uttsJB} z$k7;6yjnD5IB8#2V24Up!?ULl)>JvE*qJ1K{NL{X^WS^YKGPLo6nDgiYV`cmw>9(au zclIk0Yc!&4Iwx~C1c2$}Z^Ze^^4f*ZKl_lw4;ZYjGR}oiTMIJ22#64YAscpjM;>#? z)6YEh`#-p0W@btxl8j!{?@t&)yBCW@?z6dZ_ER>Ub?U;YM{d|UUjspLUnIRGs`JJ~ z^qU7-U;K}UChB^Dxr^a;xE2yD0pxS7uK9-yGT4nqofLimia#{_10ezr!kmuGk%J)I zzk%cculZ9eYM99a>KQMZZy{l#QMvM($9{Cn?&FV~eb%WP&p2jb`{o7^#O-*7!+ED{ zJn!@^dsYTNzjyW1UwQD?_pUYSTxcCiiKc>(6jh>EzVtj23FQ-zDugsyNayWIyy~UT z`~EdQPA9JopvYog&am4{PC9DCAH8_{u?J6X-cW~F4*N3cBvCVp8qxiacYpj}i`V^Z z_b=~Q?e%1%!Ig4b0x;t8uwYb6iafrT(fV1~kFHDelsf-Q5cvU!LnYUOY?F%GKvb53 zuG(h@!EKxmv*t)j^%4O9NTSJR)F05bH}1LmhF$X;Y9|~u_pDPko^i~E1GhAQDDK3Q z44?bt%}?4kb?)nKOs8)gVKC0y?apbZo^awxN5q{rXVwb4?9z|}XDn`apM3hUC!KKg zFMsvx$;k;R1R?3u2@x?)Xl5q*;<%Gk8d20_4?f=g@ed!r_Le=rx^rcD zHI6to8&R{tg;Y(}K$dlZH)wXH>`lvr?_;C;?6o`Z)`%u zb}tP`5=73h7zqgxl0>}X;^(mlB!RJ9*R}y;7mAQnuSKu8_<1+qa+|R`MfE-qB8Y@m zTFIvQYL%h~cJ;2i_VFLxy63jLR#sNx3dcqx+AvcE03k`8`(YZZ(i$uJ2uj$VyE6PLBvz~rZ((Z6>ycx{b z&FP*b00KnLdD3b>_w3V-IP8$${_f#gy#`WhP$mM-vC|cQ{N7)l^VCgu-?#SjJ64uf zh8515jcCJcl?WtJ>P)G4cvQ4PB7d%=VhhmX*vmggvd3BeducK}D~|eJSYFCR*20<# zpZfZwFU*4qz|=Fx49F--_RIM!-X#<=)g+vniZ;yFl7z1N>7Gyj>-~!>Nu|Oh<5slf2i(mMhPPfk()6r|1QA(=U`6G{aKmPgq zuK(Fyk-+?1eQL6T41|Pil^GcOI8CnXi{fNLgUM|$=NRV-7r_LR8W#B zYe?6l4hH@G_S^UQ=RZTVJB*vVO&oV^N{#@4b1qt)7d-zN+xFXMFc_#aH&7pyM+DU> z&-4aCBqRxl^ok!;pg|U3n_|xA2ZDN)W5j6nTbKSAO*R^@@D~hb(LkVFr5t^>EWI36 zwexcErr^LH()HO5G+{jy8xpw6uAf+I*K(UdKoTU0 zkW!>-B!mz`P(DxsL>La^`K|L8KJS_Bc2^(MWY#Vv2qA^Y*8$lGo-dxv`$%a8fi`)w z`Q+-8+Lz=9jbu9>c2ehE68t3C)K3FN8T16Eo;nOm2s4Z5%~e6 zFWy_7v(GwX`=R^Cy+L}?2uaB~t4+_`dGBLixZ-PH`RY}*dW|u5#h1VHZ(sV4`+m1r zo1Ni2JLv-vhuy)!JGP(wtTS4zbo`&r5~<~lmd_^L8s&y5Z)0HDpHjl&WGuxD#Vnbi z$dJ|g66Qwo=Lx-I{V?YGF!aIHWuJ?TMyWjg^zdwi~-fT9AsMG05DJLfs*RNFor@8GA>{E0i_ zPM5JXEGLPTKY8QdeC4a(jw&3H>b30f&_<)ikO1Uo|M|;rc=HFaQcK^$bB@DK=Y$gv zKkdoKx7%%&zBMHckVbH;e1NmU!4`#a+}7yT!(bvSs3WrqglWbC>qDblj}##?xFgcb zIZA`D5%=BX#7VCA8Jn&TCq;==E;lFu&q&jZLdZ)mJ|81UCvb!im6@5Ze(eX>UjNfg z3mclv#;aa=$^86=BuU~p-e;dpuYA=d^;&)7!ud2zceEhQa zzV{t}@`so7dV|3re&cIj@!t2m{nMX#H|M-wuYLNTzt(T{E1VNR#8}d5KjY~q9evc{ zoo-M0cWe5MT&ep$%aeotQe3d5c7w?xJo>Qa@sjb?2+#b@poDo{O@&Ng@Ndw^IgcFN zL=UBG!r`Q8I+0_!pp_p-Ptjyy)E8WGxW_0Hu)8^wfWT_b2z=|Jz}lyzaFx zKk>AqMDO9*nJEC|oX<>8i0;FuKIP~)y!I6$5qIBx|25a$5=~7=AptQFRGX~7{3Yl1 z`vZHqCOIv|j1g2e=7Xd5wi?VztksR3%}ETjrBU$Fqk^O&Z?k;Pi%p3I?m@u-z@5)2 z2x$UUIiOX*OSq9}WX`Wc67l7gJ7yI{W53@&VE?TbocmPK?l8syfHRZ>@r`d^g9w{9 zZ+yw~pAoOD@M>KMkuKGcl6a*WudH5l-qSX3T98tF?aCiek{!;)I1}ym`R6`$`}Y0% z{cJ#|2E5t7#zsd+C&JEMe{v)w5T|S&|Jf^Kz@Sic6muDId$K>A36%nw2x0j&%b;A1 zA2Ss(S{@h$D>JSUZI!Yz5TtW#xk0D@a>m>3?nM_odv?oQJQNI(h$@ZxJ$F5L`>*c? z#AA*+Y{TXaaV$)XOV`K7ak8*^!;ZrbW(|)hZv1lXzia!^>Xu9O`x%X9OUngj(&VxBhph(?fvMPB{j+`k<2? zcoGp-`6(wHEeTdv*M9!1yP#epDFKjiF1wwJFFJeU!hAf8^$9ox07!as7?3eBWt?wU zA|H3HU`ayXPX)dFsN^p~!@{3P<}kjPVnN7KR-hnRO|swGjRR{sY$OO22y=+)wG!v7 z)#^O=*-zbe$iBn=P%XR%5cKn3{5LXa)Eg(Aa3lVUC0KIw!b>$Mt5@rz&G z1;8@XLLBx7`yRBYfk_l()~f%g)1&!^U5LL z0!UZTXnf%T0P?r-3j9K}%e!`*$X8#OO(K`IaZ;Yk2@!lV$)PC404ZgyUVG__o&)hv zua2ukyt~r6>)r91haR+_91IY%&@htSqx;tN8xy4JdakutbQw`wAz>yL*5n%j7^(xF-eBn3PngA{CUMgitXjya8X4>M`a2Fg=$NApNz{0oh*-7y;6uB1 z?b;(r9{QvMn{$(Kl5a27h?kO$V=+5FbMQgih~SY&AK$fmDf@C;`gNaf|EMDmJYvTo z-Co~ZXl6GY^J_b9HlJdktRuZFoBakeEnaj~UU^UD_eS`Fl)6SB)IpA)(~3bu-f`SC z(i+CWBxi_Wl(wFR{Q^TA4&&pF-4RVx(}P!lkR(C1de3iu+wJy%;OHX`0d9P+(g+EVgw5M*Wv;$TLCwb&Q)qrO)z58yl-YFN5WWtwg-SU*ZLpk?A4fZ0-vOQ= z>Xar#BAT0-f%LtXR$1it-1j>nWhIJs9JU>jB;6;Uhb{RGZwi5O$Ds!?&W6MI-uoVg zsA8KH&dyHhSN$wt-&Fl%c)GA~04(j%MYL^biTGhd zQL+`Lq@2>vECvejh!9+-Vuxu(Dd=Ltzr9B$6cgkJG3h(S)YU`#YzmvR%sx{$PCVj+ zcK3G=J%)($^K<)b-XP;7e~X~b*HmZ?2uN|V&zAY==_x>X=;6m;nCLGVSXJh$;v6@m zdG&$ZRI(CSbpT%FRP$bTe~!dFC*|_@Pv!^`Wx7u+zDTVPRl=d7v9nu!QQ$IWDv5!z z44wwN5rAnsM&G;CiGcHHad~Zdd6kH^Y}wSDY9>PD!a$=a5oFsfk`1$yn-(?zz|LKJ zyX|iJ(KMTBztw0z1+^T}^vLR@U z)nSG`Q07+F$Bseh37`>K9OQosxNvV9A59{44r}&{pb|au=+fk5%FbC zF}F%0f(qYvpG}HrKWpQbxTCJ_Ft>wcy^-r1=^*@0I7qxsGiIf1m|8)H#R`_L=G`6CW zoz?tslMx1zUDEQ1dS$vvsL0WpPTkJt;;Y@$<|0bBxI@;==7gVUFzvcf#(2{1JpIfQ z-|#1|tXHc~d&+T1yK61jHMf1LsyJh!)q3$oXFc@r>o?(@#4#FXf~C2;qSDs7T?; zlYJ(~x{DX4RA}0V`wkcoBC;}3OO@TdEfir03=1LZS3|*F(-v0G}s6- zJhFF7kj4v-@|i8&hasa~XCnQ7%#V1tbezmH5-lk^x6Om|#$m|U4@Z0b=J~!HLsJGt z(L>02xzbb2Q#MjZgd~w-X&C^xam2rhOUbCpAc!c094;;c0OxtBEPIXwCjL2~UDUfz z%!Q@a=I!YlmtavXy3^5=t_d*&wgTlPtqas=KbchRH2zJeE;Ad2G_Sl!spI!RT_0DV zMF9vA=Vp~A>?v4Qnq(kot~!d56bkf<*c?MOx0;kDY%=Ge=6I=~v4v^uD$vxK+_oH7 z>5sx3?Ex^HUvc#8foc$GN0&9tH(Ug*Z06ELr#iPdL#$Sen9qFSM0Q6|t^laqk={9I zQZQSVE?-29oP$^MXxj3qj!?$;Kf}=95I~h?lYIgncR?#rNXrwg`bEN)rU6Ot6 zkqU)Y_8tZV*J^{G%0hcNVzv_(0k`eD1xQ%g9qlz?MxWPWx-zFOXPX_#xw%P(Osh`r zTF`CC6Yc2&x32X&q=hQS_y~vO^Xn1Cd{@R8Y#K&eSZn%kZj%bDi-RXalw^vPl)8|a z6;1N_ZI^QHRn)u1bTQB&2X2F5lCRy%J*N+2C{#^;f|yBYif zS%*+Ak-T$^cbsVSf$P6aYci_Q;e#IID9-?v*fDn&2#~#vLBxK4aLB>ickDPI?)B0A zrW%-&KG_As$9C>cKW?zN+ye7_evj|;7ef@?!BIO7+;6{q2E!q@ZGtwotP)qv$;|<&<3%0Yos7^`|(8`LB75O;M}TEAl3>)IX>I ziOkyslzlxgkMxX%Rz$=(?{xbwy727!R6R)qX5NX&mZlj6frR@XcqBc0;y3p{Y}9R) zun-Ah7{}8KQ|CSBY3)we_yV%CW+$^Nh3KY5nJ1Z;{}ni0J$kp{tys=QHt*ju#&k{= z6V%)liG_7pQNTKVw`mGvASd{Epzo7;UV@Fc=I%Y^Y={Ub;=I*r9d+bkm%QYhc&(ML zrPt*t>)kw*App)W?)2}v=YeV^;+)@k_x*AZGoxlQ#i%PLWQ@n{_8(k&{{H)K>-PKk ziHpXOlUl1hFBWQYo}oPXa1N@8<2aWrGv*;jQI;&9&Q<&_%+h;%<>Xjc<-@XhT@aPo zb-O3dxRC@o1k)Zeojm7!7!MhbKJe~8ooq%)B2kwk13*Bp10^YCRIA?q;A8hc_`7Pg zTB}#@y8FI|AKqQ5RVh6tDpLeK<6|7Jfe;UpjhklQ`>xmbdVM0&Q`@Eq>JY+^i4r&F zZ{vytzVMTYHC8m12X16F7qkL}V<2)bRTyh#Dp!S~`%X*9)DGjWf%@Rc zKU7i5oSL_aqG&J}3}f->k6m{1$%l7aofLlDq8ah5L#32hZ+!3Cn_8_lXS@1!gQO2pfXYhSft1gO1kouwox_W_Fb_nHga1ZW=G2qd;y1~?Kv!OQX$Oal?VWZJA^;>p zL_~&r_AH%p^6}sN^4~x8w4*wUE1YL@?u7X=M}KZCNs`L!%)k8Wf8KxpZ|n6MNhu{Y zoAtZzx&Mn_`CfH)TEvNF3ykWm^JLO3u#3wVUGS8D`}{|@@4w&Py~~_2#u%tYk>)WS zdfje79(E-v6Xq_1$k5BwwtOY`jl8Hw+>&`!1x^*Ws{^L8e(|G}9KNVtuOs7LCeuoS zNM|xy1hWoknWHuYbAhCizOlq0Z*s(WuRj>Z$sfP^rEhz~%Q?io-Y|+HRQuG?Gki^N*BKfPVoRaXsN1O&VAJ_I-kWznAW%3wsTl z1_Lx+2iOih{m=9mA^%kppxLof*!4I>z&4}&U$t0^)F!%AUV4KYAp+-oX=QC;VZ&$t z;oa~2vscEwcDFa+oDpS9zR=t{PxQSgQ2-lm58D!>U279edk99 z36HX`sG3}7{wd3?pe>4ctJSMV;$wgFryqImTWhu2TC2l3&(?NY#kC%w;a(l_nlrTE zoFU^0-<5x93I`@Wb^#c63;@{~i6xLRI_U9J&<@;Bz8CLb3kn52>rv+_0RaGGObFR( zcg{WMDOY^@vNKOPe0k4a0%XY5ph@X(s9GtBbL6$=oB#asJMX%8a&kflkyivLgqWG0 zy7lL`zxjWEl-DK@NXmi}O!O525io{vEcWi*`+{>%``kbNr9{@1^K z{eOJ#CrLupY9!rngq1Wu&~V$?joXW6i-HBMFBV#!F_5A$s&z>CReEhE^QSJZSA~?- zr4$fU5puM~K9T_mAc>Q$TNchb^Thr4-F)wT4{h4GVSWQ}#v4S{Y85y#g}bCwCxs$} zZ0UTpIrYXr``ds2=2e?EEqL04x;=4{Y}vH%#jjksVQ%^_-tn5=(h{&thZN=;FZqe2 zl!-_NgF&~~?{@o(%WHcUSB^UDposHpZ}`RXN-K)EvDYPNA&&6LzEjk@zH<0?iaWx3 z;?-rdS@y+3Wu~Yb>7Bc#TMmZ0fTt)~HrI(2B2(T-vfAKjE)gPb+q&`K?OT^u+xI{C z$mUJ+h>S=IA%v6@0JRE06xn>EE-pznXJ+1c*(bmD&HvmS(4M?qDX&Q)HZIJ4{8L}3 zRBCT~>!qEgMb09XA%90pl7y5(B!j`Q)9tUWwU<{~i%Y9}_O9&Sv()MK4?ASP`yYI4 zX=M!nR5%QtG>SUgPzx2O*(C$u?R1LDAL@LYmfJ&iiKxVX`4IzIv5RRpXx0@v>$V8D z0+qUJw=Ffz$6W*vaW*;G;EX-KYjLJGNRosIgb+!RB#9J)BoQ^K2E=*98B4oL1>i&^ znsamSd;e!Ycg5E?Eo?{v+GFvbRx1*@FhBdzkA0RgeCwNE-dS8qPddxmPCz7ulu42d z27^wwx4PC|T3*|`w7O^S@}9+&#if;{m9@3CZoO8SnrwEu{cJCh4G-BlDuGp*C9?JP zFSqTnq#t@_24zmI;I2pv!x5P=Y(ei*aWj0T%7HX2Gu40kd#A)0;}IVYlNNQ8q?)=6 zA!H&%k|aV%k)n{4lhmwNYfz~$mYs)$1VW0*`3;xd%Y9(TfAu=K2sf7*y@TsqUHUUT^q};eL_o2W2r-?@6k6v?OYwr?|Dv~J0zf^lxR$EKUtv!2}ckf-< zySTi#w7Rm|YIl0wUVktc#)%M#P~Y0s{SC!^TqMjQ_%SccoW77lPOBtKt^yd1W>RU3 zvJNaBffw^+&?$IYUe+#-q$4vaWdcBI=p&^}5|REF$4Q(di4Y%UN%eZAQXz`x zHZ6SV%isIJM?SrAepX5{XC}u;Y0V@g%+Jlf=YyY|otb*cOP;l|YcC=Whr>*JR@#fp zt9uqR>{(jY+A|mo<0KJ62uXUx_5_k2LU`gbKNDA&?6SeL_I)5$DJsaJYb^|5i)fEZ zCQwsB@c=<%f0DCljHDzW36y9rCQ=1Tk|aqIA>u^DiAWMLJ(W}|m3_7>eDm8sddFoS zo0*^^s~Vy725%A9-w7oFuJQcV(@$xU{x+adq#~ zilIIIUVktg#&IHqkkZnf^(v8$D2#V1*4%XJ0nPD^T{2JZM@0k42|$cHka# zSzKCOT4}AVwcFj^U=YWt<1(N}DUc)la%Rl7r$M1V!DgbwIMZ)dOZ&avm|hjt-uQfk zTvm~0+uhonKQ_8t|0;qme>*OLKDx(ZlDrH3FQlV#Eh8Z%B`FZ)P!z{We=tmh==6G@ z|MFG6{-9o~3MmcYqQR|Gkt-UnS5Zh=twjC)@Vy`Y+^a4*H%Y{vJ70GtO-C>rDZx((X4~(PQgXLE|-JhEK_m2pD6WVHELdwNkHDn)Uk3 z%*5R6^v%Dxb7i?zZ&ZtiT~Dk<06?6v!62TRYMgP((d|xeWwqVunjy0kBuVB9Gmhgh z>5t7#;b>q?U(oCI3WwT0%>xeDJ|Opl72u01Ofyllm=pFAd*B7cY7j{oHOI?x103As`kbjGj0u-yAgt93LyzN zXTw;mwz?7LDrD9N1Y+o@Kr$|r@WWeEG=w?ml@<&XA^%pmYA<1NVWTtid7xb5-3SD1 z&c@arMAR>*jZi0D;Kw=t^e5iC&!(9;PFM~jGT$kTEFKOYeSFWo4?Og1R8qF#ABGx8`J*+Mcx#!yNbD?W2C zZAmpKPs+1sUrqTVv~mRb3=(&Q6#C^*Ek+$P@{e>GOM41nH7_@gA0s_lLwk4*2*8jX zcF4Z_Y@3HctRf0h+x^mRAOtx6*n@zbCWkNl@4J8Z>3{y#cdojAaR+;H^hJog14D(DuY%wSp+iP8yrPVh(Ul^5~?S2n{WuR?i zB-i_Rkzi!W+?JsQ(_{&9Tpd#649A*E0RX7i8_3>ZFo@MY91=nj$?SN`?A$FPAO>*s zVf%jS@BZwJQ;z+szxl^{t&-}HWBYzf%$b4`iwa5HYQ64q^fEX#8en5O8s%ZLJOqG7 zAg*~pute)4CF!{zp!9@%)2RWvrAn=)RGqReQQDl|a%Vk_BkuHDZiBq1Zm7uwv?s`G zpd&$$jZyIxZsbOKUC^Ot_GENQn2=XQ@ar)XaKX2#?e$&W3FzRjSP~kj$AL|=t4-^ zhw4V#=9#i+Baq)*w91=p3RYX1a^!YQo``rQdgRf)cisEDC}L7d##pmnU)V5t(Dr>f zigu@$Zi{K{-2JMTo^!*Ezr6a|pU%uo3AMw)dkvJa)yuq0)9z%8(f+DUFFDMBt2Nj)@o`NU08|LO-{DSA6^|Vu-bl}#x*=b||M9VAfhaTO1^R55=AK$y- zo_p?}nVsS+T3c&fddUT6KIMd7H$BUj7^{5bWB>ffqr0lLD#`pH2gX>Z(|ZAyCu!LA zD_?lZiAVMay>z~w@yg{N|H8wMJYKI?rKH8>m7|V0^abZX^VE}$-e=Ry)Wifb>~{N) z?_R$1o(H~r^^G_D^cRTGY%~%f5D5W?aWcO!_u;p^g@F`AwOZ}J?|kqRpSq%2t^UEQ zUU=@=Pu;vQ$2nVBYrpz`{dKF=jw18iX0y}Qt4tXJ0a^1FJ{7}-nSWg@B!F>d4+~H|_ zz@m?R>Wj}k=V_n$ao|H%g)d}L~BQV4+zrId|&_4wOJ5 zVY0Dx%chTi@`_J<^qtSW;7sVWMVxTXdK+i!wc6Th3jw7YVXiY7(NDf)z~~Yu+V{U3 zAB33osxbOL^`3A;Q8L!h{E_|9Dol*wTC3aY^f@>V2i@*4=??mXVWko+udco9;tT%iGnehZd8)H_vD@nQdIKRP0SPI4 z{b9G$YcH*EIeg38UiqHCczvtYo|>Ax?uR%1=JvbdVccGAwOSp~S~>HK6L}O7NzFE6 z*y{}rKlH#&8)sU(7hA3N%JLe;$=9yDW@%}KbKV~&fB&JkzwwP1gXp)HR$86jU=TBo zQ4|Rw+nru(Wv#uodgkdnzV`VK9l7JsPN$>K7Lro7SKHmSR;$&Lt=3>TeC=yq`rHei z*50|R)9&>Kaj!pYcl)H}n87tWt?c%0GSWOXsF*{Z7A8uQaEd zQ!^7$bGlxwwA-B%k2~rE?|pr|wmj&^QB;W-PR!3WCMKg=vpF$2xnYJ!EQ&Y*Ywz6k zs^7cdoM)Zc?R8u2_BB7cwK6%u5G$34hQkw%e$qZ$HVucdIurvD*B+{-)bwOS&!ZX( z#_XXKfUQY|T^Z`Ze5TbgVgH=y!lWaYQY4YOUZkp@0T8uFX0Fw4DF0!ENq%P@wgq|x$1{Av(rKd0+LeJYt_?FJ%-|8dL%<*qH*&t z?!EWE-x1L%Cm;LjSDn}0yBJlgB*er-BOlJv|)BaO34{kXJ#L~@8RD*yb~GkcDuvj zP#sQdb~O4>lJ~zM{__PJiJct>M)m`?H!EU88U{*7-N|d5&*Va9U%In z-+uv+NHLl-7WdU6rI;NIhqdO!KYjMf&wc*uyY?(5aV#Z85j*DS9p^mj zbg1CeLKOf2+3Vl%{x5y?+tZVij3W_Uea%nqx%ao1zyI}vb{mn2{_u#ywr|=vzq-2i z>pSkf{nz)OaO}aoPLBY9!BbB^{>txMmw5=rhJ)dL`)xhy@a@C?02vb^!CLLAAKWw? z4msz4@QMqf3ib(6%6hYY+no$4QeSFVf|M~BAR#&4a z8mzTmc-~V#_l0k*tgfcVmS_G50TJR@RO*$zE4|D9{9`}*@h$CkH#N;>vmV)BE;IVi zw|evbSY28W+7>BLLDj|641NJuuT?~^J+(Ed3W$l2oo=sMt0aj)WQ;S;`N0Qof6MD$ zcIIhEbz5!DxRA2Ztle?JefixV_=oxV*+#7j^%_I$ z4+g`*@bZs+o+CCV>a#Pm_dodPx39W(|NXY6=kX$AlamwITz})v$1d5jacVG#6Dg;s z8k;xGE-kP0`-A_y`o=Dy*Q|*-%##psd zS=qDp!yn(uIp25dK2JI2=(yA4oB>H-l@I>i=X>4WK3g^o;}{6)wc6CwL$R=F=JY2Y^Y7ohy4k2}@uhYbMc9ww5C7M@Z~oaY7dCE~o|;IXdyAYj zY8a7`s|h2ZDZgWODOf#Rpg?vUp2gq<>1!z;J?ueam<@Z$z2#ClXQI=6+UduA{fi%E z42dKnR;$%!qkiZi+Zy$#yVhZx6Oj-Jug`t{E8p#P`}Mi$B#}VrSGq|O)Eo8t?s@nh zKl87fH!m=TQW6kJfJzkY-o5zIkN-2~6OYhr)R&i6rI3QMO+nRarPc0k-82ILQc}In zCz_2U5fc-QYp=igEq`)xEsBJcgTZk7{#%YX{E%CJ@!yjZ%~YySJ^gq92>?>c=H%oL zetgSAk35DzN9{Oxc7D3Ex`K$!X7gvixcmFp{&b>IeQf6*9f(GpFD@;A@vGlG>Et)d zb~k-9c;c};zV?l)Gyktfz(UH}?93Ja^sS%W`m3#5w+x3vK{6y^-RYy8HRxd!n&e7(FkmTMzyvcy5J|Gn=DDr=ZOUGRkpM{`MSn2ptPL1v zL^K=@XE)7XbKR}q`1TL7_ZaDs8w3a_rNnyuhd=&#tKC_!_bC%VREZYm=Q!h?Znxhb zOiVNv<~QuW-`1I#iEUdqRV&r0$;LigHg4WH6YCE*BT51(sZp;#@Y{!Oyye&DJp1H$ zwM`^>y>iBB$KQCxO~a33$;Lxp8G_6?;DkndR3NRGLV#hM$o?SR9jMlR zQhL5xk|Yshvzs^l{O5PS`RyOAL{UZ~i?(x0J9q9;!8MwPLn44k#M0Wz5jzgO@cgr$ za@uhR?7Mk(rU?v=Wbe(l+%_@MTwYn-ylFmVjU!72@i9C0JN|@2!CluzX(K!B zP8x$tDW@hIQM!Q6$jdn!^ai{4E~#+GU7Up0+XO$vaqoDlgvKk=Oa~C{S5U^+$;duj z!D0o}iARPI0le^6KMY-4oEZ#b9{OZA5r87jkTXc#iIkalV~9}%QPgeq|K$r;efaM_ zHyjM>^_p?MlVS}40Q&ub;!&@i$d<4T;^bX#fBo-Y`n>vN4F%mFsMc$>wRXokE|HJ` zSQbgzZX;XzVycK)LoR)@Q@jzH(u?f>n9I>9Z0dlyH{Q~oG@n&70u;aM4e*iE3cutt z4F?fB-C=Jq0LnxorHtcvwcXpbXXzKey6fueZo2F4`zI%xwR%lRsZORhBS!>4nN!Yz z6%l*=;opAf?H9e|oWbJm?otnl8dH-sR%x%cckWqTYj>8HSJu|Lr=NP{^rSk@S5J8o zRI8O;yZ2su!_P0h^trOXN&w9b)2E$$%oX=OFfq}5@+n8taKIP?kTRjGuKr0BaY@7& z!xRoxpx@~Z+ns?jZ`B)WRX%0we4rZfrPV%T#!GjzBUETY`S~5FMC!cHw48vqcg#}_ ztH&}*s8_>Vb*KOi9i>njY>^Ds>(!|)z$2&Sq}Lpzcd~3rA{rZJKmX5P`qXFsb!K`> z2$>>jB4n%89SjFaoYd>J4I5_C{S5|uc`FGmKm`EcoG-7eU3mVpFM9E_ySpCel^SQF zHZgJS4}bNguYTu&2On8pUTt@JNfO6N{Jn2{a{h?zNq3M!P|l^KN;Ue<_kaBIi=V?8 zN+J-+)6Y2Jv!DO>Blh3-@I&?+_6Gn^Z`AL*|KXqCc1N?>Na5$Pox9Vn79yFLoB8)| z-|(IfeP()kN(g~^(-vm&0?P*NDfcvpW5(1uyQWI0i%jpbzo_m(p=MagT`lQ61?48l zSYl+%2WQI5<-rOa0UV74h;C1Z-*pqFz%#2CBi{AW@;Kpqjv+T_H)f8$55f9rcI5wF#% zQN(N2s8)+AmFbzODH4PXK@wsPWm3wCX5+To?zrck-yMGF)?T-t^!g_rclhk=^wCEi zIx#!hSz01MRBuPk=xglYC_&9-m;=6)X4~&HnlT#B1Zr>N< zA!Ce4B8$HDAJ^2XmAToOIF1P@iulUv+DRuIvvt4C!+r;WsW$?Mm>sAZalW$B`tCJ1 z?KtM;)aea}$%ZZSCmegk@y8sNj*udTgU;~#*W6UARi%_bP_Nf+zvDNnORZ*&Cz6J} z{z)h7IOL!M9(wrE$*IXCNdPeW90HLL;^Y&K#MI*<4u{Eo_dk?dVCESN!_FFrYDY^d zEej zn1%wNw!%>MD3dFxKrFxoDkfFTp>G0kX6Pz|En614-5vljhMe(Ms{_FP>`lMN8Cf6E zRn8ItrKEbj_WkQ_?5}kzoB;yK_(d0qDdIqcjEP?V z^{>6;q!W+XySTiv)^2sW2OV_4zx>k&PCI2s-0h|3$!nd~tsyC!jru+JJn+l^x~DqP zK)|@&J@;8BKIxz>!~Ot(uv-1@H8=PBL&oxv6JvPAm%l^AkR)TQ+v=Qs)=B^T>GvLf z=s_Y8sbAi*Wz*kW_NRaL`ir|OOCpJ7GDv#;fBDk4({D2XSsRk__%GWtm@T@rPzO!< zljnDGYOcEF&nO%axQPNQ63wm&V3##`Eb?YK*ciW2FUQY}I%}WJHbB03F@q%o!}GSO z3)3T7ZaC|HhOFP~U-QFTPCn!4WVKbT)skVnecSxkzxa`xZ@r`4?a$9nop9V?jRqff z2c3bKY(z5O36ysX0V2aV9)9QhKRNxW$4lxUWgpm;1eHp(wzziPkABu{HnLO45Ty{) z)002?$*o`e=5;T*_*rYa_ExLa&g$B;o_5Tcr+)ap-#$7RB-IMvZ`G#oR|p7PE|ae~cPU|h zN~<*%qg;pVJ}dW_I{CPm9ekjH4hf`8zeS;zA=)9K1-J-$x0JmXI-PbSA=9%71EHLd za(a65i(kI-1?NBgup{^HEUreJ_j`j1!)HG8L_mOH-0O6pvH6Q%`1;J$#6>T7`Y>IY zW$YWuFi6N|vw8guw=VBqnQBCdI-X8SYD`XCf8#9={`TRS=_w&arg?}`%BhLQW$*vg z_Wie>a@rA{y-R@DUh8m%I}X_w0f^*a7`K*J0RVw!wk-VkNB{M{%Rf6cH6f);J+hP% zF*}z*n(r=<5Y#L9>?MQVf|n{qep08_C(IR61<`phnQk$#{D|A1WMs7#log?g>I-|1 zklE4Wq%5vcp)Uboqh4c;TBBZTHfoGDDwT?w3InC>8MEqbRpz8fMGpkfsMlGu)@)Rp zjT)=gdBp873yCP=yw~f#=5?3ddB?*On>N;(wTLq*Wq++TY;^#!F~9KjuU!4EcmMtT z+!U+T8jV`BQRVfTJ_S0JwFIiyst-N%=#PK;t7xJrrHZkEfb;KM{S(Sw%%xzMG0meW z9u9y1wSV=kZ{9F5J2x>sQLAzy>U6rTcDLQ>3nA*&%GB)Cl(-qb++8k3;|I!-iiw~xKQzT z1_WI!29I(LE~ z@4f$#M2O*VKqTwUwdIvowus#@G9hKN*?jEroiBOWn=X0j1?NBKjQzK5nQYcYlB~1_ zcmDFeuYC2Y@BZM1YBhRv*Ydr0JUr-i5TR0Qbh-nUePA`)rA-8kvv2+9kIp;ysVT4% zP`y^!`N-ZIZ~A2#K09rfQdVo#Bp$xut$*{)@0@Dv1`|^ z#~ynOkwp=onwmfaAtV4s>Bp>$fr5%6kuin{obg?|7cV^TS+%J~cV(3^jtG>{e_s8Q zDB^h-hvsnr%5g}To}L1r)z#Hs?Aa@&OlNHvW3_5^Zf+XLUDiVY2rT^|f{q{TCYt?6 zz783obYVxh$p}^bLa3b+0hlw`mh6-Pwk(#whe;JFy&CUzBLiP3t z)ivfcN>hq408p(~vvXyLjBSMJOMG-1m7-3!(-R~S;FOb(d(-P)9`}047!lR#wfi1; z^p>CBJ~7dhY7z;_ZFt%|AtVAtQB-^NG2ye)G#~t=9a8 z*(4D~;z+j%X5_QVRYM%3_T)xNQeK-B?rN`YW$^pad1O9S%0g~EXqp0QfX-~+R3J36 z7o>EpOrTHvKqu#tKnKK@N6Mn&gQRG~zNyC$AA{(B9KoUadqCV+)8oN!HVjbIGrjfGn>R!hTG1XK%_gGqtD{j&-?n!J?QWeA~ubABT#{YFXvjV@S^| zX2PL^lqTh(NC^NC5#l)By3gk0k2`9zS*=woYpw2MyY}9F&jUMm?wXvKh{6Y!o0Vi$ zD|7MLfRa{QQnCYx;&T*~OB(B-1*@)pzbB+LR%VWf1Mq+Yw(Hu;vjPB-tkoNw^RY{; zD+K{&td`qaW!jdnZR=+XaX5^-y)Hs}MmBNI8}(YPS{3;lnDTZxDQGH=7f14h5DalV zLL-BL;zZEvb%S9*QHsC-%`(CnHz0*jA8LdG|N6xAD(DBx=~!Ya@bl*VApDGGEZy-_ zug{s4rDyYuM$3>Ms2^_jT&*k%GJ}S&v#`O>td1O7W$i>vM51gh=z;?6jGP!F+!a|N z07y@5s#weiTeR*}SZduyRCwQvaK|S}06>&ZdAlLECFRigl&qc@-IqoLWJD&RBF66^ zVDfk9ZZ2OtRP&W$~X}M!D3t)`9 ziAVyAto>w1JS<}bJxvHRO^BEzBHJ1f;N%HAHEpJ&^Mz7oe?}|D?B=4(MOA=x%v#=s zV=|7u`eF`FVF>Zq&=gG%XXwD$@QCl z1J|X>e#8x>3TnJchM+>0#D$oZCyL|PIm=d;Dgd@Dg%!mKkES3IpYV!swKAjSQP=V5zWu3^$nm5v&#*rlETFos~n zM>XFG1a#F>G{huH;yB6HG!l3PJ@vM$9dmghC>iDIiHO5^s0M!dq4>oEB|n)BMo$Xp zHDja`#IUHJP#TF>PMkT0mvX#8u%$&b&|BG)Yl#tq`)X!#NVXi2h=zlKJ#@!lqs-9V zWPugS$-z?ex(5MZFzBlVG=&ys(+r}$*?@E`=9qPQ(?QoD{gAI5$=7;v+h(3uXZk76 z3!D7wOS5%lV60bQ`iGnvf-_}k)@=2Q@fZQ2-|rhYN}^b2sdawMyv%+}e8tarP0zyb z_xr}u=8+%~43*qoH<$>k{{QF6V8dMQ;HEOIBP(0UgcdlyUQcJ+v6RkDMt&@w*c2ec*@<7ZwQWqcE>)74%yuw z^o)6>ijdAsN>6nzM8rXV5GRQZf@t~Ju@ke*peTju=4zgv_229DB}x4e)DY3UvN6sq z4;C*EfYz1P8*A(C92xKi?sy^aI8LxU<}*D-34R#P1rdq*y`D(VfwUu{(i9|4kRO)@ zBdLu*0t6(I{a!!Gm7^^%5L-;WZI+AiojikJO^tEb9T~SHHwHvj4 zoSNli$fOXxZqGRIA6)`DW6r-8ikYDj%N@Gm0dzbzZtINSgMNQ77yy_r9Zjo64EO&y zI+3r?T~~4A**M)+;w2rw<7WU{$;!zFLpLWFvZ}MK&gnKEt}u->(vBDo2mSN_D{JGW z;qk&}xY+NfIGMrBbOxm8=yO_MqXs13UT0sxVJj z9sojkqry5XS$AP7qWxZIL8pEFex0 z)AQ@t_uFJc?SD?-&H@P}y^3>;T8D@h96uR@J=3o1WMD&X1PmPms zGm@CM0MXz}=Qk%q%^4WSzQCXWiU(CHXVpBHOC15}R+EN{x>RVcbVTQwMVb8$zV_jF@o$=)EuH}L zcGm`BWwemT>xWW-XRB2l$S{;!q0&g)Fd7*kh|b?}lHk6}6PVA^lKMycmA~ffxufM^bHJg^dhSKYST;En)rBhjn zrWZ-jaX&@b9L9n_i;_drcktTwLlFrDu8M2%r+C2@xAU|xXb2=bbSliQ-3Y?iB7#!Y zDL4My&FMAKMOG3tDf3ZrKocZ9Rtn*2(AElxyAWZMbvV~gL!hN6=L+kxn(yUu9BY8l zlBXsOn>s=2RV{_Yu~pya4LzkPK_h*aSjZ%>pkyg8sQ$?lWelwcyzUajqZ_==3n0UF+`I`%V^wj1Z#Jn-Ds;e*CxY{%Xwx6E@&KYVm~8a$R3eE zT{eoET@XZsagzfre#OCeg9b#ER6QP7qXEmjvkq&`H6v>zd1~a?LWw&HSL8r)u-{Yr zBsRiktn#67A(%0Et4t_{(wO^Z$@KI*i zz5#@-y-{DSyRU==!&!jtu!hi(*g{ z%OluOFNPtx=pkB+g?cmS=mI0dk)BZD$U1S-;jJt(55_=6z(da8qLS{f0Q?u}6xmFd zR99jmejodz4D;IWOH*WMa8*>7C#%u87Rc%PlM$Y%*g*6{HF7F_OX)vDyMr8ku&#~e zZf+*Oj`8E@0)9t(D`N@gI?Tp*H@*#ENQcPKFh^cw71!b2`eLA>@FQF*9OD(L{@7d; zrBDF09!dnpyRh+82g|Y>A95%d5R4dh=}hCaq7cuE3;Ui6?VsRf@G+yv2uK5hL3%yi wfwm0H2M!Mf!na6a@gtMvU^E*}L7;;F2ROii%`^clSO5S307*qoM6N<$g2OZ;{{R30 literal 0 HcmV?d00001 diff --git a/public/icon-512x512.png b/public/icon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..fe23fb21f6ac70127af8e4ce7fb9076441acb880 GIT binary patch literal 216086 zcmV(+K;6HIP)JYxtpU`%jJXbm`wm?nYPvbvH=vQ$!)s_NFg_nbYy_s9Hx&0Oa) z-WgKebM{_q&aeG_&75nle9yDbW<^D0MnyzLWJEy{P{aareL8>F?uoyljF_TG? z1!hkYUJ==BlF;0mCvqe*BQbi-YpNof`1#eOa9$k2=~l@sqKL}M$SN?Fn5|+_mfy!u zsxos9o)Lp;&d4d%RZm+JC03#`a%5&z%>Ou@^GXl}LaHa8ghoaM7`y zJ52QJeA%iFSZC28O2QytX53Yo*?!(m5wVaoDWqdarJ@N=G^%J8w3PVOa2HO}jdv}`x*4`Eth&smTIhJjON zWMpRB#nk^Cp>j*mg0L)<3@EJZ&onOEuR+ffy=Cv;;17<}fZ+G_FO2X-0ou4bo20ee z5^hrX>!qZ&3fz#Vh#WE9F)jWoq!9hx%_1`tPxn$VOHD9T`f^0abr*wNQevF&UDDYq zwhcy0;Zu1j-Acz9kz45s&}E7MZA+%hs9c(oEg#*`~q&7o`^E3uqjK9S3Mm?a%=|RaL~+7MnBu zn|@0XMP)@s&Hwd4IZa$yU35yeOj1+@iQEfz$z@2~%3-t&rz>R2-g6qUCZwt4;*mWI zVR!mkWWdB+n?-J-1QQeIizwgRN?CF_Of4WG3o#)GKv`9)TB1b?rP4AOql$1#f|Geb zlQy%W6cw&W(2)%jO)*$LN$DUX77Tcn0s<2fPIHzHpqX2PWe~j( zU?HM{m%7qm#kCLwBO*S7m}WK#c99lGWF4Y{L^`R^EJq$NQSgjzLqsy8wHvtlMTFl~eW8&6|gIlP2E+@#yi><2Zy3X7)ae?pR`p2+vOUC;GMA=9io9&0>#w z&dQz~0&rEa(;1b6n9{LRJuS#`c1~ulzL?RJJ$z4j5k!>5hL3|x8%5q${_II#1hNCJ_o zgR-sKm`Qcf<^C#ZndSuLT+dEan4nAlErXBUNzXc0>Q3q&kA&1Vi|@Sg)oMI7E39&LS28AWpe6pu&^tNB)>Gh5vV#B zc2l=Yy625{R5g}~OV;-*Z;AFvyV+cKw7l0+Q(0rdY%LvwkZtf;0d77Rx+>J~imFwk ze3VR9$X#ybdWUPl+iip~C~H=m9fe@>L7xh)x)AwfGgaGP3*eF1nUj4gOt@$kuO`QyD~+A}q!=wSbq7 z9OZk%B<8-tCffbXF@}Ah1+9#TEo}`TBH4hjtivMl2DwRkoc{LYyLZt*BqLlx(k2d>0mRYkN0^gpm1!(JI#{yIN&TaUDNxcD z#d`|uMABnS0H*0K1*NZc$X;N`4fn#po4^re1DT)QYM#4^R%jQUHA#vh*djBr?6X-g z$z{xl$X-BVw2i93R<=aUr~MQv`+$#CH(#vNshkS`8H4gz&4(8{2v{2Fpt6w7xUPRH zqAF*b&i0Lo4vq)olE7?Tv~iIVb&rxktSG?bZ8A8RDwX75nHtwWTY)04I!t2M7aiQ1 z!IDx~Ka`jAL-eLnsa6%+0IhXGO-8Go4hRe#a#UAbwm~H0x+f~Tw#Aq>F~k821ZL6F zXK9wjTV@D><_x#XY`gSdbfbVKbUx%73l>qnP76ot<(B4AA#uO#vqVUbg(j46vQeF3 zOKvYKEjE^|MGCZ7A9aec#j;T61eDT0g+=|5m5CiWVtqjym#IuJC{l*yiJhjcmd zj6e#iGFg~7Oak-Lqn^~lkP4U8g}uM-{;WcZN|_n)O73n?m@vXwv&4LKDv-2!!-aAO zQ%T*==YV|XWiep?Z_EOM*CvNw(0!@a;3E4j)*@I=&g#hY9vZQGAHuv0W$G_$y$+C7*c5H-6M88s>_E3kFKq+Hd)qu3gzYv_7N zFZ(vD+>;;#0wGX_2yvbm&iktggjwJ%iHEw8@M^mQp@l8v-=zUHhnfde8Q8O)CFeJp zR2kTti_}ssLC(o-3~Tk?emZ6ZWEUJ#=fDG^bgVKXcLWc4iAc}g#S&>snlP+_BPE90 zQZY#`E7_7F<$){-Q1(TIaX6bD6}1`oIu0-9rL+eh6}RdJp2IW7vh>s!*BDI@3Pcq6 z&WYDwt0Ri5Wo?6kEfw9}X4S@~*k=0`-S`?d1~OQghdSwrB0Pq?$$kV|1z}}Gsp#Bc z&ut8%y%1~)J%+u(RYVM+RB%yn-o1g9RIkJ_HOx32jY)8hy->9&dTD9nPOlSpyzQW- zO$5|-wE(8ceZ!PFFDX zEL@~$qKB=P}b`i zDAR{LkE{i=iqTdQZ`AQpW5Tukv%Qwj6N0)OECWtmqI;8qPUR`P5JEc4HaSvvTKlt& zZTdmv5_(01Z3v#L@@8#DlKF(mJUkTeQ~uM0*u;tL8pcg2W}utkXv{X9h+U&uHZ*&y zglR48*IEP+5u?cpQmeh0hM7hcm)h96S%z<({3)@7YvBerGAO3aIsEc9t2dz{m`%zGh~S>S$_>2Ch}zq20S5T4{j8%( zsvNT2Ic?{Zcr?}mL{sT7qXjnU1dVAUY(xtnp)kcE$X&SPB5)-IY_aFiD%spLx~_}M zYn2V*7+!TjUgrDFK@>~6dCeZSz&R!ST#n4>2*5yN()j+G~ zLu>#nxXzh4Nbd+yFiw)iptV3Tc*GZ`;zXA_A)j87)~+RX!#iC~DtTGYRYR?xD^6gl zlTmu+Zza!vPyVY;d8#oVkbSRJ0%j{iDam}gv2sJhd&&5*P9z}&jiwZ7Fx8&c%+QXx zbm_KTj9a(vZMKpjnVMNwlV*o$(3%8-$zaY~u}2CxZ)|o*qR}v>rsOR7vyr6^esIOn zp)2G@9lRFXs|@y72{TEvjm|od8s)CDK)`MqF?})tjfjd3$uo}VNc6e7)M0)yr}TE7 zR8t@pdV+<@A=<$w_H7-1N=>I_AxmD73Yg6eZs31Q+eu;MwyenYA1dRPYd2Uan3$kj zIk&w(S4!2S#UiL#oqCMi7|&D`9W6RF+!frG#0d*@0SVsv4+fTi4Y4c$@MPU;7;+X+ z+PNk++hs&nKk=-NaSeeq0RY%0dAfsBlTXq^>uP7a(TAMqdFACN9b1FKqR0Vs^hs1z z72EqrF%r7Fk_r zWC}v*sRZ%X<5(JoDM-g(GxfmM2b%Pl02&cEJ^~8sOM1@;_jZ>&T_T?|j6DHDM{+!M zxp_`l(`}G%Cos=DXDy$sVIp@jD7k#n8fTTYU=+993!k7K`>ER>C8DV_3`HfLbpRh_ zvNZ-6spvk8D-xyCUfy7|vD!Sv1mj z*2^ig2xCeWH-XHgG`(=n&#G^UV4e5w6xez9+VV1c=w}#l0>UB+qu(?bC9wd%Wx=ww%+nKTaL#C>bpn{jN&r%4ev1O z`LU@rbDk@-GvNXA32ebDsImf1VvtG|Hz!*C_UCUTFo{Obzb~Bb_+DM00l(DPxdj8o zGCUMd_a3~?VsOCjY3WN>Xl&Fe{Dg5Xk;TytXilttxgN7y30WyjmP0NdCXVc$Wcoj$ zK4N3x?i@BaYQ$X9TY4iKd7*+t!IA(j!0GE0)122>Uzu}9MXW|yhD0maByo3DS-{OG zvFzv{Vd7du)+5qXWi7klVv&HIxNR*WW7^Yta}qaenaXv}rj&h0Kt(t*CfkNQC@!!z zzwN=*hK8LoSLE7ikuce6IM$FZ7n85cue69B^Q;WEdO@OP)iY_wX`w}*Y6~>EE)I>D z>@~Vk&Es8q1&u*zGQf0QC#`iV0+0~3X?n;dUsYFEr7_UZg@T0y7_ejpKt+t0(^>p5 ze3yDFuu>bkw@Ce@0hzB9A5ocAD*h#qc`y163g^E1py-2iPwsBH3tI23Q;frINwMjW z@(Fhx$7D)!Z3{17EjZhTW5%dvUsNfTwZyCM&OQZds%UBj=E&Nk|1$Wd!ly1XP-$m6 zhe$z57bT@?2j?j)d@^4U+qD=FOw~ZyL2iCpvtD+b6UwORxvaEgk5zbj(1hO^Y8M$@ zZo%icKWJ%#3}x3wXCZ;`!JFjRW2!F&ML4}&FoF(T>3u~;M4D;jRHgaf{9hHP=dB>R z1<{Q@JB-5mW)Q9VZx(3UA6I@_O3;n(ZDZ4#auFF83^9xf-JDIB*kmM zvB7>UHHUZ44tp7I>?$|tlu-tP6~5DqA2?g6by4Y0U+Ac|_-flh+2BkS7qRsP=>2*7 zL{`eSpd*DMw5&zz6D`1uz^<>te;G8Ub)&tPNcpQz5G!Dw9u*0Y39FX|>3xYo)~ITt zx%CUbg`qH16%(RbhKlH9pe?D(&Dq14%ZF`2w0D_JLBHGDomLkMQA3UakR#H_b=>>r zLLmRQ=)&xSz2}}QYFP|0GAE=ERAQVkeW%je8MOqTpc+#vWBrh!gb9cB+i96}XavNi$v3uIs$Z_hMb# zNqTe_`?~_FO1A-FPGpuZWvQ1yTNn<4!OeIAUWvIoFQ%5IMiDW7i2;+O3>CYW#P7lk zub|bp^b!`<&_$uDoxn47O55a$#R@+o6@ItuIi>XJ*}B-tPk{3@e((0K|0V?8)tLpT zrK69jcOsGx2-d0_<=X4GmFD1WLen2uMoV(@J_ME2UWC59(D~uA38y+UuZ4c9ifOTR~Q5#zz z(@pS)K$8-v1dymKnhsiR17U@~U4*TGDPX1=90`jmB|%%mD$^*RRfpKq9q4>k>TjAVyO2!PH5j8Cecs`AF!itF42#LL0e@0L1DOqKo*V_eqeb~h+r%WnL4@eIb$WD=3xzj?dxGUo? zHjFeiVadtzgNAtUv`M5rvPb&mNF$!~XPK~fDf%Kpa1uR9Cb*$Dg!$<552CxYV#TK| z>9P+I>V%jeGi=JqKHD)B@x<*>5T8Rj8NU5Ym0cugFmcFBX^1kGc5SSNKz9{pQ%Pjd zEhZDDH3AJZ?E^A!VaT*^&q4-_1ec=nOeo zQK1Hx&w{g@`vgfzYgr1}$t37&1Z{ez2eE0OSp3Uk$0__QGg9ATw)~A+oxwt4mcbbz z=C1fqjVV0^9pUm>E!6vss^N3tH*Y~lY!Qjqaa44l-o$E4$FPK#6)&IR6i#cr!Ku0o%>27gyD zna0{nEo|FHOFuFCiVw&V94HMuNh80>m@cC3n))bJ(Wga=cPgSbLd0UPtCv_4cS;kS zS%#jBXd;;wmg-mIUOaWs&oMWOAj58YtFS5{#9z$KC@ppz%b*uL_Xu2Eh{6%-6%i)Q z9;qZ^&$Rct!1(509Ym_*Z4l#tD3&V+!b&ViEZ8jJqCsjvX-(;rN>T1h9u1g_dJ z4Qsg#4pbT$nl)mewJi4bD6aryC9agW6k^yiB&TFc8sqq!5s^y(x0edCg)Q?VDxuvu zor?h#GNfH~uZ~>zOlB%ts4Yc^kqF__nz?h$anrD(W7r&8nw2e3+=USo^$5MXZi)jq zCQpDAmXu%`muQ-x*x4MDU~?-DD@|xtOid0Ldlw#2WhW+#cO+?}C959W_=m&Ze5`*Kw-x+l*;Bd1n|Js-8 zCd;tAAW-%b^SukLgAqtMhUw)YIlSz5p0PB5-scv-K-U?7ru4KTqiJTGIUO$Rkj>-yjOcuk7Ww$z^+?f{ZzO+ixyG z%aO>kGy+S}SLJ7FJ|!bi{|$?@4GHY}q@f1bpK-B0UQ&l6l*m#fYa3Wpl2LpElLfGL zJDI>B`HST*Y}@64-(oCK8L`mAg=06h{v|WkH=#r2MSn&Z=WU%lGAUb?Bi&EuPLwz; z0aW81PcpkMVLhj&c@Jc_Z+V?^oz?GcvNa`K7ZcQArJ5E6ST9 zqtEhcVj&1OW(GoQXydlQ9$Muf!E(fTL;nKT)PvRmPin?YE(*Sg3v+=f~}(1|A45#rG7nw zR5Z%U(xQDLxX#i}Lxd097t{HycIr`p6OumO5i;X`s?DhZ5gLSB3_5K+1=3t6zE%o5 zpKYa<%qG7y2#T3$%v4@jKD~c=x;5~s3rN1Zk2H4(No{SRL&Ga42DX$wknoh1>l0M1 zoo=xiW7ZYb3z--dan4!-#OJQB!3Z64A%Hdv$1-UwLX41cXTnD!RSmQI~Z|HCGI>0cG~$Oke?>I-)LFVPUzqB+fFG8 zvj=`>uQKU)#q4p3i6EvZik_>uAXRo7rUeNFh^!I~OZUt08h|L-l@!@SPv0ScdlkHO zUJ0Qt2ASxIg$I%VbXF=o4Zci-%>yH$C}@psF@F6ZlMNQ(Mg*2fg3dr*AddN#ugcUe zpg_n7fQ+lx(uDaIv2OlFhOOBc4wzKu1MY|_{DO`GkEdrLFD;F9OX{i71SC3vL!d4H zwVQ=fa)ks|am<1Ruh2I+8Bx3A)v=Ad9Dko=WbKPer;Jf5vnXEss^f{$IW2Ouzxr~p zmr@R+X?!haOg;E{RA5j;!I3Ny5k-*}EQxIh#{3d$N(gDGjY({Yl_8uXtI&2EY=y0t zY?*u~c&JqhD2|xY$m~PwJvh$)fV#QSo&csKGs9%u{-j(QJPGgYjtv(fTL|X3^Z!U` zR8YDu;h_C_hMv$2WCbz^yGzQ()47vOmOfIPTW6C$n&eK;3D9P4l^HymscKv5Er|`} z`?@_tS4pJKI9n%afP?FACk$4dMHZ#TxIjn3m0R1SVNxQYp=*~dbU_d5wsd&PcKG0# z*A27=T@9oYZ8B5$fs2H_S#FZ6R_2JgI7X0R6MfBR5#iuG;XP1HAOgs&2*9j?$|#4Q zbQtJ^ON;4QrPU+1@rJ|?I-T1eS@g^&k;W1)_>2hf2@p^bQCnMaH;dB%V9N%evM&s* zs>~amUhXT7z8eneP~}~P!i@%erA7ozq9%w>iR`4+>K#U8A&4PD`)g0(z2;fDYqhlc z&`KDt(F9!`zAKdJMh%0w5!@>&9g)jm0bUX;++;dYtBm(>7(qpvI93ap^`v^y>QZ&m zQM5u5gSe7PUJM2RJC!=Dz6`hlsf~acok>*$nmFoL`2m_m2M1Ck;Es+nc0NVxRn}H=P*HPnLdu_5to9a*8SX^3O z%g&6P&wNzLW~?42gZ)R5v+(7i+L4#jESIfQN)ZBw<@dQSInXB5NnS zR?c0+7>w%W{AM(p{4RFFW{52uxND;U-QkEisabzl%5hQG3jMSz6~cKpx++QLII zwdYAjP46o;QB$6|a?_ctG%FHjn*~0UqR(VhPAU3Gw;~d8AlY8vqJZ6u@z50Ew+vfS z3f_7p>BTx1_fHxoD;qa!cP-c;2I$tFlBex}*F2^ZnKj0;6B+)g@eN+41nptu_JUlt zKU1weI9u3;l;o8#z2@xHc>-xDxT+a&sE1%uICHI}oXgoUe_X>+8QaT3@-oLl+H|65 zlmQ%= zG=fT801PU*31m;f*mYpqNLYzhxqR#0$hG{+b=H(sxP1V+d5Z!j4Zfl@;R6DVOm5Z;uNURT)J zRz~#hqwJ>pF6``)IYN75#r1qVIVCsTR^2F@UrdDLIzo+vB4=VZl|Ff|Dc51XAIq;? zL=D7GiwwvqSF9w&IqtE`G_}%VUBMl`UNr8almlsN5elI-p(aun-}*b7dKEH_=pI9D zY7Mb-9W-_YUdY?as^*}kbrT&KCDCkysj&S_^Hykd#GvLzpkXd%@qY~=*#Pzv5@$2B z2|#R~Tc}{v?T%Ggnv;ElWhQ(TJS$jG2ixUnWRjB074URF>?90Uo4dg>civTDccT~2 zUS&r3q79~~;D&&)mNG3|&8hI23(}R7n$|;2NjO}44n{@E?GrJcW}ErL^d##M5jEHZvWATQy%pCKjAjs3 zhc#F%LZaz&vrdRW0;1G@KsWq<*{kU2lhtk)o91$6sdA`*e$_H#bF>Y=x@LfeAn+2F z75#T;sEDW-5mo($EY*An9X0)-=!h*N(|VM&)teyQwt>oGA|U$!I>GWCE#b1IRfR=| zt|`{DMkf4)iW@y+NXLU zwMFL|0=yucP!7@n!y#^BlF{x|f+J+`3~c(8!?lE#jc{g$)=nB&tT zJ@P<;Z8b%~QwnPjhkAv#;Aty$@6yNa)9?wjDQRM<26`wM`Xs3%cJK4e$eiyjE>Jgl z=@*HhpDbKv1R{r(+0AA93SDR#Vy=O}9l(j%H%Wuc*P@nb7Lvc+MzK#7F#qfo zGMG@emI=kBIT}X*F~!e_%KdNh0yK2VaV`z|K>xH_iUr$VEMfk~l1?zUWaoYDR`zE= zpQ51Qvo!}PW`v&=2c$34OijJ=4Jo0k7c57t++W~r(&Fk9u?Rw6nJ*{^r{|YNF03@z z@)l*`rD%H(u7>B*lqPX-NrTGi-Ayu(Cn7d~Ga$Xmxesy07F}4uAw`xHP_kWktw};w zpJ*6s_FANzMSy_>S9D3CCjA#p$@F)zv`1|w^w7e1`*XPf0?xu`AuL9wR5CkW0u2vM zspQz24TTUNi1CYm6XC5-g8#OxIvp`-Om(xOX|yTD0LL2Q^t1$T%1@!AH!+D|+n7vN z#1;c`?i1e@{4zX~s-s{a%cTWC>3*_UCF~|G#srE4&^u>jKfR{OWM)4_ZPlUH zxK<=ivW;+ECP^c{bz=dt?{BDe2!^0TJtay^5NW5JLI!;3jiV*%IA$0sflL97)Ay;LC4BJsks2!9Y!1tCH<&!oxNEe^zSs^%!eLH?d@cO$3m2X9GUz=c4 z0VtJDEe>dT(DHdw8nlr81AbwbRPIJ5ViH`W8mra-+b*1p^npMn{#th($(C+%wE7l@&)6Y=7MGld=HJ{=-*s9qwM2EQXc|k6!n;1JWR7L9k$8;o^e#FSfzX zL?&L3Jy*MIWvx1JfHvI86;$VMImy zF&ziLMw(>9*9joXYQEWeXKSJRJl6Dwv9}D2);ZcLhrSD;J+m^mL_WK~Et^0VY^_1r zPJ|$lR>eg`zpfpjEkw)2HV=X@ZPM3*8C<_!X!b~Cp*q%IWT;eQ>V{T&2ds@WTBU+B~IL)7dMpiDOHbKja(=!Fq&#(iJF?u7=aWpbl;tORjBvdQ}P+|pOLlwdnX+^<0 zIE(2>0e?${S1Ph}<+UDmtH0-v1JDx~deT%Go!E(( ztSUaE;Yoetlil1Gbgr04?A_oY!tiJm8ND4XCBKsG1n>}Sd^B(K-slnuAMcLq^(aO@l8KX4LoRySWHhOoFHn_X zcl{MO_Rt4_wmlTh$u@YR1o;FTqr=+G1-M=OV}V$F4_SD%ZuTe;F_~q$4D_M>z1Z;n zbAq5I5mX`EXf4L*mFH(KWMTQZqzkY?_W>xj>gft7%LRFC2816xSvI%mwRzI&m;zzf>jSt%WRg{iYO_4nY&PG{`b3a%XrLj&OeOLSu~5sY~l zNMqBN-KY3Rmu19V5MW^6#8YPTLeW#P$Tn$q5#9cx zl~9ygN}7z)1SKQXEDa=yEK}Skg^0IL3ZN+`R-vGSof+OPA9%t>;#{DaP{o3zzZ|)c zWlL(r=%R;6UK>bRHr-=<>ZRLF1s-AB*%=PaNjNB+R98aXSanYk>?%0?VrN#kphOai zu$`U3SCq7eKoUxDAtBZ()OPmp1nBO<)*^j)B}d-HTM%E6HUug2^JYSp15z0Hcp1l4 zyE$|QE5Stf5FSGTqZ?^!RLCF;^9Xv#N&pS$F)0Jhur{7YcS0+ebOn|J2YapIlu@C+ zl<3%%;f2w<<|QkmCU|`?gtGBRMYOymgdKhG{W30sW8vmy=NSNgybB zUA5i#-)Y%48r>EBmINMLpP(0Q4D&bxW?TKL$Ue)cKrC3!jkY1@H=AsI%sYnJeU#R{ z-~pU^${_($PD~qiqD*A{6wC)|OdmiPn{rhI2`(#u5Ganak%>rJMq#4^ux89m19iNR z(c7qF=7Tv{qzB-K>y!rG)EZJi-`w3M#x$9-DE!(-e4Z^Us>neU!9iWt~DYFY9v(d z!0^MV+P~P0PtHWZnjdU!B`nfNX<`-+K!KEqdt*GpB|oVImXP`M5qqS~|56f>yD6)4 z5L1mM=)1y!MxK$5Hr}^N!VULdQxkB@?EXt+WNx^e7DjL{+FKENYF$oUvphIDvrAjL zURoYlkFMx9+b96K`7xu~;JP{sWGS}gk6pq5G^@}yR>_-Cqfi_$>z1AoqY!G=25IVA zA0`QPjSLvu#w-Ghya%^cR@Bzm(^I7GTzIv)yBWph$x2D4`%p`{q|CJoTn43xj4iNx zn*P*~0=$~*WWDN3Ib*VJ>J_U+5Noy1vK*t501|}P=5={3>wY)ia3Gi?c0Vp6o0B4!L-@Pj2e|}!*KL|^w36gb8M!j>rN_KEd$2JM<5W}H$(UPcQQ@UonnwT|gKvv5kPZw=b zRPthvCWI&Rt>63N6vVALOd)A@pPG=DEAO=$3!6UbiTIzZjKdHfMrAz*A)8@PE>p{@ z(=MrAKE&)cbwwC4V$O*rQPo$Diy6Qn942U|*Fovb}6gp>)6jXTbn-O}zF zF)<+KZw!LbG{L$|7Fe87e8EWo`}Ee#9APQkuCm;LNfO(^OI1ajt0H2{ZJw*tD~A~< zGE;E4jGR!=I#oZW8uqx4$uUD=Z0Ru9oT(_|R!dgI<_{>aB4cO2R_C3r-Hm@`bc91-c$@}jSt9~)(GT!~0l?dg!;vw@6yv0#3#vBf9wjP< zOo>BSL}uU;(DneU`uIDfX_(>CF2NN{5jXD-WakjMPE_R}&{c~;)?z8ZA)@P?V6a4X zjS28}u>h7Nb-JPLKyCL!Gw5g_&z{;y)>cT=gXR<`dZQAg#N!w&W)vNE=! zqINh0dONVrD*&IOInlK>Ml!0O+9(79rk=^uM@x`2U8f~=`=`R>Q60BdBKps1u7t!Q ziMY3d6Fbj|P0qU7nKzYslKaf%T_k*cg8nP#{9=+9IHjvY$!ZYAq5}I z6?}Qo90(VCbSc0|fx{r`aPOqj!rVGc!r@y`l6f$s@qJNKhglIZ>Kr5H>if3kwr!c) zcGwPEW^UUS2yQ)QHrvbrg2oZ0G8YhQ2rH7J5Vgc~vDoX8XB`u2+JI&05~5Ww^76}4 zuLjL5t{(FNV^knqvT)0Rks;*`q1A$9RbnlOxJ@;CP8A8$djhnHJxVks6KUJNM9tTav|~1@(otCao}zls^;LC>vgA zHbybD+svYtu0$>9%wJ#>(hY-2+xL{6CuU3~*@m3sY-Woz8rYB3d#%|PRn2#Dj4{r2 zuJagGRpVSy+m^GnKG|si+q%Z+Fd_Jc^%seU)Zm*Vbe0R{(k2Bs4H9cUSdigX3>53K zf)`N1s<;OTWvmLfSSwb*$x=q&lGmf*J#u9w*2)4Fml65wv(GZddH^BL$X&wBb5}UJ zOLCm#u#36juSp?{j@g`t73~v#ztXU@T-;D+aH0&eAZZHM z7#6oT#;k*glJjcPfF>6jcZKcx9aH9jnK@zrNf~toe*#4EQtSt|zQX99W}I0yI>Bd{ zO7h`@$1Td$SAZ$UPExxc%cV%AwRHk9Q2>RjG@3k#ZlioH)e_J|i#HnrX|z~rHA~r3 zE8d(x`+cz@NXcj?g&C`htTf1h+E4cJc1M``TQcGUB2-`!10DQdQ zP0*L9`934~`mGw!1m{k-YAY87S_U>EGx9ypJ_jc*bgmLROb}EOJ50m~r&xR@op;Xe zeM~VAapmeL{p1k@yRxz*E4*Ohey8fyjd_Q|+g^>?T@6HtQ8k+c+qNAJ+wpWd9uAY( zF{T+5%tq9KJ28Gc&cG_l4kDy=uHYzQSERa)az4Jy0I5bsj;^i!mRs-Abp6ROAaPz{ajSa&JWc1e+EhTXHDC>9g;?)s13)5nYsy(VM!1~s=Ggc>o15naY3k7NPX7;L>OUJFt)9H9|JdKQTeRF+t zeZD!5F=ERNL2kE2Jtd&-b(OFiJ}ANsyn}M6s$sDuqJc?eis{(Ev}V_NHg~#mnIjH6 zPp>N)0@pOvggrnxTu>-^Vw!zG+8J4KoCw2KGa9qFK1Ks--#WUz0cWsXoWXr3g#yKb z9O01ccS;oYsn%h$%^G!>mcD0)Q^u5$G0@%ZB_c{Bg^NIf)#3xq(i#<+$K&C6Ivoy& z8OiHBR4Ai2hiT0ms8jFnSqFPD{pe1Rg$x53`%$^0NNDoo$R*75Nu=(|s^L8cp9JRc z#4lNzEjK7zT1Hu};Plg=m+l(L^fBOU*3OEkxm_=lJ=dTkplb2~Dq>rg(;6Qs5r9(I z-5%W--naC<9E#HD(~^++&6qo5qb$rY=JAi(nj^3%Ocjn!#w_KpmCAJ3a)YN%xgZ57G;=Xb z)-7l7I%^_TR`uIFBI0m79#6+nadUHheSJM{&JmT{wn(Kdnr>rd2=Oe~Ad+_(T>6s{ z=-u;ok7uFFS{)k?>}0X^|^ zfJTMW)%UYyTnIMwXH0V|ddy3Th$toZm=2&0x>?SMDb&OU#?+2XJwoQ2#y{2mc zm_@W&;mfk3>R7m16v!EKzuM~eNT3^>GotJ`6J%oZHlVoRHD{|yJCrbz&)O|1^3!XF$k%xMi1>FkBO`aZ67z;n?*%6@co`e^mh zSrvg(?Rt;kyrAIm8{`leZ~i^b=g7RebLZaudzTlNQ8CVAurh?PX5(IhDE>teSfprj zduO{mOkP5F*4OExkv`LYSpusWT&>lzwa>e7osmyqArtixH42oB;A+#QU!hqC@U53e zkfcH0e14;rVZw~Wtid>I|ASbt0W`Df3GdyWqXYu$UBC>zPP#U}u?-1jKtktuQaXiV}4ZQF!!1 zfE9>WLPD8<%#NXGk*Mj-21^N-7-D!;cJ=b1wZfKo%?K9#xGvWw!PJz`Y8ci1@ET)` zu^qOnt2=k^-9KGkR@E4T{WD?IP7M=;`H)~%rXD)ocvE$6WTI!rBDaj_<4nm!XLdUl znRix7(er1sJPImx?*!KJId6DF!b}_pI^Y_$6HAO-L0;d5E~qqQY5skJ~1%Rqwe2_11-0jI-5jd3$_Yv@0nPBm&Ev`A`A zgu03mxdqx%3V_X=>iwocj1?Y&V@Y)8e?qwoG?23?9i#a}LVpAUF zdO0x^1Mbc!y*_S-yGUhlVQA(-We#FgtZ+NkviE zX!IL}T<7L8b>Ol07EzTV3Khrvm_WIO4(pm+5H=CUd@ZK=?7mS39>#Sp7J2qiU||QN z2)Y&Fhp5lF^c+95ZFiTqY%{yMO=U;&O(D5_lEh#YSJ{4|}pENUq*PmKdDD zH$Knkh6UX!sRIwn?e+9{Xj)HDz!fUmx;JSCn6l&)1pnHqG_5SUyq9iJ%vf1ykaVG_ zGCMU3J39Sc(Ff3};PECjUuq9p4WNaZq-OH^C}A*bj1BH7imJ>p#yK+X+`Dt8BVwxS^FLqfpjKv=2WXZ}(%J&ytYrT4E7pgD<*! zh))zpfi;UW4zMh;IJ}3W{SQEUOxl+AJ~s=MQcOE;g}Ku0F>4V~x(MJ8IyB3V>k@oCy%G3%GpkTKE02ULL=uPo;w`BMR?uH$ZN+FVpCYs!2Ri7P7`!~gPG;#6! z9{fZg@jtWYg9dlqn%$29WDD^253M)jc3npkj5NoU2PhJXpPmV7p{G4z@`d*Z^b1q? z19&gqiYRkQijmLnNRfnlW@F^N((lOkm$I(4g?=Yyi#hf3v5eGxx_# zifZ998kZFcfjl6I;m+ewOnvT2*yqC_pg6>OLpBZQ6^t=z#O3AH-Fr_R4~JO~&NDVm z9jV{Qo_Hd^u+@Q*gAq+bu{k3_?Q=#jGJl~6^{8E0Gji_&owfnnirQ@%lwYd&@zlSnU zhU;49?2!_g|LZnjLS8}&_?aJ#^N1Q37ngVM-8-I+=kq8#g~AZfl45Fj!vYY*pPa4H zxeq=mr(iMsX*aWw0HQPbFmW%xC~v5W?u&<-g8IvT<~6CfSW~^NziFHsuq|mZp-883 z%o4F~7iE^R5DfO*Tji+hMYpsBBWbx?Pqp?36lbZwllx31t#ED=aMi=QoNb&mMUPL?n4O!_Zo-KO1|JC#UD#UVd#uahy7Ly&?X@EOy_G})kFV5t@fBBhTMZh#H9 z8b6IRpfmL}gf5kPfhCH1vEo=gStIrlhrI;_x(&V}G6Qd$F7uPcgh*x+O}pr;-P$nf zlQ02;p$RM`0DM{_5YI+g#ZdYeew;?rDlYd?{fB80MdrMLj}E(LxqVqJa`3rookj#B zNu;xAdQWA-g0Tyd?pBqfMn+!UxqJ8C-OL>4^HPZT-0f7d^#qLzhS698VkjgLpoyo( z?B&_{nRigw7uTa|!E4|yR(Gfk9l}v)!T!RlFr{tlS{e#bV5;+G=$eCXnoJ^VpWb?X z%=@$Ez`7}gJCIQ5vZAMwb7;c$UsVR*rab8yH6rrPy*qdB+=l9&AIz&|&^>Vl(yz(V`@-7BC58%YbihU&TL5}TwL6H>i+R?JfF`MRf+c_N>vCe)>xPX zz!#{#Sbp8R2)ZWh8ukxQ`jc#kx`*sFv7#YpLAW{mZPG_PLKdyL;w!Tye}Ie$gp_ zSMz5hSN#u*Vk&|nsN7=i3%a;G-Me>h+qUyKqjV@cV%|WjouzCZ!CvvTSKidtl&xok zSN83E(|JW^X@@i&tpb<{EitXb$qptr52VI@%_GcUIOvPOMAa}|nCrhrEav9IshIDx z3{`1dq@_GbP-m)hdY+O7T0j^E*Fpg<^!#;7GU9wbkBU2Y?_FJ9#TWy*N-iMU^2Z^w z(rinV)@3ql4OZ-UPar|g+5;9xoR|a8VyQEWIsdY61k?1}FK~MkRw)UFKX#rLPOR?6 ziVZa*?gtVka=u(S8PPxT#j+m&rw#a#8FDihf@L@ z1O~lre0B=Fm<_9Av|@_P5?@Z>0Qty3N;yD_D1v2p0ukE0TkZ2p;#8kXE6rQsiXCM8 z2XO5MB|U8JN?bFf!4u4yo1N%GBvp%c0uQzDDO@|XF>&eY5K$R%9^-I0-oJnUcs!g3 zmPn$PV|ai1ZL92S9aLODSyL4ZhNxSFtSJP;Wgbg*ov>!!P)-ZS1;S=#wd>)wEtP^R zWCStEoX9!@ek)>iJy@M4pp2K$p{&PW#ZwX81rIGRk~Gn=484jp{C@b zZ@MC#?d;RO1Hy}WlFf!vS%bB)k|f~)w*J7pOEo2MeonaM0KZe9cr<~Rc0R{t*a;&# z^+Ckaf>(1Bj?LeO6kKz^%Me0^MhO(p4Q$*_v6k1;YJYk&&KH*#ckkWJiZSFM^nd8S zFy)F1|9^g(`fc%0nJ)SP^fk1CBN7j1)KavR?XUOP&|w~lr8gX*D@1aDj5o#MRXf_t z=i;X+IH#}*113P0|AQPSDXT|#@tQ_bxulx=0%8ZThxsUr=aic}MD$%n%PW}Z(z`0x zgjTrVCuwpB%5Wlw4)JM)&8B089ayzn>qrx&3>leN!4>dDk>R%SuCut}r*fRp!Ci|I zTN^MDWvlJdW=PQfn4cPPq>KI8RtjE7yF*GP@sxNrr!cd!kEsYUQRMRCEd-=OWG2ppZ1)e$_k7EqIid@o7^osFJ6%^bXCX>xM%q{84x^#&N>UH{g6Lg$z$%HE%J} zfL!fPMKtIevSk_cYI?Fer~PJoVyX&dp35DzeZlKMobq~zMZyP=NnZx%YIZ|F*#+1d zBQ52_pZL|Jl6y1BB|=ef6S~Q6S?jH$W)~Uc0V2D`ri-A(YHbDd5|c3*PSBx8;51{0 zg5#|^0v{8Sbo=gy8UIY#Fkv_W^HX&GaF9g!I!>8F<(-OAzW4|#ymxPJzThuy+S88O zoF)_Oqj0seAn&Mt=ypXu7J)n1no_}G{DlNeh?EVA;*CZ)SV~PP;jUUNEI@afxKQ{S zDOl{7qD+&M8+k>)fyo9oAx376b5-5FcmLwzbiO%f!ka058tRlwj>yKzZt7=NFUvw3 ziBM)xx-8$UQIJT|Xv77%_Mn}#jDCXqykXm4vQ4FDOOHTfgEY}b=X3*p0EyVT7A7a4=yPGmh={xQ?w^jQ^B7aLvyn0*apCN_R?0AT zya?Q^Um6SU7o`opC)yfP8)t$Ss9BU#K?}ezJw;7didR`-n@^I_n={s&)*gpwEL7`l z4c!%T#A>`U6Erh{!+K<-_7WfIZ9V_S_Bb{uT_IYy_zL2{Tqh z6kkC1QyVIBnLP6$zBwFW0S_E4YixM!m?1mm%=*rX*+4~MP?{(yz`8YoT7i`nVJDD> zOsdTd{(bAGAl9J%2@)PWye7n=k5)=CBb2>D19?fsU3z%#z5o$HcSy)9fK?0a>~u%O zES>?LNiVF14{uOq>!{?sdeplR?*lnO8)N$2;TV@&M2+*!<<*_5J9p0Kvks$7@oOhe z;ka*kL9sdr%o+hJYFVUTf(KS=ai@rh0x9#I?YX6nr4-#aII=NT)e#{j>9r(o`nq+D za3U1X74(neMRjY|1)^5J%s;V>pfM7kw-qeN5x}v&9qGHt69_Q_ zn|;~ZoL?!Lc8kAE?4+;&vIe6DE-m3$IfT0;OA*ie63It)UXw-XyIr6~H4P8a*qP2^ zO=gFMwbBT3DmXwSaCFuE_(c9gJlkP%*kb`kNzqe)#d&c}<3J9qEas4+bZMJIx1 z_o>_ZYgKej7pEfDC$ks)r(*f(z;&!$4G=8iS|ptd0y%Ij2(8LQU-NM63hk^aVN<%K zm~O2^IyCL9q#}mFw8(@3(n49EH$9eQ`*xGG<$Qcb^Lo%QCj zoX=E8MW2n<^r{?H-!y@x71FwScQ+#{qe=%G>%TRRG@g{DG)4c)*on7mifxZ>EUC6c zU|L$rtDeBSXKuyd(SAk~H8~rJVL)koGj6nw)~F)QCF~>H5OASl?0R33`QTk;vP^pv zisH+mDusQdwMy;rswbiL2%M$A>E0CV>>`}c$K&Ddy}J|r6D<|V&X<*!o&6C!zpjJh zBGDBJ%X|u`cRR?oI@1;B;9P}A1YqwBtB`wcm^;lQ-4O9Ii2gViHFG(xn%im#XJ5Ki zL?N8tjwWudSZL&jnLO}uN)-mr&SFL8IG-;rPFHvD%oY&t(70(dS0ldUWqn}t0mA+& zY7JbDbBi{JQ8WlxbW_}D%035EXXHs1RZM>Icgkr`^-zN0UC{Koii~-B{JnekGNbC8#-U5A8B8@0=>G&-fi3Gteoq-idxthj z2#A0ytP*pT9$4IU^}|Y{EjpI*%(tAOp&iWp*=@oIAmG6fxq}fwJX;Qd27fL(aJo!V zsP)A&HggpdxiQX{msgipSL0?ZQJyRsZuEM>OvN%>(2EW7ZUYE7DpY0x0U%qh7#C8i z05&_s`V6z+ZqajY5V%ws4c|OBgw>h=mnMJ=UaDKAobcgPjqV~b=5{}|CP$F-+Phx{ zqX3h?Kzd~;R_p8>#Dd4N04kO`{K1_PGKlW1!5JIq;H4RDzm=QHkXCVrCYoz!Haik$ z?Jw0+$#7Z$v`HtO)yWY$2@&cc6hE^j89(nJCXP;P?B~E zsYTxECP5^yk9k4mJaI~wBP4@0l9jm-YV2W`r`*i)Bmo+w5nJD|gLf9%Q_%8eYPX&s zL&t}0%Hqzwdzm>#CB;TIYH@D4%Jh+8235sPx68Z(wk`q9C^{Cyv4^So@G!}ku;gZA z?fRDD#`ZdrC*DF`EsP0k;Er-gsizbd7kc3Ki&9d9QB?DFl#5VIj8PGJKG)^N<;CU2 z7-Lo0WQR1?gv=CQ9IY0rc10~)@Mwh%c@3b?Lb;~iEtNI=nKiVJ!Q_&OcN%&%FeE(` zQ_PEsl!KvJ%7dAFAzhJGp{$#(F z2hkWlLf7E(^~?u>bKKi4nBEzj{jAIEv}1O88)*zD`>;fVQ1)oJF;DJIimSngm~4?U z)aC)up~c*dxoKqkjcpY!S@kSt8fX${BuNV%X*e0-eb~Js7#P?(%UE@~igcB7Rm^v$ zSKhgMFEh^rz&Qyi1-WkfRK$F4r`o<$C}&DfZc|B7tzfd+t!5P1-p&DJ@CGEUtgUsp z?gXycK<1&%%Y1DT89_@=egne^mTP_3L~vmo-nEkIr8b5ri};Ps5bqf0)8)nG)zv)O zJNCME$YS5P)9f&*dTgh2a@HNjGl8`Tnr-@>!7<$Bo;lW|sSnDndZD{N!|HC2*-?_A zUfs6T_3)~KvuiyX_C%*$rsCz$7zS0k8cTo-zL+Jg1h+Mh0(i2uGL<};N=*e(wsO=U zB~-&)y1hlLC~)OV4y`bpGc^4WQ&>?R5tQ(-u^pYAL3u~R`3i>VS%;=1XqZPR9d1BbwI8a^j-8LII#gs zf|I06P03o^@5CTbo#D=`tm;=KYhX7yDhE9#xD%5CGi;_cOZ+gB4ELMO^)*grfC@B` zotut~x_AHHw#|Lo@bB67;q^*IF`v*M9tmks==Kz^T+atA1>FVhYWb__3C2bU20<@3 z-L!_k1&@e<@FymZncbfXlEgj$C(N!$EdUJjG(5LZbtTK^P#xW0JZCE zq*;IR6POHR8SoZ&B_ahQ8FrilCYe=RUmj*4SJ=M^!b3D>X|ZRB>R4Pn(GN@C_$^BQf3_p3wq1}eeeW$PNx{t z?=xf^Mcr53yL%TPh>Y2Kf@x63M!PB(_jUOJZYp)QJ&ag4qloT1%%&AmBQUj!;FDFg zQ5NA(6jO&~m00jy006t0s(3|@Uq@5E8glSf*}}HdSHwg&SyPL#qGHReF%H{y=gyt; zd2pO1S}d|CRURdAP@D-0BADEAQuf;tsoWx12Kih<(yz=>=Rkf&jfiM)T6-rCSACfe2s1`81W?g1R#cN%PP4vua{gB2jyICqk-=iHHb-vftHfW2Q9Fx2LY3 z0fW7J8g*B4uCRnn>SjZCnX}9!SPQNtH+W^F-6P4oL7IxnxiLd*LWi|qO5;z(a?&XC zsA=Tfe-$Rcw64VNCo3HTOyE?%mr@ zs}X!4N8R2f8 z%$Xs=bo@C+im_T0L`z$K-);0Ms5n@U%Umku6qZcSJC=uA%rV($4%(XW)^sFzhqGV@ z6Nt@z18Nxgu|M6h`=mWBjIRSlE)vY#0S!3<{(&+GL1+|mTuE7GP+dAqqe{P_vwOG! zkQT%TST}2>823Mk=2}vU^Usp5+`F0}?L9<@FSKB%d+se;AZ1pv9zz%_u=~t1Ai!uD zplU$FdWsf*7jdg>RSPiC%T&B1fIz_^q4eGggfKW#uoAPFFA7#ScO0jNvp35`hz~Q& zs>*GjiYoCN;!$Qg&O)`V}kO~Ii4Y_Sc$mDyf7OAB0t+0Tz zspn@2MkE@|XyB^mpr=>_DqIQa2m|fYFo80IMZ+SOZ{?z%k!(>>S9kBiXLk-AZnQNr zqj2I?hE|;9d}UZnBZE(=3rlrbm|XqS44EEg7xNCSCJIU1ks^AnW4~Q$?O?VC5ckCb zg`!t}g@Ok{3C7aa!(=rMKQuS@AI{NR(`wJArWF9EuDx5h`u+EPb=in)D7wBmI?% zozrp&4+bqUvvYmxhsheSq|k~+KY!&Px!Qw`NmQJKu;EC{2Qw`kEr>)!jQz~9GYLn2 zyCSXO=SIH^J4q2y5=CgL6^SCaJhdMuaK<&VDN}EvWGZv2@LvqXXItWMxO3;Ko6>Xi zXe)rT?hbom+CW(`^7UWoLg;5%1Kv8!M%WJ~R{`TyL)zBRpu|2QH-l-g&b$tG7jBD{TPoM%WI$({emb1|u2 zznp5xERBh0Nk*@M|)XhzJ(eGD}#16{Ui1W)vpn6)-T%Sj)_UJ|b95#d@|LrD#y zwk(9qtwfVYI*MI`g#?Y}8Lnd)tAg3Ist8@I=I@Mg5n)*jhXRx^zK2jNA^+PBVSVgY zs=s3iG{ZXmF(^G}y96dsL`0SB2bhV%3u0wbvGIf)weD%Lw-Y%?X5lp>#u&$oi__Ib zZ%Yxz(}d~w0}b@(bEAFy4Bi7@t5{T1`tk`s8C7~WqC71Tt+82|X}RL`Iy?<8(TnP8VYgf{fip=2n@7w7^(} zj2Q6vgmfN{3z$?f-x4Q6AmTt(poA9XJy-;5#SqXm^Uzj)iyrleHMO0l}9gl~cRkaQt??svDN7>Mfz?(C~t+-DC2w(vk zp8tdWux_G5w@uLHCY#IqU1-$B2o-%0jKqg0NhLm81VDrCB}4Z1Ys-ZNJ) zS74;hj9GTsgA2tB#c@l4sRHiwN#m6@fBArj zxjsY~tt2EfV%(hXT;4gI4x?Wq6B@kiN)>}G8E=p!n{Bi0R-nV&%Gln^BorrRETC$w zd*AZOoTu9eel!A^lHH}u&2(Q7AuMrYyoiKlJAWNtr~FGCOxmDsGm(lI=W#e}S9k7? zGakKbU3&!Ze+d2_Mew+1chD^DjcD(SiY*iH>ZEsf+KLrV&!pWJSb)DkEJggtKF|r; zaDi6DmMA}pLxPsndyh*LVB{h?gC2wqWr*_)KqV1L0M?N2dl@$PfZBQw>}=>d*n8;P zPSbKw4HA3VE5{KEVNOXIg~j4jQBAs0eMn(xURR30vr4Fo)8Uh!e(mEgeCENUN3TD6 z^pOvK>a|yIj>p3o1;c{57(s+2vX~LvN=aqO&FpdU=0)du&=rx;7D{f=={k@LwpVzy zU~-2B3FlCrT#3fm776Q1roAWxsN>b%L3{?Z00Hk%ND7`T!v2&FWDoM8e{X9&8@-6FugwE z2R%Mc3#lo5N!0wQi0s~_p=VK!O7o~y%Z&noIIVp$bMq94W!qaqtp+RVCv_~WimQvm zM?d=VmwxHHzV=uD8~@hl-yfNO;J?LeCYXC-}<)uH`n8ky*oGOeXFCK9PY?lc|Y-J~d=?APi&K9vhJNqx1G>i--Qxcx~jwaAaPk6y7 zuIAz&*+!zcEC7uu9WfF-K_@hSrrINNyL0#M>knRoxtioGw6+p+V>1OoK@Lk8R|be+ z?jfQ6!&Hus+QJS+L@Lcvui6=j>Ka4vg)n#H$nk=>ZFY5?05RVFuE z=I8=j%>?Rs+G0gyj&Z(s@BX%JqlROvxqw(K2EX>mWB@ZvroIvg<3Uh9nrQ37Q!RF8 zL~Wfl4=~ub!P)lVDA=R%fSC;w9UgEjX9olz^Wvy08H{UQ!xjSLes8JFNio^#9m@hs zqJTjn=vc~-3w0}8W=0Xl43Xe%EO9diQaM8F8X%k9;{VMV!9l2lQ+ONz4V=iTIGyr^ z7hd^AKmWOJ_`^T7KKz;Uc|_##jTa9tFMh#S{mmc#;Dh`3Pd8^9zj2|RU-1>VGo8hu zB%QR5I*N_-CxIzw)>jH0Zm(2fGQV0SKBWW*%PoC55SZvvE4c={SNO8Xx~xo=VDy`g zn$SJWJ5K8E`qzvW3Wq|&)tMBBWEq6kbyzc6VqsKi*X3fDx8oiDqxV1M!lDaFlW%#r zxq1BX;lpji>ZFlCCkTCh`)wb@;^n$Mccf`_ZCB{qSkXuDTAK9p*DX;&%W1=#m0-Kk zztBbvJFx%~k&#all6|#M%$o?ER`G_QJNckSMMQ2f&gaX^tHW_S*O?OL#F!M&tCggv zF=YW!FQROmiHS934qXBi!UmkuATk#Iu@uvvpzFk2_aKiLqIG)fGq|LguQPWj~<`j^5%;_^gDmj!+-VSgI8~E&T+n}S3dgM z-IpK!f&coazW&;SQFc^DCPoz8Fl@ma+{pMD=#GigIkGbQp&O6{(1#KVU%@)OH$wGI zYax;DQ&WpGYsv+c2FioTRdMWCDXGdG>w2m zk9Aw4=KIx+@^EeOn`QGm-=U;9P6?MhyaK!#6XF=pb`*X?mt0+A;D@^3Kr4br3zb!G zV2?zU0J<#BB(2`#C&f5*mgiB2)A8c+a*VNIr;k}`&!$SrVuILA2!J0gAj_Ml9m6*R zzKJHI>v;Y)_@r2imRU`~c#SgY6Xc8ToG~>MHiq_x%s05xPW@JRN?~oHc#FQL5zr8v zpol8HKOvQMR1?wZLc(b&pIG0h)4$|uK5N)blHlGSQREzUfbae(KRL`S+iD>hAXFQ5{Z)De2SI@xeK6vf%;gFIa7KT~_ z8+(0r)Nf_1SztvKj~Rzgc;u%!K>`Gp?rPGU6Pt~AEr`>S1jXCBX7>~ZA^&Y}7M23y zW+?JAe6WSOki}s|iO^ub$m3jX)Gp@o7_eNfPcmZ^ZtlgM4iD9I%E(jd$H-zQX5&y< z8U1n&IN^^@xR_=Cv=Z5NlGc_V97aPjGOEV7y1EmYV{R}*Lzhlq(auEzuczPIihz_e zwcLg;_<|L1OiY=~0*!&n=!bbSo3|PEac=8!c|+qIP#dNuI;5>sOk3_f6H83?P)4!4 z{`Nwgh29D zB)|=(eUTzGn4Y+*o;CVk32DSMXiS5nH<$2&dEPftj46@T`Nnf3oofCTiS~ zGKLELmJ5&VEhOG9?LVvg3jjO_Z)Xn)VFGj6tV;Oy>^}0et*#K}BouB(;*8vK8zV07 zY!Ma59C-%QSrLbd&w0zeQ8&@nmdsKxaoFdzvO4LdN8&gI+SBat_v=6qRbe*>n>#$9 zunUf)UQ-wfvL!U7oA|_Xbv)H0yQJn@Tm?OG7nD#>=$?QX&^T`#vL^V@8WCaWa?SJt z2T8-6pKjP4yh7BZi6y?~$#P_;KvmKGFnhD3wjdsZ$*qBg`vuFrP1qay$k+FBUjFr6gd{@{hS~C+ul3E<5L+QUVw-T^GZ0rbH)5w>W z2=a~CAi2M{ch@Y^G$E!wSKu<^u864f`QqXtw~ciZ<2#1$`__4+Un3czKhkUuy)pP( zm6R>En!qCE3OKe-1pg8C!A;9EeQ(?Tjh#AW$RCQAr zi!lS@E+hePfaMso=Ct$Kf>U6Mq;QsgW1ne&?2w=90rNoJ(NTxSoJ~|@_ItY)3y^II zDEq%Db$4!oX2jCI@ZQKO)lFfJRJVb6(rf(y9*5}Z?_8$|$V71>ayPI3!M0v|{0M>q z1eRKU9S3Th&!^+@cskCV>n%9zsVI^M`xx@_J>W|cero}pfE9KO48(_iL?fv+n|e{) zo4Rv|0x=R#Kc5enQsPG;%OgQ3J>4#i=vdKP;wD&HAc?4~8rycbxV)^ z=czTqKTaC5xCLWfe!45%b$*HO2;JQz_dzp_2O6ywUCh}rKxe}1v|N?e!D?z4GRVw5 z?8t3N64i?0!~l;i$&8u%0K8{hkBAssWaW88jQN6*h{&vr5mkr7IGyS|4s|$yL!NWx zG0y(32Kd>H>PB8@O$Q}Hp)^xP75yi?Cxffa*lww!x_GhHK4Q1}6|&CO6-tbvp0MiE z$Uco^V#SsX^$CnFMJi4*$KPa#hSr?{NnsQk9TwE;M10a;JKt*-v7{dT%6Jz46>XIJ zo+1;e4E5QCv5mwM9?on~4YLo%7j04uD1uUNlaA#7JqKGjw zJ$RP9H#*T5$dqSl?e5&y5dp_7n#Y8@Vk=j9u&jnK>i=b9hG8S@7r(ZaU+|EXt)bDm z5l^UG*&^yw>J!hq%puJt;P}`IRWKBhjvd2@nUnNfMc7r0>cgsx+NNr@j<<=-y6|wO z3?&zygAAm^lnpY)n@X&Dz@|hfDm5Xe)Joylgf=01G1IC1%08`SZNQb2y(%=sfjVS% zU#KTn_P6~wSSxzl*h`}0uw3iEdV6DQW`|5OEC66*_X8@kqnm;hBxJm0z)j4onWRlK zV`@d;?2Dpm5gz{E?`3b0-!+I5t2k{NnR$76Sz|e7PmPN-|7`jymu>*<+RTRpVgCs} z&BXg1Ov#W`p{)w}X72x|Cs`q`Ot)z6UbHE;$k=c466tvNqfXE0&ReGJ9uK_-^5|PVO+syc8HrW1&NVSUtCH+NlhXjd z=``IuMEtb!)pbJ#wpk^Yd!wn5`lwF0s+E(?Ohs*odlf*t$e8>5 zvR|A~IBOC48e^G25Z!QvpcaZEt26feOGE{JygaG0XuIYO9$=1DnDc{}ui(?1wFvm`utfcoiraL4fP_%tm9dqk=Os zHZ|IZNd(8-2o`CD3|WmIBOy&U((3(@x#O!A*+y2(oi~A+m=c4*1baq2(0!WLT*kIRgp66Km&_$c`zj)oJZriYlMOI| zDsW45xE$b|e0<=7m;E((?333Fr-Gpl3dOIIF%tp;Rq^tuii^w3X;bLv1ZT)JXP*Dk z%@R_mfvABu6L2~aSw^R~Ad<`&LmgeVshSEb{uB0yNmazcV9$-miNYO-Sj4S;$XS|o zJ$l~<49t0^(($xyTR&RnC}=QPK8g)n2)P#Y;G5u`%b7StqH`hH8}|jjAo7 zI0XrU5-^V8j+_P{7z+7j&#Vh}MnR!gjb+P4z)GvBmh13)E#&}wrWhLKb&y)4tByff z&U{Ho0*fWUC1^r3l$D^kmnrc4Cs9=tU0_BJH2K)^HUFN>>G5+TviMKFa zt_Uds2}cV$p|B*p;~T=HMH?`}9%Dt!!{F$`X6xlsSKP`<)W9hk9WyGlqA_W~+d@4L z!x2Wa`Ezl3*-sXiRZ|kK%YE@YIBtuhkQ*^oVMNHFkP^W{(^RCT)g9E9_ufReU=8e} zW3bk>_*2V2)BY6m7*!bKQ*k@fdpGlLU|_rSj;?MDGnggfo`orzr2(-%x+`P~f>9~T80AHkVJAkJY&uI|UKpI;hEMkw zFqkIh3dkA3Nd*fcel{TFTXOKw$lB};8MST&G5Y`fD!18?XQ-QwgI!$bF)lAJeg8Zx%D}YW zkCeH*L!}v_%lXq_U5<<{A&q6;-1?dP5qujVqc&ApXhZJNizt{4B$5XNW)0D0UI3Zr zNQ-f@2Am{}QKyTG!-mBJA*;q!TZUpbJv{NO57c98Ai-wzjHx)bd*{&(xV!^Ow<&t; z28-GH+AW_0;v(3!cC2q5Zz}I7BJ>FOKeMlvx98B)OGAkfj4pH;1i3f}U^S8Ex>jr( z_70uqq=`^5(=Fzc9jq0IF`x3t$y@8fQ8+p%&JVXxM{;RNBDj?$K9%s*w8|B;OD|J- zgE5`|>D@>mW`f+Lxz9C(k@XoJJz0foio%@&*IxXh2Xzr&&i2InrX#Svj%Owdv$is_ z4_ARkW_E<<5)gFQo=YRkf;wYKg8gn|rJTPTwjJC(kS;DMyVn_((N&2pnkf1!6LZ>< zBsqjDF~j2%=44WrtRrNM$vn_>BYSqDpaw#Y=b}plK)z>z%DY{iJ@kY%F*O4|GY(sx zE{_A*L(I_NsBMLJ+b>giG&Uk4Hj_kPq01d>u9-HYn_W7SUE~xQTjZ9Ep#ZfK+(-tM z*lVI5VZYfn+(}Vhh!|NiaU1yPnITfk%Ztmw^q*obTX96;V?B|A;M^dp*eRrxEDT{c zB2{ilg3=<|?1XuARA}tMdaMvu7)RWqS3?b)V&4t40#Kmr*3M>(tlT%Eg0H8`F7s9N z6={crA$`}-X4FrKQfE9$Hw?w0zs9s~onSv;Bas`-oIVBNWunkn^8?pfpji~*I}&Wn zil~0Q+u|K8AHX;UjEKm&P*cGznMF{X*KAv$0o0jqHP~8&oWf+s3G(4OK%y02RFDat ztfWFb=*`*{{xdgiGg2Y2=J#$_6%d)LwvxBF*LZAdzGphw*k2s6eIzq*Ocj-kHe;}@ z)tv&ko%P|HWlMo^mGQ9r%p@su9${N{Xh5OaOi9I3v_pt8Z;1;HL$aXifW|?LstA*I zE&qTk-R$4cYQ~IYxs9re(^X6hUN)T#N?8EfBO*Tl2i7-yGHuh5vy+24inV0}sYP|! zu(91?VWk*MK~jHEG~@Y2HWrEW0#46P6d`&M+$16G^Qwq3#_4p*P5t=wj!;@#V!o<| zuETCR5M(}RTQi%eyroh?B}~7K;I_ooM>Q)H$bvUp59D`nt;O!`F>zK!!LY@Q7?Kkl z@AE853%SM(b>qCtw*ZnNU|L zA!j0KOFKxUp(y!mUaO%a3WuA{7(sze#4AG~+D98wR^X|SK-D7BfXp~Y1aoj`nQ=qP z!k5E$G4F@giovG4kf5>4Lzx$HZHD9@D_DYl&u)8K$27ofrT} zpZue@t0Y>9xkW~fvIp!du=6NLAfqHA3Taz$F|GS!4zMSw1yQHV%cAcEJ`cUD$R?W|yTA08>ys|Eru2JVnLOu(%I_u!!9RCY23pL1r@qAu->Fqfp>I zOS`1(EoKXIOIQ>0AO2!6%R+YDkeYUk{25j`387*P_CO$8MQDz!yIU*G4Cy9R2HKF$jk3h68~d7_#l#_4!G9JXHm4RvOl zDWdj5%4W!z2AVYMc}t&?q%^I4GS zJ7mW3xLsZzMn7rAIw^%6%=g(p;G@ilL51iu6-+BefPkw;#601)O;6oH`DwE(Mz?82 z8me+{s|ZR$qp9j5BBv}Cg!RqU;*E~n9YhE|$*3d1sEWh3U0rUM7pIHM)3&zP7;F%z zf*!J>S(Oco-kpp#S1sJOMzA*jP79oniT*6ZF6c*i*&_B{%&HcVX=%k07&-(*n=Olh z6v!}OsNEl?@IdC2U6?ivjdq+jd0`obsaqHPw^d$jTC{JW@lGi2=1JAzupLgvs<}N` z;n+R+R)ZWfb7`Z6${t$>Ds(7Os#=jG$s;c4}BmeCtP_toSLr&JH<|5dmpZp=g&=1_t z9I20SGJC@Lnaha5kN_K7i}R}P^GXB&VozX$Q+0|^Ik+}xmH=u-ME3Ct#d~x!#NrBS z--O*~G9#UesVM_UcJ=V+Ep@ix!6Bupwv6qtee{J_?%j>k<>CDB{F&G4?eBbQjEd34 z8}ObkYh8el&^YjIN?4a?@sqCLiVuEd#kS$~E*m^z3#3nNrwu3QkYbnO42(I~`lm?% z7r0K+&l1CaEWCHq23lq)o677|Ceiw*w`ax}ae1-5^zx&ZKK<}`h*9yDx7@pX@AUZ5 zSrKg#!+dsxypfj0DA_&pX=_cZ15A@tk_AoM;|c9(#XdJ!H(&i8{h-Vgx1#3GE~5pd zPqZjvpZ8~*uXQ2iWoxnM*D$)(vjMn_p~aKsVq~A&@FW5uoW3BJZ(x>O@mOL}8~VlR z^!m*W%!I<0>>JxBdSrPWV}gQcC6oa%Ra8G(Ti%1g_{{Ax;y6uC{ZveqiI$;`FPu(IjPV z%XZ$%(7_ZibK|T1@Gf5QIHKXnW(AjE;y@LAZGHE80v=v=Qgp6 zNM@2Ho{i2r%eZ26H4Z}&s>1hg5^Igzg7{XL%N$jo`1nh|?pObtU;Rs;d&|Ak3!i%U zXa3Ur{@geH;9K8%|E5OvzEdV}nv|v^D1*4$f2M0Fb6up-SPaQ9#RzVtt*RU&Y92jS9e z7a74D-QwBSDyFCc*ro>}<}HOurhEYb_z*4a!oo~+{*)_ynRq)Cr2(zf zIGrx0v(6jPnxI;{%^AA0TuCyRd4;)^LPkeGGlNCNl=-eAT*HNlw17=XOAG!2I=W$A z@R*2#Uz47=5|LZS)?mhSatKa+m&wlpPkIpx9uiVsd zCx%J!m}T`f{WvqCV2Ia@7}ip9g|jDIkr`V>j8U;w;nC4f!r@8PyMWN?wuzD=jZ$%` za-7*#OAfSG0^pTBz#+0DJ#`-q&~Em`F2+14`sPf0u=7BMPmazckRY17gKiHXcB@p#ClW`*pz zLu2c3iONB0!USMqRr6$iFc%*;rLuuTp_qX&+izyN24iE;z(996Nl~f%s$#umy^mj+ z=L8+YAVCnp%kAR6W-4vVJY8Hodi3y+2OM_8JhY*pO*CoHT(n3!gBd!=$e6Dw;A(Z^{am6=e_^KFJ9fb9A`w1?(? zMis|yOivXcLD1Ec43nBkX4Tcz@%azG^zZz%cm3Hv{?o7D_u?xb{mg4Gzy9(EU%LB= z&-|(X=HEG;$_^H8x@yL1!kBeMSIdFj!fdibP{GMU(XBnaxb-_qp;1?s*8XT&89)z) z1t&rO6tDyS!p0zFyZ~4-a8(Q}meWzX>ye9n2O~F}Mp>~MGZ^2g6kUija_<#b;TVX3 z_BH-sI^W6rs5%{w=H(HAm+IQU6i4Jt(E~l^+M4^Uu!U}LR=ImtpaqSHN1M;e*r3^H z7%(;Wm`w*@K{3wYba53EEhR{cpvbZl{xQbka6BBgxv#*ukuc%Y{WBo%pfXF(H0E-5 zF$jY$*s%UPX=&+!AHFBch0zrzV)ZhbQ|@g@e48xZtn2I+l^h0j7B*_gtlh*aIy9#7 z3LVe^)C4T?-#!7Pvc$Cj$@rN?W#^e`B3sm7RTUQ(rO$VM}FkBFZ#ka{KY@{ zv(7*CsjTzm)#0!mF7BRQ|IF*3^~S?5`g!kt@ly{@7YC}w;FVlMiL39VYoFn(NKTmL zl&62u`NZU!BAvIwun@xNKk2Xwrb#xw+z}7zcrjA^8p=-ak9tSo6s?L|lfzi`@ZRFn z%b$Cv?q7y*Yj>OcF%cv7qZy6!fre4rwjGZLfWC)~9c5CG77wF6yZ0e-@b&t@UJ#ar zjBM;bCKkiZ<&@%cz9quIG^zt0M+9B%6M-kmoifrMc6Zg`c$l(GQx5ext-!fp#@Bu* z+V-$J$JzQa*Ha)C6|G zqZ$&f8UucVMxjm}+hN4v z(etnTnLqY3e#%dL%kwY1a(Q{E^FZyE9Wm(&>^UK4Q^bNnCbdA|XoxBjj1)B^vLk%= z)X*HO$Sp=xjf}0fjGSBankbBa+Z{^wG{309rB+IcWu}@}(90|}`$4)m$6-6X`pToX zzxntVzu_y6AA9*`Y<1es^C0mNbvTU3w?1=vbbVg7*U=<#;!wAylIK}W{(E;tXC7U7 zsWI+7_l)k|_NHGnIh991Kx*nQs8y`jCAJDz96#HkG2@pRYsY^CrD6b5u!Anm4(6X7 zAms_HE7WZ?9SR!wAH+Ni=yU>4+X2^yo>GiP1@o)YeaGVoweORHOF+5IcfzDH#SER3 z6NYFOh`3soM|Dg{-DaknbRCg`r(o9p&>XG0UjpVySNml~CLUjjr3F-WYHUxC$K!E~ zVVWS3?E4X1OaEA;P19qwy9Xf^mZASpYWSo=waX~zMQfT* z?APItj~+g{84v&GZ~Tfk$NBN2o5Lv^NHZcwp2v1^`js!QvbIox* zYRF6@OvzMDrzR7)bEOWC0Z#J(x87M;gG88}X)!K|QG~?)UqwcZaXcMi6|5rnY*o~# z725_SHt$x!F{f*5%|I^_j8LMf!J_=3pH^l+%Elbn5Mjstw6LuU^kflieGOVsVe&1) z45_NN<90k8TlWh-uOX|+A~g$Qxh;n`zjuDU%8Vh~Z6^X<2;&)8SP^WD8ilDImuwFi z2}iR9fSD9%<(+BFDso9u)e7e=;C>q@eo2R`DQ(4ynH(}VfUmIU1oJ326E?6-mT=C= z{){x^Tu(oJ`PaYwgMazEKYs7orysq3lN;MIu^r?3(artWAOER8_GOPBz5e*R4#!QM zmU%tKCqMbxpZ)ru{e^Eny!Pn_+vyl%1X^*|53iqk=Tm?4AAIuLzvKC* z-gt3yGx$Oq8z)izO5vvTvJ|pf-354R9Y#b|`gPL~Iu5bJie;3!hCuK`nqe`cV7b<+ zW18s!o7OldbXUL?lwz*SGi zp>|n*I38*YQ&i)G(c8o?e^bJi)E6bgeqW&c?ShWbIgg%cv2EFVrlkXNTo{Y?(vl!> z>Yl}Q7p$7J20#uHXs;i2I2@Nmi5I@zU((fx;EocwifRSwaPE$s4 ziltplMym=hOj~SZl|UmqlYI2FLEYBNgVPU_FIS$oK0-|!VLyzuEU%3o+CdivxDS_=^*(LAr!1QJ5BE?9R%z-UE9oXx!|4%e$`K955OHtRwbDosKuq+<0C7*<>hzZU+Za3)tT zLU=K(VyuKG8|>Q3RG`f9`P}XSo%$pl<@%S*We%e}Z~aX|x)F`1nR+tDz3KdpqRnk> zfXbe+2r_AZt+T^9sv;{kghgT`vcOa|5XaNW20{26yoU}e&?jSUjAr0_fU8;Lqv6hy zGoa$A%-Eu9JL7}p2t&whRtJs~WxQLCcIsOQ#3BtMOcJC7{tZ zY@dO+?qIo08MrU>PD|S~1XqS!riPoXf(YjQ39ic4T{wJ~UBqLHq*4rmRKKNUUhj{K zX*9KWo9dcP%v_D3C@+{vhZ(I`%!?P)%cZX52#e9$nrMcOiH0iXm+Y}sRMv<($Jj2m zd-v~s^>6x~Po1vrTpjcJ+$NtmvGHQ=9vHM<=Fv*NJ9ggQ?0s*Vr#sL&Kw;_-rM+S3#v6`D_LP)*rV?a@{v zwE=Uh&X-rm4}bVm|IP3G;$QSL-udzeK6SWzpnGIyUEiE8wnuNd{~vzs-+Xj^xPSLl zvBh>sYK-f!-2d!2Rh8*MGAvEEsSUY!1GNfOQCGet7Z`z?<-Qat@&J2 zq6jx(?Re~l;qa^9vqK(!#d-%+l$bj~Xvb${Ubq6ONB=`&%rI7#f@$G`N&OJlE>oZQ zHL8w>W6asC4nql=ZF$`B!ube9Q&?J7GHt+VWhDyh@RQnNZhET~lqa38TVUbB-c*x1 zbFto{Zt=2)z)u_cGIL8js+4)_GU1Jy^2q^kDRR73&@gCWLBe%$fE_P}Q*ydqM;E{r zq+WCT68xD_t(2JpmQcfX_uu;Ix;yOr7ZZ->MJ^Zk^D+{00)XeX>h8VEkACdISN+ECsCV6uL!4)yXEsjG=Zias&%Ezbzx>~O z_wWB5U;L2|efsM1;(RX6YZ_5N%au?dp96TvhC2778awQDOjEgAlq6@8Tz9rk3qfUo zR4x%fsvpRn6dUptN=KS=#HexS>h#0!`{Y;s^3VTIf7Oq9^@l!vadoJg=SyWx(>osW zbDsIdU-O;+;$J;@`i)nQ9^I&)UOGEEkk=ZZE}8`hz%IH3tz4QmF8DBaYn9vTLQ4z$ zE$AC65Hxw;0iwE}q*#(Wi!Rj&jm7I62noO>#E50$>X6K-BZ_5p8G1L0))|H&vFf=6RWE zi?eaq2?%VYueBscsR(<Oj#yDLbU-`jL{gz+*1;6x{eBS#%^ohIojy0+|;U)ndNLbhe zVhhp)zZNbN8#Ml9ENF@CEJCY|aGh;SIa->2J;h9*B8&n`P8W45Im!w*lZ=Q_adkR< z;6pEc`A>W2fA@QS(t{6tYP+0sqoWdez8RO#KJzvI`FDTc_x;G{yz`9@A6;+TMq}_i z9N9&4i4kZV6G2HpFX#q09Tdk|A{IWKO|5batY9Q^zT_LUkIp&TrLskedh|Agz<$x9 zrt2W$0H4x&Rg^}Xf66`37jLbk&9~p}Jo8}2D?oU`axGwB2r(?9Atq#7g@sZ{6{H`I z$JEEorko`#NQvFFZ&FJEWwUUXECnA}?N}Q|D2Z2y_Hcl{D%KX!@hx?8n!Zqq)7Aia z=T34>PsQPI2<22egHX?dPDm6XRF#o$61Le0qf)s!NQ+xtAwu>-3)xuo$SW$?-AR-C%Fck-!#EdiVoX{iK znc9JC@A&YC zUcS0IR?UMz7UZ4+o%X>-FrW)LI41676)I;3gaUwPwj6T#HitqDbW~|bUoi8S#VgT& zw5D$LnpxvyE<}o*cA?(3E6?ig zxPa9YM+4Z_$MQjlrY;H>jYUMnh&Ub(OkGrRLn=FB?VD)OWB%2QU=55bQ7}Eln7+Iz z-q7yXu=9gLGnBb@K&9PUED4TmX}4}S(y93ckP6Ox*bYFXJ>bFyeH}*FKw&ZnH-_e} zRaNeICdr5;&YFonN$!LsBLP7uBO(Ud%n^|_%sE8cjzbX8*`gT_L=Q0b17g?pnhAn= zd%B8w;ti;0@{>8-gm`gj#Zq)k{PI+ZGqCiEX*9l$Kc(>6YmeXid2jijzxjv$#Q*pI zy#IM`9S?4{iOky;5r=KW@o;|Mi+}O!zx>Dlm^b{$Cmx(m$8oOBOY;qAnt{gXgk?Sm zgqDl&g`X{{Q3M~49MSK=D;zO9Z_O_0utJmlgfhgG9t!97FKv0?c}bGLW(xEg!%ziQL7kL;`5v$qJk`#7v1D zcquUuz7?gRfr*tkKXw61xjyTin)}=l=18#uk2vtEDkA1~IY$4*3;bsn$*7Ab&cQoo zjxciD8@FYhV%&TVEdgV)e`8+Ops^RCImWaJjUfnxyW8DD#qPK+apLw*hN63P zIES%z192A%pk=J8cG8qNAEbWx@cJE}{ifgkd;ama{+*B9d+wR@qY+tA-TB(G&ewJL z*sFj38@~Ll&m3NVcyl@(_&QXxUN!@zKmC9HgLk~^>Bo<+JKs+A>7t8SRopn&G|K60>M}xoB3t7EqJmEPmOXv9 zS_))Bz86m`4MA&y8DX~3hK{LGZgLe1*4ojiwKXHt9ESu{SX&0N@DSy3A>rlxS;W&q zbecJKO8Wo{8U|9iMNJbZZlwh{l+|NARmedU$wn{y^QdR(#rJ3QgK)!94=g`l4% zO~qfUMGZE>lOOsp&_HtJh&B~2B?Q|&-F!lF-O?;JPz3-C+2;`-{n$(YQs|Hkk6?6<$EMpspdDuV)%vegYC#>?#STtA;} zs^#8Lb<^r1XnNBa2>Y1_Fk5?j)XGOR1%ugu5KB@#$2i`BV_bAN}o)ToncGzOzEhwws z`Fhk8LQ`KVQkxODT}1S2$#9>VJN^IEwFP|ZZY3H=g>bS7Sr^?lqy3P`ykyKCqlrh% zM9#a;|iNvJAG~gnZAX#XKH>KEeEM=!^0V@kYF)?5lUv#ur*@;KEFaO z4qP?sTxm-g&Pcn5{!5dEFvQH zS>@QDMq?*whr{8c&wu*QeErY-${&CKGar5JbmstIi_AP<*VVm?ANd#yBKFc(E5(|$plWJxo;IVXY23<4mJ%R6xr8mM%e8YtV?g7J=JJ4XAh|5DTF0+Asl{ zhmuy?+LREs!St2xV2D*nNg}qx2K&M*C+U8r8y8iZXX5-fTY?CeeM;J!;5mg@h2emi zT>cOpX_8m3cZPusp0eQPltJz#N23bMyY803OvalQu+?7W;|Oc3*BVZG=#?_pbHVfl zwuOT;vgH+UHV_*PmleH8MmCEgZ0`tp#)NhN@~HF0-P27R|Ks2IJ+Hm-?(vl8n*wNO zRvfQRuRQOF#0_mo6@jW9&ekacwHF)cR!aG)b3iH_^e&ZCd+)#|D>^ zD`!77M)a;^hCYJL^hj%JLpU?X)MNLkKOlx}%PpctTwNWXfBsXy_jml1|KMl5`!nzV z%*EY9j>LLujO)tn@c2#lzWVF_)=iy`caGO{35Q^7Qil&}9nO=Ngf(@(ORM3R?p*~j zP=lL8O0%2XdN?3}3H@835(@!CEWU4`%k1WMr=!gFldd?oNZS%7+N9Dz4tw0fu~>rh zB~SuWQoD3EM@NZ@TCl*Hl(gDZp@vqG3?q2 zQmM8n!#n8ejb&{Fw`@ML`(6;j2(Fals29w(^gE+!d6Q*@8)KK^x$%gb{rYisQJp$GQ5UYPe?!m5-oCylF9Uv@9@Lm(E)&FpsfW* zaKZj->AwZ>Mnu*C%mB!g)6NSj7Z;;Q++LzvNlM~q)Kac_L^iQ_a=f)oQ{uLC?KVp$ zl9|`n=Qq9S?)#sA^_TvJ@7Uh`=892O8_BG=xVn7x|9qkO}S!~)JL|gP!c>00&=CT);N!m+jcl@)!m$4FUl<ckUkF_x=}u)h~bVZ~p2Z{mKu0^7865ACT?&&rwy|d*1ZRzxF%d_u<#x z@P^BqYdsITj0W^!(xR;1h5d~|o4(80fTToLkvqHH<%((*A`B*2_2-92FuW~Jro zmMN=O@H}QVn-MrY)nXYg-1^HBMJX*So#he1q%60=CGC}m6Q)WJTbp6hEzUlkE?~}jo zxBYK-pL=uNoNKNCA*nmvJ-z<^mw(r9{|P_mE8hM7_kZ&4-DBNwwwoM2_7DEvC*Jvv z`*`4s;FeT`gkJFap#C~A8C3Tqol`HZkZ3r;>p@nPxqf^87*bSrAsqdLp*mwv9W(iJrWRQnIF96`UrJ)zA}LSG(k4S&v(+k^dEz zM|2~-h>mRsyr#IVmmfq}tRxgeAaIEpNm|E9H`tq=3SpGD8bdS$R{`u|TUuL#5LfQ7 z2RKpqH@(xxe3`$vLbe7}VhuCN4D{bX!z?)}syDN z@m6a$Fvs=d^V4s-`j&6|@P|I~;0@2*dGy-NxT*8`{OF~}_n&?GJHP*hfBA!-zW;`+ z_8Ex)Jv%yYAog_EbH=dgG~NNOs<^syeBom+fANoh=9~V9pZ(}VpUN$`QZ}*a`r-M` z=Rf`X{@d^Wo8SJy=RWss4zthk^zUFam{4I~-pA94g%wkUZLdk-?tWT< zuUx>OQ%)Fp$<^rt069RloYJ~6j`Y)nX5cOPZfH+^s)l32%D?qDtL}yH5>IcV#^h359oT=e7w{5#!NAZ^o06*C>uf-Ih zrYuEAp|c`Weh`Q#8G)C^N)#2vQ=EuPlvVp!hY`UcFa~v(<&5pDQcP|$FF{Xn&2Mzx za#Iv&v+iT+QZeKlj;p zUw-M~<;79&JeVTQj$p;YK8m$#75yFJoJ3YuZrc{e!|^x#*6;b`<()S^_lCPq9q+yA z-Wz}1+y2q}UimHm<==h!>3cUfP-XQGtUV%P_M4enBC;y8=q_0HF6_(G_L-L+zWW`Q z-~1=P{P4o3V{CbtXCLKOu^r>#gX=du_spOB*7yIBum5N7c=qYnA3yBp6Pg9O+q&Ei z0R-y1*&9c0(i{w=Ka=@Du1L4UCp5HZOeUTK`C`FEd@|WbYrNAfVfb=AaU$U_wcD-2 zVM&~sej9m`dyt-szW|@;FQpKmwnZsdi6Hc)&*eWEI3*EaWHA9()I#9WBdC4_szaKP zDk5U`fY$iJOFLFO(z-H=-ml8OKQ9EGvdPK@&y0M}v(J)FyyD!V_zvO`8<-AcnX2s>>Wkqcfqv~)xT-~`_V=Rnsvnt)i+NhYz1v{IXqb*jt-k4APJcERDMCXuE z2c+4WUNfp|9IN{lXqzLajj$6Izt$`n-JahM0u$B;Zn3lJx5kcsB(+?hqB{Et(VB?U z*Wz;*bg-F_&@7z*EQLf9Gc!iBrWcR7Fj$e>mLGZk|x>@%-?s6{|Y>OBXr^EKrryoB3 zrtMe!vd{l9?|u5=!|{**>Bs*3H~-Mxdv~s`PGbzIWvAO<$SFIjz?TNtZmSr1IOO&9 z&BNCp{*Ax%3x3qSasBE|p0*iOG9tIQe*NbDyWjX%zVGAz@z;Fkd!BtO&O>TQkJgaO znI?d>`EIt-72DDXNHBEhEHbKwzK$@=3dwJ|zBI4<2}leICSpb;EtQl|Q53lwtfF4+ zwBU`1asrugWpXPd7$MNM*^{73ETA}yn9nE)p7A4a{KXPt zGGbI54%_wP>qieC=C;|`VIzkLHCxNBgW&$$^+R}HLj^>&F#tv7v(G*oF}E|rYgYsi zXP6)n#7v|x8ckzAEsx5`5w%s08i&*A&Ye4BoY@wtVzDjRDZ)e;ZVLQlT(~D!TnrS` z6^w;@h2`AT+8*PE57;HM3O7K7K8Qe-`IAC<#4XC;uaP;O5|c^_l(@TaNnetHaZU^E zESxT4OBwT;K0`sJ8cR2bR8~&ULE|AnX{&D91J?su@UsPFP*XJ`V%ze3u9shW_1pf! z&;JQ;JH7hy>lYWt8hv9%jYoCot@pn7hd%QQf91Em`(1C{ZP8pC){s=uObXbE<*CYu z(L2INT$~QCKf3wEk36_KZ8zuZ*tU0k)*CD8W(;7>6BQ_|5~|X%4Lc@SjjE5n@bb5O z^Dp?BpLgfgk3YD$I98omvYoHTy{9k!-UlB1qObb)x4!-947`KXGul+l(V9jr8W;GM z{>-ipbYV9ZVH;8zUXT+s-5q>F;q(Ic90QHjrS$uprHDwD!_Y2viAz+*)_IGZ2H8it zSJfYrt1*!8=Zn~8)m_sz5(^}3;^JuAuQp*dy0V`y|S=_hX{j5$pyd6 z2`VFFjBz@huCA`e7;-6>=Pg3jrr>G=lD}=W9`jS^D&YeXaMDxAQ#(V8_O{O2mYAsn z1S<+bVA85R6VyPIiDqqgQAG%%RxM8whU#49e7R5+Wk^wyc65#0#@~LCCgVUd1KD<2 zAS0AL%hOr4=)V3cX#f^DF;`~w(^hrd4i6vQ+`YK@j=%8pp1HYx{OEi*Y*Pz|s*(BV z!TAl(J^fez&d0yzH-FbV-}%hV%}wRj^fNU>SP3Q{k$j-bavxQzTbplQ91b&4AERy_ z-^3Qv0t%H5`=##DMGj4e$|75#bvPV8`uwNGIBD%tmW%k>ln( z?%p}Q5ZhP$;=fVb<>?}>&tv1mA&j;ad>W|2lZ>9U?V?+YaCy`XUMThTOqJ;EGBjCu zpg-No0m6p0tx*x0-6}1H$>fvfkTJ~FkbTEJG|7VX;u_$r@MYcJ(qDMhijxpbj9?0& zC+ys@zWi3cxGUcEVZb(K0KntH=~Ek&iqpu*%rVA;2M;!!SYJ_FY{h5dp%znoAey3j zpLx!bYXMHYigfUc%E&Fy(=_O=5$L-HZCXETh>4yWjWw+hrT+&#YVw#=Soyz7q*n-! z!Yt9hc1jE0ARiE&kOnuoEqoLNmCX10T@4lJ@-9mUQ}Pfk@U?nbII{m32m+j{St)Ic z-TIF%=PZ}V2px})2X5J}Z&}3pLr{h$$RF5ej!y<8d`HtVSkG?VBxjKoHT4rnDq0vf{jDRb1RVe&&Zi`3t`C-T%?A z_=1nU@ac;a3Zx#g+S^)O-7R3n0YiZ#Gb1zc(%(_}@aFvJdOUo1{rLJ^nIrhvAybkv zK**XVRn$hoBrPMzsH%&@_QDG<|G$3QPyB^H{avrT@5R&I!vIy8qt55U7LT63_f`MN z_q_HvFRr%h8-i9M%J#U(M%VxeWPH(PHYq^nF-<_!NAL1lj<^Gg8d$@)5OI=$RkDOf z;7>R5zIy=*uhDl9(z3%k+mbfO1?hftsm1m!ZE3V9SYacxm2%08`ZEPLw-%?PG+S{R z=H5~EOhox*)5Nf0(D>a6K|N7Jp$fcvLp%!f0M*rFm$>S%Cd`gP*JD1&TwxCkGOycK zQB7mP;MxBb3YrKBxL`3`tm1OZ1o@n_kjW-HT{r>6ad=U(?@=HPQ(d)Q8I)tzT=j># zLBCfE3DpGJ{U7Ac@OH2|+p`SDVR}q01 zlIxkZcIF+5TN4OObz7;TxFk1;D4>yHxNe&hkY{=iy9DX$;0?n7(RuHd*Ei>Q6nldMxE|lUVrG*|Jkqk(U%w7^-X)H`|6U0!;q#nQ#)W0 zgsVe=6zQzkACfkK6Si% zQ8lWAV~v}N5yy8w{VTrqd;iaW_3AUv+_`>q&LBcp(c2Nns`N6W=nic{5m*h?qvgr$ zWIt_v?Lgx;RoogdMek+EHs3J)D|eu$6`YFC4jwc?T$DfDx2d#5}DZ_Db9;(ObxCAd4hd(K(g8 zO-2AhtjPtPpk(?c@6T{KIc(|y1u(}Y9GU1#~+e0xAhH<|Y|g~Y z_-Vn^)uKq)T!LRZOOfyJP0 zbKmw&-~7XW_#6Mlz2}~J_{!tjHdKf;w(W!}90`2Ks}{Ja0#|KqRz z^$))Hy>ET=`r{4zikYvmku-T|+(*5Er5x!ap*dnbY^MkA4r7m6lm+c3gOJ&f#+EQ+ z30gmC*c4GbcR&Wl%EJ5d_8@UAEl=IMgg*zzQe+~TuFRAH)5fNPYd2BsuCyO=F;7Oo zZ8!;Xe__b36`ypOS*f^LjBMo|r=I8T^L8#42x*!_EWpr6`zlu90R~eTi7Y9RS4Zc& z39jwlg>#OOq06mFFvXyz50^!w`^yXhUd7ITx6JNBB)n55jfs0(qfwQO(b;PqBWfBY z++PlYHZl3xfiFdCjA8Dod4#dL_@<(TqD>=aM8vSf5i2DSIl8qgjI#*}ubr;!jxt#V zTA^@tHfHxHA~)2Sl%bX6Y}ifYL|C5kD-PA-5bOx;6P=LOeT7?cYi#yO)ba&h<;GxVf&!pSd}G&NF}I@4WEp%da0#$0**lWQo0+vkE?yv`-fnrF=SU?h+Yf`^0V}u|XHdGBXq?C% zC%bEkls@JyxDBH!Lg&KlN3iyFBBP;8peGlIrMC%4G<_t?EW^1qChp53YXkYvlVjIj zMB(`{TiS4}&X|Y6h3F9*%P*xIr}mc+?2$j@t^2d{v9&9V+Y?+OznxzV0VjT;1u*6)@-dO(3e+qv5+~& z`Lo{f#$Wq&-}P7j)<@p(1#i9oj=T3i=czY*;ak4_?|$NU{_em3%$x6DpGN}Rw1K+~ zE(7&u7h%QnQ*b!3y|B(n>CK0iVWAGSMa>0Pf8h{NIm1shOr6j5^wU>==kI;&&;PX_ zy#H^%{czZ}^G#$t{o~&D?ce{2U;kUa_p{&i%y>*K;PF6z!rWTetU%cAli4BsN4O=( zQ}JkWeTy5?9$~v*wLn_ZO+dA}lmpngHL^ z*gB2LU`!au3l#R0b16YgJRLN#^Vw&gHHW$J22P7T{cwF9^NTe-VzNGaGoFWEOCngP1s~`R=`?A(>a} ztZN-4W*`xKBy&Z{Iw&1AbAu~;BrbB5dkbN9faf^tyvwyv8f~^8*Gc^)^P{P?T?{?C2xNB^j&N5wz?7a#xj@BHxFKkMnk zA;jj9|&p!R8I}cvD{-*DK;Sc`7?|=F&_fEN0Z58J>sYK|&?|7~xdL^U{ z1?7qY&#uATH4J(Z{%Rz|x5+82gh3=b0wNpvoC*yQq=tDltDV^wA9=Vw2 z$#{{uJ$UUk@@5YiKvQ!F$<`T{{I^E^gcSiS=Z7^|{e#VZ64-%4<0hdWJW66nZAWZ9Ym3zQGZ61+Sqhf5qSYc^)+;32}i_HS*C-22nhnPk9_W)FJ zJZv9-;gvVsJB-7z&W~Syb$r%mJ(Y(TXV+u|&9F)8h#U?-j8B>xwhJi&-;+$ZsnU7* z@V6%mo3e~0jWG0$TR*E`XDoqb2{9_0w}IkGPs@POmFkMx=3^NE_kdl(Ea|@beHs$Y z8QSwWnLya$-*CKJfl&q#!c77j3~p-)8z6ui%4jD#ypWE-u|0V0RZD`Yw1i;kW6DmZ z)#ZHYgY}~K&+K)AxN*a`XV&@bv(Mt<MfoUe+R=|FEz&a_+O zJjT`4<>_=W#(W;nmNXP5!n~Fr)@_-(ko*Dze?ASd2Ug<>cBU(N9lXV8aQrQO_5_U+ zeP`^mKWn`Nu@ny_2cnwg*GpN!K%(%s#J|X_QJF$8OacqByIOxxooBX^878n|C=&j* ztDfjoL05$Lkqv-tLv`PIaoo1U78y4;<9st93(H{vn9v@a+4R|lk-CP@In1eRiCwWQ zax~f`nNi>fu5{G$06w2H6)4xm#o>I8o5$zvxE)VeSzU>J zCXfpAX5d6d+S4Q*3L!FozKxVGxh-jsvuKVd`JmIUNM8a$FrZKzz@MPKc+SMR++Bfx zC@MKAY#0_RBab4V?ic0%g*}I0X7%DUKe_z_EDg9YosicbxI@^?L@kNiqt?&P6t}&i`Y8tgOuzko77;?&I+i# z%NWy9Zsad$fXwMiuGbQW?}kYWx6>n<#Js*44x zgA4%l;8J*Oz}H&Le71|*r83FBB!JX=G5};ugo@lAJs#)th(nGs9zSOBS~PulOH7+- z+z(>if@Y1XRK+QMWuhu<|HE=Oopv!l@swXop(AWAf*J0c zbd<$C(yy;%_eD2OKTc}EECnn^QJMq`oDPXDr@&>?gz^~Rc7~s`P^MrGn-PUGr31YW z>9#3I&C!=e)=u8#$TA2pqC27}bn@*r4b#_4!G z9WSOF4u`|##pQGXJM@cFMK<2#)z!uEaL6t5uw7nU9uCK<<*C;U+lAe-XiGF)AyqRW z*yM8t0^~X}Fblqe_wEu?TXq(57V=^R3jKI)s0M`rk(LU}6+wfbsEc+Z+Oa&8AUZ)= z5;MY>08*Go)-XgeMFL)p(x7#?={C{Z@_~`aRiT36rh+vmYtp6|=!c}oFw)2a@4C)_ zV(|`ynU&GB|H>Mz50S*JWC0~y+sUj*V!A0}uCATZ7F;$2u!!Dx1ELF|Adz)T^fhaX zW~ca_XRXE%|Hki$pzEQ*ZJ_Pa)u>cb{22Dg)MOeHG7Su&L|@dbc{+_0nj^vr4`x%e zm3H@9NbddtTQtR+r^L#JS`}j)ridpZExHV%@U+q1Jyv>PBWryVo2ejyqKVuhfbl!Y z!#|qu3Nyx5IU_7_4wu8@E2AG_Ekp!P(db_g822P#Ek^lMo977ilF?i0aw&05$C?^- zI-aWP<3IB8ANj-!=kv|=_05AAKK4mIk-AO7I$4_>`~ zd@~+D{Mg5y|Ky9G+zyAs;ZS3w7(}?6aFUEv@0oZVl0TLhGsl} z2r+hdHLD@5^)+OD^X!XUT{NQQ6WDT;hNgW9ZL;Xaq#GcDz|4Nt z8&Jk#p;=?6x{#o*n99faXoApS45i_u1#6|5>Vhh)xuChXL+Qmk6z_~2d`&Ia{$}$O z5c#BWCEd|LnpX>jP@>$;%)}KTh8j7NAln6jwL(IwnMgwe0J0UyOhCV5Dg_0dY>|hn z)2CnjRA&ClU-rws{Ad2;FZszoA&;kzf8?Wo?wkMGH+OmAAHMS{$DPx?mY9RXI_8!a62BDa;O-QwJIs8s*Y{KKivde&Fks>R zGH$4?*b1z5&BMKdD-QSsc8Aeogl`lJte?nsh+OnRZHc2OV_h7vRz>fp@X*^+!yu!4 zg(teOB;Ew~Ppr~qNF{!nxswL$P=!i6I zkfahd8Ab~}-}9bl-G2Z~R00tP(_v1F6YGz0popS%;mE9UuFE@DhvO;6fEi<@Vf4z} zyx;I#6I6_}O;tAGByf@%Lx&%^RNK)kh8Qmu?g-0Dy1Ln(tczX}+&XXW!E zA$~wa9kpDm-$M!fSeXg}BwG+Z&AK zH7Yitz(}#^>+JC242!PS4A$K{S3ms2@Bh*-{gOZW-~Ykqo_#v5U%Pqz)ot4%58G4k z{wv@5oxkqa|HgN|<6Vz$uE}I(WNweIuP+bdTfXI+KK~1z8?Sz>#&yMZyu1^qH~zDK z`o7=x+keORfBz4B&U-%R^#_k~+gdk>pMj_ehy<;W6NC*o4h1scKCCDR@zt%SjKDf= z0&Swkl-l3(@YodDGa`%44UB{pE_v2^)!@dkbDaJ~ptrdzRX z`QX88?s=+Wh(J@LNIHuAEl3i`qD&Q0+=427w;^s@pxUR2($#^tzCuZhyan6_T%y6}UBJD3CaA=rC79KLNSyHT_4Tkl0 zs_BB2eY$7PLolK_NH`KJ&}7)guNi`nzOn1)P|Y7CHK`ct3f=L3{+K;lC=HJoy6o-|_SFDJLvjr5S$lK)6s?`0oXdX@#kqkJ&ibpOT&}2nb zU7SuIdj5r<_S3%fTfg<2p8KqN@QDvRdgU__aUM74>qoD>@B_c_7k%X~`xU?RqaXX& z>2$%gs49-9!%Lrj@%R7!-~IVt@b*_;_*diR`g~L4=KA5QFFpL^`@ZN$zwz6??VEqf zm;98Eee8wHtIJL{0r?p*9}R76=?0tB(3*5iqX=65X31E_3HC_gjqu384)50aT)Ije zg*Jy&eUq&uD;^b*KzLiZBiiy`9qR(rLKqMGl#81GzEXxAQCvxUcA{Qfc=u z_SCjgyX*Vct*_zUK8{Ovmb);u{oxbC=;IADXe`4gRDiX!Z zmT|tmK3!aW=J8WM^~-+l^1w3 zHGjW3*ZCfGLGQcwoW0kY@i)U-du?|6FwM3iz($CL z_mI1sj1oQDpuoeNx=JyT**L#&;lkhk@4jbyXId=}i;O0sMO2Gwao|`UeASbma_028 z!{xr$k=4dBT)npY<~P1}wzIQbwd1JV-?Sa>KFs#^c2Az2|FysN9hWXWI-Accypnl7 zpXdcimY8=o*c~z>=0UIKf`D-tmCh*Jgk_yI;JLjff6&ts+ayIRTD3?!^_8Y*Shj+6v5fgZXGRxlF#RXRBH#m!HvJEB+sG~$&n&)C z5u%5iqu;ISrxMY74Bp7-XJ$wpGy3N#)9;L5`O8FagXDDBq$L3+4R?3vj)n;leWPzB z-I|9OWQ}VztkK}AiD36fRV%JyI(Jv2`;{=H=!z(;*#}36>J(&d>O}nz1E8f_y@#{| ztKutf+E=F$#*+4y7{0N5U%+&TAptZiHihA&+&W-`?k_Gr{H5z(`ux?09@?9h z(`-J>#vv>dt0j<+Ak*?Bv-r^>B+Mg7Cu>@bYU)!(6fKY%0u}@m2@&O#$_(&VM2eQ( zz1=51@yXxvE#I)Zeqoqx2gs^e%b-=)>$7T& zd<#uWkBf@Ux3*W;E_~ZJzxn*x+ZM}%q9qJ3@-YX}05Ri=Nj#PeLr>aA?DlA_aTOwZ z11I;nCPdWE5Rv<&Q-EULpGcWZhEjI6$6Dpl3wwY5*=wKq?B$D>_R73eky_!g-i&bo z?=U7TLM_vuvU_v}7{&xyDffrm2@okMOIS&BJaj zecMK=C;)Jy(?o95n7u6$0(qBYPcT8z4~68hBGyI3Fj2ui;4}_6V>f9t6ruUpP)9|= z2)hvL07WjEm5jV5D-sAyFEwC(V$Z+Wj93X>IbjA;;>u&Ql%)=GmG`4yrKZ9z8!q>e z!*LNg6}(X`!UQeX!-*MMA@st&x1+c(&84^S0?dV2)DakhMPAaFvgW6@8KDWQev|ik zGzrs4iFfWTfHCS$R>wZ8+19*#`Jo$M^@QW^fB$oza^H#F8_PfZqYEGU%?l4dc(s)A z)TyoQ?U{+K*EX4{NzuIT1Z1@h7ofvct{ZwVh^!TuUVVZA`(E~^KLba@G9k%9=f8xC#`S^dDUlbQGnva1*hXK#y_Tu!+V&Ly0IUkB>6HU4mv> zV=pHgA)oLIO;#?*8N(h#TGuc@#ArSngK@y@yE($O=6FI+O<(uz;)pO<9!VgfDFz7* zCAwc`QcAJ38I=cSkX8e&4pj~BvDl)P#A+TAjLs*7Ew?i>8JXQ1_TaTx5?c&J)RzZb zzG0OVB!qzN3G8kKt|BIcWLvW)LX^ZeAhXwqB^#5Bgyys4&LiExgatZQL=h7tpepCA z4JtKaUQ<%>vDocM4P8Tj9K@Oh8zFz_B{6Mi6gct)<=Jg`cS6<}v;a-|4k;9dOPg*? z>ehUC@WJbEeBI;!^t~F-@!1{Z-X!w!J++fBv+r*IN8Qt&Ke%A~Fs$ z+rRi7?|bKu{^*adZB0Lj`YSiCz*N^+4Q*-w8GII54Ca$m2&0pdTQMHg0}$Ii&0%dE z%b>bgOjoY&Ee@8)PYiE*)txVS(cN!)#a-u5ZOM9)I>^zjpZ$i%f8cL?^!D3MU>Af5 zTDmD2ac7Ku#2TMR+@@pp5rIn+DQ9xUsPIdA0+B4Pj!l8MZzF(u29)~>~DY0IVL%ES79!Db3R)11#_mdbQ)`)7_LAaQ;^W*3|g5br)CW(YJ zVu*Oh(Gqk-uShH#CG{<-Nri9o4}z_70II)zRJ82wFQ5LTV?X?lUN(K{;`OBrv!Wt( zZQJwm!2M?)c+u_G{+4|5Q;&Y^lMj99*B`#}$koNVoI10!wLOfYt5vO9Mas~&PL;HJ zguV3}T@Yb*=V0MUN_Rva8v{))#r;K1j9Y%`8gX!?h}hPA_Ta-0zwcddKY!<`{fl3i z&9~Kx6=@6ZD#&i~Q5DsS$U^t^9;)UTtnCw*r=l5AQa^A=at0(7^>Z{Ml7eXgL<=6QY9ktW!}b}4 zn>3;W@fT~ zePNdlw+4OS{&Nq!^!C5^z0dm8A6@;mPki}5efXh^7jEn?^z7N4ot;@Jx>`=vOlxa| zn5bw4iqnZf8e0YEr%CV;9m^aM@NkowNM#`=%3}r5O)H>a9NHDrOh}sT$K&a8J z&Z8hIbLFk#Q8aLosty)ZQy=Y*S4Eim2F8QvMEwpR5by4uw-Q}4D*YS z?NG05F+oc%4V#VQg^L%z{!Ooc+S8w~xbpcjZb`5mp}@re2-PC3@9Y4j+TNV)ktymh z&4o%ChsBMnFMjEBzV3O?`GY_D+{u$iYu<;}yGV3-nKU5+m^UFU6Q~I`HD8%L$C!YM zit2nUqOyOme)N$8Tdj_t9^d{g_rBzL_q_fk=T0BplKu7a+G6+0p=d3$VcZ&<0tj`g zB6ZjqRmZYgPP47Ss;|9(_|Coymvc1l74k!rMVpK}CvFe7P{OnVA0o;(ox4I>b}EGj*2{bkgMs7VTe zPRyGeUZc^|a+UO`zF@n0qorca1d=o{u`vrMGey+)bwxpRL<^Q}OERn49wofxkPBR9 zSO=wlrT$YapYfJ#?N*HF=;#I-!a|{7MbZ*1U{9900W_&@(f#Dd@EXtRFQ`ty{<=Z zUtiiE=YyJw6_wiPlVYMaj>U#SME0*Orc3)<s#-9!Sf#X z>gS(7du%3$%jK2T&5MV_SjwQoY;?=wI#*i=GASap*kV1^<$5@}-L+~{a56VBI+;px zJFM?`R+&#(3>3&+3gfte5=l%0Aa7N9InWTQ&4BAM-`;1XZT*QJ>Ln#D~!(l78rFm{H zsF=HL=bnd+_y|c-^dvw?7F3_Idn7=i1Y{5XjYPvIq_)JL#>S9u-Cqu+1_@y)NkvrS z^frjMS4)V{m7m)8(#EP>(`D(HqkF)rNsFD`&K3q5v?sYrBKfjNCLo2rNs6G)u7MXO zx8ybHH>jg=ZsMUGF`5GD3g`%#BC=Xe=guDe*`NE1zx9EyK6-R^xVxIhQf6ArsS zY9hs|=upMVU^*LXwS(RD>dJC!R-S+Nu^0TUul?`8``Lf|`D?%QkuUt(uRrwQSFYVW z(9Hv9p{qk{$x%?SYMb}tzNTxd#7S#Wj!Z|V=PYEIP+n3z1 z0Q5X1D^?mDDM7xoru09oN_dcKhLodKRjFo!ST)t1*|?tM@No6e!v{x(#reCAzxCZu ze8~&%dHHkBoj9hlw?4eKxOsWM3}qP0Y?xqMP-s&CtEJ2lV5Y^zxr2y zdUJPm`pnVAa?+@dJybwr9*$VXrC8C#gB?&!aB(C4MKX%GmshY2IUvBI)kjFmA`wC) z6|bO}TqUA_v_??n*x|YOUm${r@IdJ_Z1|Tr7Dor3FaUBe7FI7}V&{cs710y}WE2)d za_c?haQggb$RfycGX`N2@`Mf&7^>>X{3D`f$~q)n?D>Ca-p62|6^9ypw~5TG%+-&4 zU{fMSOL(5}HjKrLoo1)4HIhVd<}jNiDX3c>)U!}7VPrBhbD)k3b{ZQRf>OsD?FMK? zfaUgR%IhCPd(;QgfJE&EZ7@q#Vxbepbv2wU2RU$N)3w>rBlFLHdG}kt`@{e0AHC-M z?J75R53a42>sn@75T|k6QfabMm0DzeWE8Q(8>{K+avb#ew{1WFd+z`K4?Ob^K6mXy zAA9)MKK#Wme&xpQemQk==g9H-d??Fxt?L?ft1k`kanURd$q7%0QXyw+IjdoZsEAk@ zhTR+2zVid`RXM1p1ICW}8Y^?@>G|rxIP})6BIrnv4IsfcT4lAaM^2Ove8+qL-v9mY z-+S-9i^a+#P2T3~YU+-i4d-)-aId4^qTMnOs`S1UK{_E|xpI9u`+P1*vEtN*n$yG$;WbN@2y(4cmd2#CAj_NoWbcop%hKj?g zrAn%6NeeKmX%eJp7M%!_HuWZJN4BsR=}cJ4F4`oUQNuLY7Z_}e+2nQ(_E=Ct(0C5b>EiD*mlH9zf|EJqUsIImBTBo|VK%;MfdSl$>T{q0}{|TT=E78@?WafQ zFcV>-CUu-`t#3a1t>65HfBH}V#o};PN_UZP6;;uxAdAQYBOZ#R^DRQ(W>QpVW4U(y z;O6zk$zyW&9mn7Ctv3$bMH~5 z5Qr@TT#x4dVe(XLhDS!4yduw?D|3eh>;1i(w<|h1RU1lBdZSm8AR_-;nST+zh{oRj z4a83iK>Rn6*F_cGm@mZ<^Qt26YSaJ$w&A2XIwMwa7A}VWYuGmC(8<sKg@Fksh zM>arVZn`1bzz>k5qZ_LTktrkvfO{CW-1r5Lpq1v7oJm|Q9qeTwMxjD}L-Bp5t%?@! zGO713HsuLzNR~(jWR9LXKwv~7Gl`t43#*wu4GqUvxx+(aHehDjc?K-7SmrVj8A@3! z>m9cpU9Q&u>kohChkx|5=gx1x`sH`L?q!dE@w3jII8tQ)aB*X`+^=P(!#L8(qrKT4 z)GR7HGch~dU#_n0&t-hp@$F}S*E9dl`=0)1U*7%Yk39H`zxstw|LK*x?m9UZohq6i z$mkGX*gR-_Rj$S`+(}rb3&zaG+3e~=SO16q>))Jh>A_7MhxX_XJ>iy41$Li$(_fV5 zQ;A4rA&EMSh5}y*(^)MSr*FIa+rI5>KkzSp@UFY>S*}(vzRtH9*pEdiB}&-~NWz-}AuB?!5Q*t)oY0a%FFE`TFh!9fqL{Hf#-23&IG~NQZwD zsY|QVG@F;Bw;hqK`IWupPkiK&-}2Y?i~k(|mdxEucy;y@@wED!9XV#JqU+Z%~-KNk&@`T-K8z@wR2%$*=M zrzhW}TpSbN6A48Imy!T<>Y_7B$o{y%*2M}FeZ&fa$Xfmhx6 z@)zFw(ih)(dZx0sTJ0_l4p*fN<2b}pU@=b`t5#JJ9k=EtvRE#cUpSl%<^JOaJ5lh2vwil|(Yx;* zSF35coZ5Mq&4i=Z#2uskbVzDCysHC@O!nnwqIkD+;OF@!i7FFMMq&=ZBz;3`i z>o`J8xOa3D6%T)hVF}}AaKfS^st<2kjFdYE zMT*KzEpcNkC|LE^II*aJQwFFqIwu{s0WI_+QT(}N+C#jo`kGZWWGGR@q2EFr+ z<7USX7t4SB6JPrGKlZtEw;g@$EAM*MOYVH-3vWMp^tjwyEw3J|mg_nWv$?We=3&*B zmqdzg?Tn_j*jufyEwoM_c;{1A2h;!UAN=Qg?>#xKkVi`v1@%reiLxd&m>pn6rJ8MR z&A;-M2fyco?>T+$#Qw!Av-wnWe3lkGt>AVoM&ericqCgV7K<>9OU?q9z8%`d%u_s<`_ zF$`tUVJ!1OOxhENNX%XH?&x(@#cVbohdYkTe0J&j@|QpI<=^`42Y>D37q8z~Zf%bz zPaQvXQfsy4s_q}GRPoN}AQ%?aXIH(kqsi)jg%?^hxKajWB9b!W$eW^394S#V zmZQ8EY1xs*19k9z3Z5nE)Q2f_S0Yd(VzUx+4Dyp`1*TZ{la@*{Jit0kEraf z7uOG0%hnw#w1=iW6@N}niq5tMlVS1c3xD++?)(4#;2#_;*Rx^th}=0zXJfRFsP17f z(W(=fR&{$mfA4$VQ4g++vw347kK`(>qV1vLt|8Qb)38L-{vTUFFo63mLT}_FY9=<6 zxgB2nYae|7&-~0URL@C(rcsvDRoM&*cU0JiAQMs5LF?sfd#`=vJ#T*H<8J)PBlDx% zb(%y(s#)9Q>O>SNCSq1~nkJcazCF(GI3~05=Sg_h6AY#|wt0Gth>Aq8bp!7MXd43U+L_{rUkB|4}D{!)0ww9*ZN z8iTf-05$yWecpBqjVjFCOuTpNGU`-mi93iOOVr0syBtFE{soHqgt1^5t>@$$NT<|9 zWVxKAY8lF%cO0);rv25A{@53P?0^64sdL+}f90Jof6=|Kdckd{kBzdoTwGtQm(wt4 z8PMZ1Egsv=q!hEY=~k&vz3;>y{rR=|&Ip2yta(N2Pt?I_Dy-CrMYB*$Oy{%N#ful; z^uX($@Z={PUjD*3pNmyX{r_M&?NUnzNQ-&2m3C;WHyy<{o2yA}CsnmaBt)5nG@vhH zHV%s$SD*dduYT>TUh&c2{GIdXPOsOsk!SuuFk)_^$Je&Rq>^dqKt;@k*|4{__}cr= z+2Oj{Ab!Rayr4;-6fs#Xrcz~oblf?0Ty|!UT-*P(UwQB&pZL;m{?^0$H`cSAos*}I z96vFvCta;qi)Af%3IHjtMimESBm_2s`BX++ktK}wT)MSg?X?i$Higm%9h;!(9CEqJ zy+9=%@D#+KoKFcCllp82xNFwd!eLrLIp{FTLeVGpd84aq39=CZVu&bUg;3Y8K{?0C zWn)}JAFlupnyCmyrp!N3-m?S6=xE&O)DWvB^HJLbmyn-{${75CHT*6S-W8QnQoo70 zrYTJ}OJOV`q7|nHX7-qrhhJhFCt-o=O$NsNL%=p^q?@OXARyEqKVXNF>Aah1q$Axt zot?J7swPWtOYNp}^|Xd#yFQm*m)Tj2TK{Om=>wiP<2vKl~UDYwW?C< z*7kV(&SP~pK6-um;g3B0@lSmI!ykWeZ&&6!+hCJFCystyEIm1EE$L|dbqWNQxEa>`Y5b(jJ@P9!#>QB@oOt4HgzzJXAIa3T z1>MdeL32XqU(PB%O2=8ayg3QQm$U%|`UcTTWj4Kl(kSuqrJ{dekR^^8 z?vPfq+He|3h0A7xO34Kt$nC|7C`HX+20qifp~%fN38BasrIW_`JhMvC&NNIEau)Gir4p**TdH(aB{oLn#_4?Z9$8lamjK&*1J$2iYP?xs{ zD=s3yK*G%~RTy-eowh|8Z^o&a$T**`Z(e-$YhQf-*L=+vzWm^^qet3$ezco?%c_c4 z+x6swghAvzxbC>l9i&a^zr`6$9q`mG;A}vgrg%Rw-Q#u=k&3kEtUL`Il z0h`JCYwCjDdQup=AxzNXyEX*q@OFZ^6+@g}15#M{Ca)4XdMMSNg&fUS%78|PA*0~w zT04zBU=t4&#L&jE;hgA1aio9`i9eXE@JoZqGhuNQ?P{^Uv!pR-1}wzw>|z=~<8zEz zd|xqcpaB{b3pP{gOs z*eMY7`Z;zV0XHKa=k zV_@5plf0DT3pZg*=zg?|3tJc?+?AVhldE9emjql$=3wzD<+(pRqk-M{}|e&8RzaO;t) z%Y&87%J#`4vOPR}{op_S;={lFyI=UoCmy+aZGH6k&WWQZPMy}euG6$$PL6WiGU2A1 z%qZo)G@(s23E>HGC49jUP$RTJXxaJm+|kwPy2xURlg#4|+{Y-9VTe}juB{X(cHq!X zI3gQ}BDv)j_yS{uW*7}M(UGM`cDh+8=6Ea#66~-GJsgtJ5H}(S$W)&zH=GmkCgP^X z{Eaa{kaeO<=fdJRUdyx!fN_a+YnN#QQGiH^ZxxMbWkCex8_<`}hmsJE$Mtq+I#&^F zz#vI*qwLgKM7`?$#*k0j zgGB1sl}+%#vMBE!L(T4mZ!{F$HoNpyRIPddSF#23$%fjljgpYYYtr&N6;Ul!txi?e zGN_zCe_TpgE>=JNa}WN9|L}#AXSUw-ntQ(Xxo2Pf>^q08;X@yO@PGLizxT+MdiL!0 za=9+0Oq6wkAO7Z(1|o;)HT8@|cXw|-`AJWH)9YWczVYZVY_UP?NsF~7n30Vlz(;_f zZj#-{AE>E7fiU$63fp5XW+FDsXX|U1-}=_q|Kor5q}|=!`E09NMd*p61by*GE$UyP z5l93ZQ7f`s);sPv^^-sQXJ2{f+V_6&nfE{O*#6$)qrdW%-~QbPf8#eFx^{iFb>zsg z6UR>+v&n3l){8?e(%zYD9pMRv(_~5?gi%Qo9Son)Xo^?0rN?lX)?t*E=toTvw(b8_ z$&S~(kGpo=SOQ4s!(#(l;i+@mA$HW}rr5BW-A`M?6My7=G0;200ASAIRtv_xx=H0V ze)51ZKm)2KRrPgFC$<1G;b8!~fQNofD?V0}Dn(+6BGA)BN{>4XX9jV4gb)$2k&!WJ z&VMB=1xi-IUX^^!2Gv=xj0pivel7q5OkZMX1eWC9NOmKT z^~lqFG~h<0Ek$ZH)ge+5z%=a!>gGyefCX~mQ19~=2sqi=p>@m6CP14o#$HDjNIhoAN1d<5nw$5jF**DL75jkyG>cyyxxz@E`oY?|t0k4;BlJ zz6E=)2tquOprs;3Jr1*#4*ZsiVuC~^%sB`t#QSa51K5#0LLrbTts=!Aht{G{zO^w%N@Yn528 zq%tQPK2cEO1gi%sqd^CiB0?~QU8}HHls7>F4S4z{Jh-VNS{YvFSx*^Fr2~F^+SmUU z9}|(P2#&);e?AS(G9{0f^`R!l))JWDr8wIRZM#q@L6ag(#df^N1pj|4!(b`h<-4&= zQ&bi0P^D`OF_BmNm0Mgr_?sdT5h^T52=wf~svR8(kVB%6#aOz)^FX6nYq~_mH1(^f zSd->@Caly9Nwy~4iglZPIdG0c{JU-ba*Ir6Ee6xHHcv|%ligXg92A#HP@3YQ39CKt z7AB+hic-1Y=bwtuDBJJt1uE@j+v{~bJX}hV+s+?-!hL6Vjvk$FZQt{_Q`{0J2bd{>66wb!9K}5qok43SDJTeMu-BqRRF+dc zSWLBAt#!GaY?6}Wi^luCjKsn{lh#Ngz|m|rpI^Lu>6^d#EvL?$SS{B{9K0#6m(ChA zU1A!x?Gn&13w67|V4j_uu+lku$k2jN!%0hEL_kg>tK(Az?HGeD1Y=ij zdd7zeXcNI6UJA?ue-t=_03GJCd*1!h3TN{-1WgAuxGI0z%Oil|tz;`M`u#04g4L?1-^=3HhLFTBrDCNkCy`c(OJ5_Ar$&syw&o7d;{ ztUwX|6UIs~qy4EcP*@65>Ff5L=G6j^x3m-plj)O*A3(aHUgoM^dMQpOYYV(UQNJ`m zA?E|`wQ02;Jb?kyi~H#(qRt3%lGNqtcCLBxkTujg9LYsIG187U?&L}|(J2`Z8w6>= zA%UFK96wv86TT@_vw}9-Tu@}Xo~Es>`M1CO?Y4Jy9A{bjVV@%1I-zLL%TZMY6^YBq znp;tW=-+8;%BZ*oIb|BuY#8UZclCqc`R=W)`I-e>imY0gx644S256WdYsI=> zAduT>`#kmKJTCg*EoM=sLiFaN7NC_;4mX-S!7g1f zv}S>M&RvI*Jx~SIU{T83Ssv`HxMCAunGPo)IOhKgAt$~}q_CiZENQxU)J_qPh~T+j zNcZeS=z=p24^u>xREz{QHXDvnOngOG4XZ^InG;7(_t2s6bmPzb^oGw6P&+UW&m!#(RbC?!E>gv0{>-}|k$;xOp0rSGhGtNMY67h^O2MW?p z)lfc}_SymWVwGj0-&v?zGqX}`arJ%gduO$E$l1-Sv1|y=KBalet%xe^o+^O6P=zF` zB-tqgwuqQ*&;Wl$=vDL|*@H_Kh*3<<{MC!(-hn+?ro=871ntl+I8P7?qhtH4>CHke zlo#tU;v8_KM_WnOBCJnUM5Kx_v7>WZE}9uC+8;)=R7KH~(k05E5mpjp2n{0U!gX1& z@oyxsp)Q*{j}pe_(u{kDL)Aizx|B|>4m zs?rYZ@AN3CGnOi)yz;@et4A0tr9&UUPvbne&B4ZvB>^sdfQhomI2$fqx%`Tkz34g5 z`Rc{)&2cEo7843#ip!lR9-Z-Z=K#!NDQb{je&ExGKReC1Ct60pQxPe%!vV_(Xqutn1JvW{b-vCdyoXd(2(f{4=^P{R7IuON<|6 zK}6wPkswMWrS4+p=7U~{Ujj}bO>bWU=Gi4=UfAO%VkHztr(&&}gyR4Jm&tjgN^}uG zTO%OIi$WUE1U2CqUZDaz4Xd>SrG#0WvnCSUBNkhSqdu`ESvu;+-c+a8A&M)JW?8aK z{4kWUxCxmeMg%@3J;0kZM6-eL1jNW1EdHxXUyP14bH?7a42Ht)DKy`BZYV=xGIWGf z3M{%ArUe<12S(DDgtMXT{G;$yCDIny?#qPT*hTkiWo>6Ih-Yx zF*pf&O#xG0SSeJ;L`_YU&o^Ukv!M+8H*bFDd*7{fS8OPS@Ytm|%;B3hGy+R>bfH$S z6on{+Rz>n-sMu&6ITxaeOhgA!m6_E255E81yEktP<4A|3xZTg=OhjK-V3SI3og4PT zo}_u&W8JktPJ}?8$k9|$gTU7XjfB*!iB7pfNXF-rz$&dJ(4Zj5C7DnknU@wd*-~L! z2HTT1nk|h%?!Vx??RZ6lsngwZt?XDrw|B@Xi4fQrE_9{~J=%R4;_0D|AuQ=hlYA^I zCtakhM2G?Yb)4*GRa!`E!U@pzP-fm^>%R~;Wac)W#nvt=39KL4M)5{3`i2=8$poqn z>xasjAaOcvPj%3Tp+z8Pe94~V)R{=l>n|}nJS2j!w`&VyjRE~SWD_Rinh^?Kql7ac zw9~DV6gI?FRZnv)>4j($mIH}pK=BeFKeA**wlEhZjknkt5@Hn-ML!<7 zC_E1MNQYy*AxVnRjOw|y5cmXwpsU{iN?7#TNPxg z5k;hyVYa?`<#n%n`By#tX}i0-rFHa?&lnAaZ6+pld7Y0HjKz%bY+`t_R`3$s=ZCD( zUvn3abq$}jDLA#r1+$8Xzdf@{sKX%Pi>80rxuO99pr=|W~LSQRMB71?98vTsJvBm|21s)O-MOS9+y z>IV6#Q6(W11Fi(6AqbW9QPh$q{m`jaJt@g!q~E#=ufBUM>W(|lXr`|fvKzHoUypI4cHNeXqhZGT?pM}FxG zycXu$d`lsF6K>*D6+dvIHy|aX5D3D;JzZdyXyKxfqq%NjW!k46STi%>gFvo%6h_*X z+6nf_@HHT)c5W&J?$l^@fAZP~IH^6x3ni4KU`czhyDTOV-wTo&d5MPT$%Pvw>_#=h z|5r_K6HNtTG9KO@_zI}Q@S4YV$%h??NL!aN*B$E?G!xD5aj%HD054}Q*C?3q}%`8r#F7NdW7L>I#(vH5K6|_8sY8;_;H;xRI-bxumJC z6N;i*V(uIVI3od8l4^LpH&nO~!Qs*p973;4M)74}-Z$kE+)27(0?v{jB z_?vobs%Nz^R|FiytOZA4;&6a=4}cp%ty-|?qasDqq!rR+D1W2!K%Fa&#-xoQTeQgT z{{DUU-TSR?ee<+?X*Qcf8c`glrkG2kAQuzCl4gV(RVylO$)g#ai50J_{TwVwLz_~1 z#M9_sc#LdWz-*kauU~lETOYXV-aGaW4@)V0jsT$NzTh^}<#9rtg$F0rQvTd_#=}<~ zw{oLV$uJe)l3OnWV8OA$&k_mjx&&p&pA}oc30ovDy18kjFszs$28F`_(jZ+QTKmSN zI{UfxpqfVxkYk4Gp+j?|untV34Xb@f;pgFh;5kB4CAtXR9^P-%!3N_l{*8IM1S!oa z)?uHzVtjEZP}|xgZQ3ubJBnE7Bl5h+DMEsdqOKGeLE;Uz!1!pX+eRBDxJS}#_IhwJsqYCEK+5a!Uw$xz*zVj=P7 z7R%-8>}@CB{w?2l`O>A?Y%W$q9#N^I!zI2I#v2rEKKM==l~(FeNoj;B`bFZ={>6Jb zB>E@f-Fx6IHimi#iN#b2-4X>5Dtzmg#4$_>&|;eOqli^>HC*cJt=TeZtrmiXKv>eG zUosRZA_7br|7Uspc7b|yiJT8K1!VYViVbVnCWv@qk|MbFw0F)QVS+M&W`vQa*)+GB z#2AELL2okGiWc6?Ig)Fqd0~fKAu)d;8Du0l`!Fy(;HU#Hj@Fhhpb{E^UzFq^VRkOM zN=T(fYs3ux2lw?6oV`+K&7+kOq7*d+w399n)g)hwQInK1xr%-o1{EjQcEnhPHcr~u?di`N%C%p;r6 zfJUEd7L9TxXO?hS%o+6BmZ5ti-9qk3c4f6*ojA7h?SJ)K?B<1WoKx23D)up=bgvUZ zrl^TjTP;Slts^J4&pqk%-A`BDnU-rlP4!jh+SdFB z+E>r?X)7>Z!(8z!W?LnQC*30zFm~M|#*<1c@`O{cEP|ecCk01AEHBnDQYLUo6f_0# zf(3u@0d#UfQD!X077Iu*;ykNDugeWLvV|bD8i5Sln&LoU;txbo(cHf6RG670GxDyL z$FC0Q8T>CqV)htp)E2cl(yY zI=g1DVZ)Whscz;u66KgV(x6B(jNsgHj2oP1yHGS;v7bbQSt4DZ|9gY%ZCE3vm9wFEyq&$k=L<)@`#5RXae@CAj71JY;VsWeE8vS{ibia>%Kb< zFMfWQ@9@xhOck$#5E1Xpn5as%sZP_@iPJJWee=rhr$6xgJ(SbX{T?y>)yN0zy39^y8X7Z+oz7p-d7Ix_s4Ndw3t~T zI;)6ooF#`eMfGrh_r51T<;`z-;HQ4-r*6Cb?)7rzR;B4uk%)2tg62__ytCr5Ac90^ zI@t%4O>;#c6av(z#}%kVBx%V#RTHjZ25qmZCJr|BYjR+}+vq!>H0+ngkj=Y;rEYD& z@IjwJhgBM%d-GQiXhQ@yPlenfUiGj7!rdlQUY2~1_z91R=G-kXrTI6@pTmhP##~Ui z_7>=Xsn}HKTl3j`tJcXuNFk0~RBuwkIiZbgdeF@V6XFw#5qKVh35XzG)xl^2LvIuS z-6cFyH#yyu8%FA{%z+M;0Qy;J8OfWK-<4{7Ex8Jbv~ax`tXIsR1!D<0RR9=L_t(v{m@T7^Qq^j!$TPc zsv62nEW2%)h)&aDd*_5~-~P!@{LWAR+%NyqFMnunZ|~Z*>svcVjvm?B+1VL~Qqf&( z5p=Ow9UdIs+`T#*=EqMQfBfU_eB&D*c-!0F^rR<0etqM?X|)(;TQV6uU)fzs5!X`_ zo9g`N(ck}*3$Oe7Z@lx)yH~5F7PZQ1&fwG`j~*+M6+~jeZ*Os{umWa&z<*#>K&1tE zQ9V6?NwR|+4`@rKe&le|G(FQTfaC_2W!DUM%V=ud>}nFxgZ^P^-P?*p4AH_djTMc=RwRHM7}lKHu81T16r<>xK}c zPbc|9T$0Qv3nOdqFH>n|B*DAD7;`X2@F-Y1sQy^96Ou8P&KD}kacILSV5ptfbnzga zX4^T1gkarP-2DxtY-Ia^5xu_hh^%RH2nqTcJpi;oOTXTAO2Ml`^eEYL0+=(KzTl(= zdi|-|IE_Jao(KQr4tVp4O>bxW9S4x{U7v3>U5KmMbK|G_`}e}3#^ zzfo*Fdg8=vzO^-u)oeXY(=>Tg+S~3@CmV+%rHo||mDO^!e|T`?+O^}yj=t?}-}v{w z|L>eWQw}dbJezNs)ZCMAwxkdgL3O=aY@d0;x4q-LKl$6gd;0Y0^?KDr%13+zxwv}< z*78ymPqh0$ofbPEMw2S-Lj>C@An5ldb0! zH43S_1Dz#)B6x^_nvN$&aw?RJphNYCP-xHe)t0n%m9#q4eyemdKA_$h^Q8(*XL(wU&u{sG?HEJ>c*U22m(5oA zU`2cEpjoOVJyO{w5@&XC9iu~kpq_zain48JH}NMoEOqr=5dCP4Mr*luYR^-}l&n`1 z$xmIO2vgJuneZ_HO8mq3qPNc#obpa!jfn@*+~N0*QM;WH5`Bi0&x?slttO=$?jOAG z+rQ1$*L4`oCbf*Sy}Dpj)3n+?`{bYh`A@v&wXgrgZ~oS8=kGdu{@geWby^=B9xj&4 zX>fgQcH4psyNB?B|{1ca}1vFd% z;B=K}XscQ&gVf#c`oMek5B7&)bl&(zm{|5SRpTo>3@HV+N0C{zz-y1@JV^)93G2#p zqV2)67LzOEfkHm*%rCN_3>1V#a8)3CoC@(89CgkD95G1_)hR}3`l^EBkst}~+V&-j zr5Im3W4qr~mH%-}GFq9sWvXHw&=>CMp*Y{6v_svq@G&I%#}H6jP7NGQE5$-J(-o9o zc>rlBf-tC5yFUqo=W8*8#*7<}B>F%7OrZ^aZkah6fdD|18 z@M02{>+{m=l7j{(ed80BVV#92V`U2Af;O_?tf*wFjTp{Efj44FU`W#NY7(OjP?Fj6 zaT7=@Y)g_hWh55vamR9u+l2pX!lsh>GSE1TH?Cc~|7)J{+Sk5pb>q@7&RX}as`mmq zb$Ja|>a^TCd(Xf5p`Up7yWV^H%(*jX&Ma2T)ik+&3*17YXOr~Wz`2cVW_EbEST0wO zyYC4Hhs(e6jc@(MU;K@obN8+n3m*keYmAlA9h701t#4d@`O9DMtY?1p_3PJ%Ve}?O zi&P2?H;uV%#5~nz*_XwKJ=EboDYH&Tv;fK+Lwix+N1Rqx+);!eH z@Bm+2sIqw~V*VX&pLla4Z~mR|IA?bLz6X_CzYls1fq}+CZ}w55Z+P5GdB|GqJ^8?GocVRq{FV_j52zV zKlx0(!KYLtJr*5uO~Fm2KVI6QC!?BmH^W)c=}&E<(2aCp9zQjHRaFq4mc|-ev_}i` z;B5lk6GmMwt~fFqMO2*LWs=5=D>d0pOL7@ZD867`ME%hSlK}bj6CpEG7ckxi zH!h)2k2t}N4II42+pkrI6D8sSL!6M(zO~-hxU2@Z^U$DqrOP4}@PT2vQ{#cV!%{NwI>*Sp^TiI4yO*2%N0X(fJ8r`v0O62~c$ zx;7h!)%)N7?kiU=mRV5`fN}nXONK~;RS?g7Bf?rjBpRK=u=i9|&{J#?l&1p{F+J8Q zLNo(*q!b3!cHiAFf6I6(ka!a=Wj2H(^@^^_?ToyQhlR=EQje^44cieE- zsP<4%LLKqkg;FPbbMmcZ6F0 z6RR#<`g#n~cuQ(=qqT<&MY8+^rtj`ZZ_&!I#&3ggUw;W*lD}3^s#!(OMmi|a)PaYN z!wgNd`1?$i$ywLocXUIL(nL(xFvVO=8Mi8vF1uQSz{G-3PT`%F-&8~9+>fJ$1 zM2lWOJpSUBeZ36B)=?aClQi*&s%_1;M0J|#YPH0(%wl3X z4vT}sQ^!w!{A0f`tB*)6ZqsZ&1@(e{wMv~5Zg_4o>kX$nbD__i_w5L8?O=jdw3-i9GGXE+s0e%&n%A(NzE-T0l{Ye!@n zB9a99X`bEO^pX-?covkJSlSQsSp12ozfhNpb|QwwZCV z&3MaIQy&r`9AqoTQyiJqn{SZj+{EVr-aLhfcRNt>P826$V$motpPX7kzp%3(b3ydX zvDGTo`3j1{o^ZFt{vIlSy!tfrHE*eqO;lf$i+v#{G~5E`p6@* zt-0fmcp}y8uau%izxbsue(?)`aq*Fd=CipLv5Kvt>*>Vt6QB9qXMXSp|IO^=-Rspt zbGHn%3p}BHww_i;PR!o0+7Bp;*h2E4qAeKozg@99tlp4XcH&AxCozO9?JZ za)P5FJ9q2l5nvX~Bp6rkZPK_MSUjqVm{mM;%a%}+sE3D0gR8{%4NfpfBLEo1Pk5r5N{Af_xUBbx8lr!5i z8qvwXAW~6%j5L+$qL5PwnMquKE1i!?xyGE$xUe}hEKTuD0r~KJF$C2jkSa2Dg!F#O zzl^kgHrTmBVO{7=-!QI9Pg}TYT+u)XPM?ZP|1Qxo4CD2ySAXY|AG+hTtk!F7`B_q; zGQ^l^(K^X&e&o-;c=eU9{f2YrZ=cpHTFWqui{;^!%U9p|&To6(*FOEfeCm&X@<0C6 z*|X@!TteGF580dClg2J41f!VE6|u98S;Pv09%GX5oGDzMtwf#72IZjuh2`P;){pb3l~@*E z=-BvdLm`!Jfp&jfY>6Zli9?kYdo%=bK)`U99(24U^e205B8xOZ#p3ubQFakB3-O=L z=(DNEARXdOwXS6Ya6&5GkMEiEk$E;^sClLHZ%cC*ycvGq}3^N&~O@xob)@^ zg@XM^wD6qJnMy1a7;GTR!9+x>$$U0{_@Rfs>8)?R^WNJQhr302Mf<_=gG`Km8y7{XhGs|KL6EeBD3$f&cj*{ZD`Yp$ES_n~g%V zG8@Wp_3D*>^S}LzzxVzBm+$<*TYm5d|IxqycmLW}%jI%0mZ6zzt#vlrx_MA{%YLHQL)!iTVfzd!c1n z7z*5vS2SUS3C4;Y-J8x0bB2+`XNKNGk0&kyd_>&HGY4%!3oh2cE`Dxktawbv;Zy-< zm>JLqOw32LNN-*gWKyU|Kb&HjEfR|eUJY!bm8vTG_{TpXgoE)E+;qUz;g_%VxS90L z%^U|)28duJQmf6k=3DcviD^{iP?&~+9z$i7b?9pCONA|MyS!FZ^K{x9WOvwsyA1VVr79 zNMxLqo7ZoA;-kNC=lOA3tV#(X7fE+- zer+bpkNcTO*{CjA;oOpHlT!6AR@f%im;fZSl;l-3yH+!97WN7u1v$xQEncE#w7zElpn}-s90R-Q%lxI_fgB$QJwLyht=3^FWxP{gQC(mRw9xT$$MBKI3>>d8RI# z%mxQ7K$@r&%{OE6U?HXE@o{n$ib2HnZ9;^P<68WC%i4xstU5I$FP`uQwyLnH+BDLP z$$ZpXMBZC(`?ESCp?I)#^uc5NP;d^ zST!l4qNR-2ZruFe{^gGhM{le35K@l_Kxc(xjmzB|&v@ojUj2%fUcP#5HlLe$s|MLw zGC8+*p6415ZHf8yTpnU9Xi$}NPNl`bkWh7SK4bSh0lvp+gli2K13o&b{wCRWrjSbb zDFb|GxA-WZ84r*QcL)JQ6U{nl#;Gom|DZK5CVeo$Pb_&fNqDzXV$YgjDK0!C|CK_8 za!Y4|2y?)VxR(3y{4fWcbf-x8GMH(q^gWHKlH|C{3#krHWMMVh!=WYUaGi)IO_J2#9Z>`UXs}EZ>NX0 zZh7*~O}n!sT;(opu{^W?Zb6tLl3^%bkoe?MY;RalljdJNQu%F|w}_~4Ie;Lql1x1! z2GwT}MT$V}8G5qAB_M*ZW`>1?n5f0;aztS3p>m3%@8h?NU`m9sAld>p+{>qGs=7Eh z{I2hKkFIZs3|4t+Yj>lFXPLE5+ec6R;qU*+hd%TxXU?2otrkV3n#||(FMjEZ-}^n^ z`I^_h^x)E$=kpzrDz*7iJzOrVR*f_GZ5W2Ft?h!2yV|t9bL8OS=U?~wm;J5p{ot3r z^p&k6TWukHwOHP9`yD^=AAaugBiH8hEfd4}_P~?a8m%T$M9VPKdgHHs*LN-t4`^ZJ z2i5~+8MRBdRsIIXJHLQoh}&8|4m??2sxM#$%6ocz5bN^(_Bkw|I^A98iZgmNO8o>& zt)GOcD%#F|jENE`8=yhsj_?^erg1cN$5H1C=G7aW2#!N)AgXTWU7bm{>D;!>*Qexu z!nRAW#AS%5F@#x-FyzxGtIn6IuW9?&n&gYVeD(>4-As5J4=9~OD8e8Cq@d>nWJ$HX zNb1Yv`Cq=In5s)`-Fp0k4KX252CBAU0jSBT5{cF_TOhQi z5e34P*wNenRC9t&kc?RJEHW!>j!9`{ulI6O>>x=|PqdTt!dLlRH1wwlI@--?2M9lL z*T$ax2&Aq$j)06@LnCR41GD+Z1((6Kk}qRi1E_c%AN^b>iq9!*ICk@(**Lp){l;^j zeg8{d_PoXQD`g!0jm`-QDUc#9{a@*kbN}|={^(+DTBH;eu~Kw*Z~sY8deYzhJKwv! z^0{$#1gU`M4W+1P(Zc*gO{BEUzGlv%dBh-}imr{p2S+es_0YwU}6~wl&|n zbm`(x{`9YuV|T3AD=8(SurMQ5ptzMXU*5R2Vv!^T=Y+$Z=xK)e_ds=h>*) za9?zG!upu{L>iFl=fZ_B_F*&;1No^Ub1~`W&R7xE1X0~w^ju4@*aC#XYqofP6K3y# zTmo@>(ZM48a;&LYicU_a0(THslLH&{4grcN0lP1Z(~rW310MWc0YERLk)?VtY3nw= z#%8c)0JO`lc`w&{UCV;ttGx&fR^k$9MRXK3ux;uHkPaT&S7{+f!XA=JT$~|MW79$N z9X;L&@|-R-Cd|V(9*>oO27!IK+n<{c;yoN$1d0@4C00m0eUH<)#TVllm0*rRuVs<3 z_)^rLM)?Sj?CS74SuGqccsClOB$=p2ob$xX;-;wBqf<@#tevBy-8>e`8pm?|>Xq;O zj`xm3Tg|luKb{_79m$ooHQ&B=@%qpI(y!ij?(BNGYTUzCAa;*G~zwzByFI*hQK~#&BkHFH+Mv1%;l8v_sSpuJOL59307Agg~Vj{4}k6 zDQnO`7NJ<+vi_xZ%^6&fRx6NQiHQ2)VM(1S)I@J3VhI!!u+@D>Zt&=nB<{N(-nuf(Df2Wzd7&y(c~S@!#;4SFdk8I?iS$+Db!s6dTzhVydN1Q#pG6XMf>CmoH!0 z+TL!FcF?kaaB%nCw|&c7Uq9V^bQouO0In5PS$k-24KkIX`2He9eKE0Nw!OUm$TxrU z8}7aL&c)$jQPDxf?D+8$pZ(0AfAr(OJsv+hO)HUF2O-$8817Lu2mxB*a!gU_b}>Y%4B#{oF4HX(qxoSTx=hr0gf1y)og50bVn^=;5GlCyoN9cmwu=c{So~1 zu@T~>1^RzkpYw-vW2vHp5-?|Z7zi34+}bLU2nZHmNb1pKnl(N`EMXq4o~kw{E*Y(e zGKeJ&g$OV3pWMjI%a(?u1VT*q7bNA@oMBvAM+&Ltn}{y!uryzjEbDDMQ6ssI&RbPyWZBmEnYOfjB_2J&mt;fJsed zn(WB&?f1R!o!72h8OO1j;rZ!Xd^pbc!Rvs|D@h z#Rga}Qh?@|RX2&kT+|x-cot(rA7nhHW3Wi=sOX*1EIa#5TF9`}FEok>Hr3J()IX!% zI-AJ?iSCLdx*#YmV(mRHw(;d-&_@F?iEa&LOaU2vq#1KfAx{L4J9p%&pNL3XbUr&F zbSoi@ftEz2TwdvyA4DXb3TmBU8qr?)LBu_61OxP<_tjZS7^dHK%eq#x3pJ6$)$-)= zlka@{H%>P%j{f3b*9Ct`QqXF3+}ZiPKlt3VmV z&B&8>|I(!|Lv$&jZI8mH(fBCRW(Xrt*rA<5o~ zDTxj93JTbDPK%@)F36_3NC0=%xR}>*K@QBm@3bUXrywgYsOI4m7KKB7j2M=lWphXYFDi#69O!QbJF}(fT^&QkgtfuGRTHRJRoP&$>D{;nHw0IImHtL3c< zKxNektaWQXzkK1sTfX7-x8Hq!xm>Cgm57xMlo>5mRJBaYrR<#kxu5^##bPy#IF+Hu zYCRn}a`eS7e6}3!7A+}#6h>K3PD2)i@8%m=>k?IwVVK+gl{dcr)!RpoEmw=;0m8QD zTUW1M{n=mo$Z-7pYQ2WjibT%2=~Ju2<>~V$zxf-#;qs+R^ZAxo^!VYfO6;;*njp!g>4KLB8anSWz)a9oFKjz;oRW6M{#&VYPOItKFU?mq3wP$Fhq=Ga~~$JM3f@5 zC2cJ#(IgQcB@i#*FQ5iUW#;Xu7KXy5HTic=#!UoI2!KlP@tCW7booZqtw@49t)>r? zpW`E?7?huQ*g>3W1_COBcSMVLu~PM03U>u1$NAs02y~DHEmCz$QEXA^Vxh z)~FbA74#5`kQg{;xh~}SXL;q|u`Z=JT@(uWwEV@WjeNCA+r<~K?o$zg$cL)rE^!{s zx)E#U*E+P0&r+`}rv^@32+y!H1At(iAb_I^-<4P?K}yj?VcOuMeW!?${b0~W+T4JKk|*XFjdlFv=y+ zsKpX21+B@iAsC#lgOfi{Y^(a3Px~La5*%UTsYKVl7okaH+X|@Y9mh$Csw7yA4`O3d zHW*7MY%+}D`EaMes5jam6B@1^w0|=CV-qe6)dj;GpuuGhApu3ffp!1FRH1{8bY&)y ze|$g_i6{3%qFGSZ-_a)UZ70A7AWjta-HNM1ll_?5BcsCUix;*cR!s~``%OkL;R-1_ zK$MV2wsJwM5_*hKA)7LZfY3EXLKEo{mhG0+5PdDP(s%G$sS?1XVaM$u$C{@heYAb; zG@BOMH3K9Ui%p2dsdCL4G0Bt*w2N!g*XUP~ofhsj2Hrs1uK&{zzaWE5O9@=_1;w5T zqtxv#*)U6QU3<@{-(wOBh8$Yyi<>BrhBXw?kzjZUJI-d8FI{^5*T42@Pk+i{??x%J z@M`mxt@?|Lg1cdB{KA(X{Osqyw6k?&s_q+G^V#n1wdcR!1+$&GO@gqey>vy8qBNwe zX5E^OvxC#ri%ipMcJ%0rU-Ht6moJU;S-W_(TAn?1<|DuHvAx~J*48|OTx4LrwAgG^ zRm)=k`h8D+{2Sl&rc0MD%w{ua%&;n#`?-QXWga^c1xGQ@57ol#)S_NOi1D;QJO?m3 zZ5j|Di6#O7z&MCV*h;jk+-Ta$1fqiZ5RTGHtWWBIP5@aJ((2=2#(7OT(xxVb^?6K- zRyZFvZ9Dl=Iv3vP#A7WIBSl!VSSIZVr@eSF<#D15TZ�<1V=lFA`DF%GC)+m*~JU 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 literal 0 HcmV?d00001 diff --git a/public/sw.js b/public/sw.js index 7a31e69..9552c72 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,100 +1 @@ -/** - * Copyright 2018 Google Inc. All Rights Reserved. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// If the loader is already loaded, just stop. -if (!self.define) { - let registry = {}; - - // Used for `eval` and `importScripts` where we can't get script URL by other means. - // In both cases, it's safe to use a global var because those functions are synchronous. - let nextDefineUri; - - const singleRequire = (uri, parentUri) => { - uri = new URL(uri + ".js", parentUri).href; - return registry[uri] || ( - - new Promise(resolve => { - if ("document" in self) { - const script = document.createElement("script"); - script.src = uri; - script.onload = resolve; - document.head.appendChild(script); - } else { - nextDefineUri = uri; - importScripts(uri); - resolve(); - } - }) - - .then(() => { - let promise = registry[uri]; - if (!promise) { - throw new Error(`Module ${uri} didn’t register its module`); - } - return promise; - }) - ); - }; - - self.define = (depsNames, factory) => { - const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href; - if (registry[uri]) { - // Module is already loading or loaded. - return; - } - let exports = {}; - const require = depUri => singleRequire(depUri, uri); - const specialDeps = { - module: { uri }, - exports, - require - }; - registry[uri] = Promise.all(depsNames.map( - depName => specialDeps[depName] || require(depName) - )).then(deps => { - factory(...deps); - return exports; - }); - }; -} -define(['./workbox-e43f5367'], (function (workbox) { 'use strict'; - - importScripts(); - self.skipWaiting(); - workbox.clientsClaim(); - workbox.registerRoute("/", new workbox.NetworkFirst({ - "cacheName": "start-url", - plugins: [{ - cacheWillUpdate: async ({ - request, - response, - event, - state - }) => { - if (response && response.type === 'opaqueredirect') { - return new Response(response.body, { - status: 200, - statusText: 'OK', - headers: response.headers - }); - } - return response; - } - }] - }), 'GET'); - workbox.registerRoute(/.*/i, new workbox.NetworkOnly({ - "cacheName": "dev", - plugins: [] - }), 'GET'); - -})); +if(!self.define){let e,s={};const n=(n,a)=>(n=new URL(n+".js",a).href,s[n]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()}).then(()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e}));self.define=(a,i)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let c={};const r=e=>n(e,t),f={module:{uri:t},exports:c,require:r};s[t]=Promise.all(a.map(e=>f[e]||r(e))).then(e=>(i(...e),c))}}define(["./workbox-4754cb34"],function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/QK4xRG7krc0FSn1H-8DJu/_buildManifest.js",revision:"a91cb247fd17096d2ba17603cfdf5fe7"},{url:"/_next/static/QK4xRG7krc0FSn1H-8DJu/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/chunks/104.b9111a893f0ad9d9.js",revision:"b9111a893f0ad9d9"},{url:"/_next/static/chunks/136-3bb757effc059d69.js",revision:"3bb757effc059d69"},{url:"/_next/static/chunks/139.678015000317a168.js",revision:"678015000317a168"},{url:"/_next/static/chunks/164f4fb6-a2df26e501616e62.js",revision:"a2df26e501616e62"},{url:"/_next/static/chunks/199.6d8b2513760bb8a6.js",revision:"6d8b2513760bb8a6"},{url:"/_next/static/chunks/2f0b94e8-4e6d0ae97e147ff2.js",revision:"4e6d0ae97e147ff2"},{url:"/_next/static/chunks/4bd1b696-b7529f9b306ab05d.js",revision:"b7529f9b306ab05d"},{url:"/_next/static/chunks/512-8d2b9de6fda25175.js",revision:"8d2b9de6fda25175"},{url:"/_next/static/chunks/646.30443a55a43a3bfb.js",revision:"30443a55a43a3bfb"},{url:"/_next/static/chunks/745-f204172863dcffd8.js",revision:"f204172863dcffd8"},{url:"/_next/static/chunks/7508b87c-580313408902bce8.js",revision:"580313408902bce8"},{url:"/_next/static/chunks/804.7f3d4655e2446c89.js",revision:"7f3d4655e2446c89"},{url:"/_next/static/chunks/931.6ff3e03b1cc8cdf1.js",revision:"6ff3e03b1cc8cdf1"},{url:"/_next/static/chunks/995.a093d11da39e25d3.js",revision:"a093d11da39e25d3"},{url:"/_next/static/chunks/ad2866b8.f49c70da33da3b7b.js",revision:"f49c70da33da3b7b"},{url:"/_next/static/chunks/app/_global-error/page-7ff1880bba064291.js",revision:"7ff1880bba064291"},{url:"/_next/static/chunks/app/_not-found/page-1123cfe416c748d0.js",revision:"1123cfe416c748d0"},{url:"/_next/static/chunks/app/api/send-email/route-7ff1880bba064291.js",revision:"7ff1880bba064291"},{url:"/_next/static/chunks/app/api/send-scheduled-emails/route-7ff1880bba064291.js",revision:"7ff1880bba064291"},{url:"/_next/static/chunks/app/layout-c9bbec85d61ab45b.js",revision:"c9bbec85d61ab45b"},{url:"/_next/static/chunks/app/page-20f1fcb41d90ea78.js",revision:"20f1fcb41d90ea78"},{url:"/_next/static/chunks/bc98253f.ac7fe72f9e73e374.js",revision:"ac7fe72f9e73e374"},{url:"/_next/static/chunks/dd8162e8-bea2cd35813297c3.js",revision:"bea2cd35813297c3"},{url:"/_next/static/chunks/framework-292291387d6b2e39.js",revision:"292291387d6b2e39"},{url:"/_next/static/chunks/main-7ddb690de3906442.js",revision:"7ddb690de3906442"},{url:"/_next/static/chunks/main-app-4f19d69ed4295336.js",revision:"4f19d69ed4295336"},{url:"/_next/static/chunks/next/dist/client/components/builtin/app-error-7ff1880bba064291.js",revision:"7ff1880bba064291"},{url:"/_next/static/chunks/next/dist/client/components/builtin/forbidden-7ff1880bba064291.js",revision:"7ff1880bba064291"},{url:"/_next/static/chunks/next/dist/client/components/builtin/global-error-bcba0732671665d2.js",revision:"bcba0732671665d2"},{url:"/_next/static/chunks/next/dist/client/components/builtin/not-found-7ff1880bba064291.js",revision:"7ff1880bba064291"},{url:"/_next/static/chunks/next/dist/client/components/builtin/unauthorized-7ff1880bba064291.js",revision:"7ff1880bba064291"},{url:"/_next/static/chunks/polyfills-42372ed130431b0a.js",revision:"846118c33b2c0e922d7b3a7676f81f6f"},{url:"/_next/static/chunks/webpack-8c242ea63ddea351.js",revision:"8c242ea63ddea351"},{url:"/_next/static/css/1d32dd5f31643a1d.css",revision:"1d32dd5f31643a1d"},{url:"/_next/static/media/4cf2300e9c8272f7-s.p.woff2",revision:"18bae71b1e1b2bb25321090a3b563103"},{url:"/_next/static/media/747892c23ea88013-s.woff2",revision:"a0761690ccf4441ace5cec893b82d4ab"},{url:"/_next/static/media/8d697b304b401681-s.woff2",revision:"cc728f6c0adb04da0dfcb0fc436a8ae5"},{url:"/_next/static/media/93f479601ee12b01-s.p.woff2",revision:"da83d5f06d825c5ae65b7cca706cb312"},{url:"/_next/static/media/9610d9e46709d722-s.woff2",revision:"7b7c0ef93df188a852344fc272fc096b"},{url:"/_next/static/media/ba015fad6dcf6784-s.woff2",revision:"8ea4f719af3312a055caf09f34c89a77"},{url:"/file.svg",revision:"d09f95206c3fa0bb9bd9fefabfd0ea71"},{url:"/firebase-messaging-sw.js",revision:"04d66892653ef67e1151f1ec6c02420b"},{url:"/globe.svg",revision:"2aaafa6a49b6563925fe440891e32717"},{url:"/icon-192x192.png",revision:"bbbd7efc0e31088ae0a3aeede7608534"},{url:"/icon-512x512.png",revision:"400538d76556a3a8ee4fd3dfda7bc092"},{url:"/locales/en/common.json",revision:"54fe8b7b3b2f39e7604b236e7a480251"},{url:"/manifest.json",revision:"785fbc5941efd3caa27ade80c67bb5ef"},{url:"/next.svg",revision:"8e061864f388b47f33a1c3780831193e"},{url:"/vercel.svg",revision:"c0af2f507b369b085b35ef4bbe3bcf1e"},{url:"/window.svg",revision:"a2760511c65806022ad20adf74370ff3"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:s,event:n,state:a})=>s&&"opaqueredirect"===s.type?new Response(s.body,{status:200,statusText:"OK",headers:s.headers}):s}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>{if(!(self.origin===e.origin))return!1;const s=e.pathname;return!s.startsWith("/api/auth/")&&!!s.startsWith("/api/")},new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")},new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(({url:e})=>!(self.origin===e.origin),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")}); diff --git a/public/workbox-4754cb34.js b/public/workbox-4754cb34.js new file mode 100644 index 0000000..788fd6c --- /dev/null +++ b/public/workbox-4754cb34.js @@ -0,0 +1 @@ +define(["exports"],function(t){"use strict";try{self["workbox:core:6.5.4"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:6.5.4"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class r{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class i extends r{constructor(t,e,s){super(({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)},e,s)}}class a{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)})}addCacheListener(){self.addEventListener("message",t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map(e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})}));t.waitUntil(s),t.ports&&t.ports[0]&&s.then(()=>t.ports[0].postMessage(!0))}})}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let a=i&&i.handler;const o=t.method;if(!a&&this.i.has(o)&&(a=this.i.get(o)),!a)return;let c;try{c=a.handle({url:s,request:t,event:e,params:r})}catch(t){c=Promise.reject(t)}const h=i&&i.catchHandler;return c instanceof Promise&&(this.o||h)&&(c=c.catch(async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:r})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n})),c}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const r=this.t.get(s.method)||[];for(const i of r){let r;const a=i.match({url:t,sameOrigin:e,request:s,event:n});if(a)return r=a,(Array.isArray(r)&&0===r.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(r=void 0),{route:i,params:r}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const c=()=>(o||(o=new a,o.addFetchListener(),o.addCacheListener()),o);function h(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new r(({url:t})=>t.href===s.href,e,n)}else if(t instanceof RegExp)a=new i(t,e,n);else if("function"==typeof t)a=new r(t,e,n);else{if(!(t instanceof r))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return c().registerRoute(a),a}try{self["workbox:strategies:6.5.4"]&&_()}catch(t){}const u={cacheWillUpdate:async({response:t})=>200===t.status||0===t.status?t:null},l={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},f=t=>[l.prefix,t,l.suffix].filter(t=>t&&t.length>0).join("-"),w=t=>t||f(l.precache),d=t=>t||f(l.runtime);function p(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class y{constructor(){this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}}const g=new Set;function m(t){return"string"==typeof t?new Request(t):t}class v{constructor(t,e){this.h={},Object.assign(this,e),this.event=e.event,this.u=t,this.l=new y,this.p=[],this.m=[...t.plugins],this.v=new Map;for(const t of this.m)this.v.set(t,{});this.event.waitUntil(this.l.promise)}async fetch(t){const{event:e}=this;let n=m(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const r=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const i=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.u.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:i,response:t});return t}catch(t){throw r&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:r.clone(),request:i.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=m(t);let s;const{cacheName:n,matchOptions:r}=this.u,i=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},r),{cacheName:n});s=await caches.match(i,a);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:r,cachedResponse:s,request:i,event:this.event})||void 0;return s}async cachePut(t,e){const n=m(t);var r;await(r=0,new Promise(t=>setTimeout(t,r)));const i=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(a=i.url,new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var a;const o=await this.R(e);if(!o)return!1;const{cacheName:c,matchOptions:h}=this.u,u=await self.caches.open(c),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const r=p(e.url,s);if(e.url===r)return t.match(e,n);const i=Object.assign(Object.assign({},n),{ignoreSearch:!0}),a=await t.keys(e,i);for(const e of a)if(r===p(e.url,s))return t.match(e,n)}(u,i.clone(),["__WB_REVISION__"],h):null;try{await u.put(i,l?o.clone():o)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of g)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:c,oldResponse:f,newResponse:o.clone(),request:i,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.h[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=m(await t({mode:e,request:n,event:this.event,params:this.params}));this.h[s]=n}return this.h[s]}hasCallback(t){for(const e of this.u.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.u.plugins)if("function"==typeof e[t]){const s=this.v.get(e),n=n=>{const r=Object.assign(Object.assign({},n),{state:s});return e[t](r)};yield n}}waitUntil(t){return this.p.push(t),t}async doneWaiting(){let t;for(;t=this.p.shift();)await t}destroy(){this.l.resolve(null)}async R(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class R{constructor(t={}){this.cacheName=d(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,r=new v(this,{event:e,request:s,params:n}),i=this.q(r,s,e);return[i,this.D(i,r,s,e)]}async q(t,e,n){let r;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(r=await this.U(e,t),!r||"error"===r.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const i of t.iterateCallbacks("handlerDidError"))if(r=await i({error:s,event:n,request:e}),r)break;if(!r)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))r=await s({event:n,request:e,response:r});return r}async D(t,e,s,n){let r,i;try{r=await t}catch(i){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:r}),await e.doneWaiting()}catch(t){t instanceof Error&&(i=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:r,error:i}),e.destroy(),i)throw i}}function b(t){t.then(()=>{})}function q(){return q=Object.assign?Object.assign.bind():function(t){for(var e=1;e(t[e]=s,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function O(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(U||(U=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(B(this),e),k(x.get(this))}:function(...e){return k(t.apply(B(this),e))}:function(e,...s){const n=t.call(B(this),e,...s);return I.set(n,e.sort?e.sort():[e]),k(n)}}function T(t){return"function"==typeof t?O(t):(t instanceof IDBTransaction&&function(t){if(L.has(t))return;const e=new Promise((e,s)=>{const n=()=>{t.removeEventListener("complete",r),t.removeEventListener("error",i),t.removeEventListener("abort",i)},r=()=>{e(),n()},i=()=>{s(t.error||new DOMException("AbortError","AbortError")),n()};t.addEventListener("complete",r),t.addEventListener("error",i),t.addEventListener("abort",i)});L.set(t,e)}(t),e=t,(D||(D=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(t=>e instanceof t)?new Proxy(t,N):t);var e}function k(t){if(t instanceof IDBRequest)return function(t){const e=new Promise((e,s)=>{const n=()=>{t.removeEventListener("success",r),t.removeEventListener("error",i)},r=()=>{e(k(t.result)),n()},i=()=>{s(t.error),n()};t.addEventListener("success",r),t.addEventListener("error",i)});return e.then(e=>{e instanceof IDBCursor&&x.set(e,t)}).catch(()=>{}),E.set(e,t),e}(t);if(C.has(t))return C.get(t);const e=T(t);return e!==t&&(C.set(t,e),E.set(e,t)),e}const B=t=>E.get(t);const P=["get","getKey","getAll","getAllKeys","count"],M=["put","add","delete","clear"],W=new Map;function j(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(W.get(e))return W.get(e);const s=e.replace(/FromIndex$/,""),n=e!==s,r=M.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!r&&!P.includes(s))return;const i=async function(t,...e){const i=this.transaction(t,r?"readwrite":"readonly");let a=i.store;return n&&(a=a.index(e.shift())),(await Promise.all([a[s](...e),r&&i.done]))[0]};return W.set(e,i),i}N=(t=>q({},t,{get:(e,s,n)=>j(e,s)||t.get(e,s,n),has:(e,s)=>!!j(e,s)||t.has(e,s)}))(N);try{self["workbox:expiration:6.5.4"]&&_()}catch(t){}const S="cache-entries",K=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class A{constructor(t){this._=null,this.L=t}I(t){const e=t.createObjectStore(S,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}C(t){this.I(t),this.L&&function(t,{blocked:e}={}){const s=indexedDB.deleteDatabase(t);e&&s.addEventListener("blocked",t=>e(t.oldVersion,t)),k(s).then(()=>{})}(this.L)}async setTimestamp(t,e){const s={url:t=K(t),timestamp:e,cacheName:this.L,id:this.N(t)},n=(await this.getDb()).transaction(S,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(t){const e=await this.getDb(),s=await e.get(S,this.N(t));return null==s?void 0:s.timestamp}async expireEntries(t,e){const s=await this.getDb();let n=await s.transaction(S).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;n;){const s=n.value;s.cacheName===this.L&&(t&&s.timestamp=e?r.push(n.value):i++),n=await n.continue()}const a=[];for(const t of r)await s.delete(S,t.id),a.push(t.url);return a}N(t){return this.L+"|"+K(t)}async getDb(){return this._||(this._=await function(t,e,{blocked:s,upgrade:n,blocking:r,terminated:i}={}){const a=indexedDB.open(t,e),o=k(a);return n&&a.addEventListener("upgradeneeded",t=>{n(k(a.result),t.oldVersion,t.newVersion,k(a.transaction),t)}),s&&a.addEventListener("blocked",t=>s(t.oldVersion,t.newVersion,t)),o.then(t=>{i&&t.addEventListener("close",()=>i()),r&&t.addEventListener("versionchange",t=>r(t.oldVersion,t.newVersion,t))}).catch(()=>{}),o}("workbox-expiration",1,{upgrade:this.C.bind(this)})),this._}}class F{constructor(t,e={}){this.O=!1,this.T=!1,this.k=e.maxEntries,this.B=e.maxAgeSeconds,this.P=e.matchOptions,this.L=t,this.M=new A(t)}async expireEntries(){if(this.O)return void(this.T=!0);this.O=!0;const t=this.B?Date.now()-1e3*this.B:0,e=await this.M.expireEntries(t,this.k),s=await self.caches.open(this.L);for(const t of e)await s.delete(t,this.P);this.O=!1,this.T&&(this.T=!1,b(this.expireEntries()))}async updateTimestamp(t){await this.M.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.B){const e=await this.M.getTimestamp(t),s=Date.now()-1e3*this.B;return void 0===e||er||e&&e<0)throw new s("range-not-satisfiable",{size:r,end:n,start:e});let i,a;return void 0!==e&&void 0!==n?(i=e,a=n+1):void 0!==e&&void 0===n?(i=e,a=r):void 0!==n&&void 0===e&&(i=r-n,a=r),{start:i,end:a}}(i,r.start,r.end),o=i.slice(a.start,a.end),c=o.size,h=new Response(o,{status:206,statusText:"Partial Content",headers:e.headers});return h.headers.set("Content-Length",String(c)),h.headers.set("Content-Range",`bytes ${a.start}-${a.end-1}/${i.size}`),h}catch(t){return new Response("",{status:416,statusText:"Range Not Satisfiable"})}}function $(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:6.5.4"]&&_()}catch(t){}function z(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const r=new URL(n,location.href),i=new URL(n,location.href);return r.searchParams.set("__WB_REVISION__",e),{cacheKey:r.href,url:i.href}}class G{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class V{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.W.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.W=t}}let J,Q;async function X(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const r=t.clone(),i={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},a=e?e(i):i,o=function(){if(void 0===J){const t=new Response("");if("body"in t)try{new Response(t.body),J=!0}catch(t){J=!1}J=!1}return J}()?r.body:await r.blob();return new Response(o,a)}class Y extends R{constructor(t={}){t.cacheName=w(t.cacheName),super(t),this.j=!1!==t.fallbackToNetwork,this.plugins.push(Y.copyRedirectedCacheableResponsesPlugin)}async U(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.S(t,e):await this.K(t,e))}async K(t,e){let n;const r=e.params||{};if(!this.j)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=r.integrity,i=t.integrity,a=!i||i===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?i||s:void 0})),s&&a&&"no-cors"!==t.mode&&(this.A(),await e.cachePut(t,n.clone()))}return n}async S(t,e){this.A();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}A(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==Y.copyRedirectedCacheableResponsesPlugin&&(n===Y.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(Y.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}Y.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},Y.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await X(t):t};class Z{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.F=new Map,this.H=new Map,this.$=new Map,this.u=new Y({cacheName:w(t),plugins:[...e,new V({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.u}precache(t){this.addToCacheList(t),this.G||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.G=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:r}=z(n),i="string"!=typeof n&&n.revision?"reload":"default";if(this.F.has(r)&&this.F.get(r)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.F.get(r),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.$.has(t)&&this.$.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:r});this.$.set(t,n.integrity)}if(this.F.set(r,t),this.H.set(r,i),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return $(t,async()=>{const e=new G;this.strategy.plugins.push(e);for(const[e,s]of this.F){const n=this.$.get(s),r=this.H.get(e),i=new Request(e,{integrity:n,cache:r,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:i,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}})}activate(t){return $(t,async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.F.values()),n=[];for(const r of e)s.has(r.url)||(await t.delete(r),n.push(r.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this.F}getCachedURLs(){return[...this.F.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.F.get(e.href)}getIntegrityForCacheKey(t){return this.$.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}const tt=()=>(Q||(Q=new Z),Q);class et extends r{constructor(t,e){super(({request:s})=>{const n=t.getURLsToCacheKeys();for(const r of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const i=new URL(t,location.href);i.hash="",yield i.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some(t=>t.test(s))&&t.searchParams.delete(s);return t}(i,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(r){const t=r({url:i});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(r);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}},t.strategy)}}t.CacheFirst=class extends R{async U(t,e){let n,r=await e.cacheMatch(t);if(!r)try{r=await e.fetchAndCachePut(t)}catch(t){t instanceof Error&&(n=t)}if(!r)throw new s("no-response",{url:t.url,error:n});return r}},t.ExpirationPlugin=class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const r=this.V(n),i=this.J(s);b(i.expireEntries());const a=i.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return r?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.J(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.X=t,this.B=t.maxAgeSeconds,this.Y=new Map,t.purgeOnQuotaError&&function(t){g.add(t)}(()=>this.deleteCacheAndMetadata())}J(t){if(t===d())throw new s("expire-custom-caches-only");let e=this.Y.get(t);return e||(e=new F(t,this.X),this.Y.set(t,e)),e}V(t){if(!this.B)return!0;const e=this.Z(t);if(null===e)return!0;return e>=Date.now()-1e3*this.B}Z(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.Y)await self.caches.delete(t),await e.delete();this.Y=new Map}},t.NetworkFirst=class extends R{constructor(t={}){super(t),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(u),this.tt=t.networkTimeoutSeconds||0}async U(t,e){const n=[],r=[];let i;if(this.tt){const{id:s,promise:a}=this.et({request:t,logs:n,handler:e});i=s,r.push(a)}const a=this.st({timeoutId:i,request:t,logs:n,handler:e});r.push(a);const o=await e.waitUntil((async()=>await e.waitUntil(Promise.race(r))||await a)());if(!o)throw new s("no-response",{url:t.url});return o}et({request:t,logs:e,handler:s}){let n;return{promise:new Promise(e=>{n=setTimeout(async()=>{e(await s.cacheMatch(t))},1e3*this.tt)}),id:n}}async st({timeoutId:t,request:e,logs:s,handler:n}){let r,i;try{i=await n.fetchAndCachePut(e)}catch(t){t instanceof Error&&(r=t)}return t&&clearTimeout(t),!r&&i||(i=await n.cacheMatch(e)),i}},t.RangeRequestsPlugin=class{constructor(){this.cachedResponseWillBeUsed=async({request:t,cachedResponse:e})=>e&&t.headers.has("range")?await H(t,e):e}},t.StaleWhileRevalidate=class extends R{constructor(t={}){super(t),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(u)}async U(t,e){const n=e.fetchAndCachePut(t).catch(()=>{});e.waitUntil(n);let r,i=await e.cacheMatch(t);if(i);else try{i=await n}catch(t){t instanceof Error&&(r=t)}if(!i)throw new s("no-response",{url:t.url,error:r});return i}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",t=>{const e=w();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter(s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t);return await Promise.all(s.map(t=>self.caches.delete(t))),s})(e).then(t=>{}))})},t.clientsClaim=function(){self.addEventListener("activate",()=>self.clients.claim())},t.precacheAndRoute=function(t,e){!function(t){tt().precache(t)}(t),function(t){const e=tt();h(new et(e,t))}(e)},t.registerRoute=h}); diff --git a/public/workbox-e43f5367.js b/public/workbox-e43f5367.js deleted file mode 100644 index af939a8..0000000 --- a/public/workbox-e43f5367.js +++ /dev/null @@ -1,2455 +0,0 @@ -define(['exports'], (function (exports) { 'use strict'; - - // @ts-ignore - try { - self['workbox:core:6.5.4'] && _(); - } catch (e) {} - - /* - Copyright 2019 Google LLC - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - const logger = (() => { - // Don't overwrite this value if it's already set. - // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923 - if (!('__WB_DISABLE_DEV_LOGS' in globalThis)) { - self.__WB_DISABLE_DEV_LOGS = false; - } - let inGroup = false; - const methodToColorMap = { - debug: `#7f8c8d`, - log: `#2ecc71`, - warn: `#f39c12`, - error: `#c0392b`, - groupCollapsed: `#3498db`, - groupEnd: null // No colored prefix on groupEnd - }; - const print = function (method, args) { - if (self.__WB_DISABLE_DEV_LOGS) { - return; - } - if (method === 'groupCollapsed') { - // Safari doesn't print all console.groupCollapsed() arguments: - // https://bugs.webkit.org/show_bug.cgi?id=182754 - if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { - console[method](...args); - return; - } - } - const styles = [`background: ${methodToColorMap[method]}`, `border-radius: 0.5em`, `color: white`, `font-weight: bold`, `padding: 2px 0.5em`]; - // When in a group, the workbox prefix is not displayed. - const logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')]; - console[method](...logPrefix, ...args); - if (method === 'groupCollapsed') { - inGroup = true; - } - if (method === 'groupEnd') { - inGroup = false; - } - }; - // eslint-disable-next-line @typescript-eslint/ban-types - const api = {}; - const loggerMethods = Object.keys(methodToColorMap); - for (const key of loggerMethods) { - const method = key; - api[method] = (...args) => { - print(method, args); - }; - } - return api; - })(); - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - const messages$1 = { - 'invalid-value': ({ - paramName, - validValueDescription, - value - }) => { - if (!paramName || !validValueDescription) { - throw new Error(`Unexpected input to 'invalid-value' error.`); - } - return `The '${paramName}' parameter was given a value with an ` + `unexpected value. ${validValueDescription} Received a value of ` + `${JSON.stringify(value)}.`; - }, - 'not-an-array': ({ - moduleName, - className, - funcName, - paramName - }) => { - if (!moduleName || !className || !funcName || !paramName) { - throw new Error(`Unexpected input to 'not-an-array' error.`); - } - return `The parameter '${paramName}' passed into ` + `'${moduleName}.${className}.${funcName}()' must be an array.`; - }, - 'incorrect-type': ({ - expectedType, - paramName, - moduleName, - className, - funcName - }) => { - if (!expectedType || !paramName || !moduleName || !funcName) { - throw new Error(`Unexpected input to 'incorrect-type' error.`); - } - const classNameStr = className ? `${className}.` : ''; - return `The parameter '${paramName}' passed into ` + `'${moduleName}.${classNameStr}` + `${funcName}()' must be of type ${expectedType}.`; - }, - 'incorrect-class': ({ - expectedClassName, - paramName, - moduleName, - className, - funcName, - isReturnValueProblem - }) => { - if (!expectedClassName || !moduleName || !funcName) { - throw new Error(`Unexpected input to 'incorrect-class' error.`); - } - const classNameStr = className ? `${className}.` : ''; - if (isReturnValueProblem) { - return `The return value from ` + `'${moduleName}.${classNameStr}${funcName}()' ` + `must be an instance of class ${expectedClassName}.`; - } - return `The parameter '${paramName}' passed into ` + `'${moduleName}.${classNameStr}${funcName}()' ` + `must be an instance of class ${expectedClassName}.`; - }, - 'missing-a-method': ({ - expectedMethod, - paramName, - moduleName, - className, - funcName - }) => { - if (!expectedMethod || !paramName || !moduleName || !className || !funcName) { - throw new Error(`Unexpected input to 'missing-a-method' error.`); - } - return `${moduleName}.${className}.${funcName}() expected the ` + `'${paramName}' parameter to expose a '${expectedMethod}' method.`; - }, - 'add-to-cache-list-unexpected-type': ({ - entry - }) => { - return `An unexpected entry was passed to ` + `'workbox-precaching.PrecacheController.addToCacheList()' The entry ` + `'${JSON.stringify(entry)}' isn't supported. You must supply an array of ` + `strings with one or more characters, objects with a url property or ` + `Request objects.`; - }, - 'add-to-cache-list-conflicting-entries': ({ - firstEntry, - secondEntry - }) => { - if (!firstEntry || !secondEntry) { - throw new Error(`Unexpected input to ` + `'add-to-cache-list-duplicate-entries' error.`); - } - return `Two of the entries passed to ` + `'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` + `${firstEntry} but different revision details. Workbox is ` + `unable to cache and version the asset correctly. Please remove one ` + `of the entries.`; - }, - 'plugin-error-request-will-fetch': ({ - thrownErrorMessage - }) => { - if (!thrownErrorMessage) { - throw new Error(`Unexpected input to ` + `'plugin-error-request-will-fetch', error.`); - } - return `An error was thrown by a plugins 'requestWillFetch()' method. ` + `The thrown error message was: '${thrownErrorMessage}'.`; - }, - 'invalid-cache-name': ({ - cacheNameId, - value - }) => { - if (!cacheNameId) { - throw new Error(`Expected a 'cacheNameId' for error 'invalid-cache-name'`); - } - return `You must provide a name containing at least one character for ` + `setCacheDetails({${cacheNameId}: '...'}). Received a value of ` + `'${JSON.stringify(value)}'`; - }, - 'unregister-route-but-not-found-with-method': ({ - method - }) => { - if (!method) { - throw new Error(`Unexpected input to ` + `'unregister-route-but-not-found-with-method' error.`); - } - return `The route you're trying to unregister was not previously ` + `registered for the method type '${method}'.`; - }, - 'unregister-route-route-not-registered': () => { - return `The route you're trying to unregister was not previously ` + `registered.`; - }, - 'queue-replay-failed': ({ - name - }) => { - return `Replaying the background sync queue '${name}' failed.`; - }, - 'duplicate-queue-name': ({ - name - }) => { - return `The Queue name '${name}' is already being used. ` + `All instances of backgroundSync.Queue must be given unique names.`; - }, - 'expired-test-without-max-age': ({ - methodName, - paramName - }) => { - return `The '${methodName}()' method can only be used when the ` + `'${paramName}' is used in the constructor.`; - }, - 'unsupported-route-type': ({ - moduleName, - className, - funcName, - paramName - }) => { - return `The supplied '${paramName}' parameter was an unsupported type. ` + `Please check the docs for ${moduleName}.${className}.${funcName} for ` + `valid input types.`; - }, - 'not-array-of-class': ({ - value, - expectedClass, - moduleName, - className, - funcName, - paramName - }) => { - return `The supplied '${paramName}' parameter must be an array of ` + `'${expectedClass}' objects. Received '${JSON.stringify(value)},'. ` + `Please check the call to ${moduleName}.${className}.${funcName}() ` + `to fix the issue.`; - }, - 'max-entries-or-age-required': ({ - moduleName, - className, - funcName - }) => { - return `You must define either config.maxEntries or config.maxAgeSeconds` + `in ${moduleName}.${className}.${funcName}`; - }, - 'statuses-or-headers-required': ({ - moduleName, - className, - funcName - }) => { - return `You must define either config.statuses or config.headers` + `in ${moduleName}.${className}.${funcName}`; - }, - 'invalid-string': ({ - moduleName, - funcName, - paramName - }) => { - if (!paramName || !moduleName || !funcName) { - throw new Error(`Unexpected input to 'invalid-string' error.`); - } - return `When using strings, the '${paramName}' parameter must start with ` + `'http' (for cross-origin matches) or '/' (for same-origin matches). ` + `Please see the docs for ${moduleName}.${funcName}() for ` + `more info.`; - }, - 'channel-name-required': () => { - return `You must provide a channelName to construct a ` + `BroadcastCacheUpdate instance.`; - }, - 'invalid-responses-are-same-args': () => { - return `The arguments passed into responsesAreSame() appear to be ` + `invalid. Please ensure valid Responses are used.`; - }, - 'expire-custom-caches-only': () => { - return `You must provide a 'cacheName' property when using the ` + `expiration plugin with a runtime caching strategy.`; - }, - 'unit-must-be-bytes': ({ - normalizedRangeHeader - }) => { - if (!normalizedRangeHeader) { - throw new Error(`Unexpected input to 'unit-must-be-bytes' error.`); - } - return `The 'unit' portion of the Range header must be set to 'bytes'. ` + `The Range header provided was "${normalizedRangeHeader}"`; - }, - 'single-range-only': ({ - normalizedRangeHeader - }) => { - if (!normalizedRangeHeader) { - throw new Error(`Unexpected input to 'single-range-only' error.`); - } - return `Multiple ranges are not supported. Please use a single start ` + `value, and optional end value. The Range header provided was ` + `"${normalizedRangeHeader}"`; - }, - 'invalid-range-values': ({ - normalizedRangeHeader - }) => { - if (!normalizedRangeHeader) { - throw new Error(`Unexpected input to 'invalid-range-values' error.`); - } - return `The Range header is missing both start and end values. At least ` + `one of those values is needed. The Range header provided was ` + `"${normalizedRangeHeader}"`; - }, - 'no-range-header': () => { - return `No Range header was found in the Request provided.`; - }, - 'range-not-satisfiable': ({ - size, - start, - end - }) => { - return `The start (${start}) and end (${end}) values in the Range are ` + `not satisfiable by the cached response, which is ${size} bytes.`; - }, - 'attempt-to-cache-non-get-request': ({ - url, - method - }) => { - return `Unable to cache '${url}' because it is a '${method}' request and ` + `only 'GET' requests can be cached.`; - }, - 'cache-put-with-no-response': ({ - url - }) => { - return `There was an attempt to cache '${url}' but the response was not ` + `defined.`; - }, - 'no-response': ({ - url, - error - }) => { - let message = `The strategy could not generate a response for '${url}'.`; - if (error) { - message += ` The underlying error is ${error}.`; - } - return message; - }, - 'bad-precaching-response': ({ - url, - status - }) => { - return `The precaching request for '${url}' failed` + (status ? ` with an HTTP status of ${status}.` : `.`); - }, - 'non-precached-url': ({ - url - }) => { - return `createHandlerBoundToURL('${url}') was called, but that URL is ` + `not precached. Please pass in a URL that is precached instead.`; - }, - 'add-to-cache-list-conflicting-integrities': ({ - url - }) => { - return `Two of the entries passed to ` + `'workbox-precaching.PrecacheController.addToCacheList()' had the URL ` + `${url} with different integrity values. Please remove one of them.`; - }, - 'missing-precache-entry': ({ - cacheName, - url - }) => { - return `Unable to find a precached response in ${cacheName} for ${url}.`; - }, - 'cross-origin-copy-response': ({ - origin - }) => { - return `workbox-core.copyResponse() can only be used with same-origin ` + `responses. It was passed a response with origin ${origin}.`; - }, - 'opaque-streams-source': ({ - type - }) => { - const message = `One of the workbox-streams sources resulted in an ` + `'${type}' response.`; - if (type === 'opaqueredirect') { - return `${message} Please do not use a navigation request that results ` + `in a redirect as a source.`; - } - return `${message} Please ensure your sources are CORS-enabled.`; - } - }; - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - const generatorFunction = (code, details = {}) => { - const message = messages$1[code]; - if (!message) { - throw new Error(`Unable to find message for code '${code}'.`); - } - return message(details); - }; - const messageGenerator = generatorFunction; - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * Workbox errors should be thrown with this class. - * This allows use to ensure the type easily in tests, - * helps developers identify errors from workbox - * easily and allows use to optimise error - * messages correctly. - * - * @private - */ - class WorkboxError extends Error { - /** - * - * @param {string} errorCode The error code that - * identifies this particular error. - * @param {Object=} details Any relevant arguments - * that will help developers identify issues should - * be added as a key on the context object. - */ - constructor(errorCode, details) { - const message = messageGenerator(errorCode, details); - super(message); - this.name = errorCode; - this.details = details; - } - } - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /* - * This method throws if the supplied value is not an array. - * The destructed values are required to produce a meaningful error for users. - * The destructed and restructured object is so it's clear what is - * needed. - */ - const isArray = (value, details) => { - if (!Array.isArray(value)) { - throw new WorkboxError('not-an-array', details); - } - }; - const hasMethod = (object, expectedMethod, details) => { - const type = typeof object[expectedMethod]; - if (type !== 'function') { - details['expectedMethod'] = expectedMethod; - throw new WorkboxError('missing-a-method', details); - } - }; - const isType = (object, expectedType, details) => { - if (typeof object !== expectedType) { - details['expectedType'] = expectedType; - throw new WorkboxError('incorrect-type', details); - } - }; - const isInstance = (object, - // Need the general type to do the check later. - // eslint-disable-next-line @typescript-eslint/ban-types - expectedClass, details) => { - if (!(object instanceof expectedClass)) { - details['expectedClassName'] = expectedClass.name; - throw new WorkboxError('incorrect-class', details); - } - }; - const isOneOf = (value, validValues, details) => { - if (!validValues.includes(value)) { - details['validValueDescription'] = `Valid values are ${JSON.stringify(validValues)}.`; - throw new WorkboxError('invalid-value', details); - } - }; - const isArrayOfClass = (value, - // Need general type to do check later. - expectedClass, - // eslint-disable-line - details) => { - const error = new WorkboxError('not-array-of-class', details); - if (!Array.isArray(value)) { - throw error; - } - for (const item of value) { - if (!(item instanceof expectedClass)) { - throw error; - } - } - }; - const finalAssertExports = { - hasMethod, - isArray, - isInstance, - isOneOf, - isType, - isArrayOfClass - }; - - // @ts-ignore - try { - self['workbox:routing:6.5.4'] && _(); - } catch (e) {} - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * The default HTTP method, 'GET', used when there's no specific method - * configured for a route. - * - * @type {string} - * - * @private - */ - const defaultMethod = 'GET'; - /** - * The list of valid HTTP methods associated with requests that could be routed. - * - * @type {Array} - * - * @private - */ - const validMethods = ['DELETE', 'GET', 'HEAD', 'PATCH', 'POST', 'PUT']; - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * @param {function()|Object} handler Either a function, or an object with a - * 'handle' method. - * @return {Object} An object with a handle method. - * - * @private - */ - const normalizeHandler = handler => { - if (handler && typeof handler === 'object') { - { - finalAssertExports.hasMethod(handler, 'handle', { - moduleName: 'workbox-routing', - className: 'Route', - funcName: 'constructor', - paramName: 'handler' - }); - } - return handler; - } else { - { - finalAssertExports.isType(handler, 'function', { - moduleName: 'workbox-routing', - className: 'Route', - funcName: 'constructor', - paramName: 'handler' - }); - } - return { - handle: handler - }; - } - }; - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * A `Route` consists of a pair of callback functions, "match" and "handler". - * The "match" callback determine if a route should be used to "handle" a - * request by returning a non-falsy value if it can. The "handler" callback - * is called when there is a match and should return a Promise that resolves - * to a `Response`. - * - * @memberof workbox-routing - */ - class Route { - /** - * Constructor for Route class. - * - * @param {workbox-routing~matchCallback} match - * A callback function that determines whether the route matches a given - * `fetch` event by returning a non-falsy value. - * @param {workbox-routing~handlerCallback} handler A callback - * function that returns a Promise resolving to a Response. - * @param {string} [method='GET'] The HTTP method to match the Route - * against. - */ - constructor(match, handler, method = defaultMethod) { - { - finalAssertExports.isType(match, 'function', { - moduleName: 'workbox-routing', - className: 'Route', - funcName: 'constructor', - paramName: 'match' - }); - if (method) { - finalAssertExports.isOneOf(method, validMethods, { - paramName: 'method' - }); - } - } - // These values are referenced directly by Router so cannot be - // altered by minificaton. - this.handler = normalizeHandler(handler); - this.match = match; - this.method = method; - } - /** - * - * @param {workbox-routing-handlerCallback} handler A callback - * function that returns a Promise resolving to a Response - */ - setCatchHandler(handler) { - this.catchHandler = normalizeHandler(handler); - } - } - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * RegExpRoute makes it easy to create a regular expression based - * {@link workbox-routing.Route}. - * - * For same-origin requests the RegExp only needs to match part of the URL. For - * requests against third-party servers, you must define a RegExp that matches - * the start of the URL. - * - * @memberof workbox-routing - * @extends workbox-routing.Route - */ - class RegExpRoute extends Route { - /** - * If the regular expression contains - * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references}, - * the captured values will be passed to the - * {@link workbox-routing~handlerCallback} `params` - * argument. - * - * @param {RegExp} regExp The regular expression to match against URLs. - * @param {workbox-routing~handlerCallback} handler A callback - * function that returns a Promise resulting in a Response. - * @param {string} [method='GET'] The HTTP method to match the Route - * against. - */ - constructor(regExp, handler, method) { - { - finalAssertExports.isInstance(regExp, RegExp, { - moduleName: 'workbox-routing', - className: 'RegExpRoute', - funcName: 'constructor', - paramName: 'pattern' - }); - } - const match = ({ - url - }) => { - const result = regExp.exec(url.href); - // Return immediately if there's no match. - if (!result) { - return; - } - // Require that the match start at the first character in the URL string - // if it's a cross-origin request. - // See https://github.com/GoogleChrome/workbox/issues/281 for the context - // behind this behavior. - if (url.origin !== location.origin && result.index !== 0) { - { - logger.debug(`The regular expression '${regExp.toString()}' only partially matched ` + `against the cross-origin URL '${url.toString()}'. RegExpRoute's will only ` + `handle cross-origin requests if they match the entire URL.`); - } - return; - } - // If the route matches, but there aren't any capture groups defined, then - // this will return [], which is truthy and therefore sufficient to - // indicate a match. - // If there are capture groups, then it will return their values. - return result.slice(1); - }; - super(match, handler, method); - } - } - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - const getFriendlyURL = url => { - const urlObj = new URL(String(url), location.href); - // See https://github.com/GoogleChrome/workbox/issues/2323 - // We want to include everything, except for the origin if it's same-origin. - return urlObj.href.replace(new RegExp(`^${location.origin}`), ''); - }; - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * The Router can be used to process a `FetchEvent` using one or more - * {@link workbox-routing.Route}, responding with a `Response` if - * a matching route exists. - * - * If no route matches a given a request, the Router will use a "default" - * handler if one is defined. - * - * Should the matching Route throw an error, the Router will use a "catch" - * handler if one is defined to gracefully deal with issues and respond with a - * Request. - * - * If a request matches multiple routes, the **earliest** registered route will - * be used to respond to the request. - * - * @memberof workbox-routing - */ - class Router { - /** - * Initializes a new Router. - */ - constructor() { - this._routes = new Map(); - this._defaultHandlerMap = new Map(); - } - /** - * @return {Map>} routes A `Map` of HTTP - * method name ('GET', etc.) to an array of all the corresponding `Route` - * instances that are registered. - */ - get routes() { - return this._routes; - } - /** - * Adds a fetch event listener to respond to events when a route matches - * the event's request. - */ - addFetchListener() { - // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705 - self.addEventListener('fetch', event => { - const { - request - } = event; - const responsePromise = this.handleRequest({ - request, - event - }); - if (responsePromise) { - event.respondWith(responsePromise); - } - }); - } - /** - * Adds a message event listener for URLs to cache from the window. - * This is useful to cache resources loaded on the page prior to when the - * service worker started controlling it. - * - * The format of the message data sent from the window should be as follows. - * Where the `urlsToCache` array may consist of URL strings or an array of - * URL string + `requestInit` object (the same as you'd pass to `fetch()`). - * - * ``` - * { - * type: 'CACHE_URLS', - * payload: { - * urlsToCache: [ - * './script1.js', - * './script2.js', - * ['./script3.js', {mode: 'no-cors'}], - * ], - * }, - * } - * ``` - */ - addCacheListener() { - // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705 - self.addEventListener('message', event => { - // event.data is type 'any' - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - if (event.data && event.data.type === 'CACHE_URLS') { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const { - payload - } = event.data; - { - logger.debug(`Caching URLs from the window`, payload.urlsToCache); - } - const requestPromises = Promise.all(payload.urlsToCache.map(entry => { - if (typeof entry === 'string') { - entry = [entry]; - } - const request = new Request(...entry); - return this.handleRequest({ - request, - event - }); - // TODO(philipwalton): TypeScript errors without this typecast for - // some reason (probably a bug). The real type here should work but - // doesn't: `Array | undefined>`. - })); // TypeScript - event.waitUntil(requestPromises); - // If a MessageChannel was used, reply to the message on success. - if (event.ports && event.ports[0]) { - void requestPromises.then(() => event.ports[0].postMessage(true)); - } - } - }); - } - /** - * Apply the routing rules to a FetchEvent object to get a Response from an - * appropriate Route's handler. - * - * @param {Object} options - * @param {Request} options.request The request to handle. - * @param {ExtendableEvent} options.event The event that triggered the - * request. - * @return {Promise|undefined} A promise is returned if a - * registered route can handle the request. If there is no matching - * route and there's no `defaultHandler`, `undefined` is returned. - */ - handleRequest({ - request, - event - }) { - { - finalAssertExports.isInstance(request, Request, { - moduleName: 'workbox-routing', - className: 'Router', - funcName: 'handleRequest', - paramName: 'options.request' - }); - } - const url = new URL(request.url, location.href); - if (!url.protocol.startsWith('http')) { - { - logger.debug(`Workbox Router only supports URLs that start with 'http'.`); - } - return; - } - const sameOrigin = url.origin === location.origin; - const { - params, - route - } = this.findMatchingRoute({ - event, - request, - sameOrigin, - url - }); - let handler = route && route.handler; - const debugMessages = []; - { - if (handler) { - debugMessages.push([`Found a route to handle this request:`, route]); - if (params) { - debugMessages.push([`Passing the following params to the route's handler:`, params]); - } - } - } - // If we don't have a handler because there was no matching route, then - // fall back to defaultHandler if that's defined. - const method = request.method; - if (!handler && this._defaultHandlerMap.has(method)) { - { - debugMessages.push(`Failed to find a matching route. Falling ` + `back to the default handler for ${method}.`); - } - handler = this._defaultHandlerMap.get(method); - } - if (!handler) { - { - // No handler so Workbox will do nothing. If logs is set of debug - // i.e. verbose, we should print out this information. - logger.debug(`No route found for: ${getFriendlyURL(url)}`); - } - return; - } - { - // We have a handler, meaning Workbox is going to handle the route. - // print the routing details to the console. - logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`); - debugMessages.forEach(msg => { - if (Array.isArray(msg)) { - logger.log(...msg); - } else { - logger.log(msg); - } - }); - logger.groupEnd(); - } - // Wrap in try and catch in case the handle method throws a synchronous - // error. It should still callback to the catch handler. - let responsePromise; - try { - responsePromise = handler.handle({ - url, - request, - event, - params - }); - } catch (err) { - responsePromise = Promise.reject(err); - } - // Get route's catch handler, if it exists - const catchHandler = route && route.catchHandler; - if (responsePromise instanceof Promise && (this._catchHandler || catchHandler)) { - responsePromise = responsePromise.catch(async err => { - // If there's a route catch handler, process that first - if (catchHandler) { - { - // Still include URL here as it will be async from the console group - // and may not make sense without the URL - logger.groupCollapsed(`Error thrown when responding to: ` + ` ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`); - logger.error(`Error thrown by:`, route); - logger.error(err); - logger.groupEnd(); - } - try { - return await catchHandler.handle({ - url, - request, - event, - params - }); - } catch (catchErr) { - if (catchErr instanceof Error) { - err = catchErr; - } - } - } - if (this._catchHandler) { - { - // Still include URL here as it will be async from the console group - // and may not make sense without the URL - logger.groupCollapsed(`Error thrown when responding to: ` + ` ${getFriendlyURL(url)}. Falling back to global Catch Handler.`); - logger.error(`Error thrown by:`, route); - logger.error(err); - logger.groupEnd(); - } - return this._catchHandler.handle({ - url, - request, - event - }); - } - throw err; - }); - } - return responsePromise; - } - /** - * Checks a request and URL (and optionally an event) against the list of - * registered routes, and if there's a match, returns the corresponding - * route along with any params generated by the match. - * - * @param {Object} options - * @param {URL} options.url - * @param {boolean} options.sameOrigin The result of comparing `url.origin` - * against the current origin. - * @param {Request} options.request The request to match. - * @param {Event} options.event The corresponding event. - * @return {Object} An object with `route` and `params` properties. - * They are populated if a matching route was found or `undefined` - * otherwise. - */ - findMatchingRoute({ - url, - sameOrigin, - request, - event - }) { - const routes = this._routes.get(request.method) || []; - for (const route of routes) { - let params; - // route.match returns type any, not possible to change right now. - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const matchResult = route.match({ - url, - sameOrigin, - request, - event - }); - if (matchResult) { - { - // Warn developers that using an async matchCallback is almost always - // not the right thing to do. - if (matchResult instanceof Promise) { - logger.warn(`While routing ${getFriendlyURL(url)}, an async ` + `matchCallback function was used. Please convert the ` + `following route to use a synchronous matchCallback function:`, route); - } - } - // See https://github.com/GoogleChrome/workbox/issues/2079 - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - params = matchResult; - if (Array.isArray(params) && params.length === 0) { - // Instead of passing an empty array in as params, use undefined. - params = undefined; - } else if (matchResult.constructor === Object && - // eslint-disable-line - Object.keys(matchResult).length === 0) { - // Instead of passing an empty object in as params, use undefined. - params = undefined; - } else if (typeof matchResult === 'boolean') { - // For the boolean value true (rather than just something truth-y), - // don't set params. - // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353 - params = undefined; - } - // Return early if have a match. - return { - route, - params - }; - } - } - // If no match was found above, return and empty object. - return {}; - } - /** - * Define a default `handler` that's called when no routes explicitly - * match the incoming request. - * - * Each HTTP method ('GET', 'POST', etc.) gets its own default handler. - * - * Without a default handler, unmatched requests will go against the - * network as if there were no service worker present. - * - * @param {workbox-routing~handlerCallback} handler A callback - * function that returns a Promise resulting in a Response. - * @param {string} [method='GET'] The HTTP method to associate with this - * default handler. Each method has its own default. - */ - setDefaultHandler(handler, method = defaultMethod) { - this._defaultHandlerMap.set(method, normalizeHandler(handler)); - } - /** - * If a Route throws an error while handling a request, this `handler` - * will be called and given a chance to provide a response. - * - * @param {workbox-routing~handlerCallback} handler A callback - * function that returns a Promise resulting in a Response. - */ - setCatchHandler(handler) { - this._catchHandler = normalizeHandler(handler); - } - /** - * Registers a route with the router. - * - * @param {workbox-routing.Route} route The route to register. - */ - registerRoute(route) { - { - finalAssertExports.isType(route, 'object', { - moduleName: 'workbox-routing', - className: 'Router', - funcName: 'registerRoute', - paramName: 'route' - }); - finalAssertExports.hasMethod(route, 'match', { - moduleName: 'workbox-routing', - className: 'Router', - funcName: 'registerRoute', - paramName: 'route' - }); - finalAssertExports.isType(route.handler, 'object', { - moduleName: 'workbox-routing', - className: 'Router', - funcName: 'registerRoute', - paramName: 'route' - }); - finalAssertExports.hasMethod(route.handler, 'handle', { - moduleName: 'workbox-routing', - className: 'Router', - funcName: 'registerRoute', - paramName: 'route.handler' - }); - finalAssertExports.isType(route.method, 'string', { - moduleName: 'workbox-routing', - className: 'Router', - funcName: 'registerRoute', - paramName: 'route.method' - }); - } - if (!this._routes.has(route.method)) { - this._routes.set(route.method, []); - } - // Give precedence to all of the earlier routes by adding this additional - // route to the end of the array. - this._routes.get(route.method).push(route); - } - /** - * Unregisters a route with the router. - * - * @param {workbox-routing.Route} route The route to unregister. - */ - unregisterRoute(route) { - if (!this._routes.has(route.method)) { - throw new WorkboxError('unregister-route-but-not-found-with-method', { - method: route.method - }); - } - const routeIndex = this._routes.get(route.method).indexOf(route); - if (routeIndex > -1) { - this._routes.get(route.method).splice(routeIndex, 1); - } else { - throw new WorkboxError('unregister-route-route-not-registered'); - } - } - } - - /* - Copyright 2019 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - let defaultRouter; - /** - * Creates a new, singleton Router instance if one does not exist. If one - * does already exist, that instance is returned. - * - * @private - * @return {Router} - */ - const getOrCreateDefaultRouter = () => { - if (!defaultRouter) { - defaultRouter = new Router(); - // The helpers that use the default Router assume these listeners exist. - defaultRouter.addFetchListener(); - defaultRouter.addCacheListener(); - } - return defaultRouter; - }; - - /* - Copyright 2019 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * Easily register a RegExp, string, or function with a caching - * strategy to a singleton Router instance. - * - * This method will generate a Route for you if needed and - * call {@link workbox-routing.Router#registerRoute}. - * - * @param {RegExp|string|workbox-routing.Route~matchCallback|workbox-routing.Route} capture - * If the capture param is a `Route`, all other arguments will be ignored. - * @param {workbox-routing~handlerCallback} [handler] A callback - * function that returns a Promise resulting in a Response. This parameter - * is required if `capture` is not a `Route` object. - * @param {string} [method='GET'] The HTTP method to match the Route - * against. - * @return {workbox-routing.Route} The generated `Route`. - * - * @memberof workbox-routing - */ - function registerRoute(capture, handler, method) { - let route; - if (typeof capture === 'string') { - const captureUrl = new URL(capture, location.href); - { - if (!(capture.startsWith('/') || capture.startsWith('http'))) { - throw new WorkboxError('invalid-string', { - moduleName: 'workbox-routing', - funcName: 'registerRoute', - paramName: 'capture' - }); - } - // We want to check if Express-style wildcards are in the pathname only. - // TODO: Remove this log message in v4. - const valueToCheck = capture.startsWith('http') ? captureUrl.pathname : capture; - // See https://github.com/pillarjs/path-to-regexp#parameters - const wildcards = '[*:?+]'; - if (new RegExp(`${wildcards}`).exec(valueToCheck)) { - logger.debug(`The '$capture' parameter contains an Express-style wildcard ` + `character (${wildcards}). Strings are now always interpreted as ` + `exact matches; use a RegExp for partial or wildcard matches.`); - } - } - const matchCallback = ({ - url - }) => { - { - if (url.pathname === captureUrl.pathname && url.origin !== captureUrl.origin) { - logger.debug(`${capture} only partially matches the cross-origin URL ` + `${url.toString()}. This route will only handle cross-origin requests ` + `if they match the entire URL.`); - } - } - return url.href === captureUrl.href; - }; - // If `capture` is a string then `handler` and `method` must be present. - route = new Route(matchCallback, handler, method); - } else if (capture instanceof RegExp) { - // If `capture` is a `RegExp` then `handler` and `method` must be present. - route = new RegExpRoute(capture, handler, method); - } else if (typeof capture === 'function') { - // If `capture` is a function then `handler` and `method` must be present. - route = new Route(capture, handler, method); - } else if (capture instanceof Route) { - route = capture; - } else { - throw new WorkboxError('unsupported-route-type', { - moduleName: 'workbox-routing', - funcName: 'registerRoute', - paramName: 'capture' - }); - } - const defaultRouter = getOrCreateDefaultRouter(); - defaultRouter.registerRoute(route); - return route; - } - - // @ts-ignore - try { - self['workbox:strategies:6.5.4'] && _(); - } catch (e) {} - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - const cacheOkAndOpaquePlugin = { - /** - * Returns a valid response (to allow caching) if the status is 200 (OK) or - * 0 (opaque). - * - * @param {Object} options - * @param {Response} options.response - * @return {Response|null} - * - * @private - */ - cacheWillUpdate: async ({ - response - }) => { - if (response.status === 200 || response.status === 0) { - return response; - } - return null; - } - }; - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - const _cacheNameDetails = { - googleAnalytics: 'googleAnalytics', - precache: 'precache-v2', - prefix: 'workbox', - runtime: 'runtime', - suffix: typeof registration !== 'undefined' ? registration.scope : '' - }; - const _createCacheName = cacheName => { - return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix].filter(value => value && value.length > 0).join('-'); - }; - const eachCacheNameDetail = fn => { - for (const key of Object.keys(_cacheNameDetails)) { - fn(key); - } - }; - const cacheNames = { - updateDetails: details => { - eachCacheNameDetail(key => { - if (typeof details[key] === 'string') { - _cacheNameDetails[key] = details[key]; - } - }); - }, - getGoogleAnalyticsName: userCacheName => { - return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics); - }, - getPrecacheName: userCacheName => { - return userCacheName || _createCacheName(_cacheNameDetails.precache); - }, - getPrefix: () => { - return _cacheNameDetails.prefix; - }, - getRuntimeName: userCacheName => { - return userCacheName || _createCacheName(_cacheNameDetails.runtime); - }, - getSuffix: () => { - return _cacheNameDetails.suffix; - } - }; - - /* - Copyright 2020 Google LLC - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - function stripParams(fullURL, ignoreParams) { - const strippedURL = new URL(fullURL); - for (const param of ignoreParams) { - strippedURL.searchParams.delete(param); - } - return strippedURL.href; - } - /** - * Matches an item in the cache, ignoring specific URL params. This is similar - * to the `ignoreSearch` option, but it allows you to ignore just specific - * params (while continuing to match on the others). - * - * @private - * @param {Cache} cache - * @param {Request} request - * @param {Object} matchOptions - * @param {Array} ignoreParams - * @return {Promise} - */ - async function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) { - const strippedRequestURL = stripParams(request.url, ignoreParams); - // If the request doesn't include any ignored params, match as normal. - if (request.url === strippedRequestURL) { - return cache.match(request, matchOptions); - } - // Otherwise, match by comparing keys - const keysOptions = Object.assign(Object.assign({}, matchOptions), { - ignoreSearch: true - }); - const cacheKeys = await cache.keys(request, keysOptions); - for (const cacheKey of cacheKeys) { - const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams); - if (strippedRequestURL === strippedCacheKeyURL) { - return cache.match(cacheKey, matchOptions); - } - } - return; - } - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * The Deferred class composes Promises in a way that allows for them to be - * resolved or rejected from outside the constructor. In most cases promises - * should be used directly, but Deferreds can be necessary when the logic to - * resolve a promise must be separate. - * - * @private - */ - class Deferred { - /** - * Creates a promise and exposes its resolve and reject functions as methods. - */ - constructor() { - this.promise = new Promise((resolve, reject) => { - this.resolve = resolve; - this.reject = reject; - }); - } - } - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - // Callbacks to be executed whenever there's a quota error. - // Can't change Function type right now. - // eslint-disable-next-line @typescript-eslint/ban-types - const quotaErrorCallbacks = new Set(); - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * Runs all of the callback functions, one at a time sequentially, in the order - * in which they were registered. - * - * @memberof workbox-core - * @private - */ - async function executeQuotaErrorCallbacks() { - { - logger.log(`About to run ${quotaErrorCallbacks.size} ` + `callbacks to clean up caches.`); - } - for (const callback of quotaErrorCallbacks) { - await callback(); - { - logger.log(callback, 'is complete.'); - } - } - { - logger.log('Finished running callbacks.'); - } - } - - /* - Copyright 2019 Google LLC - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * Returns a promise that resolves and the passed number of milliseconds. - * This utility is an async/await-friendly version of `setTimeout`. - * - * @param {number} ms - * @return {Promise} - * @private - */ - function timeout(ms) { - return new Promise(resolve => setTimeout(resolve, ms)); - } - - /* - Copyright 2020 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - function toRequest(input) { - return typeof input === 'string' ? new Request(input) : input; - } - /** - * A class created every time a Strategy instance instance calls - * {@link workbox-strategies.Strategy~handle} or - * {@link workbox-strategies.Strategy~handleAll} that wraps all fetch and - * cache actions around plugin callbacks and keeps track of when the strategy - * is "done" (i.e. all added `event.waitUntil()` promises have resolved). - * - * @memberof workbox-strategies - */ - class StrategyHandler { - /** - * Creates a new instance associated with the passed strategy and event - * that's handling the request. - * - * The constructor also initializes the state that will be passed to each of - * the plugins handling this request. - * - * @param {workbox-strategies.Strategy} strategy - * @param {Object} options - * @param {Request|string} options.request A request to run this strategy for. - * @param {ExtendableEvent} options.event The event associated with the - * request. - * @param {URL} [options.url] - * @param {*} [options.params] The return value from the - * {@link workbox-routing~matchCallback} (if applicable). - */ - constructor(strategy, options) { - this._cacheKeys = {}; - /** - * The request the strategy is performing (passed to the strategy's - * `handle()` or `handleAll()` method). - * @name request - * @instance - * @type {Request} - * @memberof workbox-strategies.StrategyHandler - */ - /** - * The event associated with this request. - * @name event - * @instance - * @type {ExtendableEvent} - * @memberof workbox-strategies.StrategyHandler - */ - /** - * A `URL` instance of `request.url` (if passed to the strategy's - * `handle()` or `handleAll()` method). - * Note: the `url` param will be present if the strategy was invoked - * from a workbox `Route` object. - * @name url - * @instance - * @type {URL|undefined} - * @memberof workbox-strategies.StrategyHandler - */ - /** - * A `param` value (if passed to the strategy's - * `handle()` or `handleAll()` method). - * Note: the `param` param will be present if the strategy was invoked - * from a workbox `Route` object and the - * {@link workbox-routing~matchCallback} returned - * a truthy value (it will be that value). - * @name params - * @instance - * @type {*|undefined} - * @memberof workbox-strategies.StrategyHandler - */ - { - finalAssertExports.isInstance(options.event, ExtendableEvent, { - moduleName: 'workbox-strategies', - className: 'StrategyHandler', - funcName: 'constructor', - paramName: 'options.event' - }); - } - Object.assign(this, options); - this.event = options.event; - this._strategy = strategy; - this._handlerDeferred = new Deferred(); - this._extendLifetimePromises = []; - // Copy the plugins list (since it's mutable on the strategy), - // so any mutations don't affect this handler instance. - this._plugins = [...strategy.plugins]; - this._pluginStateMap = new Map(); - for (const plugin of this._plugins) { - this._pluginStateMap.set(plugin, {}); - } - this.event.waitUntil(this._handlerDeferred.promise); - } - /** - * Fetches a given request (and invokes any applicable plugin callback - * methods) using the `fetchOptions` (for non-navigation requests) and - * `plugins` defined on the `Strategy` object. - * - * The following plugin lifecycle methods are invoked when using this method: - * - `requestWillFetch()` - * - `fetchDidSucceed()` - * - `fetchDidFail()` - * - * @param {Request|string} input The URL or request to fetch. - * @return {Promise} - */ - async fetch(input) { - const { - event - } = this; - let request = toRequest(input); - if (request.mode === 'navigate' && event instanceof FetchEvent && event.preloadResponse) { - const possiblePreloadResponse = await event.preloadResponse; - if (possiblePreloadResponse) { - { - logger.log(`Using a preloaded navigation response for ` + `'${getFriendlyURL(request.url)}'`); - } - return possiblePreloadResponse; - } - } - // If there is a fetchDidFail plugin, we need to save a clone of the - // original request before it's either modified by a requestWillFetch - // plugin or before the original request's body is consumed via fetch(). - const originalRequest = this.hasCallback('fetchDidFail') ? request.clone() : null; - try { - for (const cb of this.iterateCallbacks('requestWillFetch')) { - request = await cb({ - request: request.clone(), - event - }); - } - } catch (err) { - if (err instanceof Error) { - throw new WorkboxError('plugin-error-request-will-fetch', { - thrownErrorMessage: err.message - }); - } - } - // The request can be altered by plugins with `requestWillFetch` making - // the original request (most likely from a `fetch` event) different - // from the Request we make. Pass both to `fetchDidFail` to aid debugging. - const pluginFilteredRequest = request.clone(); - try { - let fetchResponse; - // See https://github.com/GoogleChrome/workbox/issues/1796 - fetchResponse = await fetch(request, request.mode === 'navigate' ? undefined : this._strategy.fetchOptions); - if ("development" !== 'production') { - logger.debug(`Network request for ` + `'${getFriendlyURL(request.url)}' returned a response with ` + `status '${fetchResponse.status}'.`); - } - for (const callback of this.iterateCallbacks('fetchDidSucceed')) { - fetchResponse = await callback({ - event, - request: pluginFilteredRequest, - response: fetchResponse - }); - } - return fetchResponse; - } catch (error) { - { - logger.log(`Network request for ` + `'${getFriendlyURL(request.url)}' threw an error.`, error); - } - // `originalRequest` will only exist if a `fetchDidFail` callback - // is being used (see above). - if (originalRequest) { - await this.runCallbacks('fetchDidFail', { - error: error, - event, - originalRequest: originalRequest.clone(), - request: pluginFilteredRequest.clone() - }); - } - throw error; - } - } - /** - * Calls `this.fetch()` and (in the background) runs `this.cachePut()` on - * the response generated by `this.fetch()`. - * - * The call to `this.cachePut()` automatically invokes `this.waitUntil()`, - * so you do not have to manually call `waitUntil()` on the event. - * - * @param {Request|string} input The request or URL to fetch and cache. - * @return {Promise} - */ - async fetchAndCachePut(input) { - const response = await this.fetch(input); - const responseClone = response.clone(); - void this.waitUntil(this.cachePut(input, responseClone)); - return response; - } - /** - * Matches a request from the cache (and invokes any applicable plugin - * callback methods) using the `cacheName`, `matchOptions`, and `plugins` - * defined on the strategy object. - * - * The following plugin lifecycle methods are invoked when using this method: - * - cacheKeyWillByUsed() - * - cachedResponseWillByUsed() - * - * @param {Request|string} key The Request or URL to use as the cache key. - * @return {Promise} A matching response, if found. - */ - async cacheMatch(key) { - const request = toRequest(key); - let cachedResponse; - const { - cacheName, - matchOptions - } = this._strategy; - const effectiveRequest = await this.getCacheKey(request, 'read'); - const multiMatchOptions = Object.assign(Object.assign({}, matchOptions), { - cacheName - }); - cachedResponse = await caches.match(effectiveRequest, multiMatchOptions); - { - if (cachedResponse) { - logger.debug(`Found a cached response in '${cacheName}'.`); - } else { - logger.debug(`No cached response found in '${cacheName}'.`); - } - } - for (const callback of this.iterateCallbacks('cachedResponseWillBeUsed')) { - cachedResponse = (await callback({ - cacheName, - matchOptions, - cachedResponse, - request: effectiveRequest, - event: this.event - })) || undefined; - } - return cachedResponse; - } - /** - * Puts a request/response pair in the cache (and invokes any applicable - * plugin callback methods) using the `cacheName` and `plugins` defined on - * the strategy object. - * - * The following plugin lifecycle methods are invoked when using this method: - * - cacheKeyWillByUsed() - * - cacheWillUpdate() - * - cacheDidUpdate() - * - * @param {Request|string} key The request or URL to use as the cache key. - * @param {Response} response The response to cache. - * @return {Promise} `false` if a cacheWillUpdate caused the response - * not be cached, and `true` otherwise. - */ - async cachePut(key, response) { - const request = toRequest(key); - // Run in the next task to avoid blocking other cache reads. - // https://github.com/w3c/ServiceWorker/issues/1397 - await timeout(0); - const effectiveRequest = await this.getCacheKey(request, 'write'); - { - if (effectiveRequest.method && effectiveRequest.method !== 'GET') { - throw new WorkboxError('attempt-to-cache-non-get-request', { - url: getFriendlyURL(effectiveRequest.url), - method: effectiveRequest.method - }); - } - // See https://github.com/GoogleChrome/workbox/issues/2818 - const vary = response.headers.get('Vary'); - if (vary) { - logger.debug(`The response for ${getFriendlyURL(effectiveRequest.url)} ` + `has a 'Vary: ${vary}' header. ` + `Consider setting the {ignoreVary: true} option on your strategy ` + `to ensure cache matching and deletion works as expected.`); - } - } - if (!response) { - { - logger.error(`Cannot cache non-existent response for ` + `'${getFriendlyURL(effectiveRequest.url)}'.`); - } - throw new WorkboxError('cache-put-with-no-response', { - url: getFriendlyURL(effectiveRequest.url) - }); - } - const responseToCache = await this._ensureResponseSafeToCache(response); - if (!responseToCache) { - { - logger.debug(`Response '${getFriendlyURL(effectiveRequest.url)}' ` + `will not be cached.`, responseToCache); - } - return false; - } - const { - cacheName, - matchOptions - } = this._strategy; - const cache = await self.caches.open(cacheName); - const hasCacheUpdateCallback = this.hasCallback('cacheDidUpdate'); - const oldResponse = hasCacheUpdateCallback ? await cacheMatchIgnoreParams( - // TODO(philipwalton): the `__WB_REVISION__` param is a precaching - // feature. Consider into ways to only add this behavior if using - // precaching. - cache, effectiveRequest.clone(), ['__WB_REVISION__'], matchOptions) : null; - { - logger.debug(`Updating the '${cacheName}' cache with a new Response ` + `for ${getFriendlyURL(effectiveRequest.url)}.`); - } - try { - await cache.put(effectiveRequest, hasCacheUpdateCallback ? responseToCache.clone() : responseToCache); - } catch (error) { - if (error instanceof Error) { - // See https://developer.mozilla.org/en-US/docs/Web/API/DOMException#exception-QuotaExceededError - if (error.name === 'QuotaExceededError') { - await executeQuotaErrorCallbacks(); - } - throw error; - } - } - for (const callback of this.iterateCallbacks('cacheDidUpdate')) { - await callback({ - cacheName, - oldResponse, - newResponse: responseToCache.clone(), - request: effectiveRequest, - event: this.event - }); - } - return true; - } - /** - * Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and - * executes any of those callbacks found in sequence. The final `Request` - * object returned by the last plugin is treated as the cache key for cache - * reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have - * been registered, the passed request is returned unmodified - * - * @param {Request} request - * @param {string} mode - * @return {Promise} - */ - async getCacheKey(request, mode) { - const key = `${request.url} | ${mode}`; - if (!this._cacheKeys[key]) { - let effectiveRequest = request; - for (const callback of this.iterateCallbacks('cacheKeyWillBeUsed')) { - effectiveRequest = toRequest(await callback({ - mode, - request: effectiveRequest, - event: this.event, - // params has a type any can't change right now. - params: this.params // eslint-disable-line - })); - } - this._cacheKeys[key] = effectiveRequest; - } - return this._cacheKeys[key]; - } - /** - * Returns true if the strategy has at least one plugin with the given - * callback. - * - * @param {string} name The name of the callback to check for. - * @return {boolean} - */ - hasCallback(name) { - for (const plugin of this._strategy.plugins) { - if (name in plugin) { - return true; - } - } - return false; - } - /** - * Runs all plugin callbacks matching the given name, in order, passing the - * given param object (merged ith the current plugin state) as the only - * argument. - * - * Note: since this method runs all plugins, it's not suitable for cases - * where the return value of a callback needs to be applied prior to calling - * the next callback. See - * {@link workbox-strategies.StrategyHandler#iterateCallbacks} - * below for how to handle that case. - * - * @param {string} name The name of the callback to run within each plugin. - * @param {Object} param The object to pass as the first (and only) param - * when executing each callback. This object will be merged with the - * current plugin state prior to callback execution. - */ - async runCallbacks(name, param) { - for (const callback of this.iterateCallbacks(name)) { - // TODO(philipwalton): not sure why `any` is needed. It seems like - // this should work with `as WorkboxPluginCallbackParam[C]`. - await callback(param); - } - } - /** - * Accepts a callback and returns an iterable of matching plugin callbacks, - * where each callback is wrapped with the current handler state (i.e. when - * you call each callback, whatever object parameter you pass it will - * be merged with the plugin's current state). - * - * @param {string} name The name fo the callback to run - * @return {Array} - */ - *iterateCallbacks(name) { - for (const plugin of this._strategy.plugins) { - if (typeof plugin[name] === 'function') { - const state = this._pluginStateMap.get(plugin); - const statefulCallback = param => { - const statefulParam = Object.assign(Object.assign({}, param), { - state - }); - // TODO(philipwalton): not sure why `any` is needed. It seems like - // this should work with `as WorkboxPluginCallbackParam[C]`. - return plugin[name](statefulParam); - }; - yield statefulCallback; - } - } - } - /** - * Adds a promise to the - * [extend lifetime promises]{@link https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises} - * of the event event associated with the request being handled (usually a - * `FetchEvent`). - * - * Note: you can await - * {@link workbox-strategies.StrategyHandler~doneWaiting} - * to know when all added promises have settled. - * - * @param {Promise} promise A promise to add to the extend lifetime promises - * of the event that triggered the request. - */ - waitUntil(promise) { - this._extendLifetimePromises.push(promise); - return promise; - } - /** - * Returns a promise that resolves once all promises passed to - * {@link workbox-strategies.StrategyHandler~waitUntil} - * have settled. - * - * Note: any work done after `doneWaiting()` settles should be manually - * passed to an event's `waitUntil()` method (not this handler's - * `waitUntil()` method), otherwise the service worker thread my be killed - * prior to your work completing. - */ - async doneWaiting() { - let promise; - while (promise = this._extendLifetimePromises.shift()) { - await promise; - } - } - /** - * Stops running the strategy and immediately resolves any pending - * `waitUntil()` promises. - */ - destroy() { - this._handlerDeferred.resolve(null); - } - /** - * This method will call cacheWillUpdate on the available plugins (or use - * status === 200) to determine if the Response is safe and valid to cache. - * - * @param {Request} options.request - * @param {Response} options.response - * @return {Promise} - * - * @private - */ - async _ensureResponseSafeToCache(response) { - let responseToCache = response; - let pluginsUsed = false; - for (const callback of this.iterateCallbacks('cacheWillUpdate')) { - responseToCache = (await callback({ - request: this.request, - response: responseToCache, - event: this.event - })) || undefined; - pluginsUsed = true; - if (!responseToCache) { - break; - } - } - if (!pluginsUsed) { - if (responseToCache && responseToCache.status !== 200) { - responseToCache = undefined; - } - { - if (responseToCache) { - if (responseToCache.status !== 200) { - if (responseToCache.status === 0) { - logger.warn(`The response for '${this.request.url}' ` + `is an opaque response. The caching strategy that you're ` + `using will not cache opaque responses by default.`); - } else { - logger.debug(`The response for '${this.request.url}' ` + `returned a status code of '${response.status}' and won't ` + `be cached as a result.`); - } - } - } - } - } - return responseToCache; - } - } - - /* - Copyright 2020 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * An abstract base class that all other strategy classes must extend from: - * - * @memberof workbox-strategies - */ - class Strategy { - /** - * Creates a new instance of the strategy and sets all documented option - * properties as public instance properties. - * - * Note: if a custom strategy class extends the base Strategy class and does - * not need more than these properties, it does not need to define its own - * constructor. - * - * @param {Object} [options] - * @param {string} [options.cacheName] Cache name to store and retrieve - * requests. Defaults to the cache names provided by - * {@link workbox-core.cacheNames}. - * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins} - * to use in conjunction with this caching strategy. - * @param {Object} [options.fetchOptions] Values passed along to the - * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters) - * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796) - * `fetch()` requests made by this strategy. - * @param {Object} [options.matchOptions] The - * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions} - * for any `cache.match()` or `cache.put()` calls made by this strategy. - */ - constructor(options = {}) { - /** - * Cache name to store and retrieve - * requests. Defaults to the cache names provided by - * {@link workbox-core.cacheNames}. - * - * @type {string} - */ - this.cacheName = cacheNames.getRuntimeName(options.cacheName); - /** - * The list - * [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins} - * used by this strategy. - * - * @type {Array} - */ - this.plugins = options.plugins || []; - /** - * Values passed along to the - * [`init`]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters} - * of all fetch() requests made by this strategy. - * - * @type {Object} - */ - this.fetchOptions = options.fetchOptions; - /** - * The - * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions} - * for any `cache.match()` or `cache.put()` calls made by this strategy. - * - * @type {Object} - */ - this.matchOptions = options.matchOptions; - } - /** - * Perform a request strategy and returns a `Promise` that will resolve with - * a `Response`, invoking all relevant plugin callbacks. - * - * When a strategy instance is registered with a Workbox - * {@link workbox-routing.Route}, this method is automatically - * called when the route matches. - * - * Alternatively, this method can be used in a standalone `FetchEvent` - * listener by passing it to `event.respondWith()`. - * - * @param {FetchEvent|Object} options A `FetchEvent` or an object with the - * properties listed below. - * @param {Request|string} options.request A request to run this strategy for. - * @param {ExtendableEvent} options.event The event associated with the - * request. - * @param {URL} [options.url] - * @param {*} [options.params] - */ - handle(options) { - const [responseDone] = this.handleAll(options); - return responseDone; - } - /** - * Similar to {@link workbox-strategies.Strategy~handle}, but - * instead of just returning a `Promise` that resolves to a `Response` it - * it will return an tuple of `[response, done]` promises, where the former - * (`response`) is equivalent to what `handle()` returns, and the latter is a - * Promise that will resolve once any promises that were added to - * `event.waitUntil()` as part of performing the strategy have completed. - * - * You can await the `done` promise to ensure any extra work performed by - * the strategy (usually caching responses) completes successfully. - * - * @param {FetchEvent|Object} options A `FetchEvent` or an object with the - * properties listed below. - * @param {Request|string} options.request A request to run this strategy for. - * @param {ExtendableEvent} options.event The event associated with the - * request. - * @param {URL} [options.url] - * @param {*} [options.params] - * @return {Array} A tuple of [response, done] - * promises that can be used to determine when the response resolves as - * well as when the handler has completed all its work. - */ - handleAll(options) { - // Allow for flexible options to be passed. - if (options instanceof FetchEvent) { - options = { - event: options, - request: options.request - }; - } - const event = options.event; - const request = typeof options.request === 'string' ? new Request(options.request) : options.request; - const params = 'params' in options ? options.params : undefined; - const handler = new StrategyHandler(this, { - event, - request, - params - }); - const responseDone = this._getResponse(handler, request, event); - const handlerDone = this._awaitComplete(responseDone, handler, request, event); - // Return an array of promises, suitable for use with Promise.all(). - return [responseDone, handlerDone]; - } - async _getResponse(handler, request, event) { - await handler.runCallbacks('handlerWillStart', { - event, - request - }); - let response = undefined; - try { - response = await this._handle(request, handler); - // The "official" Strategy subclasses all throw this error automatically, - // but in case a third-party Strategy doesn't, ensure that we have a - // consistent failure when there's no response or an error response. - if (!response || response.type === 'error') { - throw new WorkboxError('no-response', { - url: request.url - }); - } - } catch (error) { - if (error instanceof Error) { - for (const callback of handler.iterateCallbacks('handlerDidError')) { - response = await callback({ - error, - event, - request - }); - if (response) { - break; - } - } - } - if (!response) { - throw error; - } else { - logger.log(`While responding to '${getFriendlyURL(request.url)}', ` + `an ${error instanceof Error ? error.toString() : ''} error occurred. Using a fallback response provided by ` + `a handlerDidError plugin.`); - } - } - for (const callback of handler.iterateCallbacks('handlerWillRespond')) { - response = await callback({ - event, - request, - response - }); - } - return response; - } - async _awaitComplete(responseDone, handler, request, event) { - let response; - let error; - try { - response = await responseDone; - } catch (error) { - // Ignore errors, as response errors should be caught via the `response` - // promise above. The `done` promise will only throw for errors in - // promises passed to `handler.waitUntil()`. - } - try { - await handler.runCallbacks('handlerDidRespond', { - event, - request, - response - }); - await handler.doneWaiting(); - } catch (waitUntilError) { - if (waitUntilError instanceof Error) { - error = waitUntilError; - } - } - await handler.runCallbacks('handlerDidComplete', { - event, - request, - response, - error: error - }); - handler.destroy(); - if (error) { - throw error; - } - } - } - /** - * Classes extending the `Strategy` based class should implement this method, - * and leverage the {@link workbox-strategies.StrategyHandler} - * arg to perform all fetching and cache logic, which will ensure all relevant - * cache, cache options, fetch options and plugins are used (per the current - * strategy instance). - * - * @name _handle - * @instance - * @abstract - * @function - * @param {Request} request - * @param {workbox-strategies.StrategyHandler} handler - * @return {Promise} - * - * @memberof workbox-strategies.Strategy - */ - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - const messages = { - strategyStart: (strategyName, request) => `Using ${strategyName} to respond to '${getFriendlyURL(request.url)}'`, - printFinalResponse: response => { - if (response) { - logger.groupCollapsed(`View the final response here.`); - logger.log(response || '[No response returned]'); - logger.groupEnd(); - } - } - }; - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * An implementation of a - * [network first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-first-falling-back-to-cache) - * request strategy. - * - * By default, this strategy will cache responses with a 200 status code as - * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses). - * Opaque responses are are cross-origin requests where the response doesn't - * support [CORS](https://enable-cors.org/). - * - * If the network request fails, and there is no cache match, this will throw - * a `WorkboxError` exception. - * - * @extends workbox-strategies.Strategy - * @memberof workbox-strategies - */ - class NetworkFirst extends Strategy { - /** - * @param {Object} [options] - * @param {string} [options.cacheName] Cache name to store and retrieve - * requests. Defaults to cache names provided by - * {@link workbox-core.cacheNames}. - * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins} - * to use in conjunction with this caching strategy. - * @param {Object} [options.fetchOptions] Values passed along to the - * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters) - * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796) - * `fetch()` requests made by this strategy. - * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions) - * @param {number} [options.networkTimeoutSeconds] If set, any network requests - * that fail to respond within the timeout will fallback to the cache. - * - * This option can be used to combat - * "[lie-fi]{@link https://developers.google.com/web/fundamentals/performance/poor-connectivity/#lie-fi}" - * scenarios. - */ - constructor(options = {}) { - super(options); - // If this instance contains no plugins with a 'cacheWillUpdate' callback, - // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list. - if (!this.plugins.some(p => 'cacheWillUpdate' in p)) { - this.plugins.unshift(cacheOkAndOpaquePlugin); - } - this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0; - { - if (this._networkTimeoutSeconds) { - finalAssertExports.isType(this._networkTimeoutSeconds, 'number', { - moduleName: 'workbox-strategies', - className: this.constructor.name, - funcName: 'constructor', - paramName: 'networkTimeoutSeconds' - }); - } - } - } - /** - * @private - * @param {Request|string} request A request to run this strategy for. - * @param {workbox-strategies.StrategyHandler} handler The event that - * triggered the request. - * @return {Promise} - */ - async _handle(request, handler) { - const logs = []; - { - finalAssertExports.isInstance(request, Request, { - moduleName: 'workbox-strategies', - className: this.constructor.name, - funcName: 'handle', - paramName: 'makeRequest' - }); - } - const promises = []; - let timeoutId; - if (this._networkTimeoutSeconds) { - const { - id, - promise - } = this._getTimeoutPromise({ - request, - logs, - handler - }); - timeoutId = id; - promises.push(promise); - } - const networkPromise = this._getNetworkPromise({ - timeoutId, - request, - logs, - handler - }); - promises.push(networkPromise); - const response = await handler.waitUntil((async () => { - // Promise.race() will resolve as soon as the first promise resolves. - return (await handler.waitUntil(Promise.race(promises))) || ( - // If Promise.race() resolved with null, it might be due to a network - // timeout + a cache miss. If that were to happen, we'd rather wait until - // the networkPromise resolves instead of returning null. - // Note that it's fine to await an already-resolved promise, so we don't - // have to check to see if it's still "in flight". - await networkPromise); - })()); - { - logger.groupCollapsed(messages.strategyStart(this.constructor.name, request)); - for (const log of logs) { - logger.log(log); - } - messages.printFinalResponse(response); - logger.groupEnd(); - } - if (!response) { - throw new WorkboxError('no-response', { - url: request.url - }); - } - return response; - } - /** - * @param {Object} options - * @param {Request} options.request - * @param {Array} options.logs A reference to the logs array - * @param {Event} options.event - * @return {Promise} - * - * @private - */ - _getTimeoutPromise({ - request, - logs, - handler - }) { - let timeoutId; - const timeoutPromise = new Promise(resolve => { - const onNetworkTimeout = async () => { - { - logs.push(`Timing out the network response at ` + `${this._networkTimeoutSeconds} seconds.`); - } - resolve(await handler.cacheMatch(request)); - }; - timeoutId = setTimeout(onNetworkTimeout, this._networkTimeoutSeconds * 1000); - }); - return { - promise: timeoutPromise, - id: timeoutId - }; - } - /** - * @param {Object} options - * @param {number|undefined} options.timeoutId - * @param {Request} options.request - * @param {Array} options.logs A reference to the logs Array. - * @param {Event} options.event - * @return {Promise} - * - * @private - */ - async _getNetworkPromise({ - timeoutId, - request, - logs, - handler - }) { - let error; - let response; - try { - response = await handler.fetchAndCachePut(request); - } catch (fetchError) { - if (fetchError instanceof Error) { - error = fetchError; - } - } - if (timeoutId) { - clearTimeout(timeoutId); - } - { - if (response) { - logs.push(`Got response from network.`); - } else { - logs.push(`Unable to get a response from the network. Will respond ` + `with a cached response.`); - } - } - if (error || !response) { - response = await handler.cacheMatch(request); - { - if (response) { - logs.push(`Found a cached response in the '${this.cacheName}'` + ` cache.`); - } else { - logs.push(`No response found in the '${this.cacheName}' cache.`); - } - } - } - return response; - } - } - - /* - Copyright 2018 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * An implementation of a - * [network-only](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-only) - * request strategy. - * - * This class is useful if you want to take advantage of any - * [Workbox plugins](https://developer.chrome.com/docs/workbox/using-plugins/). - * - * If the network request fails, this will throw a `WorkboxError` exception. - * - * @extends workbox-strategies.Strategy - * @memberof workbox-strategies - */ - class NetworkOnly extends Strategy { - /** - * @param {Object} [options] - * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins} - * to use in conjunction with this caching strategy. - * @param {Object} [options.fetchOptions] Values passed along to the - * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters) - * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796) - * `fetch()` requests made by this strategy. - * @param {number} [options.networkTimeoutSeconds] If set, any network requests - * that fail to respond within the timeout will result in a network error. - */ - constructor(options = {}) { - super(options); - this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0; - } - /** - * @private - * @param {Request|string} request A request to run this strategy for. - * @param {workbox-strategies.StrategyHandler} handler The event that - * triggered the request. - * @return {Promise} - */ - async _handle(request, handler) { - { - finalAssertExports.isInstance(request, Request, { - moduleName: 'workbox-strategies', - className: this.constructor.name, - funcName: '_handle', - paramName: 'request' - }); - } - let error = undefined; - let response; - try { - const promises = [handler.fetch(request)]; - if (this._networkTimeoutSeconds) { - const timeoutPromise = timeout(this._networkTimeoutSeconds * 1000); - promises.push(timeoutPromise); - } - response = await Promise.race(promises); - if (!response) { - throw new Error(`Timed out the network response after ` + `${this._networkTimeoutSeconds} seconds.`); - } - } catch (err) { - if (err instanceof Error) { - error = err; - } - } - { - logger.groupCollapsed(messages.strategyStart(this.constructor.name, request)); - if (response) { - logger.log(`Got response from network.`); - } else { - logger.log(`Unable to get a response from the network.`); - } - messages.printFinalResponse(response); - logger.groupEnd(); - } - if (!response) { - throw new WorkboxError('no-response', { - url: request.url, - error - }); - } - return response; - } - } - - /* - Copyright 2019 Google LLC - - Use of this source code is governed by an MIT-style - license that can be found in the LICENSE file or at - https://opensource.org/licenses/MIT. - */ - /** - * Claim any currently available clients once the service worker - * becomes active. This is normally used in conjunction with `skipWaiting()`. - * - * @memberof workbox-core - */ - function clientsClaim() { - self.addEventListener('activate', () => self.clients.claim()); - } - - exports.NetworkFirst = NetworkFirst; - exports.NetworkOnly = NetworkOnly; - exports.clientsClaim = clientsClaim; - exports.registerRoute = registerRoute; - -})); diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 5064207..4dfe83e 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,7 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import { AuthProvider } from "@/context/AuthContext"; +import { ThemeProvider } from 'next-themes'; import "./globals.css"; const geistSans = Geist({ @@ -25,13 +26,15 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - + - - {children} - + + + {children} + + );