From b6d6adfad26a8a1f33e46ddbd5d165c159ceb4cf Mon Sep 17 00:00:00 2001 From: eramitgupta Date: Thu, 19 Sep 2024 21:36:19 +0530 Subject: [PATCH] Initial commit --- .DS_Store | Bin 0 -> 6148 bytes composer.json | 46 +++++++++++++ src/.DS_Store | Bin 0 -> 6148 bytes src/Commands/PWACommand.php | 86 +++++++++++++++++++++++ src/Commands/PwaPublishCommand.php | 66 ++++++++++++++++++ src/EragLaravelPwaServiceProvider.php | 63 +++++++++++++++++ src/Pwahelpers.php | 8 +++ src/Services/PWAService.php | 94 ++++++++++++++++++++++++++ src/Stubs/.DS_Store | Bin 0 -> 6148 bytes src/Stubs/logo.png | Bin 0 -> 81478 bytes src/Stubs/manifest.stub | 16 +++++ src/Stubs/offline.stub | 26 +++++++ src/Stubs/pwa.stub | 46 +++++++++++++ src/Stubs/sw.stub | 47 +++++++++++++ 14 files changed, 498 insertions(+) create mode 100644 .DS_Store create mode 100644 composer.json create mode 100644 src/.DS_Store create mode 100644 src/Commands/PWACommand.php create mode 100644 src/Commands/PwaPublishCommand.php create mode 100644 src/EragLaravelPwaServiceProvider.php create mode 100644 src/Pwahelpers.php create mode 100644 src/Services/PWAService.php create mode 100644 src/Stubs/.DS_Store create mode 100644 src/Stubs/logo.png create mode 100644 src/Stubs/manifest.stub create mode 100644 src/Stubs/offline.stub create mode 100644 src/Stubs/pwa.stub create mode 100644 src/Stubs/sw.stub diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6e7bbd2a6464bb3ae3be15e748b78d48c8dd0a94 GIT binary patch literal 6148 zcmeHK&u`N(6n<{YnrNET14z3dS=zPg%EqsWOV+iANrS_J-~gyJO$C80u9B7>s!BPt zKZYxR3I7iJp6w2`9j8eMO@7kzXFq?>j=!{aOhlqHjUN#;h{%I8R(upU827VpSj9%R zfI^Ra2sahep9 zcKes8RBQLP>R#R3_CAE4)hwJ0Cexxb$lr16wNh!ctPi3$$!OMZ+&@v-WRPT|Tqh*) z2$c74lPp%Vj+$n1p>spi;rX85Z|u(J2hW}~<>B-8qABM`2koYOeE4*+@Vy6n`!CM> zU(<_BeaDl-1pY1Bb}TM|S7z7zEzGl2WuFjPvX?A}P64NYQ{c7=*nP#@zU@FR-zne} zxN{2d{vhFufyL6G-a1g|D*&*Dur}2BLy>c&#lT`|5IrzqQh_E_*eixG>4;0q3oMof zO*#pC`4DzyVQ(lx&yMk>rjrN^y3#4&6j)WDYMKo`|9gMG|F0&wmQ%nfaHkXywQkt$ zU`h6D-B=u-wG#dj&c?jb;B^Wr`X~mMkK$dpHpC@YfPux*AR;jLA)sY&g;U_4DsTl| Cn|e?H literal 0 HcmV?d00001 diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..1570fc4 --- /dev/null +++ b/composer.json @@ -0,0 +1,46 @@ +{ + "name": "erag/laravel-pwa", + "description": "A simple and easy-to-use PWA (Progressive Web App) package for Laravel applications.", + "license": "MIT", + "keywords": [ + "laravel", + "pwa", + "progressive web app", + "offline", + "service worker", + "manifest", + "laravel package", + "laravel pwa" + ], + "authors": [ + { + "name": "Er Amiit Gupta", + "email": "info.eramitgupta@gmail.com", + "role": "Developer" + } + ], + "require": { + "php": ">=8.0.0", + "illuminate/database": "^8.12|^9.0|^10.0|^11.0", + "illuminate/support": "^8.12|^9.0|^10.0|^11.0" + }, + "autoload": { + "files": [ + "src/Pwahelpers.php" + ], + "psr-4": { + "EragLaravelPwa\\": "src/" + } + }, + "prefer-stable": true, + "extra": { + "laravel": { + "providers": [ + "EragLaravelPwa\\EragLaravelPwaServiceProvider" + ], + "aliases": { + "Pwa": "EragLaravelPwa\\Facades\\Pwa" + } + } + } +} diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..85fb7ec02ac5b8f9d9abdc11d645606c09b4e549 GIT binary patch literal 6148 zcmeHKO>fgc5S>j^;!uHd0I3%wBd$>iEuZ3I(iRDcLxm9>00lda8VlDO*-m|kBKh3@ z7_R&h{tKt}&F)5|PJ68=+KFc0cz0%J_C?|v6SIwEkldmVx}RKqtt%#*IPWO zdEYge$M8)sKj+Ws(oEvC7VFgNt>^kv^IwO5K~oCrRW%N;_6*B>V(R}DPLen;dcEJG zvDRF_)pAzj)SlcV719U3d0syVrG}?mVB*+s^$*k6(Wn{78;c zd4lR80{gg&oKz utaYK^p)BlIX;dL-%yFy?K8iP?N-*ZK0rU)38qou>9|DR7+gJv!m4S0fS)+>p literal 0 HcmV?d00001 diff --git a/src/Commands/PWACommand.php b/src/Commands/PWACommand.php new file mode 100644 index 0000000..bc83d83 --- /dev/null +++ b/src/Commands/PWACommand.php @@ -0,0 +1,86 @@ + 'Laravel PWA', + 'short_name' => 'LPT', + 'background_color' => '#000000', + 'display' => 'fullscreen', + 'description' => 'A Progressive Web Application setup for Laravel projects.', + 'theme_color' => '#000000', + 'icons' => [ + [ + 'src' => 'logo.png', + 'sizes' => '512x512', + 'type' => 'image/png', + ], + ], + ]; + + // Load custom manifest from config, fallback to default + $manifest = Config::get('pwa.manifest', $defaultManifest); + + if (empty($manifest['icons'])) { + $this->error('Manifest is missing icons. Aborting operation.'); + + return; + } + + unset($manifest['start_url']); + $icons = $manifest['icons']; + unset($manifest['icons']); + + $arrayMergeManifest = array_merge($manifest, ['start_url' => '/'], ['icons' => $icons]); + + $jsonData = json_encode($arrayMergeManifest, JSON_PRETTY_PRINT); + if ($jsonData === false) { + $this->error('Failed to encode manifest array to JSON. Aborting operation.'); + + return; + } + + $jsonData = str_replace('\/', '/', $jsonData); + + $filePath = public_path('manifest.json'); + if (! File::isWritable(public_path())) { + $this->error('Public directory is not writable. Check file permissions.'); + + return; + } + + File::put($filePath, $jsonData); + + $this->info('Manifest JSON updated successfully ✔'); + } catch (\Exception $e) { + // Catch any errors and display an error message + $this->error('An error occurred while updating the manifest: '.$e->getMessage()); + } + } +} diff --git a/src/Commands/PwaPublishCommand.php b/src/Commands/PwaPublishCommand.php new file mode 100644 index 0000000..3661801 --- /dev/null +++ b/src/Commands/PwaPublishCommand.php @@ -0,0 +1,66 @@ +call('vendor:publish', [ + '--tag' => 'erag:publish-pwa-config', + '--force' => true, + ]); + $this->info('manifest.json file is published ✔'); + + // Step 2: Publish the manifest + $this->call('vendor:publish', [ + '--tag' => 'erag:publish-manifest', + '--force' => true, + ]); + $this->info('manifest.json file is published ✔'); + + // Step 3: Publish the offline page + $this->call('vendor:publish', [ + '--tag' => 'erag:publish-offline', + '--force' => true, + ]); + $this->info('offline.html file is published ✔'); + + // Step 4: Publish the sw js + $this->call('vendor:publish', [ + '--tag' => 'erag:publish-sw', + '--force' => true, + ]); + $this->info('sw.js file is published ✔'); + + // Step 5: Publish the logo + $this->call('vendor:publish', [ + '--tag' => 'erag:publish-logo', + '--force' => true, + ]); + $this->info('logo is published ✔'); + + $this->info('Greeting!.. Enjoy Laravel PWA 🎉'); + + } +} diff --git a/src/EragLaravelPwaServiceProvider.php b/src/EragLaravelPwaServiceProvider.php new file mode 100644 index 0000000..0c1e107 --- /dev/null +++ b/src/EragLaravelPwaServiceProvider.php @@ -0,0 +1,63 @@ +app->singleton(PWAService::class, function ($app) { + return new PWAService; + }); + + $this->commands([ + PwaPublishCommand::class, + PWACommand::class, + ]); + + $this->publishes([ + __DIR__.'/Stubs/pwa.stub' => config_path('pwa.php'), + ], 'erag:publish-pwa-config'); + + $this->publishes([ + __DIR__.'/Stubs/manifest.stub' => public_path('manifest.json'), + ], 'erag:publish-manifest'); + + $this->publishes([ + __DIR__.'/Stubs/offline.stub' => public_path('offline.html'), + ], 'erag:publish-offline'); + + $this->publishes([ + __DIR__.'/Stubs/sw.stub' => public_path('sw.js'), + ], 'erag:publish-sw'); + + $this->publishes([ + __DIR__.'/Stubs/logo.png' => public_path('logo.png'), + ], 'erag:publish-logo'); + + } + + /** + * Bootstrap services. + */ + public function boot(): void + { + + Blade::directive('PwaHead', function () { + return 'headTag(); ?>'; + }); + + Blade::directive('RegisterServiceWorkerScript', function () { + return 'registerServiceWorkerScript(); ?>'; + }); + } +} diff --git a/src/Pwahelpers.php b/src/Pwahelpers.php new file mode 100644 index 0000000..4598f86 --- /dev/null +++ b/src/Pwahelpers.php @@ -0,0 +1,8 @@ + + + + + + {$style} + HTML; + } + + public function RegisterServiceWorkerScript(): string + { + $swPath = asset('/sw.js'); + $isDebug = config('pwa.debug', false); + $consoleLog = $isDebug ? 'console.log' : '//'; + $icon = asset(config('pwa.manifest.icons.src', 'logo.png')); + $installButton = config('pwa.install-button', false); + + $installApp = self::getInstallAppHtml($installButton, $icon); + $installButtonJs = $installButton ? self::installButtonJs() : ''; + + return << + + + + HTML; + } + + private static function installButtonJs(): string + { + return <<<'HTML' + let deferredPrompt;function showInstallPromotion(){document.getElementById("install-prompt").style.display="block"}window.addEventListener("load",(()=>{if(window.matchMedia("(display-mode: standalone)").matches){document.getElementById("install-prompt").style.display="none"}})),window.addEventListener("beforeinstallprompt",(e=>{e.preventDefault(),deferredPrompt=e,showInstallPromotion();document.getElementById("install-button").addEventListener("click",(()=>{deferredPrompt.prompt(),deferredPrompt.userChoice.then((e=>{deferredPrompt=null}))}))})),window.addEventListener("appinstalled",(()=>{document.getElementById("install-prompt").style.display="none"})); + HTML; + } + + private static function getInstallButtonStyle(bool $installButton): string + { + if ($installButton) { + return <<<'HTML' + + HTML; + } + + return ''; + } + + private static function getInstallAppHtml(bool $installButton, string $icon): string + { + if ($installButton) { + return << + + Install App + + + HTML; + } + + return ''; + } +} diff --git a/src/Stubs/.DS_Store b/src/Stubs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6a95dc77c4172b352f7b752a79a9ae6ceb801763 GIT binary patch literal 6148 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

hZZp__UlZ2)2d1OVHC zY6ZX!8Af=!PKcNu|5LjEfyQbzZ7k=Gi^1ACjppJ@yc$ZyDhVZo3bp?FPVcs~V$>+I zO$jiG#Za%ym=dlJjhcA%KBlQVfH_{PwB2Mxhxomt#y%;a*ClPI6^1V|q+(lP2a-_) z+45v{2a<$=xlIY2Js4#=u<{G@?0w$`Qr%OPEp^Q89*pkcZJ8dvXH?yp!+ec-zJU!} z96?>D-7FnVMd=~F=t ziO;;@Acq*!YqOl0Ymqs!_h-9!-reKabQdirb_Q)QJ$<45&K3%)SY~x zzbbcg(K4~&i1DYd8g=fR_%&FWohv@I6~*&DUMAl{Ke0f?oX*B)hO{i)>e;9 zHq2O3QR(SEWa%Bc^54X`nfet`7E{DRS*tTau*51@8jawQnP`RwfHyE2ZX0bd~aVD z<8_S6oBOA)LHJ6sH)~AaY4v+#Sf_HuynX4QD*Ah9#of=lc3mya&CL(P7v#Fc4=LkY zbQ7%Q*;Y{i0KcbwFh9E^bO z`lviR51H)LM~HXN6}u~BZrtzFxvY>{p6T_iGg zjpA#^+WQ*8euj%ZGcl~&^$$W-J@uipann%`kj4)lzj_v0!AfmQ%bo3XPd!eVu%^;> zvd#4VeN%hr9cm_t34(70KWScC3|H>RYK4z#|N67vk74`TTC97=`#!l|1u9#lqL6Vk zJAuO&>car;%jNU>@{U*(>q-W9IJJO%O!Pc3reqGVcOU z0B9z{MR|BBJeCPo(~8h4Zq4G{4${8!h$QHtLMS01!l)y$FS|wx4GHB|@#F(e{|#SE z<8}sr`zrEs1@sO35r_b4A4P5TOlqC(QnN4a#Y01?X2c>?AJbIe;4M?y9UH?(7T19W zhJc#75z7wor`AVjeM;kGw}3^X!N5z(vTDeeo8_1dugj+EDM6j1b7;&5I{saRP!5*C^BLBlIJqZD}QFnzTmp<*$>Z$kEFiMIVM^JXh;S+ z9=7u{nok?*s{RF^4S#x(e#Uk8UY$g!P8w#Ka`>*^{oyL58r8?I3inAkiNC5EG>mUk z{N5E$P*vwa3KTm&Ck=1W(P$wF1{Eal`mm?ihRXe?_}R2>Wu(sB>Ir_?g7t@Ao2OU_ z^&iEz+9s-``@Mes&|_UmdnjFkHS>37=umo`eGTk_ys|pU{N88%rB3Je{IT1hYw@K_ z;}k*Se~yQe?mxIbGy5vZco(?T@Rt-5ImLrHqrcp)qI7j^(Ta1DkX##)SIGLo{5^v- zBTZr@@F97~x}fo%`w;(ggkhhgt7{m%2~c=M14sdPMLqV+ciOsvMdh?0dgMs#C17c zLNj)173QUVy3w2{w+O-27}&fAoswvQUQ zySjciC?r_oSoK?!6!qx;D4S{ovBdj-{cT>{$jl9_t6 z*dh~h3ObqKN?b>E1<|nQ%|A;n>^jWInxY>-VvSqJ96K48$%TDD1}1PtS_Q zFCb_t>6`#t&*rewVGTi!XhOh~eYl3^uk3RPOHA`?oLkf5Imx_djZ&)rJ_1P0xpG4$ z2ub~Y=CFaA7x+WtVV(1cAo5w1P?vIx^UfPbIsb(`EE)qXaLDq}hqc`ICvAjj%R8>F z`t`pxlf&ILs+?Lr@VGF~G@U_h(nE9_vb2?{hDZ}y`NG+aUl?7?ft^R*li`TXtc?amb8GSGQWjo~C~9V)VyH@AmWAR0rOTB1l2*!#{hgYI{e+Jj?9~>#?&=!0Q&aP4 zv$i?q1(MFij}W8ri+*`iTS~kx&xb|&kM=5s_Pa_L3>wk9TX8287M3;{JZBzHv(i>f zJCvCcYTMl-E{hpLJeF6ZT2!Oc`8)f&)vY-VLM9KN`?Ey0`ka#-4nJ~}^-V3KryP3r zM4-n(%*d|0fzva~JK7T>+DfCqSp!mVUjP{t+|~#VHtn5n+!mumSducVEL5>Izo$Q+ zLJl_u%J`(tWuBIZZb3~K^R+)ksGF4<5q&(bD|xv1;4Rbk<8056`0l=Ef#OB;cQ)1#*H@Ba$u-b`N!GY=Dh6gGKNanr&W*u!+7t?426-DdK zMiW;tBw`)krg6_!J)%(dyrkAR>5|4*{&P~t0zN%^b{PUn-lNPh?cuW;tNqXA;g#hO= zWdn!;mfkw0OvVK7K(+Ao`lNo!`JAgsdv9qcZY`8-Lh|CHp3u)-162EoS%t81;66D? zYLrIL!W|7_M=v6Q7vWqKPpooqZfdq967B25IZk$^9L~Q-UscPDL9g;Gs!pTwZXb$= z++kQ5$NK|4anLQhI`bQ%f%BLRO|Hv4$%U6vzo%bS=bxNVysEVnV3gbL?B;(1ce~cl zbV*q{b{b6o3HxUG#_5SBq=JKe-j)@@81h-MhIRd5#{a39UFyGvwIiB8PEG`Z!&BQ9 zwH8DQ0^9YKO<6otrj)Uu2cI4}iSe>GMK~oK5 zWj^I#7o8_Bu9DlQ=f8IW?Ka1`DpJufCvD+^_ZMu<_T1&`))c0|xAB5t>(R!S(8pRT zy_QgZ)bOP@3`|BZc0WU29TqnbeM?m@S6G+5b2RXa(B*RJ+B3w8H(??}>OK3P3r<`+ zwW3BWpF;EowwcD>ml0<+7}$Al%y*Z+2SdBq*w|CMVdqdvSVktLFERTbJbZ zoMXw++CUqlssHOu6tsv7G@#?X7j>E&Kzyni!5LH3H)94OLNsCyNO9|-#kZc$CAMx- z)+3gmUC0rM9dyLp%@QRkd9&xo@{-X z=BWN#mJv?RS7AT;cVj@~M-fKeQ99 z6mP$?^#y!^URGO_o?l)@cCP{Rz7>yW%Ju;Wp$UU zm3*P}k?ocmPZ6~*+2*hHm&OaK&YXS%L?z>bPEW)NGItHtesX~f$SHKJp&{0iF1{4I zzEp%e-#wkYNi>WAQOA^?Pm-q;6#j+$#r1FCzHyWaP{Eu}6g6ux>o-avDq|Ake1 z-eG;%V8(k5t?EHF)%pQMs__O<*3OyK_DnOB>d85O^H~G^DU_0|2fIoDy&e#R9K8>o zKlGf^!mx)E{-XQ&aY4>sct6Nt+zw6NFhA%CM}gnWS+y+o$@g9seP)y zoQ!k@p*V&q;2_akL$UXp(3&7f#v>Prw{#WziI5g&^ds7FO{iK z#J6bA#o^PtJl$4QAQL?_hky1*%|f-8&2;CjexbeL*K(>19SJLBJ+JjO?4K)8=(cf9 z^0FXbax`PBS)#+FcX<$qx$TpANjA!b#>Ph6>B!5MwF<#U%2dGO%3M_%uP-@b;5f%n z!_TEO2Opc@NRSU1%k~Rq-?IG_pW}pi_E%6g%&U64cKee)50T8ioC6|G{iMA|6#>xy@rBvJN(N|ulLo4p@SrZ)N_erb9``tuivC4(aP8yJ zv}(rHm3p61!LPUU`}$mH-b*0~P>~u>LBO|58YW;-gH$!3l!u&Wt{cTn1GX_l9W#o3 z0?U1Un|G6^XVu*Fr1%O<6O4@BThJBc(WO2I6)vLb0o0wk7z>w_m_|&C>)h701(gcu9d#TlW4+Lm3H}2)*pvGBFjL%+d& z2iSwd%e<+%%qG1%1C81yJZ5WH#hGB+^SooZe z=J0dasZS;wBGf5#uJ}2l!NFkrNcE&m9sj?>PK#|uddd{gqY(YTfPvG%S59W__2Dv5afKRitdoH9pc^L@+O686lYS@Bph z8h9^uf983&mEVhDP%}pkvDm%jeg`VPX1Z%lXxmc1gc>aUv8GV6dXmAUq3nTI+`=L$ z0Kk9cy@J&?tq?Pj+WRY$Ugt?bnaI2LgGg;t`8HZa4}yvF7@b2c-RgT{)6VV`%-8d? zUK48&YPPcGwT{pzBZ=P>0RZJls?keQi zY@V;a&ssHH{ay5Tx9C|Dxzo`?)g=4G)va|oD~9i$v$PNX?k5rTNmy~^wEL4pJQ^i< zU}PxEE>-B=y|kZvcq34`Xi9N#j-pc`wKM&N(j|AW(PKImq}-5-CIyEG>Ufqi-R9i# zR@lco-^mbW#4NYj|O4x-3gSaUSjU_61IA}%IyPZQ(~3) zwPhIozl+=9hIK@~Jk&#a9LKkbDS)Zfr_B}|+D{nXOn@IfZ@mNL#%OiE?4w#towZRp zWk=N?-dE}6QbFoGBG;C!RKy+%#ZuFpBTZhdMl94wO5^Z|>e=-TQ?7me!#nttf$r>H zt(todWpcdO&DK_t-G#%XD5IRZR*$v3{xz$CO&GYIg1+r5Mz)*I2kWo=a1Rsj&ZgY8 z@#>;BF3yaJn)Zj4PLSz}N(iVg;L3dI#vE9QPz2kh3QmJV>a0E*t`iXiUCicD-#DJA zs)vc(qPu3C6C1og8;BCba{qb4P;j&wS&(*U@G}6Mf z!P}=8%=)mp0hEL!3%M?hf8Ow<+0RsxH)ahfO`K%E5X)T@zXMK+Kp<1H+RYPKcvZyn z@|Hy+klKi_c0E}=m1wvXHhno$pp+}x5HkzDBj15GDO3; zyLfaWg!qqn5nK?7GYA?S9Ujz=wp*iGw<({{dq8ehz_jzVZOiriFSmcnCjOGP*G$HQ zd`<(Dlvv_Jyqx_vr4967X7`hz*}nYerD-h>d%Y?>afse1xU#-kbxxW8p%?sf&e;j? z4tz1__T4GI{O9SMvp?|qVGI9dFA*gJf3PjlaxLd%6lR@~xOU^jk=6D(JnsF1B>KSq z8>jZqRW4}Qg0MmlNhIIq(mp9?>ySawA8O3BtSg-`oDC20Yl(;ians=PtDh1ifJe&M z>t(mMw@pE1QIR4IB4p~d%-RFF>|%GxwUNW&9)AVY3x3@Cs00y)3CR$uKEAaWSYB<- zN};{~W5T6;?jr}n>7}qYo8c60ogAXSEA=@t7 zB91(=ivl?M6i^(r6rL09Z z97vHyM^&|~Ef@XI_*dE~v-&TB9APag&w3VC*n@kmmpeevo|=E9x0bLnAC{LrF8R$o zgHuoTSAX34FHpk-*aqz!oVC*=(hy#wd#KIue05eEERqPRu#>7~qRnL_N(@t5Jjpdd z9a45-x%rLURdnmz9us~t*=IeC+TWuHKvdur#*>1_PR9GK=ImwwK<2%kmA~Mi{bh8F zIK0*6pV0M=P&~cb)l~U{nEZA7lGJEI7FYkt(dq#ip=3ylBPW(?Dgl@MdQ~BY#P&%U z&s&QS=xd?4JL9Kh>#lzf)vAa0|8x({;2a-@NU3`8hgazjcCV#{ObAEUeptF8`t4&U z)Cwkc1f_8#{t(Ty-I?~=H0r^6@aEs8Mj;7ah23YdEwf|&Y%3-83=}VM@YY`V0kiI6 zm>=o6<^$42_HYMA&BGMo{t!i-k7snFpK`h0*e3LSQ8ogAgufBQUO=hzt?ki{_1pNf z;j+wkEfho}J1M&{kKN1ir%l;9mQ~5lX*lg2uFGEdeD-49s^8^NWmBW**10(!;q&}H z&>b{ndWGlV!^6Fyg#_|*$q*b`)Jl=*UDOvsGU05ZAUBk-$#$|9(vSK6d)SH9F;NKa z9vbI>jgeXy&?@vvs?XFyU+EyH^+1&iR>IC zy!c3!vcz?I*@Wzai@v?um8mIMpfs_gCRsH8At5TKspsc;JSW;yNGf?-q(_}O@+UPz z;%}xZpmKllYCqfi?|J;C!R%X%T$YpLUeICWosH{iI-p|ofpmz?l2XOEYrZa^M0BfQ z{4ULvJWZ1U-mN0Do0U|K27ver(1=BjHrkr!lD72Z-LFZ*rj@@CLSD;HNM%W1(MUqQDYXg-P!F{sLU5gO-RUO=VK!Azhy3+tBC`z2zQ z;U~9w@nITKUT%_TqY#_&*;aeD1U`gIlcMfRjQ}HB8J>0gSNq7yuj~t^) zrKPsF4HH6+^XmLdWf_dLwy=;$x?M0{5K?}VxAgMdrN6)5o!k`Mjjh9vNA*wF6K^VD zxPL-1*0h?VH{wj>ZsD1t8o?@;m{sUZjG4}98?)2QSC^c@ZL~Sm)5DakC-@G4I{m1! zym7dkgkAA4>UVc!iJyV>Co9)ep*`-~G|$FwK8YBEkYx&y?P$@n4bQS0qNqXaG>kvw z+?2>QRRID{lDe0f&YC-S3CYhtAGHaT?4tk^!XSg%c^utpIFw=DtXgr(Ipr>#;2C3k zi*W2eGkj|ua_=i){Qe;su*l>}l>(y)7N%)>17!Pnf_9On1xqP!z@mgbd4Nthe5YNz(y}V-K4vU8!;jL>Wtp?N|C8mfd|% z|6D{d--s(Bmy!kN!L(4UB8c*4zk@E33zVx826S^Hvxz^Sq@O{gl!Mys(AMRQ9({&d z+$z*kd>X_WaB?a7FgIWgcwrv$9k1|zxd?f?f2W0Bc1z&ducm&Ig*M2LH@`gctGhA% zpml9wT+u>x@uxEa8@32sLDGwE(#o6_K!4KReJ5P6^S#Zj3lc87=_>`f=b7E!TNw^^ zwme=~&$WaWCz{MPXwWp@Q?92fPmwKprVBsKe}J4-G+4XQroXs+C9xj$xrCTSq7`#% z9v-fKVvitwS8CEkO0H2aYJ(+ijWkNF+k}UzVndpy;<5DT;u`JGM`k!uw-J3aGJ2!0LtK6 zusqYc+&v!sQcCKQREmWplJ?gCV)z5WLWqFdP}sBQ0H6)$9f5p~cH_<$704I;V*x9~ zXMb}87q;$ZB0l$dhJ6(0bE{lZJ6$%e{673EJ?90Ez!__C9Z8t#IIx%1clJ&|3CH%{ z@+5uvo`RmNX_qDdN& zrUj2Rh5rrA4)NBH;MMlbfWho~%B0pd>(=0<)18979iPB;_p+ZwHtrdi?nG4T$@Y1D zfv7HS1svz*`c8C*9){An(B+54vxwDGi6dZ$;UODWg)!Z#Bb>4d$@3QVkdd~f;YOmO zW(Uv7p;-X3Y5D^Mp>P=GOeFMiu2**Rc&?Ik|G9l`5`&CoDoL1&`1^UVBVy{23R^pE zGUl0}vwcsfc}i(GQ(?+qp`5N_tl3+a5l zyGl*KZZBKB5a_7A@hxAmy?<=kgb9-Bf>$Ts(gN#!@F4CA= z6!GvhOqqk-Ti=(&Uaa!iNZ=$$J~l<2C%#oDCfl(EaRLvjA6|#-Jy#(hp}u{ff}Eae zROjO3%Tl<82qKG#^gBbJikW{}}m}UtjEp)cej{RWUChyd6a7!>T6+i4zUe!Bq(XL%H(0Tnefs_OE@qha_ z+?Fb|5PpPqNO`bF?qMJ*24NQ+P5AhPTjdq1fP?$Iy)@i3v*Wk0?rJzt2Ccw{JU)Rg zXOATEn&52RJ!#iOG*{#__{l`If6tnnWE6fRg>#4`CoTUNDqR|*+}E%#l25g zU+=t8xW9xic}R|Ac&cqEQKiZ!jMLDF8x9a4Nk0xtx-FB7(jt>GRK|sX@5@(E5ZX40 zFiO#Yg&=JLMwdiu;ko964J%qRhe}ipdS4%h!gQw#CzUAkFh<=uC=G;D7|4xXo zt`>>frbGoTQMZCy!QHl?mX(BshmF>hKVoY;(m}ICk0Y_G&6Ggu##h4IGRH76IX!cJ z66@@D>PU&RmPfyAa|Fm6 zh{*7QIhCj=AI!wlBI>J4mir@d=DvxfDgXfUW|T&$kq%tMJnS(-$Q|M6Z!dL2xn3)f z@#qF%cWdqPrHpigqoa*@&Xexbiis5bw)M3dU&0UG5){5vYw2HqiQc$}Z+~AHhu|(R z1D5d?=dXJ6LBqqWmO-rLx0Zo32ZfY{YLQ?;GPP^vQ7V6#A5|T!@7VEg7?rn2@a{Q^LLlS=D>7#{|nl zkt>NHfE=s>$$aoN!!5#lZ&pHX0u^tv#jA0Qw#+ic?+tR8=*~2%K3%K9uZ(zQ^tpYn z9#Y5}8vFD_v{-gK$CAD?NoG>^)x9Y*eFYnYU06=$MZeELTl;%hJe}GP&Mnt^38WJa zdY|c6SIj-$KMs3Y_x3a7OFgb_PZc6LJ+Ehp8~f_9^)2}Kb#4?f7)~^VBnoQF#hs0> zsw>wCcklKT=R*MSGj^0`8x*1q65v7^>>L`j2hzAp!@-HPJ($MA$; zU_wbU{(~zM**TEgCk)@>;^-$D%2{wY-~B`I2#w_A@&}z$&jK1?mblAQrs?fdE+ej*_0JlPGTT9bZ&MG<-xow&T*^k||J%J2L~b>7=kSXgHymLBB0a+ejzLbz;vr}{J~kw3*%;q{z^nyvV85#U#UOM%1efQ7ZOXu zpU;U%Qh!}Yvs^D%DcI+dp75USM~5scBKT(vACn%OntpzC+y7vusqmuUc9{rX;w-|2 zjWh|L+Zy?3J-Tgs-2Kr1re|j{Pzv%@RjNXur4<$O)jx(Y9*~o8H-ZWLF4nkK>2VDMgcx@5)M_6+g#Xj%GV| zD))m@ORA8lt!r$Dvf{M!$D#3~@~wYS@RrTKw*o2+zxGZ(H0Utr(j*p2!=dFd@NwHv z+t4vrP#Vjk-@C)Z{F`1V?V<`$l)N~7H55h;p1qD_L2_yU)a>l>k&haYq~g>cklzf+ zai6rl9Qtw78eJU|0Y-L=f=3wfIp4Dhi_NL=SJL=ps*SuT&ip4XzeS{n%lOfVO1E^v z=){)bRKW|lYfEt*01t|*_2h%uyp=mrz+P2ViHs8RzWGHW+2$Y6RbTn35xNSX+YiBe;nWw}} zT)h!;PPgwC?=>8ne@NfDO|pUT;G0SCdaVpPIJaT6Bm5t}M!`o}?eUgcMBmEH$MgZf zo=aBE!Jg}s2tc`iCstESO^6augL0Y?FJ>`n($EtuRGb*xY?k_6PH?d*UUd)wTswKy zTEQGE!ArQ7T%p)PS2wrG`&Pf7r(ZsPTeZ0J;+_o~<$DB-&!&8;%QIbI#~}8P@PrZS zqhw&>RUQ2>6*l}pHi7qSj4X5s!D3Ujl#bu&>;{L(j|$Rbzry4^G1fjbz*jAku%YEM+QCE zvXT;4x{J{87hq1ki@&&L{*zvxn2b{QBwQ&8Rxc`H6Q+RmSOq$6GIO;|<626@4nFwZ zrh$7{bK3F!_lN{%z}G7eBG+e}_2xf#uLR94f_rFHt@oea%szx?QlbI?;H!}_KUYlX zIqO%HV^vJ0YY*gxm!^q^A|lx&A@jK<=gKqz0H5?035Ky}UG?P$o#G3uS4yL3rkvxo zXDFte2Xr}yOWhrgfHAIX(*s)}saF}wfAxpd**nL{?fyRtP%^N(tQQt#2}T~)lr?ra zokvYJ5np^F?Y@PVDyc6(y#$GpZ(Kz|Dy9X%XHwnnePq}NinTLdFEF_{T2q6A*%g(E-#*h?>SRYLclrDtf*w`8UfR57}srhu+K5&oLW&B8SoCQx*uwN-(GY z%7@o+!PBGm-v)<5Du*U7FyZkhz^#$fb)WNHy6eRKbx{Jct7&%Os)Zou*gq>*PBhnV z6qvWxMb#3Il$NRd>Tq}w`V%N5@};Br=f^l7Xc|oT^%a*k2a0U*NTvCi9{I1>&FhMGB zFor^LX!~)#%05Z7%^P5#9t>`Rz{;3M` z$Dvp3&m{rw4rP{JX3*P%qYVYyU&T6PgAJ$lQc$$-B?XnA^$@Pd3QO@UKlFYsXC?q6 zE25~L!;z6CJ=KvOD5)^f{NmZY4U^l}0N>|%P^s*`B>!n|c_i*G zm}bqbu4hZqBU5r#9#d4xtaN_62{=jZ`(B_&P&$`f^?SP2NTvzu(g9P z6v6<(jGGGSheHYFFlOCl^7sRQ^CK?MQDh-itTOE;eCQ~`Sgw)8mikl_SH?HKM7Q!P zJj~i&I=t9@w(DKCDUA8b4Us+*ta4rADt7g1p#ubmMj1(2SRW-0ufI9og({>WrJkF{ zC4I7B)88CaJz${;*gh(qBZt#JtQaYtDaze-lIMIKTq)jd)m=>oxBlX=BZ`r7paC4q zJ)1s*a6dJnfcJ?E7xOq#&aDh=keu``ZQ)EV2^t4TTIaeCJ0JN$9!t>FfUW(>%RR!W zGMb%w&BSO8cVLTyD62SR)w^2?w1}eI+7|x;sdQ`F<1O)zbn#?h33@zO_z}F0oC+H^ zRY3z}-vkENmijW3Z^Ak0bolPizF9h1`}_mT$6~;z5g7Wqsja_{6R5AP9XKrjN!xcz zC$9Z3gK;gCIa-A^nu~omPi;%~8D0nFW%pSE=m(T80(hHmeMQgN!g$vl_?CuFOd?AE zIvM#5w(%!(p)|s%-$@WXFj_t8K+g1DbT8wGItX=?ze~5U@6u#6R_iapxlcLvQg`P| z{?iADf}}5=zg+vqd`1E67~9>Q>vp<|>_uCH`47H~xLsJWaIb65-RoR`zjl@{BgG^3 ztW+uLdlbRUGi&EVAr(r8Zr|yQaJ9ws2I`%H!evIM`rdzHyaObQrAzDm>`(MXvd&R z4N5P5_e-5cyi0+78y?Dd#x4!+UJ|pmHl%C&Tj5+B2=xN7>_t_N>V*E*R_bm`u z#0`Ua-OV$#>&S&9lbKXCiE*Ahgwb*0V(`?1>{Y*#w3DprB}sEF&|bkOpWM~}eVHt< z9H4-_Z3yGS(yG#7$*}?BH%>jZFzQ#B&Xh!oEGuA4=EmxTE6jv`HeGy}dU5ZQX3auQ z&}f-astvPat}95?h@*^CcFk<9^H|-qzPxSLM%;6-Ur-ru;; zVC0eg$mQ|Sx3TMc6UF&kTH%->ymW*!?O$7&WQ%VEil68Sv9+f_0qX&ocjw~Yv~XX* zZizjDkHP>@dL6PvUPz+Vp`CJ~CNY9L5+1Ja^@V&)MxW<1PjBYG7t|(p`Gp5Qz zpmrbt6{;?Awp|6FnwpL~>Z{fe-f2JK(y=}RG)7Kq%7hp`Cz`v1AxCJo%;Un}1EO>b z5%bFCBWLT7Jus3gm(J&;vNHl8H;@_&0F;Ry&MzO0QdPltrhTQ%Gy}406=$7lEi(nb zmk!DVt-j`xqe5h8fs8S988>`mp*R1z;v}z9kaxyULQSGvI7TEQZPwS~jiAerXfz5y zdk$k04;T0LJew59Cr@d(k3WlXOM`eBBn2T7a8{U)6ThuW$V;y&QA06GC87QmvY3kg zBv!UuQ6}q~4EL%m6+g!~0(rj>DnbO6w89Ew^>V3fKc0hlEeT+JeEc{~P|cG0?!X=s zzyJ0J%H%D)&215-lOKM5il&`5C{v=tsL+rNX&SsS`EOWZ=jiS$@q)ca8T8>8RYH0s z?4N`jNqhXJC6L;11Y)1zoGPhL0p8r8hGc1?J%|Q8+_(~R%0FDSe)8RbKHG*#3>LLq z{!noD=THH&$0~sCK0}m`Z8XWg%w<4&^~h*GJ;;-^PzeS-xEU2@?Gq@u6a#>Fv*ldR6_|q}M^E#^ zh`4B~Gb{gv!MaF2C;U@#&_D)vLbr`SkjdMh)g(IjSgk& zs)UEgY>`L*zY*}fbx6}Wm}Um4sIncar|k(t(k-a5l~Uw91sVKr?CNl^vfINv7n!Vw zX%fPp!c?AZ$b_JWD1c0=Is|jm7xC`NkLC?I@PoCnx2N>M@w1(JECNc$S*c)G=h~`6 zFW)Zd50fvjB!u6{d-)vNoNE*H*Dyii>rsgMBY1-72*_QrqX9Q=LBw8k$lGu}ntm5q z2qzQuF|`3DIB7;Ph4yxMVkRem_9uapV^-py_Ux{E%DK;Ie6)D@;pflSqBRqP&9-7& zeR&9mmN1Se`yekihB{Opzw+@suY927kunQf0Pw2YQYE)%Cdwc2Dv=_$lOmNV{)QA^ zTDYy$btB(zo7&sQO7A$9Q<-Rp*d!MZLpx;V;+L5sW$_}8eah5%!C<>Lf+%mZeTWu4 z;8<(sb2*==nPQhUwBfB;PWtvO;!cRy4i_H2?rsauRolxnlgQd^SG^=mW>>uPVcX}8 zVAn;+BTiAZh0_)l@_AH>fCB*EBgi{?;Dw0<7RkT21ji%+_XF^~Nxdl5NAL+TNCQW- z^>=EtlC^G{Y^yncRDqjm<`a<4_{~K}fdW-zsE3x8!SD4-f}&Cb1S1t$0i-j5nh;Df z%v<5gmA`63s;#~5Wsw=fXWB>^n|6Vq%MwS8!XrH&TABW$bVXGXt9l{i*CriaAZAhr zij$6$I}>6vA=reeMUOZCT8F+Z1alMEnkcz?rzYcF&Op*5xGH1)>q;5=!WU$)Ck{_!wFIj^xsSwL>;zxs-g`QVKuI8XB9REZ*r5au32gVSCI2Ht z;WZDx^tfg|b>6N6Nx>Qg&{4qhd^(BDXITn9y~mLvFK0kkHg^n+#hw0Q+zl**0FAZ} zYF8fCj!GfBNNv2tZH=?+6&NUEEr6g6p&EsU9c8?a5JU(BTE|Qb-%HI7O%T0Cyg_5F zBCJw~4Qnj^ZSt?JIt)PP{fQSPd03%}QrRy#qE-QFs7DtFQQ!W#qh5T(#GC{4Q^{9# zN0S3)&c17t{?jvSHR1u5g_BP#oBUrJ85cgh@w6PFU^&@CdBcBU+I1%DfKd1V&==Ub zJl3*uZAkm$k{2dp_m~gr@dzVegZsNKtsBHh+wST?*$l*kXwMaQ9{cEyIcHY_lnKVi z(w++He4gh{pdVSggTf<2%Wl#Q=5mqzOMFY@pOd*~z&CMrcGix~J&trf_~meTMxZS% zm3uwB=;J?*n5xhMaOBsTa{oWWxV8NAS>51IL2gbL@Du>t~GmlyE#z ztN*hg-Sxjt{DTBm6rxuB5eg{~*O~A~iL&=F@Ggd&Bg=jc4%rC<^1|0@zg(rM_I!5z zWlol=A5Lw9-Gl#c-ca}3T4@56fEd~N%9o*4M!J4 zQ^{2z3&MR2U^lLf$WX2IUjx#C=0KH%0U0pXGp1j{q6Bk3r>ih|%mHXx0wOEQQdvdn z?hI*HAoWRG=~3!Quy=3KQR-r_?Ctp2v6kPtQx&bc@6$;JNH ztEv}&7vCo{*;9dlxNCUBn>Tgo#8_2#pV#B@X48@7uc@i@lB3A^4*E1EVv_Fh-bHzP zlGhzy%2q}mKu6~+aZO`B%eSsw%9zXGilOo{i7fDPE7RYimR36X!WkRXHQhf$h{aY? zN1+2LuyoZ_<7Ku;0Sl~!Yx(GmxsZ+NO7p?!!`D`#-Mh8AEFnzCck+in;jqw$yLk}w zq^z7AMnZG2B4%!R^s@2C!PV8(x<<_GZ$`QMphy$egD<2C_I$)a;<=B;_U-q~Uf+lK zmkk~*Il>Unf(u*7gV|d9|2+?_403xz3TZ}wm@VQ8;|rrM+mlMzea;NYJ-Sp2sl0fo z@Y&@7EPycc%Tea^#p2>3ua5d1*<%%PVR|6Y^op3JVag({e-qDiz-&{&j1~Vac@F^a zUhu${9d`P(pM#YX5p3~9MFdZ@b?EE2RY92pc%7HYl*mJDiegvnx`qz=N zm{=PPCkKUV)7kpjU}WN1Ermpxextw?*8)51`&obn2m%rhg${Z__@gI!5Rv%k$9V`~ zo{H&oGh8PK^Pi?0l|DZkDfK?=du4ajx!(V-(ZP-BJh2S+IS*-?(iwyDEOWhv3ba=u zvHFpa#|olx0UQp0lcp!1(F>3+=Zt)|DAy?s)Wbcv77RQ26!xLTL)wDVq~hrs&RJzY zQe{6w<=LX(Gx}Si08Z)aG;tMV-&Vm}vXGp-wjVV%H>Q59MHS?2pQTm1_hRqfMAkE6 z*O_pYsly!NW33d>KD^Fb6Qs|IOC$SE`JngogzvEqlORg_Z0(Y{)!+BvH$y@p!Hj+U zCxcwXIKo#62@(nVNu2Ndm;|U0KC{%Qxfz;F)b@@SsEGPXZhB_|E zk=-B%IM8w45K?zFe-=!#(Pml(|x-@K`F5QrE#Gj zqscDF%&8&|w_bnz33xMp3tljT$jqaWzlxr1nUGr6=ZRqbdwKqd!#hG2I<^ch0G)A1 zU!U+V`GVYsd;?CDtMx=#g6VP#ukxBT)3>h~ZkM}jq`LR;Qb~GiuUw830YH&j2xYdG zN>ACgJ}8hHgNy4qJBvYaOnrQuz`G5N37kK+g#G_N}ABO!}h=;ifkdm7E+aa5Ao8&4=NqVbC69i-P zHgyDXu_b?w6g-C)Y;WN8#X(+Bp(UQ|`q5#nDZ9!vZy_Nt`g>f+&`40BW1}$t@J)D1YRdBz2M=L)FZ!^Vx*~5Y6L2Gf z^*~dJmGJ8@b}Ao%G2Xhr;oY4rC4Na}D+)EljaGYQ^^wlH3AG*>h)5+g%)d27Y^FTh zpXVf9SPU*$ZzD)kQT3v9dH1A0{ym5qH^`;E??=}ayioj|N=kZHm=2W<(UabE(1^AV zO6urbx+1ZMU{(;dE1+I%C73fNn$KgRawa7Rcz9v{q6@H#wQmAM7iYZnC^6f%-)yoa zd`owkj;js`$8tU=iIdqKQUFi^TZ!8e(E}QJ0Bm-<9v3v*e7%AHS|;|;s=f1Oj40?b z;3nC>putPnj2|!vnLH;}^=SfZNG2*Ij1k(Kg>Vl{&|9teG>YK8JJ2Wbs1y4F_BYNy z9LB?L1bqX+pZ|6XrRK6#jtnmV--ni?EV0K&YX0#ji(Uw7phOApaca0WaS|zI{BNRK ziTz#+oQL?lq5B90){k{XBVJyq15QEsj+;F&YjTl&KZU?;_(_n|3+XF$>_T2q0ck4x z7288#sUTDmb@}pT{TkA08tDn3!wRtma8xLf1Eh>~X*u>;EGlKMV(=Kz5QpOM`)4)m zL=9R4a=+Ev&=2nJybz)~>eK!F9PrllrP3V{DkA02P$xfn=7qlqzp8c(#I>?)-{)w_ z!K{2KdijR6He2poqS40+@s^VZbG+%8iiJoo#3g8JJrfx;BQE)D>LwMDqa1Z~t(Va4 z1i=i)xu+2l3vE$237DKKz+J!irq(A}Es9gIkv3y12zo6us4tzd|!LlL{OffCGdo%{NoJrtYc@yRCM;4*ylJ&6nE>ADMrA`uN*@%a)4WwZ5Kq;^*OuXK-P_9>=izyHHxqhrJHcAN3Ug& zO}fTSmfFH%ClQSaqyoLwAN=Dsd;stRAGNHXa5QFy;pQVzZlch#58vy{?oQ(8l&OLK z<;Z;W&V_gmLC(cH(rZT!#3=sb-Db;A)`3x1_|reoS5nDckKy~r)IlsqV#9eoUBM?n zk^2__Yy}-?dG>c28Iiyb*pT2|7IgKL0eNF)6p`z%O5^(C`$NPp!d8O_fSXJ48XP-6 zfB^?EE^Rd|@vJ_(Ihm9u2zv$C=hP9nUsr*o@{3FbO=i0pZZ8a)y2-C6TILVP?*WtdbW^o}fQ zzrmZwI?$MNw>8le{<|#5#|YB)2r$_iK$6SJa3uf_13xfzg=vjjjVS}h`pE&*O0wMS zyXU!Is4f}>`(TBwlI)}b%$G?F{HG}r-V3A=x6g>v-;ulpMx}N!o$U&EiRd6}LJf|w zEE1D@|6R~qI90I~T&hmeNfwm&T>!^z@O_=}6#G zDgA?hf?kUenXV!Vvv;_v*#tPe&&$lrGBnQYZX8;|rUm56N;}`t$QuFMu|ACgCrL|z zKf0^^4`1Ka4crC0AKnr6TJwXX=Tv?(>NTgF#Mvp)r4R3R+at_(g>bK)zreurPaOb^!-8Nz4sCG&QPFcW# zgqR7^%mnTH;i_oZMJ}Md&wzkgh+}1Uu{#`3@{s4YLhK5fr%eJ%ID3fD#5pRA6{_B1^-9gsa(SG+)N}s?&N=s&VB{M}U zX-6@hlIQikD0S!K&;CsxksKOB`;$2${<(Uq#N6gp0ZPDZt!!-VHsWPY#e<>!2Xb<< zD+#JR@6Hj5oeta9bdKCxk3Mc@(NlEBDfZ0GO79OJ@MUE4{my%$e%vWcs2XwrJci|j z(xv`$Kc3>)JZwqC9S$LNXpje>3CR0W({Yexb5~Bdtb(?ngJ!|Tb$H@cRVA1MxdGfx zhSAd6{Q*p$bA!^v?5|&(dFOvlN9-jFp}ha_#IX`f(lHjPj>E()GT_h3ZsdEaO1^-5 zQoWBk?)?=x{Czx<*y2YZ*C2ox)chceml}82a?Ab`9au)u1sq|>J^NA)!r2?~lMDI7 z0;+zlo#6Dqht7nGAJu_RzK)C@Av{om2gD!%a7edH)IrokipMG`ub~(S;ELO($?Fvh z%-s1qZU5Kiv{K0JLjZGfB$}nF?WPr+3P67)mz0v=ipGIF1zEIp{_w-tK~7Z~ApXp~ z){La6Ih6XOoOiEZnUPr!Sgy8pI88Wz@UCPf3ktxA;N6l(4HKSnAk@w^7l;n<_7LA8 z;H8ifbz;~zK$7S}$b_h}8`*s{wKHh~5)wqwZKpk!;{iT-VA&Uf~AiYSWY zR+*oCxgvItB+$3FrLR6MFXqgB9UNK;<{s|%atCO^d~hWHL25xei?l-O&%kZ>c+y)s zs?NA6jP1ghQ|-A$lnHl3-vY5P=`869ovk1@;YA3nf-w)1>%ZUX_rFXqmRz0{+uY$m ze2+?vIF{?6ELuH}zI3OprT-bNxs#;mrw_*JO%k#5UEE z{l9~VY95OR=PYtq6*4bHyDIZ?(W8IOwuACI7J_ab{LkZEVraX=$4Eocw_b~heiW$g z!!dD_bZ>k8zV)x23lBkqF~Ga6PSy(!aVag9wdnT;aiBt$p97gaQE7`6RNLfYh{U|J zn>aeByCl*c5=#RNM=!6a?7zCJd&||%?gbMu_0`Xfhf8tfeyEjCuKw6j0v9@)Kc2kv z2W<@tspJ`PVx{|jsGxs(kLtCUoBy+HoQOEwfuu-%n1RIU+Hbxu6}cIiy;e zqX^kIkl(-_IhY=L@tBlNXj z-)B+pbS1O*hL0J4g{&$ZH`=P<@qx@u4W5*QM6%iVA9U zO!y6^63VUEH~713uTgfSoG}X~4bXY~#IO)NcboNF5%czl%;h*bQcZoEXyB7V!}9;M z0E%rwe`|vOu!EK4fzOdC(MJ#fyidS_Eqm{59;M0*SUPH35JBeUDBWG11SdnhZZo31 zWdP#1UQqA#N^R)#VlAFLRmv*%qZLN0X-2Tt<{ja?$&i&g@k@NO4RJ4Y0%3m?Pk3%a zs_LmQAYQXW<;CpsE}hz4u!a*ZZp#U9Oa8n2Ne_`wz+8;G$yxq$({*Wk(ifRU^i>*M z7~lxS)$34(Q(2Za9l3$rB&v8;~k{{Ko;DXV?tRD)z^~5o~%YV5^B{BUp&P zl{_vwNNICF|%`7|Vl;tC#OyUgX-Tno)D|P4? z_*p)x-s|{=esrBsz}NTkOm%XduaZJRJ=P)**g|2OkV0)>bnpLn;CyO!coxMx@O+@0^ zkpi|*gj?+2FQ+rjE^#WOA@fKA7%U{4Z^9MBqg&O?mVcUF@GuG?Ec<==ip#qPw-8qxN~>MQ*Wj10||r4I&p%O3B}*5euB014vy{q7&4kcd28Sj6MM z6^p-5`fb|#q1g)!SD4ZbM0-J;9=|5lX%#jI#Xz?wQQU(=S8q&y3_s*`DU@lJ+`L>0+KZ61Rn34;{7QkDHP zm3>W>Pr?1WSWsb^61DswYIzcD1JtjmFfV)%XU>VB4nF23X$`5>^L|4fqtp+iUeZD0 z8NtLEukmyD@#F)n6$j9Di+;>4v%K?~x$A#fv#yD?eYdr1DNN89xCIo`qIaHyBZsFN zo`Qt5=z${t>1UPwB}xgpXW%@6!*VJtsH1rWHexg`{;GBURCVLYsemC#qevjt4n3KH zN?y&{0%v#-DiO1`qGtgta*F8!|9SCsQ){{B$XKYsbs8l>AQ|EUHuBzUx^v*40S=`N zz#O7gV z#GP>~8lv@W1wUT0dV`RYTf_LQCMnzcxqq!G_Y;~7VyFuwhDJ!oOKOfGE#b@{PCdM< zW^LJRSTmt=0<p}KqN@x$UfM;Cwr2fB4j{k(7BXb#| z5P2|<|A~@ZjhjHI(!FH_y*6gdMfSO6w`xa`@8?Sd3$-_BTInfQy1l^QcmQ|B?U0m6 z;XpFr>GChg7^1uC<^U*=%=b9fEa3BT@4y?{YLLDVXlg*^FIUgm0^p| zd20ANw35LlD6f)U7#Rh-U;|uc$wP9)7^tvIn(OFtPd~FeM0`m4vg`QG;nG;#Auw*` zOnAh98UaSE!S`}w%Y$ubc4<{?GtWk1^%1W`yM?{xlJqazolECXI0?h;tIZ*>ARlH*v{Rs-mm;MYl-Vs{ewbOkL(&{ouy+V8`s|4V;E$r*;Bh6IR5s2G5j z3^~Vw+p@&4Thx1m%!w4}Uh#J>H#*~_BDlmnE zb!fawoVcv+40*q_~0}FC%Yx!@%LmNmjUDUKgG3=4j z&Q9_k{w3A_KJwzU z$L60(WB`6xk#C~P9r>Wo70gtvS2-APcuh`tceN_KA+8`mU9^a7(|JM;q%)Ljml)vj z;9&IH>gvHp{{zm0v)k90tPWH6h*!0xAYgY~66sh>%no&Nr;n0c5uhqY2i>N%Dg4)A zTZbrDqs1AMeh2js4Q(MnD)~!O5(j`h505@?Q95Rjxpa~L^dbML6aN=?j4oOg21qgu z>_sm-1WeC7);+^`1$DfQrS=CPMr#-|NZvgwak`$*|NM27WzAybY(bJz zC-%0~83h0e0zL|=HD7+2(}(ff`}5|>+1DzYwPRPt`5o&(z&bi)^yKmP!JhlXY60yx zWK|?rc71Z7ge5hUsXsF-tWx>E;LB%%Rz6!#mCx&2M9B-CC;Q!pq*>@Nrc^-z@pD|S zDUu*#pTBGp*FEI%#b)K+Tfq^{?m%T#)eiLT>e2fLKmUMfWe%5|TTC*^!$#z6UI*_6 z04H&Rn%^?OW@^bnVE|Nja%)k4AQ8Zc99jQubK56$4B)|H{V)zt-A@FtJ*VAXQ@m&a zN;q_M_4@5)Mzgg22df9C3P;z7L12aTAI7A4^mJ*U<{0cY5=;VKwt$=zxhLPtvQf+; z#oKzC?+Z~Am#a6dk`ZD#}V`Y3LVI3*TxI4eIRNOmKY}=GkRZWwTAJ(Yi+`c+-lM#riCSpI!iVu&2Pu&of2+uU zpV(hey^Ha}-Ocjx5D04;P)5`BI6~@f+O3Mk67gF#@8yAMWj2+V$fK5s(3hbvEp(alDF*|z>w0FN`fS-( z=dIg2Jb2TP##{NW;px)Xnx}n)=Dm!*7Xjkl-GkO!qF|}5q@=c>M=w2?gc1**sX={0EfFy38DjHMP5+GITM+Xjsw zr=#UylNM((q;>2FG1H?=T0#HRBcE0hiTWw${V`fiP3=%9$YM~;AuMd%Ld zpJo!jTI z8caB?*+dbX#6>#8=(tzLWwLM9HF+U#OGVUmY|z;dq^2f_RoEs^=wl-k-^;n*Q&tY+ z$dWa;YjB5 z=g+m@{rvN!wzl?V-EI~Fur9OmCpX!SoI_UoP2-yzQ59TP>v+3O1UrhE!kXGfvjx7g zJH}sR?KUny`rl^L(W*>B%^2%2>`2MeK`wabDm^83(Ysi(@Kr5jIJ}*#O2WIrqGHme z?g8svQTqKECFKIV% zN=1H1lAWcvux>k*l$11lDe=E+9yk?ZXlUr!(9lp+Zg+=Yd&R2CI$(a!_B6nIRr3q5 z5A7;A0DOJ$t$P&~Qx9RldfPa`=TGMh$Jc*NnU1!rwoKv)t`0zZOW1nC6DNk3J>*Bf zb#!Rzv2?ITy?{Z1l9FE#Ixm@qo5AJpGv^RSm(@_A8C^n?>^!)+ zzBdtr$$ixrFCQrqI0Km+I1Xq#&(yWg+4=X%{$oRBV58(jP){)9{Onj@9>RDiB6BI8 ztc%wV4ndFD8=6awQM~H7%8DIDs*_RD0D}NGIj;H3uP+et7vv&hyGg`@%Cql>NA*iW zOxuBy5TJ>S=fui&5wX=O^$n-V=mLdV(gS{BdMDc76zKq_(zs7oB>y``s&?ov4cT&* z%3E@ved;Q{pT5UW@CHcGN^{+$>cekLBET}GwJiE+_m3Y}>yM2M45FItMi33iYb2}p zo!W3XJ1GS~k2tv&;5+Lv@0>!?;zQU)sL(b5`mkX5xaq$QeMUj+cnxB<3yqp?_BoOo zQ{33J@}gM2eH038_EMT|3ZF$d+5#N!(He$kJ%f_KMo+E zXXn~Zq58PTM*aoBMjTc{pb&r>V4%PrV}jO3%P)BWwl=VH#JtI@C#YX$KxPlR;0H?f zy=FVfPg!qwY|*QssRPw+LMBovW6U({4?GG|dcAYue0Rc8>B!J}r*sB2@HP7fYE1m3q!q#-l*&r$J9Q+zEe#;QJy?~q$ z1p38@SG@TkWERAk({DfjsJ<8eZl#h4yiHAw)O;`dAv+rY9hRb&k_aP9(+HQTJ_vw>uQ%w<~52$pYz{nd-+A3y@!q5zBKd;O`k)potDY^B@z4V4?kY#(a}1o zr&kL3Hovc3{CO>6+`-A6>uSXKKtP=DTi1=|ORWL(y2}>z##|RyBeb29<}_bB7J1UX zzvN&NzOfN~DZX-}$VcGH&(M-blydC685M9s8MJkQv*Q^yIYncJjfEkq=0=`d<88qrh>*s`IMsQ&zUX9Ikl?v0#B0hxOd zFth6cU$u3Ef(W|yi6?BYMy}eN9dainC%;@pnd2_3rM`|qp@fh%4SwG(se$^rp^Yuf zkUKSS-^-@#mVBvEd26*@cco1m#hvhB{?D{k z@at@am5J%t9j9#j#PQTY)=*uE| znKsRsNptzhozZQ1x(NjJeBas&OXc;-4xftMN&4$rE~j-GgoT82c5AY4FK_kT@?}-s`335R*3zrS>Cn?`nJulTd~bSXQwJT zH&;WX*Vn3$nsyndi+KLVlfF>zJ6|nj=apnucqgD_{apPPob2Cn%AcEf40x~O8yM)X zL!Oj`kKFoh$`*60n$rH()$yeU>VweNuV1fzd(AcSb@NO2v+3F~n~J8x(Ayu+dY%>? z4xI&3L+cq%10cQUvNxf|^dj{&ADd;)FuRQ){{dwBEEs9wnK0STvg1f|}Z#~nb)g{`U zgVr}uuOlV5AZLPe!vSZHyF%2Mzq);rYWJATnq|f14?P&r`F_#(lPVcqhGX0CjoVjj zRjjrxid7%qP6b<2=D_r(U03zui}PCYcL1NU|a! z_lo_F)P=nztle+khH+YY0Mm*%C*!y$lzZcLAA)qtGH|EEk>P{B`9t_XINAR4fO0s@ z|7i0y;b@lkZ1Zcy@z;US8f+T-%k7hEce_rCMG3O?JfVm*8~cFj3)ieTqHf2jPm^a; z&OTm}e>@pyXhQ5~C=2*{uYEsv`i;M7Z~J?Fh_J0|#P3@RciAn% zzb6W>4b%>(QnAI)A&CH55SwBfwnE;&48c0pq%}_XN&&w2bdxF+XntXBbE@8eb=o>2~L0cbh*&RF;D%ulRC-?C0 zicI%);9W=DzIdBbCV8KsVTfY`yZEdafiaHgFy7F)KlkdzGzse&{njIxf*~{c!}}2@ z=e6yX!Yo`>C(rro7RSw*H=bV7y0xQ{m#=#~;y6%^o?743vh7bfBH~QLkDP~KIIns)qn;m&^z`&ipIs)z+EMZ%isELYUl2gls~Ts0*t;`r zG%jq={J8cj>fLFf#X{{$u*`i`Dwp4HkuV_K-cV7lhX=kAWggNJM)?YrXzutaMIs(k ztRA!#8yHCP_iLXc{Yr?rafLq8;!X6l@WJw~e$v+uW`xyz{<6R#d9gaT@7S}3G)G(8lEFdC(p@FIP0qeOkGoq=1cH3^11+gbnSFsB zEr@(ajbk0l2{LsyBlpqLwM zU330+X>rc|^MoOa0qw3s6OONttz#|CN6`b>v&NAM^w5y#^TITlfHHa2+{(a~r1I92 zjc%c1{5vI=lY*Q3y*K-nPvHu&c#I2o;GKJ^Sy_Eq60JWvcXdBiHN#Q{Nh}4{JSTm0 z&wtdKil3CwihN-AIbbi{IaF|;|GL$@NAC|>{@a_+#R@du4K6O3lHLs#s(#;2v zgEn=bO&)8@NHJ!cdcw~^P6ARV4?cn2cGG4y*+#q~hK8zy>5~n~!Zm}dBsIWxo}m|E zYy|}vuT=UeDkPJNfUc+CPmhEM&g*yoU`PyEq?Gk_~K&l@w_ttf9lI! zVE+C!^|j~ENMpk#v}}@Ckgs4h9nAP<|8}$faa@~Sss+WD_}6R}w4aiw;q7P+31gNl z>G-za)|}SYs@2T{)4#v>JD?czysI1Ry5jZ=3QAAwOPZUBI=VzTIpcJx7j}YFxH&1G zwX1f0_BHC-AwP~W+RLiCf>KCZNEf6Q{O2oAIY$5>U|5D}ySloVrqECOZnMKE=o|~K zd?2wZsKy0ChQ~&}X1%NX`RU2?XVgz3d$qnLk-Cxo{{BnSmX!AzR=Su+43?Cny@;yZ0$JkfBStfQC0;IAqYkLT?tGy>zUv2G9RYj=PGE*{#?vm4*C zHOZ5{1`tKnf(Mo1m`$k37pOr)WqY-_TvD=Xut_W} zEp0#f#e`O!D)f^8T&d8TsA^I^?QAJ=Oq>Q@O1uETZ!$hCvqr%tw6kvVza3M|1dsh;xtwr8?vo3b0enG{JoUsmsYE+j5w>=(iruE7o^v^ z48DE2`X1}_LH#I=L>3Meh9N)@$Ess z=h}-EjW!t5rMA=O-Ro$z#7n=A=i}H1+p5}O(c$FBi&7ItaZ7y@p^dX^{U%&Nsr$?4 z^*mZy?^uXEPxN+k@p#ncqp&kWzu0vmdGi)6$w5qVBIf+&a#&O0p^6i4(A^-fBpH7hR^%B{G zxTPTpKC1=(_egy)lYmJx3PD6%ekuk6@E@_}Yhl5F^J+*-p?tEK>L$0=^`$YIgDTO7 zny;@9SmAH1wZ&Eb9u^)PsIbaM(s+c~UAiY^Va#FbA$S)nZQNL59q&aZDVzVRy5eE+BPjQI!nSK|uyA*1SKpIM;s2f*7$ z+7^K20FMK^*V(1Sl>lI2e^Kn^Al>geGN9;0jiQTyiiF%_VP)f!Li8CEQzd^PZv$o! zI11=bp~PC9tAG55w$GFTpo+72xSAYz-igfIZ!y{WrJm25bCT0D=&jV0M-v+gzg?o5 zIWI01l4f?~cTdG*ZhtgREoSPn@cbUjc{H!;em!~11H18C=WcD)suii}yhjVZ<^FfK zOugxW5KrU#E3*ol^)M8ECz8tV(`bEyz;W|d^O=e(WA5ECD3J#!IMQW`BJG{nIe&*` zLjV-sVn4AOn+1M|cxt^6fK1!6L*>4B1zxf;cb!jEtzT`X8cH9pne$R zW_QOHuVIwBS5^Pu=`ZQSJQd>cr^i$OCn>WEe+~ z!5@%zZ;5Jmg?KKez6yN62fzT8r8}=iN`HJB0`Js(QEu$Mf%s6;hu9I%$g7e$r&fqE z9d@fG<>DUa80s5lGmNFML*Do32dQ*-l}dz1KG(>-ybMORiw&63Z{eGm+XLaus)CPB z^-XhH3wVBOOVX9i?}B;7)uUPC{_^sM`RCd<7Fl%Rj$QG589`|Z8^?CHtQH7g(^~aI z0H9>!9AHvzBzel)Pm6qxEWcs~1z;9hW6q#kF|f3>RJwB~#N(PTRWOfFlCc|;QE6oQ zTozFn8+yC9{Poep@=<%CGP8N$?@=Au`2sn67CC2GD{8}Hyo!Oo&nTEblp3*(mClNb zeH&c6{o%8T(-T5jz3q1<+qnDT5+D6mHcdDk;E#(dylmPElYRI8TojoZWICUj67#`x z+};0XEarubco668EP}9qo(F~Z`~c}6-L$ey*s?k2Db=*E$L)&?v4F0xJpQ@7U;Tgs zyLRXhZ9O4Ev5-v8#+%@=MGpKQn$9{bia*@qvkORvbc2MTA}EqlOG%f~-H3EIEG0;z zASDgb-Q6W9-QC??yLW!~x%UtLXP%w;&b;S*&UtHW6Ye#tdb}I6Sm(9TfFaOavtH11 zDO%RHnUVm@6(J`Ch~$gM-Mwo9gy1oY(ig+?1W_pfPD~gUKL&=uY9QcMp{=M<U?Aj@Q{z4QwJZ$BW8%H9b!mRX&xDid{eRZl>J z82sbtWr-%Ezpk75roCEjNAIJ(u0URI$MAcY0^aK7Vk_M1Ru;dO&F?XDDt9n*yAtkM z*thsIGVVe`uURC5s!XR2Z}8{qE|A7WNitr3iwdCAd6)NhXY#;Dv+VqTenELdqTGut z09C>ig(1`xiyY(Lz=n{ zJ)2p+FgA;D=LuQoY4$b_x>vO9F!6{Sq~&q23uMhR(c#oe{LMoK?O!Z+my5J)2YpFN zG<6}h2&HY+jLi2uACaD>I>B>m8?#AG6FR&3k@Xn%t9cj4QzbfqdtaA1ejW?oZv2o; z#mkoLgKB%Mn1d^aeDkq(u3|LIp2O=jV+`?}4s*%C;p?MpoH6Y9Mc8+a<8C_O0J0)R ztEr`8X?91qC8=(qa=P9ZUJaYV8wsQ*X=$>&{nM~-b#nU4yV$3JYwGKiwcvK!&qx)i3qmy0 z_a^tNE#BUz)=zoZqD#9gr(8|)SXN@Rv}V?0^cxf71iH?`97P{Y5Po`kCxm?k1qA_a zPQ4WGVt!ehqU>u=V=1rCL(c~8ppU-s^KNX}I9ywCNU zr%Hc#l!?CRt|xjIyClFr^2vCMk1%)XW*Tp^sV6sM!I6#2Q%$kHjO9wGCczf_^|H#c z-?h+^=l$zqt*YN$bpziQEmB=buVw=8#j_;`p<_fDk+)84OwgmVr19OY_r;)*K9YoK zUzf#drGpB9CJ08=te})ioQi@WI{z<|eA)!itoGu;gh?bL6(IS`! zoF4co_-;CJaF#?WJ}IEt=<2Jk>pS1#nJs#$HFnR6a|2y3QLYs_Cj{<{ySr&KUAG0& zkBmIoMDBJN-=q{}M{4nYjIGM{A>R(R_5b+?rAouovzihDCH@S+6VPFb?Pcr<`|pb; z8?z(BH|L(uyn=+Sy_T#jEei}0ewULPO>6`m3w&K|@@UQbrA-0+fBAUi zNk3y^+ysJJJ0I#9KuAawH3@qMiVGIc<<%Sa?PP zd=Gy&;P(+XCe=O1U%_~L*u+{rg#(%1h~LZTd0W8`6D6rZ z_Ko75ITumR-bURfRclp865(1P#h>oV4``+0h5(kS02f%i@eD6kot1Ji4}u1$|MAQegi47)Zh7DF;@ zmzuRQy-k1gM@xMlt6K3wurEA1DBJ;J3w_2aNoeiMUR6&7E8Fx5=}nLi3+X^UE~MM| zz<`oXT@a|IGg(`}{q!~>5+ADPclo`ab4xezOw~TUqFJ$JSAJRGq$XgaaS*CQ$RJsRrl=9klV_=IZMMF8`CdZ@C>6Bac8xP ziBY2xxL&^=MHJkCW4WSSGFx%3!whX)6eFEc!iVb$cJ!Il3keJBldd(L9XIN8yb5D5 zo)NAtDBNQO-Yv3UyKr-JAC=74CfC1lCv&0Ov%&}7JPw=J+yd}v>=E-Pa1rvIL=Ofh z^Vptc0h+J=FeRa`w-*%GUw}_3&t4mU3ls5`b>2a<@}pDo9AWQh&EvBRoGdc2tZ%8 zM+n~UC5?@9Ek5_IV5<%xna?aJDCj;M@-&q>Vw&Ki0&|O$qoIDq1_*(vMP#*TF#zAl zF%<+qj(4Wp((RFadWx(kJKO|QGMB6r$xnffUBX$iIUKyhz+saeG;uJP=_)( z-}>8W)$U19d8V4v#^x=|DkFPlU~azsjUW9BOMS zH(6uojO^8OTMEwX`bzl+?kTSt<5NuvHRMGw2c#;pyoGCqx1_lLSX?i$P|4UPk-Y7t z1C)Us$Gma=U~E8dV1eW-*wGC^vcabSn1#b`FAgBBNQz@{bZ}|SkhUS2{L8OUv{btW zi_ZJR{{%~-@w8#(D6olwFt*V+Ti|Y9l36UCU43s9-P8hY#_t2=KW|6CjU19nSQ1FS zcV{LE(HCkGG!J{lY@r>zaXhPpJAn&3ZECU{f1Y`doVRQH=2ovCsW0^vvg5%-*8X|4 z0!B{@@N*Vm8dhjB0XO9BKfz`mwyl{_^iC8Vac_sV$b8J;dk?hM%uXk4;K&5OhIN zp&%IEI-}LU7vrg4SJPU5P7XRZrLA{gB4~x)6DCC5aAN?i9=WJ=B5@&&e`b_(u_rLP z@D+Pwr!7o|88636@h|2&sITw;IC@{$vmvV26zI3a)m6`;B40hxT~tf zd4Ov3-peW~Dyr+5Mi;8WqM{%jQEZ@^u>Bwo`Fma#fR9WLm!SkV#`fJ%AU&6!ogYtzbd%oO6@3n4ZD~5Jn{iuH6A-S7&W51D|F>%k-2n}9{tbeYX?SO_c^OX|zp^xKB z#rkag%8>o+T(DoN=<)5b9|+_%DnXZLH%OlXQ zq_)s-UJ9L_VxEQ#?!I*5*TwH<=~-R}OC0dqT|nh^)(>%;XHO#o&4{2t#|D_@4FZ5u zJG(y_TvYcHNADS}{;iZvErK|(*n$cH>Kp2l9x{WS)~?T%JpFvFk5}`PD%l@ieEW9S z%o><}d6GIhG7{=S_tS8RLZH(v_RW>G5~s;d5R>lR9YF_ARFAU$=#=*5c|)+~t#mB= z3s=v?cc6lTS>66Xq1r$ zb#HVhz8dLv8)>|LdD7z~d1K?@F*M^o0y*t`6hT<~NS81{dAWE(-_QsJvbhqM_WptA zrFp)@3Y&9`cJ#1|1vu$D7@#>;MJH=sS_n-&C=HPE+)k^)l&+`cOC!Yw1b zXLY>}YxJfT>#yPoz1{t2v3O7o@|iyldwWd}%=`_gBFi&w&k&{`=lhvFzS=2;zqLL{ zCa2t}CnBcHdfhKH;^21O-9cs=s;VbMsm4@iJ0AuUeFmaWp_J_k#6UE9yXhBm&MuUZ3KmvfrgqqeE{ni4I5?6KEPJ0v zO4Hy-QE{4LnEy>?uEwjLWbJY&`FuGGHYMre6Ma>Z@3y?g6YDkf$+5mnjs|6j_B`ZZ zUwXQR|L)I<5zenYt3mVkhUq`Xor^xp7$T;0?2KkB&7QqN)>tsMjwj*T_fl9GuC)6f z(%3!-BtR zLmjuZduC?VB|@quKT3;hZG7LQQ%=d;;1<2??ok6q9(a}+hBBoQ9jl}vt z9S9qGhIv9v<)@5m^99qyU}MAx02YJ1Nq>$4@1q1VOz@SeA%KdxzHi!lwaOy zU^jf&L`{vG^jAX2U#l-8%0!QQvcw3Pf8{GT^LK_5Dh1L5Q%VA$*zeme$I-&{5nvo8 zZ%pKKU?^?bn$vsP^kMC8@s?71tof>CUL6B|RjFO_e9tBE@75+jt3kXegbDo1#4^;= zTMX*#WFRIX!6Iv8yB|y_Bjd-oG)zLUEZ#0WzI#-<|2_o;k~nutl-OW!XN7WnMr`_< zKK^6?7FF9?s-Jp4q|0W|s=JCOG2FX=G>PK>u!D4)tUZWIy}8>oj_V0!_sMrnLs-A> zrH&7th}f~Pno#FiOHku?KVFV!ou#I#Y@2c?x{Hu)kLbJ4T+Ww>eVQw^e*dFe`n|#zrc&4Gi(L-)b3U#15A?V6a0U+=92Z{-l zKC$<8arsNW*Q=rKNuGlWaZEUdKwK3_;S{cscVzDX)2H-yp&5S(;1^6m^O~O5%ZoB_ z#FcLK=ch|P*Ltyj#TF@Cmfz_qTzbaZs)^e22W^LYc+29l1bKO|#)IDbf%afFH7Olef6QF|6a)T%c~h81#&@Q%<*j;i7DGVduI1Cwhfo{NM7T`MwhH8sT@id z{zN?Kn9{!(;S-mU`|eAObG_RgyPxsgF`@avnGiq(#a&b-PKp_*Cu^sOkB>*Gvs-4T zWl+pF-SJXICKn=}5=%qq^?&vFaY12XE}=u>X&hFNn{5m^U?k}y;8FGj_>8DoFAW?r zX*rJq=K;`Zy}Q^Q-)!A}_`bEdx&GHmwj9yoSudoUs<@nw`DVSsAN+jsR6Xw5wJ+51 zD^#Wv`BF5XHT=?2g(m8Ft>x>S{lFOHC;~F@T<4eYixO`QyP0zTg3A7Z0Zg3_igKhm ztOQ-o)4EQ$MSpv~#x`}ZYM%oqQ;!f}9FPGvwkd)3#W@B^6$B`!o>N!}5^4v9D+xEDHzf`WA%}iM|&dlD8zEsnq4{eV89GSAwZ!PupL#Yrc}j$CqN9UG(H>^=e0V7D<$PAPy@iA0sV>W)kR>zM#G~txn84lfim5A5smAN z(SOG3)x4cZOJhWV?=Re!`oC%@sDz6o6lAQs^Da3@o=%$<5}BLPTYVOr0NQ`nOy1nA zdOtK5<9xYj@awFm5MM7xQta|=eO)q~3Zjin;#0M00avHN&T47R`~qpn2H@LiUZwdH z1DqWn!Xwaf$Y5vN?rIe?RvYl!q#@K3gkEHHv<7$rI&kp`OYg-xvyH;UK%5}Oyy{k( zL0bL0F?c~U);#g_F!l{pKpPk6z&v^7Vi^R8c_|zFqq0i+FS)Pd3SKWbWiG~S9bmK9 z!w7&&cITXVKzt`Ow52f%k0Y%KMQ3^{EA#z_+Wcn=KdvTXKYg_CmrNpe5_5K5D+*7& z**)ZZRw|(c7`H##$-OZGrIAEO8#^4DbW|+J?x<#s%im;fv1suof}K&f3?KW{8MkF0 zhtnQ1larMW|1@)IvMe-hR6riZ*^8j;;nN?87iJ(7V0|v>(4b2~=iE|D3_Y0!2sU6vk*B`P8h;1xcn8iO7mr+a-LLo)6n6_e2?Zdg(+@%ELOH{e;H) zP$WF_sms;79%!#y_6^@o_tPid2{T{6z6g6&O3(;w9FxCxB>fx>LctJ1pu4B%1!OIXP9Zgy)byimV&hTV9m<3m^W!fLSTZOLRL@%5F552ac+JqkLO-@A zKlmZiM4n)lo8Zf7paM+a#vX^=jWu3BrksCzot9eh)J%ZN>L@gmK`$P}dyhI{HO z&CqzaR}`C6pcLtR2=~?0e)5OpdT~C?D4VhAUA)22UjvQxbBnN(!>m$Vz`aepmu0OG zKjiQuH&;$bPW%r&MP6CQqDAnuTda1m*@!!tYb1Nm_2SX1`(SD2`Xa5LHZ%Gx9m!oV ze|GGL)Y*YZFybl;q>W}vg|ES+Xk1kJe$VbykziM&LaUzvY0oj{*%MNzoW3|~7XNg4 zt4AXF|11DN`y8l$+U^0m|4lWhAj%Pj;EMGSB!Q-oI=u!~3Xjdm@4n8(llm>iJ%xTo z5c}Tk=4Bz=^ChJd#pShB!jQ^F^2b+KHUg4Mk6@0}e$MCd@<=!XA?){?AiQ)+gOfi4 zTWU4KcfB~Vf*$wr?(!);{jbP);x?}m;#af-Qmeh7Ql@2%QAOjvS4H4`ByZ}B&+rn>{ z#IIey$n(PF2-M0mX7gX*U94GnZ1ei$Kp*0EXTljW?{E>RMee1`(ap?zjo9^ZQj^4E z1I<;xkD3KsJVEgcXuuaMtJD3mwzbR<+RlHe0+&2C%8yTXBI!hE!E;SmbEv55q%ojz zfSh0R75aiGK9~s~g4jEHc-*dZc8aO0tMi1%)}jNNsG)+uz+S>j_?Y7BSfJ(<`R_NH zp*xV=3R!RvJnbe52&N9ZkJV>x#7EvQBY9BLJ-w&%tJ-#pUN$@3D_U!RicAZ9J%d~z zroN5#50%3@?#!Vki#I`-L=q1M#~)@FH}SVt zQ#53is~hyY&9uJR%srxv_#Fq8A1iJ?dNI$Cc$K(-a%5fJm(9kJp2GQlcJ`+hBy(HU9FGu3!Hltfi=Tl8f@ z!*gb}SetkC0f*Yt;R$C*aLBLRmZwK!OZQ5&t=<*n@wa+P4|z2*RlTqH)`Qb#&PS{- zq{rKoanid)giE^DX8BoX#|Yl3ktE&KZI2ctUcr!|5P4txTU%p3`s7G>+7Z(0xPi=4 zXgv8_ucVW%-r?L~Fd*?9z&3J!TM>u4^$?S1QK215tU(BP;~A=oii%Pu6@cX#l?Uj=*menyi4$0%C*-Yn}!3H)I9i6T2#}GtR zmI7|;a!LtS<#lM^1wYCgQ}6G#JzCmS-fA9^UIR4(@pc9!BMKNFG{l1o-t~5{7%Wn) z56ehx*+2TL+o-kNJ&qYSds^xb&BV)w`drJl#}#>*91Ikc_wF)1EdQhC=HW8__ly6= z{x(FI=H`upRnubSSM(MSlfEd)j~_oa^--Y*nfw2ghN~{d@4}ODfM>(QaaQ4zV!bCqf9AIL5$z9 zlNFv~mJl?SCz$ZD38d!wn%s^ga@AcmAoYASzLGq6eD7#{u5j#LpBpT_>I##>DzBhw zK=w4X7aNZFeoOS!5Wx}Q(~5p!Glk9^uOX}tw^^RrS#pyS*f{b#kg??3E%ogjCw}4c z?g)d7T{F}Sge^gwLMo(e(4%0{5fOHliovt;F-s#N-BETa_GHPWGvW_pxeTd0g-*x!x}wDCh6J6<{!dUjG%j1?xc2u%XTdClga8vo>2bAZrJ0$cdbjq^gwsCdbbplWnP}yS zNSPwaTOztu9mf}WAUJM5$D1lK33I!koW_9O-ygRbgnGL4UVC2@lP$#S5JA^GU-@pU zqfx|&X<1VeW}pKTlT$Vovo>0il9H#0XMiFT1oi{xjTMmSQ{fZd(}|}hTkJ{p;3^J$ zr+6tUVP8k}nBDXa0H?^On^Ian5ib3gpZjRNsDCS_hQ%^ok7PHQ`)rhybx|Szbo6qo z(UY~eF<(|ip(ubN`QtuNtp=Nu{BYUGco~?qb28#f+f+Req7PWXZ(| zX5D2k#NtwH7;zU2ah%pD0-1sKX>3`O-pAo>tLPU4dzlI5hC>y*PwA$AN2Z*Bz^e%; zeTh-LnX|c?ta1RiK`}7CW1JJ;t(;EK1(q@lAB*6Fhp|ElEAaHDMTH~4TrcVM)?M${ zUTAJsb7y=^Vn$qC9P6P25V|2fH@2lT$Oaq-D1H+?dPp&Yd=>&6SC5NdF#MMu2tdP@ zXf);0$*BaI!^!K^itVj)QFHqj1^rTE$YM|pDQHi zXe6}y%3{Ad?eer{I`CGWN~JGFCGWM{>%B{!9OPmpN9V1*26#c zx~%AjDM14oW+n#{s)>RW#f{Z#CAgaIv+CB!)+cdAk*48FZ%t18WfJ-A2;|jC25kp> z3iB>d>^c^(#h*&)f`g^)5lYc(E-k~YJLCnAO#E&CZNrlx=dgI!6|I&xM(R(#Mn%(} zr_S;dZzT)3*-rfJltf0n`$s@4{0EilwKwU>HuQ5ae4~>C?mu4ODGt!$!)z2vQb+>M z&d)pO*sVEnN5149i9q0a+>8)U*`h)wsOS0J3xJ6fqXZ8=ggOF+(k@eQ1MZ-i$c#rMw9ns-=n=|uby- zUiY$CQA)B?x;97^`>UdK=g@XYds=ZQTaZ#ZtAwPjsnFB2G#1^oh-|wd0unlLOQwg{ zw;Fg;Ee5pjn*0L#FGL;qPHS6d&hv>0yd{e!CnqtL7HQlTo;Am<-Yh+FvLj+qBxYI$ zeIAa)@d%T^a+sGayz-R{>ctdP86+vxdRFa6%s8BL8ur)Mz&e{Ez>^aqi0`cX%ZKbk z-Ui?<=_hexP=qQCtdv1#v@qcnr~n^JAUb|;yFW@tb;=bbcUNvx=+*YJSy4g3Qvq*b zY2AwfyNrDUFL|#=^m8v^eCl^KNG-^lXQBqN$W9pcnVswKw7qPDmpARTg3wAHoazDJ^?4HF6C*FCgVTNj;@WJ)wvjruPf+6?x1? zW0OhbwRU|FxVv!p-eg0bt;(5iQAoBhPc2gZ#o~QjS|X6>2YVLOruR6cZ)j72GLB}4;(7e3y@=-D#hgR+D%`o68 zzOBmzDD<_@nLG}$fW#@Ot+qaFa5h`2Z~IcC>Ei;JV!#w5R3FA=ja*#`4U64@_vc+o z$7th$h+`x|i5NNBWTUAQ%8~Y>6Thtb5HYRK+ZsaQMUxViZP)){>f|QIWOCjwzb8+L zbR|V2obl*)ZBI)1{U|2iVTJs~LDF-;{m3&Q3ruh@Rc9&Cq!zVi6WXuLwn#)YXO|S# zKiwC8slI%t(fU!38clWbPx}B3|1H8gg1?sRqt|}A0%1hU&HKFTqwHv5DCQvQ#i%t7 zW0l~EB$<9t+U}v(%WVFsf9{7<(r|g?I&>NILi#*(Q*EFCk^sJFd!7q?pS7#wbpW&@ zkX~*`?KHTb9{iuVGZ;q^HUR-GK9D*K1_)}pE^X3&;j!;tb!Jq$7OIP5$YzH}4`Vf5P5AK;v^i0&IlsRiRE|MjvN z`qzC9f$She&WGMrfMbK}hHHe=Tsh!&$C*=_YGEF9b6&G^Xu*hCE)Kxg>HXo_095F6 zC2(UG08k(kOi0&YOY4t9D5(zSxB$Ujv6-3K>YP;>2?@~kjD!;0UiD@Kgy*qjXv$k# z_4V!@-|9DUDxKa;Gt7f*DmA1E__~H zH13#XJU(TvtSUsE5SlcMPul)Uol>+tUPJ%eYn@sNJtBBdYd_kGdju&hc6B$(XH3)> zbXb{u2mm+4_uTZ^g_O_Q*dkt#A@w+cxf9@XI7Lt&)9Nl5e9D}SFUWC5F8f?BioKRU zzQ_RWkY=w>Z+$&mev418vTk~I(h!%*9NRzpaVRor_!nD}0q1EXkE^HP^S?*IMkXoK z>NB@iG_CHn1V!l_VSF!QU3Z!^sG}O6VT0osN%aR`#Mk%5J~iZn$Ai&dWprB1?_dI8 zF6x;x9^uDqDa1J)y-X{}Z4ecvGPy}rIdp(f6V6f7wQwvNVevIfvdJ;dw5{D~0%v(5K6q7Kf@~aE(ZL( z2^SMKg7vnDZTPanx3Yrw%un(^}IpBEOV27H^$;fnoRZ-EeO6wUmR7XB9NfqnQFJq5< zBn8O)KwMzfS{=lDI67wuF=NtDZJq#;(CX)8fL77Ax|9oBEmpWC+PB(iN*CW7(;(C zkSHjC&B&75b1)rS2nXRBNUhC0>Ezq7D)~+halfGl%#dr2LSFLR@VcL9Biaw?OzrC8 zK!-c<0D-$X*nNOn;{wjTscpXuKtuYJC3V+Niq?avv<-0=*wsW>F<$B*#fyo5|c zpU>eU9B(OnE-6JkMzdMptTp}jB5K)@UugR z(K9-?1fgE6`RpYs7=((BZMF`dW(bMcSO&ZMM^2zSTvR18kgEF(8F(gm7zhGjw9N8K zK#P~{ad1LJHgIq8%b#C2yNh7rC>h!h6_$Z5QXt zil%~}^6Pqm;J`_iviP*AaT*iY`?6nQ`RLm0AcKqL7u^iH_q;|Y5E;J9G+**^B><|< zU9)GUvAK3XJs7Vk^SCaUds*eLhKx!~C2>xaj`qN-jy|h&Y(Cq2EEeGbzc z<9;uU&AA@gR_LJMXlwWeXeWS<*_}1YDNP_mHsd}?+@&u?-d=GGE#UkFYzr>zq)HRO zbhIV@RbP3aCwy1mhMT>#IR4}zNvGV`ES^=9XrR~hSGBL}ugh-OfrEr>QNmV~e_^x| zZ4(W@$b^(*=$baQg?AVl85?=fBFpasLWT*vP*1FM!K6IjTd{Bd%@=)hKOL^p<3j_7 zhr7!iMqfP;^=~*B8G0D1zhNE_NRC`JXhd=}U2q=MA${NC{>rk*)&!0&U}afwOzmE!pD+x)AHPH)7|?IkDl6f z;#AGNk&ykFkk6=Y$^f2l8zz`TXZ#maZ$6&uubbU(RmcOSQKhl9OP&< zr}Fj9qux|0#I>Ibd@LV+A*7@BZ#}%EVkz^VkWF~yW(pKIRD!3kA6PZB8pGc+Mc}yVFSWk$? zuDIzW)Pn$J!?Lcb=+wf`&>RLz@=7OvHkI$~ip3%g8im}^I$_5(HS3xu7F%O!31&QGC(L(=WyR~T8 z)gPc6nS_A5Kg10QWwSqJ;Wr>gDP%3PXJ&fN%FN6hR($u|U&Q41p@Z@+XPWm<-z;{4XJ`jYbX9V0=^}Q*W%pp^+tr8KNyw`+%F|9Xove>{ z2|-+2lSr$-(ifByt)xN*s9=WeX62`2u@2#_s^mZA-f}+b$Fe1IKi9#fjQ=bu{hg#w z2qAS!8=s4|`xQ9FuHhfEV%}95OKa7($1R-&Wcwo)w$HBCSQF#*Fw}hfw*rwG^l}Nu z*;Fv~_7_YV{>v_5aFZwH?{hoK4CQT-O*ojXearAO0#ry|gNsda~a4ZGdwE0U(EpJNG{E=BfoxU^}_ zPr|mPd2V@0iy&)n7zWI6o%l^q-jlk*UL**6tX@2~d6pdwR7XMSJWvMzV zhx&gB|KMJFjHx5U^7>;)+AvUAn@)fLPM#PlV$l0%9eDcSm=A8BUm zOYh>VE@bRC%y;ibEQa;|`}L?KPt$o3Nr7MY`uhq8r0M+hpWw9#5`7aw`82bB{m{~M zUVhiWpi1(=B1Gucpa6W&5ET^sHR;IZj|@mZS@LrY<9BItcHKus%3Ak@9vXPa*?w}n7ue%^G_2oxsL>LN#XH2#DCAt_5pBvIbgrB@csyEQI9X8J!F8d$y zHdFok<;W*zA=@@5ua%R*cW*w+p9|haS{0VBjY1zP*=k!&Uib|0Z4{bPdv5_3{hvi9 zvWhCib|Qcb@axzeV%xa;JnrYu4?;LGsj0Z;Xez`*pK0n~R@CsHaX=EJ{nfW*VNxd_ z6LAyBAjA(8f>l&hC?RkjVWyY2Nw0cIp%5;5-Br4sFR`5B*& z__|lUCmF|n+l|`Zr@GICqd$&j`L7d#k9LH4Wsg`FBJyLikCUxDCXzt&l8!9I$zVXj z({os{z*Nd|1>|k@;;>3fBJplN3FjlH_zbWy z2h9F7?3!bMOSYftA@@)K(2uYL4<9h#6=s9p1zBlvK_>)_%K)!1uvsejYbL=ziMj!Uu*Vv4W??!iNJ6a7*CDPG4WfNTY;n!s_hLgSK7M(QQCX-~bS zCExA8m5%uFRbnk{xzc4!4HM^ugZp2}Uz0d^WV(KmO%xVwldL@oghSoTP`?xtM1hSZ zT|4Wa-mX`y98!0hxd_FFBfx8W?dy89P++x8vupid4F+?9F2fQo=Xo*XBiKbUhXsjA z$yprn@&I0r1Bb2xZt`~!;5%@eof=Up4gK$zG2s1^v*gg13VNu#BUBj{COG?tDQD$( zvmYfRVLM>>qI|xa=|3v}XD2B=oF571yE?ariT6CLAlEh1T-d)C;=UR&K0))2x`N4) z{eUGQrSwAn;a}zmMMZYKh|bMcN?+3vE_$y*`MzqB5<7G58R7OP z4ik`1VxX}H+e>2WO;e_K#`B_;pXBn9j|ctt;2nrTo%vD@5wlg`b{?l6|Fi+pqMmJt zJ7)XF*jS}7_;EP%tP9{ND$$7r!0GQsJUKBj6r^HT4Ul(r_9=UZTl3|G&{wqo`s@Z7 zrTP!5ECdznOE|6)e?fHuFqd1@!{Vd2P3GN33u;~anRmfb4B^(H)OL$LC#Jr~+bYSM zz1%EArOC}3QFNx2{{44v?{@Srgt1`Po7lNw*}~9J_D}(GFUK&?vzC_FxAgqK1&Kr# z0yGIUNlsetkGjBSWKpOM7ZopRR|tOJVclZXh5l}18(o%%U2LQ48zxvtSBEOdVmd;K zO)*w1fj)3g%B2M-VM+^H~(vf`+Vldaj^E94$yQ=)ROFLjEDWnqqtzfHB^c=<=(!=3&H zphs_#*W2m8ebqhDbQh|<=l_dn=k11|M5F3)7rsbDSsOxIS`3^ZUuRI#cLD2t(b2nE zvZK|Xbf#_NQFmOBR{Vf3K#$&jj|w;ezjXEWg%f4r@^(K;wPk>~a2|jE9%Itd_oC0s zwbjBKXaGYVZX&NY0IXP8_AV-X_)p?n6Z=`S1f!ji%*H)mFPH1d1onmBV1FH<3(2Y+ z(rV!41X{h}D*eR)84E_JD!9#tk!5v6j?2(4E*HnH%)cUcNQYpO>v&Jk|sUiDo zN5&(O!>*Nh`Bv~pmCNXjZp|-Uc+q4F(T|D)V=kIto7>G{-7;+0iit`M0`5blb`b)W zsupegK-)H~YFJn&4ueBf zr4G9AVa9g9d299M!37c2l}jksGgC!sDGx%ACDayRgyIh)7++9$7}5vk9(QUeINK+V&aU@K20HXNm6O{JE}O_&)WP| zC#|feSR2phT;?lo_rGwdN|DMt=(1sZADus*4y-fJR5wy`=Vm52P3=c^GzhQt(t>d@ zeXuKWyhx|;-01df(;YN7VXnSzHW!pmt8IIQMdj1_Ub}Z`J9s>}L8z=Bp^JY$E|38L zJs=|?s%pE6$g9$~-YEGgf-LnEZc_jVk*i0m!%ti5oMG1QD zb7^}S&+dKgSrCdOvkfEElJ}1ZFpEt-OC238Oh0Y&7ltpX2z>f-J>QdibCcPe zKXCNXSi_EDJ8DkcOaF@Yln=2boMj)IW&^gU1w^))4iE}89aj4+y01re62X>YMg!_# z^h~fe0?;-8g};(~*LbG_cF%M4YviD3yaw8z)ow!wGND8*7z(+nxcIP>A5?M{%Fo}w zcp-!HO@M*@B;xY=aGq>nKnQ&OF~a~SuUp1jCeI}lvf`d;Ychf3&qt&MI4pl`-!r6( zNxgpjft<%TiBiJVQfkTk=TGAoztTf-3zDTYYA~U6e4+dIJIy%M-bPQJ92PBib|+kd zZdNpiZA)!zP~m3r5xj$HzU%(%uR~9O4?l0|@|0X2Y&8AE1-0h9awRvPZFWLhpY=JFwdqUN$;#8EgOIn=xCu_*k#=-C%R=~L!^ z;a8e=zWIC!*tH|E>S|9BtH!o9SdMx0XK(eSwhqpgB@Tv;Sy)%LA3iC$wYBL$T+;OH2DBC5R=i2MmN_b|^SHI0MoIh?kQjX6DBPjoTrSrg^;|9jtNU1c~JwVwTX zB}o~n>kKw1{t|D(C0MGN=jWd;KrNU zLatmK1Deg->PktAz_~mMG zZ|5=?y??itV=%m8t%Jc@kIKW?OsbEz^nC5R0=b7SgJQiUedX6(7DGup?C@_s7o$=$ ztwQe$5>_j<@*im(x}WkLR*#p1Z06TFwK{$gO&Y-Km!A7Bn3E!Gw}t{=bXs?u`B?5y z0HwKfi&G1$B2wTfCz&@Xb-5;6F*chqa<0c900Ut;0mV3^I4lJWy9#C58idh3+NLFS z-9)M>#<#7#vM?WepRX-61jfEqZ42P4G(8ZQR$CdyHwg(Yi=GVF4-V?C7A5`F#Dt6T z^@8+RNGSOtu7ZB}KLglB$XDn{W?1+`H0^75K#I<%I&IPQw)FuM+&THj+X`H#L%|Q6 zo}MzG0{@349=a--V$shQ`2U6^6BC{DEq)|}V}KhvEnT2MAZkAH-3$!`W@3_kx30tN ze!G^6#eLIclKuR#Tkf61$dJDDKWpf==S+ZLY=XH>&vlvGay8f7Tj3s%*JUx;YW5FR zs{JZoX_`J^mbWrIWux=f;vaQv$T2ct$^=iqi4Mn1F^x+r2leBZdGJw&1pv{!!^~5< z11LXQs-FOalvGs9Tq%F0zW)-di*xNTA2R6msS$%!j^EU~Lx34=2FRJ)OKH~g6AUiH zXD3bJnT(MHu#4x6e&VlNwKapH=^~;|6fcgNcmK>b^%+gQ3XI|Bdpe{t-BjY+Dou1JlLM|s>-lpm++1(Tu5fBtoaN}y;RpSj>yi)n4H#}6leg5 zp39G@2^KRBi(2saEu+vQ4ogsX%Kk%#jXx463|_|mH5bqlT%3%bJk~j!GSPhZo+Sj! zUqJyI5cCF|-eo1A0!uTk7$`C5^rT)KTFU<5LPKzrP46od@C3Uv-9Vj9v#nB$j?uMJ zU(?HQM^vWXdRKYse9FwCkQ-t^n&QVsI!V%|GvWhjFBd0t7+dt26urMt?r#{$j&*J_ z8zfbU;uR4wz<^NLXkf>Tb6Jit>AJ558_7I73gb!0%r(#T)4_ne5mds1511A@H|W}d zr0uyN*l+Av@z+)$v$T{w&5XeeQ&jTpH#Pv#|J)SywSvbZ2!u!VG?0dez72gI2XOaM zf&a5qc@qRMf8l+l`b=F=H#BVF==SV@zdg!FQKsv~^~Ln|v$Or+WxX@F@V&uX;TDm` z_oqe;9l-ls4YLE87kd;+S7uY;wbe3!MV+s-mKH_p?G_d2XA5n}1W#ya2!q9pju2Zg zcM+>keN>$F&vtOC5&*F$jyHy*!e4-qs!lzGv7|~V8Fo!!;Wd;m`}c2i`q39c5Nqe# zaTI#JhlgTrpnX~9h2i0;@C!rSn4hzd)X|#{81(O})V0*J+1v7fbYcCh;h${p>za@>tw&*0J?) z+E%j=XQap2;>M&u)a)Ws7W_^&O+G!iU2$cj*6PDcZ`I2?=B_mibsJxqX=(R6Fw2~a zj=s#WcnjOg!co1E@cV!iG!SGncx5vuNh`+cDKLN4^_U@)F_A(O_~@?~f$fKzxI#F; zxjCrSos&+x&4_k6ult#HxAfwpME1@9%u1a1&srId*9)QNr%FfO_<_~Ayxf9(g-K$8 z74`dsO3u~-&1XmR*$%b|58vkOMZPGGX_ACIx1J)qAX+g$Uiz;U6fB8F)z`~EJs;^l z_gq5wtQzdZC+2R+tL*fVPUKcz1>D|CnsjPCaIY`lr+=aV&_e?L_BO~6V|YN1QMx+@ z9GCC4(1AN)3cpiV?W~TTo>F9iG+s(bfF2UVuG3RX6+bJq1&bKJ$~U~vW-o*<%*h!` zS7M@H;dhpD=Z?(-rOAGUe`l0s*4SPst}*ekKKktAgka9IND3vnwC|+5U6k|H?)42u zod0b2rB|aUK=s2?O8@VwNza$tP^OZ{WZ=Zzn!OP_!nV~y@~%Jyz!~T?q<<6&16m=~ zpWnZqEr{ABt*ri#yb}7ms7oEKce(sUu*)YC0}W^gVLA+1;`A0lj1IoSf$n8n+57=v z4|ST&o!Hr%SeP=(^98|w_U;VC-lu-wElY=GU??P{2~O5?jdVXj#A7l;E%(3X^wGUL z!HLTS$4CFQUV)85mfyh6DUw-noO#1ONJ+MUHHNKX1=`Iu-#pyHsit{lJ^{vdswizu z@&>?k-GmYgI+RVv16cPWs4Po2U2##-Aj?g^NUeHd;*W`_11iWpuyS8nGzi}-V`H9m2K25)KS5Hp)jHEp=fRb0iuaA=C>!|cE?S?EiicN- z+XsIyB9%uS8VwrCy!WMR{t2oLqAz-u!$C)v+LR<0RHMW+*q}kr=sUAN6vN~_{>4!S z)SHXDjF!i|o6hZdEsj#JAF%@>&rwMeOFxsik&KWBa*f&iZa{Jle>*5=(*)d0Iu_(| zYm2ThOFyO;5mU!<5hH82FDilG>mII`JC0aICkY;V0NmBfubj|CK;-&SyY3QWF3MOj zHFk2QE??!ESD((Y&RY!tBbjlh6LXm9wA0e$S^ns;4=CR;0$z5hOrc)MT`w^m)+_jG zXEX%5+wXw(lFz^k_$CU>X_CQKng5JLr}VAr-iTkw0`$;vLh9t%Y6($zu0BWXD=e4)s zXey6eC1i+3-RTkta(FW%b$?EKsERk(T<5-{HrH^YMHoZu{QJ^u=lqhC5>QtAs&)T4 zaaamtfRyRs5va8vsF-l=yCf8A74R!p2KQ`^LJMfRe91MqY9jx5sZ4O}4Sl&nw@B!q zK1#I1k3UL}9Rl3Ay=7#0a2gRoC11K5|-UGbV@2}LfyW6-wcMp|bW0k%YP zX%C1@Z~UcChg_qH%fhrlmyeICZvuc>{-^Hft-2awET$rm0=P4~y%R>PO5DG&=CpL^uZh3KY^Cs6jZxW!Ah^p0f>7Vzco9OHBSr`92 zbz>+}26`>X+X$eeop!M@aS4Y!Byos01XvyDK7>H)Hl|yc=;1Sf^Q_BLQs&dnbIy9N zTQpxwHZmSL^&DGU`>d0!EWf^d`3Pa3EE>1^MpZs|-0nYtY0G%2I;^}Utv4`M#$tOF z_;94vdppD^?}2!3YAqfV29c3{QaOA%aJy9M!4LSmC%<3(ZgtRNgeMSS6|@0#^|4IU z!9w61o+>K3di`^0?IuyhP*4Nu4KOKs>@LS*B???R=LN9Vw4-2;AY(Bx(3altk%%9E zjVJV{xW--pkRA;OO+DIzDRR?_v$LUW_$uXD* zu3MItC2=2JL}8#!_AeK`!lN>9Oyo5{1Q%Ag>?u7Unv?-C?HNU=P#4GF2OqzOob3=K zHn&&sq(2`FTBi2mGUHwiY;K4?7<}#8O(Y#+X%#`W`Ae-^r}A}UkV@%@Um5JGpBLNf z(|ltOp2mTKd~n$1!P*F!n9Y|MbDPO(51FNRUKm95@FW>FlV~{;0?Pf52{AcQ+2@Er zYbf7c!*rCZ;lcF|bCYS?K=$8Ie!(k~7z*mXtj|u9(r^#1%?Gb=Lrl@;w9(Aj!kZo( zx=*3mcet~{oVnrEz_-Bd>CV84LvKGH!zp}F)z(Ul<$!{O!oa}5l$XXyLrTVKk-4?u z(Z#0h%t`l8N2vQ1ng+S3?077(qN1X9K~u|HMhGY$*Jq#3B0zFu6vmV}k-VhY5EI;7 zy%osi!ByznhlQq5qQQ8sx?wHT@$E)P`uQTkO7haCmPw&+fP~Q4in8a*%T1%IAXF{a z5OI2A3s**MC~lGYNP5G5q7ojOcnbCh1j^yh_o53^U4(7{LqJc^qQuI_if*&9(9`9q zXce^lNzO0|LW3Pr*%!zitm=nh#Z|n0ueL5}>*(;+`EKl1+ZqbNz=4hxqZnjk978!c z`TfYCln)9#+s4cUba7iAjlK4vBOE=8BX8K9IJ*0lwYIrqap{WZwXGMX({`0-baIZ%9yfL!WtU1)c_DQOJ*(R)8IVS?bSd7$V&|5&|Dk_&h1Yf zZDf54Y!7B3X`?vtZn7m>DQogYDO7X3WSw^2?II4t#rJIGt%+XFz3H|p%9ZyV5tyU6 zb6~!r6gyK~g3aFP0sHth!Ty5yNc{Nr;Db#Wu!8mK#x__EA9oshuUm2P{Ct1@D#IB;WJAe4T1m5tQ3a0ul?P*_gF+N~2F5HH8Gt7zB`W(oxq}Tp zFrX=+V__*EeO15vr3~VQ%AW;Fk8}%lfR6J^hZX@81s3*qGik zD^7v@T$~z3-%i=I+faaz&93SaLcZ+q?r4yk=R7sSc21pjrtG+;ukm>Ehu`%i+HcRg zzCO7@CRl%|^(PFwc~f5Auur{@X`Yv@Nutf6 z)%Qr*qc|l_Y(-R=u_@m)d7^SIxlGreq`h)uffN`B>Kp{KX+dMg8-t${6FOg2v+Hl2 z@3B_dD*~>YZV-o*(D%}Y)#xE}S2Y0HB1|;7jAuC`l~M5$J+xQw!Nv?ChW1Kb)tyUC z%i6VjEt@9qzw8OVKSu5E9ljsH?PR?*a@)9i>(rzQe?)J2RAagS((UkT4ollm2o-CV z{!CpoYd}9QsoYY@m(;5KlGYX&0qr(8q4Jq){f??W%`gS?BH0H>#=%GX6bH1+5UIel zjG&6|TE9P5u;t-@KhPyM*`tHEzGFEhmF(gn7m!E%5S>Wb;0y(Nud^?jexWBy!aJ z5Zb(FXlyxjLsd0d6ic}MCaM010pZ7y#~c(uKE%SM6RMbWyMUgha5_KX)KmiM&P|hk zOQkIRU2^C8bc1;p{gRQ11N_Gcw+WQ1=?C*S{2hY9ke-K&DgZUDnUIY!JTlm{_nU60 zYg3^zP`gAq<>&mO@d&q(XKsUd+}h~E7W{4PYk#O3dD-LLnXvY5-=^bO-P7@zSNoEK zAz%l>%$M7UO+xd*5UQ)|E6%1}&2t&}Llo-nCCeb1i`}Fqi!S|2?{!c*#{_jh-)RL) z=4oaDZcXc*0)PcoJVf)Hh(x+_n3s?m7D{>@B5Z(AQpwcUXr}0O@v#;&bM_{b zC%nmMA64_ZkA}%~@X#?FIBujGdQSsQg@^F~EAAizyrA%Qt&)^Idbsk^W)>dTsXgw0 z7v%u){H~ZDgfj~M=5O9SUKa+4E%G5|DLZ{lt}8tdvs2^mrOAPG45>swT^XOgr&>4>D18H$s05i^XY=WCi>6vbmf;$ zi08vzHQ-e8Qlsz^U0-a1US*u495m}&;kJ8vAEM`> z#4XUt{-d+)7%2of`rdW7YT>ElEjntzDD$gcX}Wr^w%ZTmDJc7wM4xwAL3_K-$<4=bYg>>rzNXL#$|+j zCloAQ$cn?A*e|?|p{@R)c0UqA|bA0vr7XmzS5>Pfff^R+V9x`77sHc?1sh z5Uc@G4%&Oy6%8KpjU1%pr{a(JqbLwufJX8SOsT#!3Uk&~z1HtOg&&TO2g9-~BA2_Z zHT&$lPw5i#0$u_(-w@{l%qy~Nvd^SkDB7%T-NHA|=x?z0wY5d=z>sv3z7dvdpKNi+ z=a{6%{ao)hj^`f_+~oprb~I>JUS!LqY{B77_22V$2yk*}LJ`?QXNR~`2~~2XHI7;k z($d;`1cBJxVow6xc>tz}^!2rMbSSAea2!jctf;Jl-tf0lArO1cHM-Tt!gG=CH(l&{ z*2m4jx2Rz|{`7E_jj(cs`KYINPtk{+#s7TKEWB$q(|^StbE$pVlBX8iiRf=*>v-lG z+VJ`DsOT*!#3PA@?fB=1?QwMv-kBI$frh`{D@&p`T2!Y#vw)WpDVVrH14@ZPf8pc9X;d?xM%HNtUl{u zOt=hYSh@bRhTqz) zFjR&>lBMtEi{n`V_~;?16;A&eC4qhSZ?RDFl0feH0Ebdl^m-fPPPH7=!Zt?#G-Pr{a3 zkU_oP23cutd0=?2yLlC-T(l}-Kdpp1RS*4^GHsd;?K@Y^#O<=2^?`>-bi=3D!vAsA zd&`WNl|>=G41kFb5WUO<@&T8|InQRzhQCFkcWG!xWi)o}V-`gN8GgW2N^a1bP*pFD|Pu zx!xFJ_*@wSL>`EucJ7{{woXwktc}bcLp>Nkh?wa}=?#_@Y4x(#?%&nH1$8;n*wEir z7fE_bD7JWPP2HEWoSO%p{t57zpInoWQ1H^?O_KEu2r%0KOJfY#YGPf_SNXLjCzv^$261fXZAt+vJkNWrh&xjrS8h2vZoS^-+0Qkeeq<(b z$=9z5|Lwc>n5K@ry%5X6{(x9h(^3C(fckDKnq(Y>Lp$du-{+(ud(An9^=UFr9 zC?O$1+)Rab3lO3KY0_`9Cgg3iDCwD*yKgaIP{;NB+A5v7Jz^=N+=L5o+b03DA7O>X zle2zxx5-Q*sY6x8y>Xq5Z01HW<)ibwI`L_5o3|OKwHJS~x3ohwcm1zMG?<5BjLp3O z_RP)G^YhTHkL|eL4;xK*+1$^r{39GlUWbCFHl{@Yh~X z>QHFvV@jn3M>sl1F0bnq?zipicu<&QS5;UC50YEddoQ8+Jm8S0>|%0gI~Yb2*M8n0 zm1o5PQ3l3$_{%oM^YZgoBEY<6tI17A$D2%kd)D-{!*A=B8Vd?|wAY{n;N0h!EH7TC z?@!=U&8E_7zU8oO_bLS()=_1v$$RaQ#(rs>iCILVP6slVEw=(L-B()HR&{kXc<-*JDK%+p z@ui1jC0vO8YH|h8VP+-kDdp;AaXO>WnX~7hz4%Ms+Hv~j0)44|^)dvSbsy$LFCC&EDYK_kkXOO4y%Emx{93I2K;$mUdpQpi7C8o5{c3kJd4c~P&W zh0AJ4LSp?9a?ss*s`5VS$f=M4PH+x(H4I|{nP>zW zq)u$>r&Iv3w*-{v$4^}xVOg&(E)M8aKfYBt#(49o!Xw_FZ&l8OxcgDMhw5G|$KPBT zC-d!VW2>#W0;J=+>vntRA+Zx5d(*!x0h^y8-{J5DG}vt>I~6P~*fAXP{i>vxm`yt* zbNd;ecP>h`?w+SP{&#Znd9-@w-c-bhV4}u#N%{G)-8-7+TSgjFlY)@8#EyknFz?ck z3 zI<8gq<|8f~Yfly<_SEwu^!!*mB|t`pQeopmeqYGhRu!-9@}T+v6dBZW|I?fkblXcL zQ(_q7L2Dh?v0zn};N%eVnO!JGXy;}^nH5XKEChwy%WM|ze4+U?w9`T&`W=O|7z9lT z^Z}GBw*ZH6=s3j%5Y+P=`96YqYhvRoW=a`|c>a9F8n3Zi+8|L$6g+vD1wL#;G=VrGL0 z0@le6bLqM#bgtmPtbF?BCz0KpdD3bBik+J0_ta;FO^?_diEf#vtoY+rzmB+ZDM~3E zq|ea+LT#AspPOJ=G6s!MEByHH`xtz#+$Q8nmsNn%~-s7arkaFfwv>_>VP^WKtAEe@%D3sCRIT1Q@AqI*do`x64SEY%B1Prh>JP~(W-bU_tS*e|( z>qYcPkbAHgx-59Z+50DhaW5PA?4>oS!G~kdGr(aL1E%)rLlSbSMwstEW+DOi&6#L` z{imxSkWd>MDRNIE*rNu9^(cpF|DIov_<6a(wv{rRA2~$Cq>FaC0{CJk>3}9?bF8Ln z;GJ({Uy!`)Q0V}!ArD3;WKtnCn&Gque?!d}j z4#zK|icH&L_-^x-Wxp9ApG2F-9R#~};ivOWW3~Mq78OVM#hbR?V<&zC%jr|LP4y$q zrgEo)4J(~gE?oO2aU~7#N$&wI?=fl7oHe)V#s*@m**@*y!@~XSOAV2Sh%9^&B$WjC zbh_mK<~ACRpV&W3id>e^D8!qJK#&`q*3Kn}XHRbt0~~PPKnGxwvvi z`Fl-ui!wM&hma%Oq?e4oS$~3hgwX1ibj^=-Vg<5PkE}hT1EzQ5-#pywRXJ7aL$JC8 z`w7O6b8W3ZKiVN%?pN@|HQtfFICHIC{eD!*{nbLSJNnQZ9>u=YcR!XnFTdVXNa6Qb z;A_jL-U0y)vLD6BSA?ujNN4M)7eZbAuc&#B{BCF6jeE{ykI~nbeRNH`$!Y0f@!mek zD|k8Wu2`rdjxYgEkq#Og1PNuW-DZ~g3sjcO}f{$=eziJ zSG*$u%8o5**qav58jXuDsvaQ86&w1u78fZIC%<$wQR~*{zb_HJ>`IgN6DCH8i{DS4 z0x7lSWZM|=Tv3N8j)~v!^>Ia2>0qB%uJvD#T&R!6C0z8e+Cewngh2blMMpa-PbZb{ zXLb%t8@I>t+mO_8L-BZ7`7^&6-MovKwt-^>4vxupEc=~3XDo^~M&HEtnj7_R3VoTO zA^5U(_`uQ)s;M!0ROmKsj#$4O*cZ_dFp$Y=eJ(L@yLQfa&iiCWi|PFB_)|z9mBaPy zdsWXa9xxD7DfrW|9DTm_4CUeW&=~<`2mUip?Sljz)y?pDzj{QA_U68NIt&g!5!Zmu zlJ&ZobJ1d8m4E(o|L8gi&rQ^{oK{D?zU=t0Y)Bel7*V{;CVrq4Ecs3A!J7RC-3-nXf|4k%+VRGm%o zz%pQAK{4F^aHvjlk4Lh{K6UJ2MQTgruehm&Qngb&{#SrUhmTMtGkElpz#7cvHi( z+yT#)I~X=q`&Jn!@0nHc7Vn2}apgRno3m9Vwt*4X1U>F={XwAvOe3My;`g{{(IXg> zD=&b$8n9>ojK7ZT?>gYn4rTUh!2Aog16%%pGEwtAh4dbV2H{`24N!l7jB7@BR>1AK2+%_`~^Aa)`&AcP&(lzMuOPw%<{)Z|;z zLdwa1h$d=`JiMOL%19bM+1AFNsBxPMHm`?}crA4MB*^e;U3VAQB^X&=0G3b04hae`k)!tc^SA@gxCUDyOwoL`CRH zsZ_53dB{;D^vTc`2n{F%&@NKuOAS#5=o>^u(cxZ9=TJJp4hiZJtXP9}*8;4&p%=vI34yIgfwVW~z4+hE=OjIzFQAi@l_emx#H`3;152zDfR_ zOnyNj-$bxK6Hnft6bx1gY%3|R0V7AuENHf5j)?%2J_&FgJ@N|ZEjxm`hojS7Yb&f+ zumA6sUA_s5VL;ifaaA-pm z;5=R4?-w1C3~NI??r2@g zHN=6ca|2y5=JfQcAH$X}@sHh^JgAfHjXo%9Q{n10jJOJHwEbFQFyY^CH-H9Wb+T8# zM2l9XK$o*|0vSuenURV)38%3}rGc_AY^Vcy!jE5Ty)>&C8%IpWNM0bw)0=zu;?(!u zNsyvaAyj8`nF346CSKX=y@X3nUM){iDDrhJJ%x)H3<0{WNZI{2>ApyAYVq5M%;8tf+$YB;dUOhHo4 zX#iLqNk*jJR71Rr4DZkDVI|NChIcy)qz{d4wWGEP0epq z9Xd~iFImTW_6&y-$n~uXDC_`Ft@LH+<$Txr>c_$1$SP3_1QR>|%#!|qL{XogI)tL3a5NJ%DJaRgseV%vVMn6Q3c3GSG zAZE$$(4X%zS-n%cU@`ZZ1X*YxCmjE)etfUqi*z77y5-6fr~df^8bbGTJjtWbQO~h= z5sa9R+ce+GA3;~H;O(x3oj@%={qPhqo96mo`1U4))~_znqi>3wUyJ!YewUqK*w0>0 z{S7`Ud%2;;V$-jq=ItXokh@S+@usB-7A{gTS5sAka|4&KzVK&a)VdIf6(OqPfDPm5 zr_{A#OI5niy<%Ni-hd1~H1ln0H}t}!lYi{r?LkU&Vgvx=18ehb-rCyJsx;dRGEtnD z-O}t@qTXCbO=%)EP;jxSqXP2a-@#moDmo@c@68V_5_HP?1)vLj#5t2td;qEufCT$3 z(s%U0bcY-HUDGl1msR60d#GBp3nVqgtC>zoH zE&N&5=ijNLi}Fe(iKlN%<1#hXce=rt2Q<9Ksx*1-Q z0I+{WAg^b5T{oKc4oLR0T3>$pcM~w4H0W8K@txS%N6%12Md`K_ zKoI`%2BIF{!<)^bQCM@1d`Vy`4#AxKmQl18IOx|a^qy~PgKO#NFwa_7z=3Z}>*S-a zfI$^h##oiFsp}P_Byer|@tEb`lWU_z<6b

VuQmbE41bZW@Lrr{fd!?wzAvN8(Hc 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 literal 0 HcmV?d00001 diff --git a/src/Stubs/manifest.stub b/src/Stubs/manifest.stub new file mode 100644 index 0000000..5044530 --- /dev/null +++ b/src/Stubs/manifest.stub @@ -0,0 +1,16 @@ +{ + "name": "Laravel PWA", + "short_name": "LPT", + "start_url": "/", + "background_color": "#000000", + "description": "A Progressive Web Application setup for Laravel projects.", + "display": "fullscreen", + "theme_color": "#000000", + "icons": [ + { + "src": "logo.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/src/Stubs/offline.stub b/src/Stubs/offline.stub new file mode 100644 index 0000000..609a069 --- /dev/null +++ b/src/Stubs/offline.stub @@ -0,0 +1,26 @@ + + + + + + + Check your internet connection + + + + +

+
+
+
+
+
+
+
+ + + diff --git a/src/Stubs/pwa.stub b/src/Stubs/pwa.stub new file mode 100644 index 0000000..016abcf --- /dev/null +++ b/src/Stubs/pwa.stub @@ -0,0 +1,46 @@ + true, + + /* + |-------------------------------------------------------------------------- + | PWA Manifest Configuration + |-------------------------------------------------------------------------- + | php artisan erag:pwa-update-manifest + */ + + 'manifest' => [ + 'name' => 'Laravel PWA', + 'short_name' => 'LPT', + 'background_color' => '#6777ef', + 'display' => 'fullscreen', + 'description' => 'A Progressive Web Application setup for Laravel projects.', + 'theme_color' => '#6777ef', + 'icons' => [ + [ + 'src' => 'logo.png', + 'sizes' => '512x512', + 'type' => 'image/png', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Debug Configuration + |-------------------------------------------------------------------------- + | Toggles the application's debug mode based on the environment variable + */ + + 'debug' => env('APP_DEBUG', false), + +]; diff --git a/src/Stubs/sw.stub b/src/Stubs/sw.stub new file mode 100644 index 0000000..d3ea5c6 --- /dev/null +++ b/src/Stubs/sw.stub @@ -0,0 +1,47 @@ +"use strict"; + +const CACHE_NAME = "offline-cache-v1"; +const OFFLINE_URL = '/offline.html'; + +const filesToCache = [ + OFFLINE_URL +]; + +self.addEventListener("install", (event) => { + event.waitUntil( + caches.open(CACHE_NAME) + .then((cache) => cache.addAll(filesToCache)) + ); +}); + +self.addEventListener("fetch", (event) => { + if (event.request.mode === 'navigate') { + event.respondWith( + fetch(event.request) + .catch(() => { + return caches.match(OFFLINE_URL); + }) + ); + } else { + event.respondWith( + caches.match(event.request) + .then((response) => { + return response || fetch(event.request); + }) + ); + } +}); + +self.addEventListener('activate', (event) => { + event.waitUntil( + caches.keys().then((cacheNames) => { + return Promise.all( + cacheNames.map((cacheName) => { + if (cacheName !== CACHE_NAME) { + return caches.delete(cacheName); + } + }) + ); + }) + ); +});