From e782f3f36ebe613bee3ed7b6748d72dd38cfa04a Mon Sep 17 00:00:00 2001 From: Paul Hodgetts Date: Mon, 27 May 2024 11:31:59 +0200 Subject: [PATCH] Initial CLI scanner commit (#18) (#19) * Initial CLI scanner commit (#18) * Initial CLI scanner commit * Update install.md * Using bash not sh * Update for CVSS and temp removal of description * Update to revert to v1Beta1 public APIs. Leaving in most V2 code commented out until agree to commit to main * Update to revert to v1Beta1 public APIs. Leaving in most V2 code commented out until agree to commit to main * Update to revert to v1Beta1 public APIs. Leaving in most V2 code commented out until agree to commit to main * Removing v2 code altogether * Update README.md * Update for SaaS * Update install.md * Readme Updates. * Readme Updates. * Mock Update(s) * Test updates and removal of backend tests that are no longer needed * Update ci.yaml * Update image digest for tests * Set original test image * Update image digest for tests * Pump up golang builder version in Dockerfile * Updated tests, commented out backend adapter (#20) * Dev new engine (#21) * Updated tests, commented out backend adapter * Update of scanner job logic to handle the sysdig-cli-scanner container * Dev new engine (#22) * Updated tests, commented out backend adapter * Update of scanner job logic to handle the sysdig-cli-scanner container * Test update to cater for new job spec --------- Co-authored-by: Aaron Miles <132866139+aaronm-sysdig@users.noreply.github.com> --- .github/workflows/ci.yaml | 2 +- README.md | 46 +- build/Dockerfile | 2 +- cmd/harbor-scanner-sysdig-secure/main.go | 19 +- docs/images/secure_as_default_harbor_ui.png | Bin 121426 -> 266085 bytes docs/install.md | 128 ++++- go.mod | 78 ++- go.sum | 580 ++++++-------------- pkg/harbor/model.go | 40 +- pkg/http/api/v1/handler.go | 39 +- pkg/http/api/v1/handler_test.go | 6 +- pkg/scanner/async_adapter.go | 3 +- pkg/scanner/backend_adapter.go | 9 +- pkg/scanner/backend_adapter_test.go | 249 +++++---- pkg/scanner/base_adapter.go | 68 ++- pkg/scanner/base_adapter_test.go | 9 +- pkg/scanner/inline_adapter.go | 49 +- pkg/scanner/inline_adapter_test.go | 27 +- pkg/scanner/mocks/adapter.go | 2 +- pkg/scanner/scanner_suite_test.go | 2 + pkg/secure/client.go | 367 ++++++++++--- pkg/secure/client_test.go | 156 +++--- pkg/secure/mocks/client.go | 19 +- pkg/secure/model.go | 4 + 24 files changed, 1087 insertions(+), 817 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 50832b6..a7fb0f5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -44,7 +44,7 @@ jobs: run: make test env: SECURE_API_TOKEN: ${{ secrets.KUBELAB_SECURE_API_TOKEN }} - SECURE_URL: https://secure.sysdig.com + SECURE_URL: ${{ vars.SECURE_URL }} docker: name: Build Docker Image diff --git a/README.md b/README.md index 84887ba..2b09615 100644 --- a/README.md +++ b/README.md @@ -9,46 +9,20 @@ The Sysdig Secure Harbor Scanner Adapter enables Harbor to use Sysdig Secure sca This adapter also provides a service that translates the Harbor scanning API requests into Sysdig Secure API calls, allowing Harbor to retrieve vulnerability reports and additional information from the scanning adapter. This information will be presented in the Harbor UI, transparently for the user. ## Getting Started - You can follow a [detailed guide to deploy the Scanner Adapter](docs/install.md). -## Inline and Backend Scanning - -This scanning adapter has two operation modes: -* Backend Scanning: Image scanning happens in the Sysdig Secure Backend -* Inline Scanning: Image scanning happens in the infrastructure where Harbor is hosted - -### Backend Scanning - -This is the default mode. The Sysdig Harbor adapter will forward the container image path to the Sysdig Secure backend (either SaaS or Onprem), for example `docker.io/alpine:latest`. The backend will use this path to retrieve and scan the container image, providing the results back to the Sysdig Harbor adapter. - -PRO: -* Easier to install - -CON: -* Sysdig Secure Backend needs to have network visibility in order to fetch images from Harbor - -### Inline Scanning - -Using inline scanning, the scanning operation itself will be triggered and performed on your own infrastructure. It spawns a Kubernetes job when a new image is pushed, this job will communicate **only** the container metadata to the Sysdig Secure Backend, which will perform the evaluation based on the configured image [scanning policies](https://docs.sysdig.com/en/manage-scanning-policies.html). - -PRO: -* No need to configure registry credentials in the Sysdig Secure Backend -* No need to expose your registry externally, so it can be reached by Sysdig Secure (see CON in the section above) -* Image contents are never transmitted outside the pipeline, just the image metadata - -CON: -* The job performing the inline scanning needs to have access to the host-local Docker daemon +### CLI Scanning +Using CLI scanning, the scanning operation itself will be triggered and performed on your own infrastructure. It spawns a Kubernetes job when a new image is pushed, this job will communicate **only** the container metadata to the Sysdig Secure Backend, which will perform the evaluation based on the configured image [scanning policies](https://docs.sysdig.com/en/manage-scanning-policies.html). ## Configuration Configuration of the adapter is done via environment variables at startup. -| Name | Default | Description | -| --- | --- | --- | -| `SECURE_URL` | ` ` | Sysdig Secure URL | -| `SECURE_API_TOKEN` | ` ` | Sysdig Secure API Token | -| `INLINE_SCANNING` | ` ` | Enable Inline Scanning instead of Backend | -| `NAMESPACE_NAME` | ` ` | Namespace where Inline Scanning will spawn jobs | -| `CONFIGMAP_NAME` | ` ` | ConfigMap name where Harbor Certificate is available | -| `SECRET_NAME` | ` ` | Secret name where Sysdig Secure API Token and Robot Account are available | +| Name | Default | Description | +|-------------------|-----------------------------| --- | +| `SECURE_URL` | `https://secure.sysdig.com` | Sysdig Secure URL | +| `SECURE_API_TOKEN` | ` ` | Sysdig Secure API Token | +| `CLI_SCANNING` | ` ` | Enable CLI Scanning instead of Backend | +| `NAMESPACE_NAME` | ` ` | Namespace where CLI Scanning will spawn jobs | +| `CONFIGMAP_NAME` | ` ` | ConfigMap name where Harbor Certificate is available | +| `SECRET_NAME` | ` ` | Secret name where Sysdig Secure API Token and Robot Account are available | diff --git a/build/Dockerfile b/build/Dockerfile index 9d51984..2ec6506 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.16 as builder +FROM golang:1.22.1 as builder WORKDIR /harbor-scanner-sysdig-secure COPY go.mod go.sum ./ COPY . . diff --git a/cmd/harbor-scanner-sysdig-secure/main.go b/cmd/harbor-scanner-sysdig-secure/main.go index e5fc540..6edfba4 100644 --- a/cmd/harbor-scanner-sysdig-secure/main.go +++ b/cmd/harbor-scanner-sysdig-secure/main.go @@ -53,11 +53,12 @@ func configure() error { pflag.String("secure_api_token", "", "Sysdig Secure API Token") pflag.String("secure_url", "https://secure.sysdig.com", "Sysdig Secure URL Endpoint") pflag.Bool("verify_ssl", true, "Verify SSL when connecting to Sysdig Secure URL Endpoint") - pflag.Bool("inline_scanning", false, "Use Inline Scanning Adapter") + pflag.Bool("cli_scanning", false, "Use Sysdig-Cli-Scanner Scanning Adapter") pflag.Bool("async_mode", false, "Use Async-Mode to perform reports retrieval") pflag.String("namespace_name", "", "Namespace where inline scanning jobs are spawned") pflag.String("secret_name", "", "Secret which keeps the inline scanning secrets ") - pflag.String("inline_scanning_extra_params", "", "Extra parameters to provide to inline-scanner") + pflag.String("cli_scanning_extra_params", "", "Extra parameters to provide to cli-scanner") + pflag.String("cli_scanner_image", "", "Extra parameters to provide to cli-scanner") pflag.VisitAll(func(flag *pflag.Flag) { viper.BindPFlag(flag.Name, flag) }) @@ -67,8 +68,8 @@ func configure() error { return errors.New("secure_api_token is required") } - if viper.GetBool("inline_scanning") && (viper.Get("namespace_name") == "" || viper.Get("secret_name") == "") { - return errors.New("namespace_name and secret_name are required when running inline scanning") + if viper.GetBool("cli_scanning") && (viper.Get("namespace_name") == "" || viper.Get("secret_name") == "") { + return errors.New("namespace_name and secret_name are required when running sysdig-cli-scanner") } return nil @@ -77,8 +78,8 @@ func configure() error { func getAdapter() scanner.Adapter { client := secure.NewClient(viper.GetString("secure_api_token"), viper.GetString("secure_url"), viper.GetBool("verify_ssl")) - if viper.GetBool("inline_scanning") { - log.Info("Using inline-scanning adapter") + if viper.GetBool("cli_scanning") { + log.Info("Using cli-scanner adapter") config, err := rest.InClusterConfig() if err != nil { log.Fatal(err) @@ -95,11 +96,11 @@ func getAdapter() scanner.Adapter { viper.GetString("secure_url"), viper.GetString("namespace_name"), viper.GetString("secret_name"), - viper.GetString("inline_scanning_extra_params"), + viper.GetString("cli_scanning_extra_params"), viper.GetBool("verify_ssl"), log.StandardLogger()) } - log.Info("Using backend-scanning adapter") - return scanner.NewBackendAdapter(client) + log.Fatal("Please specify the cli-scanner (--cli_scanning) command line parameter, backend scanning no longer supported") + return nil } diff --git a/docs/images/secure_as_default_harbor_ui.png b/docs/images/secure_as_default_harbor_ui.png index b973ad6cfed580cebf324fb02be569f95c2f2e42..73d0d74d95be1d6a5d7ff65587a0f4acd1d85bc3 100644 GIT binary patch literal 266085 zcmeEucUV(f_O>FZsMrDND7{9ybfij`UIQw<1P~H>wSe>v(xrxu^iC9%ju8Tcj?@sU zKp=F!!@YOr&NDMV@BIH=o+soaC+Fm3?RC~(>wVv~gP*D?kX)g>a_-zY62&L7n&-}4 z?mTyn$oTR_;GH&Yem3Cgyo;uS^tsY+)L7s}f`z`KrK;*Vc3}JRIl}Xl=ZMZe0z4$n zQ~h&W{ygis3%|WjaPC}?%{jt9KBERapZ!GvkF#Tbex;8<<1Wm{;^GD41Dg~V=Wm)Mc`S>%-O=i!NuAU`lz616?lW#>4|~MxpQPpXOHuW znv6ez?;5eu)`#k=s)(35Lb#usJHD{sc855fo#&jGy9lrev4B3OcZb+JxQMumKltqv zBEa_9+n@*ZzkLL1C;mWR^(noKqq7CQAooM=hYuvK(9_e4Ih$LGXv)g}aX9cw{DCzT z>LdaJxw*M5I$MEwgoTAc4|zenyj;L1xLiCOpwHd899$TFKgmDNBWvMe=4|5x zwQ+QyKRfU97mhHf_=5*$U-Zwv->=ic-R944a&YhndX zqm4%6*i}X^7DQLqMD^B3x29quS_IQw!kbd(&i^m}X7i=Q2zX!OQWh%y*F%g62+iwm z{jZ;%tvYu;>Cy3y^UKTh{^tn(hkwA?Fa3S?|7NJaE%Sf5(BGE%+cN+E#Tj~C;xCbO z(~mNYwvdvwFNQo`@?QQz6d+4{r@MLuJ=dD+MDpLl$iKWt$au5dUnLNSou4M3IZfYq zJI&o)ZHFch@o<$t7f{FGWEygp*VD<*Awuq^o^`*Lr=&8(K+NLvJ$TyRp^z^Mofx z1kECDPR(CxO?H01+~{o0?J3dW3^JfMoe~>pmN8;`e|ldriax-!d1Xmb!SBRiu^FMS zTRQ#&&9e%{5aMcGk;5c48|pHu$iy-zMkLqbFJ{gcNr11>x7_qGNaeC4+wOG3d`mnw zrFn=pkotjO`~aHnAfYmEoR1Lq>KQ8X8(+>c8ZCEyo1>I8P&1y%ppYZ~y1hn3x0U64 zrI}a3uB}`!ImqODS~}uqid|IoW-wMq;W^seW`b`jz&GA0D%}AE&C%jyz z+7HQzr@QtB7CWsTg6C-#;MPf7DiCX}=S06uIOw^r-i#ui9cQAyLr59)#US7*kvXkj zRg?;yr0#6TsasXd3fl3>*JRjy@2JbmVeT4}kr?3(rSyqd5A!k|x)+xzVZ9UnpZ`6|`%8s*xS z3mYm{RUyCjF)7Zw^z?VWBuYy$U*^9aTuG35rIR%(!dNrY-X_|p)_f;0JS*GyX)DLW zCO9$UnA)%D&zdkzZCe2P;>O})it z_r(YfChxLGnYwOFvM5B*UR8(VUj5Yt-8#D<^2h(Yplh99400OhTcP~#Aw`LbP41@= zvvU$_N!w(dZ*2G`ihO;RFY~t@;uDO8UF1jo4pR4dZQ6VP+HHWu%uUJPU*%>6q4_JR zxu{1RQc}$8-qmdfI|&t_mS>G0U@0|E$^vBUVFAU1MVrY`>!FEjlhk{=q6O1c7WAqg zL4TRq-84H-!29^-?I>b`aGBX+;0~(W9$KHOc#J!QCKls}6(N(Jl_NvFP!jFyRER(!yw$(Se;szp9Ik@)P|D3wqbAYSgN1* z`EkDAi}meumt~xdu)~B5x)dDxa(wL54@FmQ>kI$(nF#7{}bZe--JxGR(!m=<=A1%am<<%5)VU+PECg zq4>5U7t$xb^|Ni!V<}Jzj_fSpv$8*|)05bTmZ@a$O*b#&;Vs1u+GP>er#6~!=VmBQ zY_C0>N`7xv-JsT{vWd^f@_Rr~E#+XWRj3$5aN2R?iLmFYl?#}hwmStapsJKfu)hEl zO-ZQSurz+1MNVV$aXm!#=VmX(_G?)1j^8m%#}K;uVq8J5JD#0Qm1;QA-k?IM^$q_0 zxM_g_n)Js*jx2-D7`9lb{iJj{=TZKx5JiVW2i()+^&O_g%{wgS-Mym~5R5{9)x8Nz z0ee(c`Fw*UoFi;@G$cK!MQXBUTPBI$Cm~hBYq&pP$fVPK$f%Je8xdr3aC~Eb%kPqTZw^~2`B;Rgu=eiipvl(!Hwy>FXA?zl zX}O=3uDnvqcG+H3HA?eZnDp4_DxJ(|(CbqtsUpFSEA#)zk=xj)9fLlsy;S+ML{rY@ zX=C1s3Do(!%h5KnXX|rE#=EH=auE1R9u=Agl*q+UrsMln%y+SgXsdr+e9`ms(G5kT zIf@(QT5)jLVfaz_ga&*Ad}UrgQ_?RvXqd(Zz8oe3s*j4 zDt{QT}rVDkN}^iEI4cdk+K_-1)OpP2g`_f))Nuv)oMchO@RKhfY)8%6XM*D`>~ zsP6T3%v?QkudP;MkM~n7Y|{K(Y*gzJ$_cJ-H@*R#3GSeUO(Jj1H%#xOtn7v#>y+e<_Buj70(-*EBY24C=0r98UF?;K|L zC1z>2*5T9}BWRQ_+r~*LHIS7VS=$JWQla40zrmA;0hzF8Gpq2TVKbWwSGyWF!uVEj zZ-3rlQc7BJY%$TJ94_MOieVO5DZW}wB_JU0D{NlkY|Onie`lav$Hfd9HxV)3th4-% zJ2asrj;+!%Xr3sq#eMyIMN$rbD{Da9>-HtVzA-mJ846T;I9XaqJ6Pg$i^FE3q1kH) zV>QNKkgF5hzNJ|}4$+$56YH$ltUNYVN-3QLgQ~cOB0`PyxbCchMtEVv)C~FjEZsBp z;m`UjJSy#X-i9Kqjqp}-3RT$e74=P9n)Uvi{Q8><0c92=Bg9$Lsvj)ImlsMOrX1E` zD=}R;ZdSn&#XM$5_qx)#ioCR{GCU)fn=_I1PNXE(;nXAOVKCgpXI=k8?{G97#{u;) zqEd>wdNdZU)+qffAh1t*huW^cF53EXzhP>6%J5nMCo*kIEzW-|rDUx8q-^!`2fUS< zOStr+gV$kDV~!beYF!5*xiaLgI+brE`orqe{#EjvjqkT2X6lwiBEM{89i~=Te&aL? zydKq5f8j8#zuzUH#E`*^Mg6Ks)3U@RiCe#fPox=~^e&l;ASTrp?}0A8_Axm9TpF3{ zgRk{bYUiil-f^4mSy5d*ZJ0I+5@GLH?Yh%+QK5;(sswFgXxr4Uua+ueQL7IAzj|r|c){72p-!lud z&1Nupo4uqhN0m6P@Y)dJQG}y@_=tM)a5Y;Ut)^N3f+*uqwpK&IeBhSF5m%;X1eRYa z!`=Wye4FuMV~h7f$XyP-e&ZXik7YbWhl?L7!24aHBAopqjZ#SMcLHp2J+Ty8HJ2W!RK{0#qf%5+mW zpiz*18<^LbjD|V0Kx<+>rg~-FbnSyOLJm_=P@4hwv={P`M%BLAI2zuGN@5prT<(h__f0070mhodtYIGkX#WQr4ut&k{<%~FUV$R*1fb-p z7PRADxhm=Nxd6^=S-7;Hzc-Ncs^>SoFhP(>(>$eco6Es{ ze5uHBL|_(>pG<;D7qrF)K6U_gS{PfPX2bd|I93w(=`06sbP!*NZO)Lh>Ck)If-@1r zfV+~!Q_z#8;KoJDJ_WeWz_wZfe-iq`8#OzfOcm@0`KZzAmnCSacY&N$r+n>DH9yK3 zHX349SYcd**3r^iLg=4mKr3imRp86#~zw6`jNxt?;ZC! zC#xxz>1_xflMH&P!7D5 zg(yS7%0zq6sR@pAFbfoj!2dplDMeBLR~rbIIgu)K}mrp z+nUwM&L^#omT9#_NdMkt5-K@3Nd=h?@$nGav{8QOr{%)bH1_M31B3spFiC<5@>`@^ zPt~Z)LI;Cn{SEv7K2XV*(Z^_@P8%{~Z=llUTLP9Ia9@!=KN`oAXofQ$ z?L|Q*&!l3CrDOe#JI6*Nr$eXaM}t_C4RMm|;dB!ES4cY@X)z{01zSVC4lC6qnXm(S zurj4AuR9?v`L$$euF9sgqNL5Grt0Zo6>Q85osU$_=GK4g1;<7_=AKL!H`2upw}gvr z&&Ni5rW8kp2rM_GZ0%zyqBbY?mxmA*3k^H%#}c4!@xtudYfD3uWKqs^W%o;+b?jt? z+ndGXGVI6^ER@$il93Q-7mR-@vkKm+d&=pkzuPj0bD(^c!s}9F&vUZ4b68E*T)Sg{ zs)s3e*dUK+NLk{Loq@RW29lRn^K_=i-!p&~n7c_}!fG$u{@Y{xY33OZK01jD| z+8TMcA}!HmZZ^KiqIHl$qf}3!0)=_ssn<+*)C5zBr=7>LrAyU*-!7yLjZn4WZ(MyIrvk%{_y9M&jh@_BT=lUFHS$zPAeYgab*j?&S&U! zr~LqOp0-7O-XNb(2PKG)qhKVJ&<&yQ8~wt#_g`HsWj!|YcSK&P0=1!W_R3O2Sr+O( z$3P*bASyc7pYm)mG-a1_AXbu*J#_NMcHwtJ>9zAHqZeb|ua z#FO{Yu<~VPSO)K;fOGh;g5H$vQ}txT=y$SVjZn?_!u?747iRnklSYCg4eY;z7hSsK zlS&`YQ>0bcb&o{X*nMw-;$q3#FF!P;-4kgjW%8&nZ?AlwBbF*@8t1cPvNi_yi}OTY zF+HEue29pu0eihW0Uxr9ypZ4ErpXq&Au&~{X9!zgT=^blzbyz$x_DuVPo61hYu(<= zJa6SbmZL%bB4t2kVo!W-oT%0!wUwA53v;| z5LG_;jIPrkYj%zx#_B z(IB8vg5G6o(567YGGY$#-Ysj$Z>R;bQ^5-QK*jI40IMQFx=K?-y`(IkIg|-9)?y^u zdLYtrE8@MlhjiSn$It_Mn%u8?o79in8#cn~w=HIINyCNKi9XHx!_k_CRG@N@O_pt%#A^b^~>n zzlxHXZERnAzI5lU;=J(o_)Xijqj1EA^yJso8LP%it?~QZy%# znePo``B|uOgV2-a+O;v%inZymPf5>#STfJ^VlFAz>>wL@P-FO5EK%l|8byyDe3@-O zX@BaJ2wfc=*Trmf7ru32Qm7f%YAR4yG>f}U;w=*YjDT09WFYn}U8Mj#JF{wSSO!3Y ztcoHX&s>4+>G5MMGSBBQ6qibE<3LPO$UmS6sG~;&r5nl zdE715sox2tXT`=3(S{b@A|vxifU1RbZArA|HGy$3 z2_p2je7td~*`#=44dy1E@h^b| zbG~7xuk5m z@>RQo8>S>8;V*95yLXHs??j5*hH>(=8#0NAwDRSe@|x_PniaW~xd+litCG55E6OVJ zsPBoB98*A`n~^@eY6Vmh7bqWmOn@sT?5uqC$syo1;I)W>DU<1|kHT6&=zIo|Ngb8$ z+0k~W$&L9Mf$~r9Up!IZ+|m`>AelsF6nLkOp`u^978^WoWI0M(?kZ@OT7lZW56%t@ z4qQKCJ8*MaP0UzmQ{SzVX5rcQV%5p2yVbj7wX&PCab2mIxeo#hD0L6i%DM`Admx;L zS;4vOeyegjgGGp-!e&9&V{Ri!t7)|0FZuS@f83}MSyB3MKFMO+GFZ*al8XmGzsEPL zsi}O)FSS5aHgsyjJdzI@f8s(d`e0Z;&MJ&-kU6aT)-n0s=eW(bOUj#B$oD}e z%?Gucp#7edl@>DTTT%Uq8waJ5Hj}6_}pmC3(4*S30X!%~f9GuqLLH?vsnS z7X}E>&QP=>0UH1@-r0#D2c>(Ad{s^ii+)`gX#OQ+3M{G=9|B5&thA0OYFT`1m8%f} zzohJvhwIu73`>wI#9cVfe=qzp^{#JD6a?vX(R{rgL%VO^VQF+qVpJ6ky5S8eaxo0n zma_cfFQIwx_I8cdvJmu5F~2;2u+7WlkhN}8zb+SxHGD`l9nwEcZCkrs-swIc#I0kD zG=|+msq!kxw;@N{8$3x=8=qc9IN)k{V%m#9iM7Ya`>6PfaS5e{kRuwd>wAtmyvE7!OI5)a-`~dTesBzF5h2&aAN96JQ^eHP-ga&;%=BvJ|W zkWO4rV%gsESQ$iwC`yfJp1Z%5X2R*$WK~wRJi+y&roqjc zL!fX3{*F@Mc}%Zq6aSBz)a&1G@j^w&?apxD{l);e-uCgL4AML?~*<2bFtXY zo*6G>!g@S&=31w9M~1_+d5W$Tfcx>HFF%sidjNQj6w-l#@k7S??PZ&%fxA9N08oi_ znA$1Oioh<(sR0Gq_6$p7E(D#f)_9;JfP zE%%!(VM_?w<$!i_xDMupeh18POap2bLkhm=gqL_NKb63@}YwvoLr!IAp4$lg& z$Z9*hz5;0>k&wH&?NSMPr|N@VsW1Z9Qn zo6`OKoib7G5|NSDzFcmn&rlTj33HVdh|6@MysbK6gTiRw8y@^I-Zvwx^9l! za9u90&qB@a19xLW)XeeWh%0umsLXzRKeL2;Bz_;o+|#zdofNcj?2X`upu7Gtf_gIY zbj3zCR~LwQMWQgB(thA(c4R`qv$fWj!cqRcffgIedDkdD)((=V=T z4QYIbn&(isEG8k<@PdBtrCK$IPgxM3x=h=Nc-Q1-=! z2#tg56b_;p?~7L_TMTY9H;Fd{mfgA{c7Yd|YZDduEH6$rqe2&ys!bD3BTgxuQs^8_ zSVX!*8&@Y!-||Do`i``ooB>_^QKy!nnBm3++t&p*b8)F$f5tlp*>`|*+ zHu|+S^#X!~=Do2zWKi=YJyYMVdlncu4^~H$@$L484480(m!ZPWz~Kn^B<*4W^hur; zN^mE=->Usrb)Abt}w($5JGsIe++z7!F11KS^f2W|5BKiJUZcKf6s6yO(yru{%JWSmzF{CmbE zdVZZxWRla@-e%) zZrsJQe6_5kkpvHi$Ev;L@tzP}@4LT0__Xtqo!;0OrI>9or$POgZms8x*crfU;P&%- z?k-w6Yv7Q*>4ddz8%J>oG|E8SubICB259P0O}pU zPRYZ|Y7*o=szc;}Rd*<12B($+A75~B441~9w5`sNuegGDQ(cv1D8Ggm?3W(xBw|W6 zhA$9zx=Xmh3I)=f*VM?7zSRiP{o_NxvMr&cTo1A@k-QT;%FPa6JDgQc5_Sxj*0QiU z{I#ww;OCW_QRVK3RI~4}ca;x7C?RfBbL{>%kXo96LSAp`+(@*QRGwT1cZJu6M2F9D z0nWR;81yoORiisY26DJ`S6gHuu=?6P38jQG1FMoNT@~=p1Mzm|-}8BDY7%=r^v?L8 z;eATgFB5G3Z*{I>lp^d$dl`<1JC{Ot@p!nz;8I{V*!%Zp#E8DE=Ckl=RA243nVgT3h6UZBe$dKC9SR-@c7lNrJ9K}gqQI2 zbhq578IfjQ5rjmWTnN(Ny_xjL_Py94PRkOUFGC@UE{i$T%y~E-$xR>2W_HoQBFr|H z^||!+J^ZT(=+@M%MFoEQc&mhmCh1VFM2$Q~SWCVuohejod+^Ry6;FvKcbhQ4+^x&> zAxEgA3?8`@+8NT}yQT`TK@Bx_4Aq5`*Qb`WA4N)TQ13pVpF0tB@Y5|bRs=EzyQ{Dz zUB~G}4BoRbSG01Tqsa|^ffp3-s{yEREE*r0K8}+Biz+UJklG*Wc{OKJ3w!qJVjy3q z{Z$@iG!DCjLlB|EE~o|0Bwj@T2{1;g0E|)kVLiIc6mg%D@X&n2YMuQr!uA8sGm{bl zCe3E>@NRJ_%EkDR%LvE6v6_?Vh#;pS{aWy4*gq^bHsV!w_RO0KYwP(+niPntTB?MW zWpA2e5h^kJpmiFITkwq5T#$w1gKhd<_Mqd;W^sw`mRkKp=9cQ|^pRxVBNL|N{FnKh zTXR@ZGNZ1}`u!jKdfnRVTlv=e%7p>$ty79kW7Pm(paji!d@p*j?xFAAGd6(N+s;Rn zn#5c6jL2MB4<|IAxV@`Rqnc;cv0J0$`1vk!L+3_AEb{9%xo<20{Ed9;Yjy^VIEE|@ zw}YTGjsZ$ryI2G5bEO6e;6+bnzu=Q$XB>F^%AgQB+vukd{Tyxr=1D7$HvKT3b}%Hk zK9Ap6aqCC#C$eiyT>hpL-EoEVu8*r12W37g+FZ;}xoJ&Z{Fe%cPidq;RNW-elag?Wws!42;IrOsP>qXGo4RnYw;U|)?*n*!FFoMS_$O21q9Dp7dk+Ew}y*y8$V)ecs$$ zhaKA(kfVvwr+&|)-5YL-9qG-0H0#$XyR4MIe;AQ?>Uj!eB34vljETlmc9F;sm@4eS z)!GAjie|pbm~R=00F{)olBxeQRbFA7^Vn9vjPm`oeIJW@f{Mh%$1y>0ZA8~q%=xN73mv3XBK+Ietg zSsF|>RJ|5b6@K%K)XaSzDi{&uaiXf8A+FBcEZXzZ)Q^3fpHEr}<~VIMmB+LNFL|<| zHQxoO1MVH(b&R#_jl;UEX7e{|wxj|R+>mR7dORmpj7GA3_(A#Y2%yk{>~<}}YOs@M zav+huwCZB;QM!3w>S%F;_kPG-uY#=lb)+#W`S%{##4gMn?e|W-_L#AurEYr*M6o16 zhpMycq=o}Z>CsvvR z7>rv|{E{R3BnhaQ$lyT1-5tkyACO#?m+cqGj;I$iYr)o<_ zN+d4Qh>S140-s3@C`6%AYfh%9=W)N0LO$a)h?eiZ)vn^gz7KvTb{uSZb)_anFkIie z(rNwZ%K?Gw@0HE5J%)6tJJ6z?Rgl6V^2MDLxc-2h5isXXWbg&8@utb2l&{_V6ao*5 z7}##@iI;;PzhoygPt`stLHUPCSQT4z_X?j;`F8Pk9zESmG29Tt%9Gh#WzC8gqyP_k zb>>Q^c~_j`FqgrzMoznPi)puH7V53i1#739Jhale4l5`=@CeCP-h3jJryV@Y>-^!^ zqr!Jv7c2bCiNE=ay$fK-u&#I@J<}cr8L(0&yiDZqJ7z*sOjG@ZGSC@lDB#>ZD~D_8 zsI=^ss;;ePX&o$GJ#k6|+*0Ezl6=t+oddbFZ-1KDa1W{&_b}7mv{D*pkykA%q}jSi zs?6xqFb?{;GjcX*FhfK-(bGPTkZw#xi+{!==Q>6;@3J{xz(Lcs)FERvG7UR4KSm-X z-vH07;J;|r-%FQ49DgCaIc8sT(oJ4uMD7M!uTIvpZ6cx zYP{DeEV?#c4Yn)LS#$lUe8DwR($8w04t`P~^K0yv9k|C|+_smJhc|rp+oZF`j+Qq! z0l>-l^OPEh(5vegATT#iCg5kAl2 z)2ud;F-pTI)o>3cw6NYVAxhCONNgjw8lc7;e^VfrID zDuZK6eh1JJ=ALN^%StBJ&Qq-5o}Yzz!|>#HfxFTg!`!~=fM~K+eFtLjVIB%$&~v5@v5#Mt$Z#A!er*uJg$Vte+PHHMS+IS%Qy-@POQ`+9S#ml{ zJK5uoFHHxv>Xl5h`UG8bbKE`T1K6hu$PO=>_5ASbi;SKA@kCc$WVt`sz&k_em^O@-kDO;6iJ&6@sc3VL#DID zPNglV*G3#Jv9gOKhcsG0%ET3w)$7R|jAomO7MRq>l=Ru5OBDgJ&qDU3m;FvaDL_o9 zETd~qOK1)k>artP$7jB2Ai1y<38&(p4y4aEQgP%rUs=)f>6Dl~8wN|*p7M|)#K z)m%V^u;#Qpe%0$yUo8FwEjL~e8c=cFwhaj)v$#MRtDp> zGep60n(aqa*vV8lt(erV&t~qKfN`auBXIibI?Y&jD3bh)=^zr<9DRTP!u;D8$RxDK zem5zbZfREiH-cX#fl_;b`dYvDn545eMNsj|qF<*NFLSorqj2gEBp`6L{Kar;v)viw zt3#q3QS+BrykyRcaFH#{LXX6aNWkI6J$&j*vY#$3-5$btYqh4*7UW+YcKp=yc>Mn2T)gY zXg{@7rF4X}3-qCsb?idakhALjKl*bt+T=DK!)G0(T za+R4rJG{VXpH~CUO^l-s0cv5hF!H^0{Cm#?o>y%BM11Ru{$Uutz5^!gv@TlW_)K(Q zP;_kQdZl40U@A|qLa@R6gtIH24_@63b3}|5fRBTbcW@nZ!>#f+>z?ZJgRx1d72)PQRJEaHB^FOE|8?6 z{;lnS5G3O-n9|g9=P5!{5a*L5CPkDN5_^my?qdHyMRnoXVcr#ZKJ*io8WLI#@K{aE zSeedF{;}JexX10*ycz3svat&2Bxh^RQXE?h?-f^%)&P52u;d1AaM*{n1QyBG# z9yvq~&NucERuo1psmN{8U_QQR(*N)srI1H<%S7UXw~b>*6Nmf0He;o+_3In2T4XcC zJm2ikqNnF34zWwrz=XpqZ?@NQc|B}bls+3>>9ccXeChVsBAwp}TU)!zJ7-YCAxfQu z7$^_4C*5w9nWgp{)05YwnD zwy}b=tJFQ_>#`HO0UmWsyOB&a7nrj(42Nz7o@wmg>pIjRf9fOE+O=PmjlpjZwr5d2 zXS`Y9>9tPBmD-R5E2ty--^ROI$x|Z<)HD zOZ&^zkN( zISe2e?~g^3S3^>S%8z@z@p4$@UdI+m)@hof$G(re^-qqrE5xE!e7g=mUC_i8uw*q^ zyV1G*7~jaz=&5m@YbSBjk;)Kpj!cjB#Q<#|E9mlr7+3|*afCqKjBrR$*)8*`J0x+O zNql_Wq56|~C=r{z#UGh%&VX)R@x>c0+TLw{u{fbJjyH3{N+Dy%Cmk6zUTjeSZQNtO zlUi#XOntiZ=B%H=M9>>b7)e977IR%ZYbut9xHCsBUg@kT1t9$IJ&~HwyZ1;QA1@tH z9gJRf$Vs?F*U1%m*L!5)-om+TX&DI-=kA&`I$=nJrkl_u^9k~8-PfK2M}2`2ex~a_ zI1^#mL0BsPiKy3lYN~|G@I4qyK#ow}h3<5&(D}YJ(eAr1*3Cdit{UAd{EG5*tr=Mi zOxUU?YMHmhBQH#QvjED%YCFP$PBSPht>5mOeX5XkS#6&84Yix ziPDJt19qXdVWtT9fOT0Eb=ZdUj`)Ywhyx8!Yz9s5&4dozw)XW-W9fXwI3=l&)hq4O zKFiu{xg&hYPKFzpNZtprjnTmW`AuV7LSyPnFsgfkzQ$}9srX?j`rfQnJlFxM#sDZoZ$kb3E(L{qOF)?*W6qIl1 ziV@DvIcwQsR$abgXe~9jTECrzvR~>X9*)+TfcSiL&4tJ&0=-CaYRv}?LZZHB@RcXj z9#hvhtwciEB<_@N2TeTMr{%wKl@WlESiI|e!_S~uu_^Q`)Ll`)4XjN)uQOc4#gb>Z z`9^Q7c#GBAL}mM;60)?q_Kaqwf$P(OM^f#%-Z+ytA`;ipzP5&Q;X-ooyH|5^RAUVn z)l*glj_y7&YA90+M(2PP^g27x<{S*cRGTl6>c4>`6w>zJ7%E%cF`l+DahLZ z8QpK|XudPJ=@}K65s2R~dy^4z2=fz$L4hPENx(0Y=PTMvEhT$U?g4!^3y)drJ&)OP z1qddaK^3+l`bn33NeNICk7Y>EO;PX+zFg+?`=$U#FCV#@W-#C%Ro@8)LLsfq-p@@1 zI^u)$!_7|hfjU*Mer!4Guf02({GI;qoDt~b&O!#PfkHhQAbjfcKu+it91ozlbSk@e zL=lp>DN_BdYBSp>kpDXEfrclJ?(Wa4pPh4+8uCOo-R@qZiGPl4@!|FDh6=mv8cWf- znMt+#1OTx%K@DO^f$|VrgNcyhTMqWOH|Kb50)1>5R(79otqdw$wNk5w(M?Xjfmx-! z%4^)@t<~I5q=p+;tQQ5mrSm&bT;$Ye1mI*IA)C5|eXG#q6=l7W=*J8l?^jMZ=X+8V z@*-#~QVP2~Q+G=k=5RD354zu7`G+dPEm2C^uI55`yx|bLa$7_4#M|OR#IHMAw|&8)XT$6ger zj)_1Xn-}|sXKx}>%eUtyc_G8b9k*g%35%yG75RkbZE0dPOR)`Eb~0_jL19s?vkM#- zPPiYC0`NRpT#+He4@?8R50IzNYnUnVxNTY;h~rz*GmsL;aa9h(BLWsF7(pcLIOTNo zUbWTW8^uzaX|dW%6|_M21>OTIjs{u~=7jRzLEeA>f>S+hRxN{xs@B16Ooir`x0BQx z!Utqg!QXeLq8(s4Z_k*$OWR`fdM5|UvmK$JXY7C=wupJiwy7Ibn8%!Tlp#(} zj3Q2sLYENpr(f<-$inr4!!3TJu2tB^3y8Kg#eh7hlr8^?IN&Ir46G&&kf;Hcy>uv)LSq%AFYQHrcs;BqDkm+JD!9Q9*WXg;wlsuN8{T=gfT`~Cd zNBzytUGCRyA3ffv1;TU;5^=PwmPW8fNdO3L1*BofcPHVK84N+dWUT2xaf-4kyC{GV z`&rFt)I7YCLaOxf$uakG=gYD<4i2KLVvIJZ9G(+pE^Ohz=DRm^p&lR`g`4JR?`BS;!t%{9iOp{}~IUoPezA zmCIcIX`NIwOGZ>4$%=AEy3ech7zJWjaw*X6IGRU=Iyjq+~lSdNlMhTW;Lu=A5e6$&sz`ljkY3!jyF~ubLHUN&ih;O_o~}I|EEvSEy6tol z#Hcv?#h1qI_<&@z(lMj=y{IWaz09vQ)PMB%1cUgHQNi z#|OKyciA*M;TgW{p=6*d%ME;%y{wasutfLG*{*|~6${j&s->v77cQ>K2G#wU?t1rN zfmYu^o@$Cxz!A~>Shd|iiIF~OI>0!XI{Y9%6Y!?KAy2o;ai3z2ywI( zdgQ*RFpBU)tTYlMN56bC!THkin!f`8RaxHyEDMFGgMG1BKNLHl7|*U_jH$6*U)zr0f5fT(>Vp%H z1N2Fwx}v#?>jyGs$Amq!p-jNaz-(ilMX$uUE`1FC{4Rn1# z_{UAzQ{Q7Ii|)A66|Ce3#0rrwE4P~I6dAYi2uy-T#PzaVtQ&;tfM(KbquKfAkH<;; z9-2?l8ngSiHLGoP(B&Nf3Da*TpR#t1`q6jyyxf~ePd7xv+{fo_^Iy8|Eb=sb&x27Z zW=J%1l`?I9ZDF7Gx#4r(s!2rVoj5hG>q1PEV5OHGQvzzo$(Y&M-UuWv~FJY2;w z`G%5l86SEDavV8)>4_jTcWA47%?=QOjB2U+V>J*CU?rp2{cTLojUeBLqCd%^*i4G+ zwDX@nj-VEP0IX9Zgm(jl-II{M&7{OQ?R!|FlIH3)Pl0!pczuUeGw0o40k}hKZy;CM z88@P_k6DzA;n3p-+$p|ZmHayOBYHlozBs>={SMtzQ-gw2PoJ&~Nre4mjZO_@+_G_% z+|*mcqy$%3RH|2IvIVR~GEx&{_tsyfE(d$*Pps%ax9S>+UZ_f0PVbVO0lA5bEg(b; znvy@7O2}aZdI(!FS3zj^2!sc>6mx1-Cs2#sO=h#Qrzw9W^^Oo{(Wo|)y?~TFjZ1I# zJeYJ2x=sVo7^$VlENZFNSHXLe?-FTc!B^f|TW}KOv5qWA`65%TB zGsYhSL_wf^*gVW6VtG)5$A$q`=m#I!Uz^RfMvmG9P2e&7c`bG9Eb1AqW2SRhYueAl>cqvddZ zShDtLxd+h2%Z1!6bvaqF{i)S)Givk5^+B!4yp0*|y~t?O#=Z&-hVW2ts>9Ciww{UTONT>*Mv;Yt_KlqD~( zo@^;TXe{w_({(P_KsrgnEubIGOCkQT3}_kt0IU((TOFC+CNzCYzt(_{5PYNAXlP+G zofQm7f&1-E73PIK4#KWc326Z9rCJXgk;{{;GLZJf3z~dCVMZntF&<3fuw#$6fR)-7 z>b(0rZBT2|KLTmtT4v!C6UfD4v?ri)Gw*Bf8}Qq^ml#|fc{=92Zd?yWZ7jhu9=((f zB%veY3K0F2CCY8mq%UzYZ?=7pW~Nn~y>AR=2apyLJhdL&(AAOtoz~+}5F(06IpKZE z(cUYPPk}R}=#Zm_W%%vVf8^C<2m|&}0zFS+Zmh1SJQ_NwVae zp;3{XW7C9gCFdqL&@_C--sf!hchA}CpF76AW4!+sy%ycIs%BL^HRm&*Ikx(yy2#UN zs`B|h>QrohqzUvxiRbTrxMnKE9`%hW@*X9}729j30kE+E{57p500r1RAa*u#z8 zdydEv)(hqj=7BgG9QUo7Zh=LP z)BB5ufc@M%Ac^>$BEpsBR7E-K=?&MV^uXj;+m%Wel%D3%7v(y8dJ8fVe4^boxXMjN zS*wM$sk&i-x6MBC^Ic;iqPpYcwgcZEnRu;?kvrA3i}fd{gO_Vc}qx?&wh<6^;Rmgti=^?^GV##vJj?V2#yeah6;NzXcszu}eRNYFasIW(V7iDH9 zZ^~8WkKS|Hn986@aainok4+dEGg#h`W5f`y#nm~`oi^ny!d3_R)iR#E@3Gq@-9sz1 zfAPCyyq^q@dT1y$`0-s>ZxUa3emEq-*jsEDB?bme7E5vf?5B3Q<%y>$N z`eR}X!%cW>+^{Q7+pE##ueV+bxbGKYVt>v3z5ec!Z|UWZTGkG;y&L!@7q~9&uQA}S zj$C{Fj;IYb@RO%sK+i3x4%k;GCqhwIY4>k znkiGVpEup{w5d?<^Y%_~eD}@@YgjT2Q@d&^SDXx=uR+>$>}66Vi++Pa*EIX7!38O5rpQO=>c*=@;hfcd_g6uThU(xosN1!1(@|P%^$OIT$-7 z5p(6XPc?F|%wm+~meE67kK@u7D$<|W}^=ZC0^?fZ@`TUAmJYQZfo{5Pabg6 zc9QEHi~w{y$vG*2SsuttGA?hT;la#47u)JxP#gXf9_udiajcwfyJpQa#6^xHMV2)_ z?E|l3MJuKoT#{6T_dYlg?$MzPIwEMc*IkfDf>mZ_g)SuslgSzSVB_H&g}%m_)*!jP zmC;^|W`#*Yz94BxS)dR#m)Un}2T#%xzQq88Y6=AKVi`u93{*v8EGr_$J%d!G^WZS6rM+SBrx$;hYYfUd`k zQfQR^<A zW#>8faaZr?)t^q_C(VC@<<1?JXDdjOV6K**qiX}w#HXruuPzy_8JacZ%|l9!*4xLT0P`SEikm?micm$8(z&YYr2qt=zG?b+;(F*3$|tLRfK%9+avh}4wN zWb$mU1N;h9q4LzK%IhFa0mt-R2|?T&h9|Jt=_1`T@Th`Fn2G!N@@iX1d5EhvOUl6&wHBAx_i|NpKj^oNGLDn zHjC<~7oN^1rVAxHb;_c8vm_tOn{}KC%-GD-2&#nK);^Jo*pFPvGpi!QzrBo#s4kg+ zdNzPFWtT@^+Uw&hdCJ*AD)<)P-rcZ2>M=(fv=VeIp$f4W*X=o(!F(a4rf=<((n4&b z>vrPxkd047LflyyXyb4oq+PiZII+y6ol{t6vxlr>EvM~G^FB8J%I9WNgtM&`4C|Tl z)L)A>AI?cI))!lg@PlwIPi0p~fA4}Fd#?&&dzN>q+kwiiLPw9#rjacgo!_4)9ZspJ zMvrYY|7-s1+p7%m%B9a94fdxJ;0HLakB!dmWUTJF$h17udMnvZD0WP(@3HmPqwMsm zOcHOA*;5HWD#59k+{ZT%XT#p#Y};$0kzFc5^gy!}JOuY|KaU&ntvY!-)DOmW7gIXeIHMCv!^@a#OV^7<1^7 z&vUvF9=Rx;iY_Awik>*lE!}YC?#|4aiP6=S^UmEv1vLkWKdgE|`73Db-rbvmYSR72+HrMeb8N0j|_fyl*)5A zQrevcEA(+xckNY3_1sYG6GW!CFHXj(d?I(}A@;J9xKw{$(a%71q$na|%Ez$KVtzSF?kGyMar}q*8Z-iURn*<2cDc`fvk|_du#;WkMS$5|rxU~8*0k$rYG${LxrU#z zbYNCRL|r-|32(v9mqS8G#Jn1tm=#N$SBdq}a|9h1@FL7&?l$oW&CL;H`RBh0!7RK4 z+<6PG(R>J3!=Yu(o?8Ko-g2zaL=h$0G!MY_#_;iCEKeb%#zuEAUlAG*Ana^~q#@(A z*@TPU2PgEQMpuW50*J(5KGTWRj!7@QX`UFqczBudDxdic@W9yxh zhU<8SXygO@i}-i>KihsT0oZ)|yB}d<_i*#!QB9if|M1TLyVvWwn{O#z$I`k;BwdoD z#k6vesP2F{a@KP)4JF1Ds#O&eEOxwP)4qlH%#?)x#W5De{^<$nVk}!R4WczBW8C`bWNbu;rSX3Q26o3(T$gr?cKfGVg38E zp#ddssD&-B_KBDb^s;Ve8%2aUtSRpP@r$?ZUi)O$MOkdIYw1L`fHG~Or3GJoy?1-y z#al?^AjcB6s=lm+zCO2llHdEJaq&^1%N3#sc!g{AV)YU=#nVr;Ly`rpt5iu2mE?%faos98@{#8+5ysC-qv?S2 zA&O0#SH?z-eJKAfQoFgC5h_SCTA=PS(O7AT?3)d?zy!OBR6}e*dSpIwc%(qR{|clh z!LlkCUe?mnq=a=12ht6W7dMGLwpip(x!$X+ARyy?#viF$LG{ zANVf8^hI8oYOjt%pItDj{HlU+Uhif0sEQwsRRGYOcd}|aF<|2**H;nh*^;gZ&+t0? z`6%_ICnrMMlU52TyrYP3zou-7U&j5)PCX0d!_R8eSjTm(enlhWZcB=0s5`(CZmZ^P zD_+g03B>=vLe!lg&;;niE+$8(%|{{xb8ag2ub(II+rOJ~ZKo)%I=yefN{b(`beDgd zjYMoux1vyN%_pQ}U#{<-WxB!+!%&@qTt&Wom7x8>xLw5>LC1lmrV-WR_y${4&(RE~ zql{y|&VnOxltYzi)!(J~*nV{T5RtmEvzLB}E73wokWV_jqncQ75TK#B7R_y<8$~9w zw%1k-)kgA2G@rMp?(D>{mfOq{lWgtZYbLT`nG(2n2o>> zBWGl-nWg^;LkbK@v%$IOzWxo8`fVo)D3l*I@WqmiwnbO#y@d9CTv8G)BkmsrDFtj= zYX+B$b{)pk4KL+3g)~iL)L8S(3hwAXx|CAjo0TOKojBci{)#hj!v*=H1$LW+l1ok2 zNj1x8ImMkTKxVpv)5=KXS0!mk^0tkFN_wMOUY3VZ_DvR*Pmq!Hv;=avLp-vZT);lw zS#v`Zq4u_NB@!Ywl>VhyT*6O=P~;#YfzxvAJ{$|TsStJ>F}tO;eKK`PFt(`|OL9#T zH=zdUr5#2gWZRJz3*i%$Rc(;Y$e;+zdY6KlG?^wWn%; z#K;cSxSQ5tisv>)O%9i~ZUKEEuI5q4jI~WFjUP4&SwxDJRqsWnie51&rQW|pNKwh> z+8E#G&6$S^?ea8WjKeqY3``%U%!T%(L92Rlm3B4)LXLN30R0UcP# zYAje4WS_KmaMXWgqgJVU=}N+9c&F`GWW`MUVxGomq>DCQC zpBt2>iWw`B4pJ1S|KO4c96Gw83UPpOq z@VNn+TbmBULN!=5GqeI}3B>2C@z|IWAmM)f%*rOM?%#L&{~7msc)NBUtS$PCVn~~b z>|^`AL?e!a!n)CYwj>!0q_=l_A~b0}CU)?YYSN^9uZ5!Ce5|^{qt+y)sdJVGJu5KR zf*VOh2gWV>@P~Z4`TR|XrZlS)RnkhcS-bUzp0{8=A(#VW+1t^Ben(G(+&3N;R1w8g zXT5xaXXJiAsnUuBZX%~$8A2{Fl&R2%kweDelkpzR+j}R}+YL);mfzd1!%P^=y^G9w zI~YkPZS?iqmA=~zqr+(s>O#-J{XRGR599iX_UzWEfah-L73;7XhegE%5z}giwekBP zn@OdnnCKXJdeiBeu6m{$J~QNg zIX(QVBqX?yO}l3#i6Wvi8IFfn_5K>3HL^^1p)bW!)bL1iIGtC$=m9z10#2SvF0u91 ztl1sUv~J+F?JYmqm?%yWbio@B=v(_f+y4EFUlGL1C6SFn$cdY%+e3b*j>Y@rc&PM| zL`5&b_+er^@GUNnltsfUUw6KQSDHt2t(ySv%A8t(YD^S8onIk zTYPC)dVR%5o+)I#*}&}()%RL`e`9(TtvChqUfQHd;5Ls!)>-|UJov8R%z^QuQ5ZQ!IkjLvBca3~-=#%wG{%xB9bnu^q;n6GlGXd9Xjg_wBO0v}!mfeq%Hzw++MP7D*HmJCBR-EEMK zZkqprc`lf3wP)vGWmQFa?Qo^6>4W#)G1T)&Ht05UkBCK;4|_^OJf0M(#vsS^9?wAO zq+RmCihl@&(Ac6XI<6ROw1Zd6Q0u_8FtpQ~YL7i~N`u`o%f`;zI~MtJfByI=0Hi3$ zo}R;EDa(O(V*A^yQvA9v4yV=)Db|()(wb@Kq${UpRa6viwqmEp6`D{uI264D0n(>k zADDYhrArhhSA9ac|D9PN(fh;~|~ z^^5-RqwMN>wG09yg+6JW;E;`^mF%gkS{>`!o_|>KI+j6!)V0FY$dY$j3618NGAMop z90cyn*6^$}xjp?Vi;+|`2k70HD!V#7-;y1PUL~*~;QgeAvJaNr=W`v3EM^k;MFM%?sd%f3M7uV+Q z@icAZayhH!=D7BHu`Q=rM7GlHJ;8MIyU~eup?ewacSTCWtqvTM?rWZ;CroCxkZo(t zcAV0kj`C8>Wjc}dxSK(EF#|o@6Eh3M;B@ zACaYl_G{nNDJKm{BkDNTn>Zc5YAg#mW?4ci$|FSomTE0 zNtT59U+cKduA{NisL`IRKA9cjX<3-J`4Up=wG=l$TA&se4)MMxcD(6lDc7TY-~1|# zHGNjVMB5xp-+PZg4BDA0($F|I!(;0C5r}APtH-qH3d~KSpfNNO0sQSD;XWa{nzOqJ z!<;X_U0&2VA?ALS{^cqK()+Y&_~O%+hon)5C4^XtVeuFWdCXE~xY4L|fk*k0sY*e~ zc(d5VMVU#O<$+i2pU<7A2PBUL&yUsOq&anBSnTt@Od3{v?&aoiM>8U(qKoq)oJJkg z*|M=w0uGC>{TC`J!XZ&Z5J?fY-Ocfw_5tifm9^=@5(en`d|-P1IA5(OCpW^NCD65! zkBimw*lesaLHOig)+9L5;$Yc|+|b>(ONQ3yMDXhazpCrXL?>DT4*R1j6IM(TsJLz!Oz}?sc#g zrN~DI3dLA2W~I|mUZa*vX}{vR=-QQR*Bx68nr55yCYmHcED|0X2AEkAU|)jZ6uEK*L?QQWu%c`S z$kHtVGFCCN?>itYTE>#vC*-HwwTHA~h5;c_J6p-hfTMEj+7QdbCO7o<<(hGQc4_rT z3w1;NGV@(Adml2`w8p&4^+YGJ3CGT}e1mw@t~+xvQ$X@^eLs8&hx3Sj4=jMji^VAn zuRj3J!gE{vnWX{C63ph3LFS=U@#jF&wW0bisFHoKxD=IBveOEfyCTsdV76>Q=jULnCUcLRH z+_*bYypIp*K_?N2@8oPd*!Xs?BeJCt_6k1796b--h~aj2%+t!0_=~PCQdeV+p|O^@4ZA^gF5yKe*!VWwkF5GlGl~{>xzK>y z^GkiJxpL7f6?dFUOfO!r%nmRmtu|v5LVMWc$dmFsN#(#KH!quDSN6z~sg-JhAwF)$ zr=V6#yrZCvBBBeM0oY(b&U!DP5PD zZ&wl?*u9b7yNv0c2c|%ZvozQgcqQsU2nvZ4@R)m5$rgJSKp-=xZbJ@i_I#)D%T!%^ z4{QR2hUedQaXhK}0CzA+;(%vbl|sxUQ)gP~CR>;HiC7^WiB*;!3fTT)R!Cudp4&@x z+bb8+V_r*zkus~7NEMmo#3T-LOPL zmi1)y;0eWaqie-|t;P;S?}b(FkA~{CcD%L3&TCUNZ}EsZErDWQ<~cFz`RpHb=z(X+ z0f=36D{Ki-)Q}~2hs1eweZr(q|6?2M1hG0pN1cf#4k^RfjsuIxf)sTG86aRb&4jz| z*8M+-em%WfUq5;$4lCtZv@A z6ETR#O}NNzM#bA@nY5sg1(aG$JQFOO<~GY_O*H$x-A>sngdGsH1>4;pnJ^QqVe5#O zZ=R68axI<+-nR&c*{o~H%^o=wve3G`E`)Ks>esJjx^X_>z>1y-D6CPcrbPzW?Yf$? z(xV4g%n#7j3)Ezy0miJ4Ro=;)1#wwaq$XW30Yy6l113lWHP+BPx``YYvS& zeL^`eL#OfD^l?e>J3`VPAUq;dIBZ38--dY(oMnp^qD?vhKweYpD}Zb~x1=~SJ~#`q zS_2*-SBy+!N+P$-%lt_*rgrSLWQwACkvmUGnxDvLn~IDG>>G{fk=xU=&%X-CtQG_Sc@#LE z976x*CJBg!4(iAOXB|=9RQo^>x0Yrr%v4c=nN6!QB9KdDZ3`ufzXJ*eD(1y8 z@dhRV`hgV^IxXP1^|CeFZEt0v>7u6BQRgYr3`-Ux>}r3@XlKto75LkRzxH5JT17hC zj!Vy;OY2K`tCNk`zTjO(sR0=3sSvzX50(f)$0cg5&c#Hco9kmu+8=gs4cD-I^4k68 zqxZ2rwSm>0TJ?^3?K^h1roT=CrFO(IAd1+676o#eL`;P*KF~k$EH^IDsoM@lfAB%^ zI7XdzZat!{`fn`&ov3cXfa+UAL0q~0UbkLRVWT+uZwV+&W`l!utePcEyGS(yLU{Rg z#Dj@X>p7{F6L7QDOh4%`%~SHwxB@xA@DjGH`XZaclI^j##|*D>(JxF>Z`2w0p8JSK zxR)G8=@qnHPXPxqWYqQ+WLxKo`IpJ29^Ja@UgTk#wjb_Xn2Cm^!gN}lLxmjxG&0iF-6+KMcYLbIIL zfi5`fE)~^phcr&fBuUt^b%cbdS6ucie zkf#*kd-_gyw6Xe1t=GWP{)OtYn>l-V_rL!pfj1o0CEk@Bu zTvT~KlXt8n1I)U&v+_;n(!X$4gU-0 z3Ju7UrTHLm2{imVA&v;0TTt~2`*1)+?D+V_&qhm*30+kh^4Yp(nt?7L{6W#jDbk6H z)|(MuRKx8uOMg=evjk)j&&0&}ohh?!F>am(On|dIN4K{G<{jgihKe4gDq$eMVu>xO;(k;Ncu-0G3w^pm#?$pq83ydXeFu8*4(V9}glF%dghMKP05;AUAZ$ep zBm_1E@I&dOf1Q{7E(v5K*VdKY`Q<4844-^vqXqfh#IDbD82<1-#HT?1^0(g5rvHIM z{sYCr<_5?|uIccb;rw;c$e-Ug!vK20#%As9&vyRu>QyjEBCnIAydC%cm(Trl6pZ44% zyM&*g{rbx87D%_}H+%;hv}@wFTh7rfummfhB`-|C-t{hL5 zJ1FnADVjfNC7%kgwce4%DXH%$+?L2+d%pg4cSZqNL*tSuiz{k& zoGUq@mHgKbi&JZW?*4*TF7}5_ z64wA48dp}^TU!5gvRyc<->&g!|JSszfA#J4%a));2H4lN{C_(AUw|#|0&B;~pLVJN z8)#7>72%yA^rs}oazr}KXoB!k^kQ8kC|VX!_P4QS8sq~`>jH1%&*nR ze>Ta#>df4|gmuXOblgh8^74kr$oo$_wUijNXe>N1_}3D@|2A$AV0xu**24dEUl;=| z`g*kW%I;6c?eEF(`@!@5douifMu`7C8GgT#{k=2%YGeMdHS6!4;pYbMAFnR|y)*pY zl>UZEe}I+V5Ix=Wkxv}SyEp7dGLLGO+^66N>8QqR4^D`1-rr)3wTNMn{c?PGZ`#wG z9-iXTmE9dTe|&g#yK_OQ$h-QObt5|IKbq;k-|*FzqyBQ9b6vYC;-ZrUS@snbWK1Wj zud(V|tyUV2wKi|uMUJsp;Bq*eDrP-B-cf=>SGhp-iBcVqVcfhk{`>L%2bS|!{+@Hu z=uD+Avt0>q9{Z{=iTZ)tGjC?S%BLayg=&6?q~>Q*p=oz#J>%bf?!8{S8krnbtct%l za-`SJ!AO_@D_|r{f;p_-Nl^Fti4Oncm47aPjhi0qHQ&_C<+5Fe8Rf=$5>i%0yk=N| zaAbvfp5yViE1jD_#Q8_vkaC_5iR%Nyi>9gUpW4+J3|R}FejD-H=hpj!1DQ>^_&BZ+NLi(= zVN|ftC_Z)8t?U8?px$R$;?3P4O{TM0#C?A1@T#x#UIQD5 znJXVB(2i|UMvmkuch)TSb-s_*?@rt!n`=Wg3t^_cFzZos)su52&8JbTFmH#kOIlB3 zIJ0lF={yC3{=q=%xJ`qiLW{zBvPzp>|3qM*xC~KkIxHyjfhiJRB0s9NjU^QOc5ruj zc=`^j7*^-Dr{Fe}QzZU*pLV}vclG-A;mP?0uA9TRE@6Z{Jw^AX&{|{jvT+gj!-el3 zP4y*XA)?bz3BcCAxt`tH{?Ic;)w?8>ZM)LQefK#~Ah>3~oZFqjR_45povKIJdaU0x zPN9@2L5GW-?wW;WqjmB%o;#c}Z`4U&47*EVtnV(_b(=X$Bl7FEDuQu-rOI-FWTU$H zM<5jk$U)p4C8(_hp>>oVf}7@fTC-!`s<3D%zcJJYO_DpWkM(# zx|$%=3>hl!xoqJWNC{9G*afAe=?*fiz4h|crMWNv5aBl3Uikc_d?7j%k(ANMpL>|x@w&H;7QnJR(W&Lbc-`NOjC!Ns77s@>%f(_xuf*1(haU`VG`VN1^owqv z5l9VMl?Q`Z>qWh{hBoq^$MSq0uF@rQrImJ0Yd^uDniZ~RoR&sDB#?L_@ZPf3(;O8u zDn}g8v!Ycij|&?cV9Sw9g49=9TH_GaXd2L<($U$EviGNvAL!b{-EEx_fh(^2D7Zo@ zhjtrzjU~#f93711H0k)OGnJ>nfgSx-DUL&KRdE{UqVddZ{D$SgfGV26_UU_2SNK)1 zds5RepjvQR_3*>%9pak07FRd$EuW;dxGeU`wQ4y@hEI!S6bS2n^tn>Ltmu8b6?mIT zleg=Hbc%FnQ9;IeG39yna?qKd_!5=ZJvwCS^;z-w{`0N&^U>HvL3jU*?cj!+3QS>( zI^iTI>fHDTEAxo|)i0bn^8_ck7 z_eqZpN9r?~qZDRAbr{yTVjW{#r+~wWxxxaiyo}wokuO(n@RNDmH+%NIYCpwj&d2K^ zUIz%_6<6AvSco%XxV^Pv#I&kWUjz<*KF%b6wcG(Yd5k7hEqC}ILFS;#_xaG zS#(uy3nyPuH7A7Df(y~Xwt85RCQ&-xXS2oG@oI+lDqgc z>XtkRiyRrdg%hmzu$!E`ku3LIw5hY-%O6e5{n$8B3f+-}dY#j6HkWHAl5QiQVCpCK znjn{(yx7$IGR9;7P;_{V*|XkJnc9}pLAWU6C1H_sg;TpCrl`H(q6iQLUoRYf(7w@x zF*=Dt&z}*rQ{6XWaSpeif{N&KC%el%jetedVqv%wct!y~$J*g&c^WWM3~3dpMqs)| zsk;06_q)nCl%7@>h6e@Q)BE%cu{E^A=h{@1=QXo-HxResYv@M)x?TQ=CAF3sEi*Kju+P5n$a*G`Qx8d5;Zvn&t)dXHj6Y$Gzo(G+t#BxaPhqk$Mg+4zsUob` z0IF2tvg&PWES9t?M?S`#U;p8kQb#&qhMZMMqakWKy+Ri#Lr~BZO@PlYtezcEVXH%o zSQ~njujYn;t4WBkis{kOAxJrzHNIrkhLOW5qv0wH{03KwKB=r{tIth3EM|~%+Rc39 zEY!DURxA9JEb0ycHQ}tjGHtw1_eez;5aXu+{q)DN#RmhPvK58rJ{%6`@~1t=T0x3n z54su;_;W;Uu~XBj+<5}Xx53Dy{3lxGoq!jkIT;V{R~EA+vVbzxhoei+b8hSvz&vRu zY`Tyd+XzS3dnybSu85gzPNQ9oG?hI8P`z)=-$c)9WMnbqw>~5aT+>7ko-_nU*df=mc-a(d`fHugn<6(Kp za*lHA?pCCJpJi$KQ+UwxH+-TlyA{eUB$HzvOR72Mqv^qbX4h@#TvD8pwX#FhBZyDg zh{y}Js$iMCKq?|w9i6DgBBTNmuSK!1v+p(RD011tQv0*vWa}xO$85Ee_@PO{YB_z0 z>$VmlV;reGx}0LL zU`CN?LmVUTZjx`e4X|)%txLAwxkS*}UDC86(rR92WE)@cs_YsWrW!l8xEedkde61o zC?hR6S5|{9s1WIwBr-K>m|Eu zmhYcMzxWMJ_8+H-cNO9qmyAU9njh8gu8?gmOc?~>Ym3G>Pt!Js?AHtjUR@Nl4&nam z<0GFJ0Sz3MinYhD5!qYQTOnoaF z$tO}wIc(#%r#uY1x$C-e=o#u?xHe-`bvs&?2U;BG^ar;4mf`MB^~ zZofW*KwPG~2Qr+78^=C7jA5h~+(X=(n)Gm5p(zmaO^s<8H%5Xo*kHlzH?$_puIVnOlXBXVJ(M zl4+Whbynh@*lTE{EsNU)ZOL}gPmoCS;fw@fl}|obw8mGP^s9(QAFS3{urlZyE_}0# zTHQ)E8J@r=JA-i09NZ>$_I?$m6@rS!=9k%^Tp8_zCCS5&CFbX{Z%K!yF##;FInFrJ zZZ*B8WXRiOPuA~4%v2ST}cbvMVQrcXKhr7KsqcG}7I;KUx~@bo!w9$M|F+qolL zjd7dx%F(*<30Zoh++);2U*(pOu1tUQ}`9lft1)&m`jjDKieDK-PUrprRYQJR~=i zC6hdRa=4h5@hF^wfU@#L;GT6NAJ1eMxfr_>8K297`E}{@0)k(`?#^ zHsg>KlP=*cv|R}GHcgaI*h*~|O&49rdPtY`0@}Dh-hy<~28vv3c2IF!+1s8{Qur&T zIZI8;BK3h35p`ZzK4u+;a;JFrh7x0Z``!e>LDkB#8cQ;6{7!jK+b|vIaYd8hBRxYh z4ZHptjt9Jt?zkk;E|x}v~DOnL`(iF<@7`|O;v%~!yS+! zQrX)d|K+^MTtx>7706( z9C^0f0TJtKJ|R8KjX z;T{b%s+PB9AgLF3_dU($qdi(>g;r%Z~KPF;rJr;es{p*KZz3Sp7EkW6e9a){LwjHUSm`ov~aVuCp zJMi&6fbHz%4J#L&u=Z8ep$f*j6$-mV7*njvbl-(9x`OvbP>N~<-DWYXCH5@Uxp)nI zt?t{{poo|%Q2mGpZpSE#nAEtjUOgw#{(9@7T@p^aiEHj!PxY^K_~MJxkGF=DK+V9FFx%3rK{?iz7rHH*QRe0a}OA%OWwOC6DNdYj_B=Xi zGx*|7N05QBbi{zK7X?e=8IQD?!4xsm1Vb?H9j}Od_Jdn zpO{Z@9bUa!he>=(c90~*@OeuBn_gUtbhrTT z2{G74+dSAsk=~ydKh%P9t=1a)qQ|eTLvT!m#!6x*qZxR9d^&EG!!!oGP_IAF$(XZ$ zt7zqB^bL^V=ia=tdZ)W?FZiXs;KG0OUH`n{|Lh<3G;3p>mHy$VS8s=mg(;q+B!o=# z+Xaoa#UC8hnUn60R*XCas?|Wq$NLmpqp1iSm=%is*ae?2LwO3UGLbWs%?9W2KlP-E zw&p4Bw1mfHSu_PGF0~1KKjoP7qRkBMd6eKs%8P6N&jIEp7G-YkV8# zCYmiWh8NMGv?gBStB3&qT`k9N?K_QXIGh%ZZFtY79njNlk0m%mwVPwi;RRtM!mTf&ilffSF|DK<5o$;UB%tcO7FYk1f7|G@lWVL0@ z{qhB~gL#CziX1|xZmxAjZ63H^uGRLHwXpf(a0=EPJ7i~BPVzGB&Y;Xaccxv2avWR^ zLAqY~Rtus0=P!WgEh5#V#UmflCW=5cpVF-IS;vNt6~|pgdUL=lL|G1Zgqa1(jbo%a zjmvWrV4yTo_Ye`4TVe2W5@ra&>VQaC(tu;kznh>D{qw=+1LxLikg{3@H|3$ib@OG? z6&>e+@Et@@Y~XOT*0O+b#4A%hHP+ z;d7&AXI%k9jRbe#uNYCfhOd!ckY@hZPl?%e8FCfVA|27wjNp)A>d8wPO&)ISq{X=m zO{%fxOOw!b4j;d0G&Sl2vKoShEcsvHIyrB^fy3db)8C#H)bb?RXhsT*e!h{}>mith60|$N1uq_B#c+-0Mirz~6IgPKE&t(m6+hy|)y%E4SG5>M^dbC?L0`M{?3n6fMW(FSyto%P-;8O5|iDH9H@`}%2u)=JU+yv1BuR3cZqzp;-wqK?>4AO z4@me9DH258Z9eBoUcJLfWE;g0YGpuVRvsXRNa0dyQ{1(J-ChAZC9ctk9O|@*d6phv zPTzxMYtk2*W?02*WI}!UI=gWd2)%dK;!-UFXSG;YVps);eAf&Q-9{Jr4OScru;cDf z-axCAhJ3k?77s{+$^zLNSig)HC9J8tr(#AuDf8QFjejG9cXsN&2{{Yh6(#bP)6%RV(9a)f?l>Wz!giC%OB|vu|ZhoGSPxx{F29+?BRo zBa5(PKzov?qWH``?l#RxIk^{FolP=Q5NJMm%Q&;@vEM`OYTLMXUVir?)tpSarCEC_ z<1ZR{Pz<}LRFh~4Th?n9vH5kW7R`&a&Ne|DmtU&oGM~sBG#kXQHXqZ<#gO_@SpA14&`eT?j28TKk zk6L(<8Zj1NcYmPfvbMJYdnT&nLiQ0jN4l$18m4o%>!v;`TAL&D-@jnA@IDn@$prH6)8Da~bpL^Wkfd16A(k z!0Dn?-MvxoCZ!Q_l zpq(GPJK{rx55LWxotQJueXwm7V!T8^^`5u#R#3rRkx$LHYj79^t2d_Tiv%6t4;t7i zC92|COp+HED+XMmd|+_N+NpADxXAv;4Emv<)Pv|Vuv(ekwJGiqq#GEs0BHACXXXw%2jeVjxJjB#ZN7!xK zjAaLq#8m4gg{a$osM0$5DM+A-dvmxW3uScZMnXQzXq&E&V-w7tGSUP#)CWU+2P1;r zYqeSGU>L1^BCpP&tlV)Tvrm+>a-qL>Z-{>dlx3N}R>9#`CW%B`mtAuiK1Pg6$EAd!|PT?VLyt_m##wLUv~;Fwk~^Qjg5v>i>r?*4MM zR)Q1C()n%w+Q#fM6q?`tZ9l%}4``g16+ztfmDj@wcW~;`E((a^cc_X9sTLZlmS9v$ ziQPqK$H)_kFlkbHJ&9t#nj#3rPMGE`M;?A5H8llVRMc5GP%Y-xZ2Bm)9k*3x`&Kdg zt)bw>7k}`&56=pU(dB$+$d-?Md~tV;;q6u8S1c`0T)w5a?{|^u)_3o%HcRrwtOLqF z&N);Uhuc%3?=u{88R>VijE8grJq4a5>7Sk$QU$C3!Abu68Sm8g?kwHe$;#1YQj1e8 zS!O6pcKtb<6k!HiJe2?SxJ3)M+!>Oeo#ni7?!sfbh=1(G`2qcYu7O6}cV{iXWgmr< z%$EKEUl%0sTrhfUO0r5v4}5W{9gz}1Zks_rMUWoINC)pd90#e3k2$V0G0mc^E*Ktn zmj1eQ^jY}4_7Hrf%?a0cJkag(xZF&c65345r3G!Z1)by8@jVy*h*Xe$#zpnGuXFpi z1b~0iBE&xdX1Kp>)a*}4_v!s6ngy-k(=c8Bu60IC?XRI6$x=cI%nh@wdN|gHe_+-41jeMC-Cn>J_E#RfZlj}D; zSeABZ-o0bOc}(s2nBxk)_@^sB*1f-4Eo@A?RR|^cqc-V;gd7%n;I_`D3w?+E0v9e{ zrxy45%h&75<%s3DEc<`{c@F2lKL1}YSeU8BbD|m~v;XAbBYN<#epD9?_?7?l+y3oK zK4tm*l_0x897FpD4==@mhrMK20)P9p)Z!nbaBz%R>axT{B70$Ke6hcL-wx~3GA5qI2HHAP3ridLTqJ&W9Gg@5Cw-`F570&;4_Rc;Nlyn zmzTISCCY zQ6#7!QD`Mf7RgO$kSz#ElALoR5?XR>P{}zoIW>}V3r%k5KC9i|e#3Y4oNwGQ?zs2I z`;P&vwQAL@S@qOYRci{71@JJPzqnHy``{lg|G)jvuuGy&5p|<-c-Lm1aw~?83DL%@ zJ;}wX@VtuN^8hD1zn#$P6DnJ;w4#5chWVoC=N$no^s5fduF2% zdSTwU$y<&4sdEqC+X)r2YcDy3cq0QGK3M|a5BTRo{@ZgitpkRLEzI6U(V`l4Lgx~v zps#YjB&K`B(UM(Dj3XXYYZy&ewYn!liQ6d(psZd@l;%CGa-e1#xbx^h__H&1mioWR z{?F%F>19@&OKRZyb4MO;3)zJgT35}Eaw+&LtPzJ5Hz_kZq@=A=6@>0ZQl~>9S=Ku#<7;1#}OgdS$<^ z{Lu8btDp|RwNDk2!*9<8bX|!Zk$N`j&O=%929QAgOKHKAdPU3Mi5|d0LejD4f1B`_ zzn*w-=RZ&UX@!~p(dvIJ=l}Wcxa@5nExeKcw%tCF1&4uOcG3KUP2qWvf?;^GrGs@F zm#8w3bM_HOXr_fP{?-Y8BIKE$!D1&gLK=Ut4d`YTEhrgI*_^QV-U2+~6~Lj;30eKt z3F)y0 zOkVABGOuRJ?tQ4ODX(3L*RrOdX4+83ZmdWhJ{ z?$45}hl$r(S2DIN`Moabs%Ktqhp7j=|19FtFA3dBUOJ{K0d44o+2zEVstY2H=8Fpd zOyzejm&6Q+LsAZ137yX9~Q)I>{rt6?r#9PR?6?>+K4%7j^Wkn13_Wt08SE`ujC~fTwO$+I-7f$xnc3Zq$vx)i=ps#(u3B=(2;=+J%ot-;|oG4c^w$ zo^|(4J{m)fc5M{jd%1;((8TapS?G=a+3lCYa*S1;aFxW9&ts{kOg0vR^B+HiM{OZ@ zto_76*e^#_BZeLsF+;Lf1X4{s_rAMg*Hp!O>kslH9$@$zb&;06R&qFWH!=_^Yd4h&Oh3YIgJWP?erDq*mOX!&Lr~%fv6P-C@~X`aMU@6duzY@xt#s1E zuPY|fx+ySNKu!{botshA<8CxG%PB^x;}LewdhKh*jm}@9{G-RWlUZeo79im_=CL%W zLO<9bdKOgvPNZI1MRLlWEq@y{eiZXTC?sb69BmIAq;9VXDv*F|Ge ziYJi`w5Td`qur-YOpRJw*QN3fjFWa-I3}ENI~xM%x)=2`Xy>D#C(Eb}bX~&h2mb3~l>NrnPh~8t7~Qx!}{h4%p$xUY;F2SDohT1WM2hNTUoX9vM1>fz0;w>-DeU zVZlvs=JNRIy?vWnhuM^6uFU$Z?I1OUIH@XS3&d-@1$S+6~8ca0*9 z+V~-oav9DBvan)Zl88KJDev8 z-B4B>NHnn$lT-fOOVRFAl$f`*$JWSN`jw(-FHj79Kg?n(;%>Oi4$@}wN`GZhH>c_u z-<4R;or!!TMY~^vO=CDE_HnW|jxq3x3=i}M9j(~Wf@MItsM2t zkI$jXlw=0<1DgR;#RCmu6d zsR{IyUWRyoCoM`@h}ZU6CE7|b{us@7V7G~K=axZl)gV{8ieaiS@QEt+_B zkF(Q7_U;8uu~Z9+j<>g|;WeK}e;CPig9PIbPydH{azXLLA5iOJs)D$|9&O9k@K+p>$8HZniq@ z6&S+{_piQ!jwF3OM=NJ@5R(2MaYy=z1w zqTb{k%;j^5+AN@3Uv5Jj!=BHNuQ>balBas%qA%Kl4w<9i>4=hQbf?WWY0!nNzWRae z{r&kG5r_2wcFqNN;D1_g(33!V$c*rAM?s6I+vB7fmAV)rnoKrKvIcZ?NW6>dnoR-VP~8Q| ztJ|LfckD*&WtjQ*6jwR`sKI1Eo4`>N4|)dDG*j`{PP~7S2$S7;S+{0~72l$`qt{1q zvR|J*@p_$gbty#L9s9({wK$y7+8SZyigYn3O2qely2d8D8Q373vx)XAge+oQ%B4XH zoOs+yhK#AV^aUjx*?boyqJScwhCAqEJtn`MlJTa{o1L3%TthR~86P-jURg@aY-c?6 z7_Y~9H!cK&wPM;M?Gg};MJeZ!$RZ4#nqoGHzBxNU01!nfU7{2~wOPHq9Xx!VNQShN ze7z2a`)-<^m~<{7$*{VVr$qs1a~j$JZ?vsXe~~TuF0UG5?C|n~{0Kt~xCoB4HLIlbldyXq zu@r-D5VlM0^KPnHialSRE^Snt($Cs*$kF9U$3~5DlG*xEw33=A0OKL;Sls71=yQRR zYhw=O7sD>#jDA`W$@m|PO%lZiS!>PRvclV+>|d5yMG+9(#)D-5z1mbs^>P!5C`Ya) zy;v93&buza{Uo3L-s{A9;kj9GMm$UX@{rG9)Y!}Ce%s%@jak}*EF3W~6MqfoN-}}> zY|XN*k9>tKz~!+S=dC0@=Yf}KHm)P)TfA;-3pXImHZ;+fHrMJMyBIJS%Pmt3D(PI3 zySie+l9kJAe+>YoQF&fRoi%tQ@_nhIBO6<1xQQ;{ExA$mAdo!Da0S_(Ppbb6RH*U{ zrTpCKR3$lYm4dgg^LXVwyR`YsJ}a9?W8%G4v;n%%-BigiQ~VlJJkE57b{o5Am9YfLL87~*HNvxW3_OMEqf&%KC0q~C97oz;a=!uJL@xi=v}EL@{g z_>KLxbt=k-PZ&R0E;K`*QLfjnOgoJPNgf+Virb`vh~G-w-3;FUPLnMeL0dJ`II7cP zS4MkN>du=#@8;d}kvB{6^4Hi5v)-;1=WjUKyO6s&b8`dnk$vtX5N)~}znj?P;ZM|5 zu74G#x}~GX^D_r7HYrPAvXJCdu1CK5M5XsiiVjf-XmAu zoyYW#FrMY~00gK7&sFNj?*2XZ3yac5af^Fg)*PN@_6{$jW%+eBG%fe)^P8ZX$xXm& zzOth8r0ULLfBDRTEMB(wsEQf+da8lT8#~Nwj!cu6699{4j}cN8ql10C3HUIC5g*No z+xlkIFH=3b;+AaSTC6$5Q12_;J!*i`+Hf~wK@2IO#iG-pivg|}$*UaRm}`lq4RbzAkp7RY1yr{q!G5)qPDIJ-CG-i?(p z1b0trU00@jkiz7)yw}z{iCq<6%EHTVU16{rQPdHgl4e)ngeV#umUC(0J$HokTtOav-{Fl3yNOHm>7VMOPOiAk`u z<3sS*uj7vz9d)k^^my~vFQ~R#fZU4rcbYedppm9-&UI+X{FTBApI)dnv4zne6vk00 zy#+)fXLm2q1bSIltu(xl$&xUCL?q(uKtJXg&C+yGX206GsTm9nRZIu{2+qh4Nx(af zGX&O^+^EX>_TKT01p{7hz(s>-;MOnq?6OdRv>b4vl|C4!$+~J=OkPmzOkS|6P<=ZET z%q@lX!&FcDKi*DwxUubGhHw@WD`zZimtO^hK9LqCS&Q>m&8(P_GQ5K()Oz6II_iLr_#K# z*-Ird_W5nCzTWayE9dPL_wA$O=-WR@St%Q>HQ5GuIVG|rj`2nDbr1j07ADJU{OJBH zf<2CN1o8p0*Cjt11irRVtpv{GPnu*ki5y^gHPd zOOtzF-fl&tp}6BLepi1LqI> zVFIPBD0mdCdLx-7d<{A#$FdUAZQ`dlDJnD5w5`F}dI93CC`UhLvGOs*jE~(EX(w64 zn#v=VUweLOVizBO4Z-?PfbX}WAl*^&8O>>bbH(~8^x$hfvKWQCFJWRo&~SK)mZY!` zxv*%^G_^OE(Wga?+f9j|(8tbMBmYQg5HMy55G$SeXin0nq@YYPH~naX;`Y#M{LZXV zKR0V148s-%0OD-9O=XGL_Q#dq<4k>oyG2FuJ@o@Oxfx`4{bSn7%#4Niw8-~|?Y&#S zYu}Vwj&1@E8??Ne6|9|zX*R?aI0bV??Dj%ky^B3^t+<_{BF{Yf;f*@|BKlkPbf~Sj`e3Jy zM;86sMf(FTT}1mnmKuL$*2?91;4_%m3CMdmFfz2;?Cu-J?E;EQI-;AsPlOd<6T59* zrD!u&_n0oSsF3v7n_u`T>FR4GZmF{j4AyMIVh)Q*4>evI@2{>|#BIqX#rup%@MDy< z#ST*sXT;ogsrfOk<(XsWlJacbx`M-PneGdsOmW^lsA})6Wse!hGatkH*SoSCtUr3i zY&$K>tEn_ZOX(Wo@+q#K=p{St!DsfNY@LozO2@wDqwBb5{7wd&^%#fUdOuT$Ck^tc zah4VTfNgEm?lbA+3*GxgXgL=kt*79x@nUQ_{D!6YiJ0A;ck6tgzkRZq(T3*Ds>ytZ zH)#@zXp@?!%(jT{8coqCO@9rN8yZP_FTYb?&G7jw@m^glqDuV=ywNZ81@BE|N@7VS z>`ujAyptBy^FP)~3k8cwdsE{z`w5h0v!GT+A0uM|${kzrEybfFUYkW;z?(tZ8<`KK zGjMn1uUXi#DcuLBEgQRbzR0Vx%{9cyS3l%!SPC@6T}n8E(W$u{e0Eb6F;AQHGk(=N z0!uKyA{%-x*KBfifORxjv<|zeGnC6%!Y9BYLdc8lGY$PUdLr5L%~lK41_Qe_D_@jl zdxQZAvZ-g0?|=fiunQjT_rW25C&QFsF=ucmUPm4!td`}>D2i?Ti}c=0v`hCwen@GQ z<9~W3-tgrf1NSWDgUZ=!jxt-HAx=+PErG~({l5J=Qk#~ZGNo}r6}(-yQ~4f1>OaC1 zn$%k7S{mm6PPfXc2X#h3P3r>Jg(Je9r=Pt>N)AINj7t6N`@6&aYmX3!@fYKjve5D| zKt!|g`s+A>p%z|&qW#I;@)xai(8#kB6OZ)~KFF4hq}b4XUU=LnZaAU5P78h8>X04r zmj5id8Wv}F&onxlzI?T}$fOHuO+|9;>$$C=KNua-^sqk~4de9`rD!9k&hA#n?#wtH z)-nPh)zXAl+z}du#(I%=^rt!V(;+JNWeEPLSeq%0&eUzIsIJ;qFk-*jBe z#26tS?svGS(&!0YiHv+G?4u+IPz@ic!Wl(V)|*L&FV`)lT+Dkqi!UIs(N?Xq0M(Oc z&3YY-QrhWUaOT>K8$CUuvccu)cl@LfkPBlbru|ds5YJujkZ^EH{M0gHf0opYv6uL9 zD1~${!#C9@)kmp2$K|?LZoYe--PSfY4y9V9S*yKtXqi5d!ugZHPO+h76Fv0F89KS> zE2E5-jW)ZUXsiXQ$v>C$@^d5Zok`ig>aKR_y~dG~!EvdbUDQ}m!HFAP2a*Ssxt#E` zs*sj?lkG)PF)E(aV-ZxS;kCXaw*4m}xY&q1Dulfyo2UY8Gk1@;(lk_}g!FSS2>-?~ zu06x+31oNKE=X7Y4eBPDz!M)zr;q#BMr^JZu#*nY_K5e(+6-1oKI}$(H!+M9?1DQP#E%Ru3zwb#99}wAHH!%^J%NF0Wlq6HH-7 z7${|06jpQ&T3dlQ-KbkW&rf-%6M(GY**(^6eC@y z#d53<`JDqRU8d~Ui?mF2%bCO$dNY1-2wZ=#`MG%}dcdg1lOFU$xnDP$1?S>$y;Gi& zRi*3*dj|m9cR3K-;cng!df!-(wC~-#Blt`EuyP{U$C*B0AN7EJ=#^H#Nq}iRh%|Ar z3C&;NsI(p6yIML7KbJHjSK-9}!(zj}KJskiL&Y#1K55^7z&$B+kt6oFUlQ&;ajqUmT_P|iBLz5qY?2Mr=vVSHgSr#|1-6Fnk#Yr2S6Z)DV(A>;a zETX*%LqnuWbqC2uK`3Sbwm{uYXW+P0v2Cqgboh!&F+nNk>E6u`hio**3_2*rA-k^^ z4^MZE_j~yozw7Oz=Z5n$iuNy;dLXmP*LlfbW&d;}Yw7e zYE($p;=E*PzEu;-fG)t(E0lej^Vxy?@l-lEtZ8R8YY7I|M5pDhys_n_iS(-W!-iF| zyxO)k)YvmCpY;P53O4N=X^%p%US&ABj8!Ze!g+o*6cMY;%rOTu^nc>a3i2K6t;{lw z=#n4$Ja+wwU3x;Wn7xN=1nt-awx(iE-Mmc1C@nAytLxt*w5{I1dMNySuim|ol)e#! z?MZ74<_Nd}{OP8hed6f!!a$MwAoX}Sc%sl;$d+W(@y9WG)SHR-s^-&Ed%zKx`)e#R zcDgy0o;t$lZ|l~Of0fvr3%CKKs8$BKWsJEp;xsMPKXyo7i(Qt0 z>4m!l0%bFac$$sD&9yTxdP7-C$5;fyG{`z7iF()XH8l@0;F5*s1Al048l*Gh#zd+nk+mOj7{}w$l@!ZjQUj+H zy@_q=i83o95sunzhq|n*qG9($JWhYC(ttYDenm=LWBbu{jZhx$&y!U1cnR?B%7I%D ztWV{voucWC2oUsAQkc9{5ckC4iVHu~k5A`?9v(M%L(dRKlv2=6RK$@ugZ8NWTx=0L z=NrfElVg44ur((oFMQl!+V*9>=e*aM(YYtHIS)xJl_-gUny9mym#~GZm{Kcp>F<<| z(vZa|6ttq@{k=9G@l6BlTyk>lX~AfD-?&lcJ=wgO#Jl3RlyRm_tfg9j!|%}93pEt5k={2S3oBaW|1LS(dkC=IWZ%8drYR!-K|KjB=R4*wp{`&2M@CFYB2O| zKSRzlHgcASqHUe;)XBQ+NXpr4#;t9;Xm!%>pBkO^N^IQYj7STE>qiBuU`aWN-es}mQ|wo@Dvrw`!<=o>IYK{M$e-wI1&Mo(Javskg5 zG=X8kf*^TtDncbwF?DP=-NtO{#WWx7VZpg1tNSCVlJCqFe1-r5?>m9OtHx!q*6v2G z;ZSF}fUkMSE;e?wN?*2M=Ti;j{a<|^caPn>(7`8S6=)>LD;l)=p53+Oid#4KOVa;!2gY8os2VIz5s5xs>X`w((V3MMI8`^$y^q57ZQ0AEEIbIr?J zgDR}FhnAmqGr}>4JCg(;Y9i}pw{q@H2o!4qq`3za-wM&XcAGPE;`=;ejHcY+n$xN& zpyJ)2h?B5;)rk8TS>YGMi|6v5uipfk&c8V}S+cbXVOh!*elnUqyWTTfr|rrc<~)i3jL?5|=?s>I#B zV8zCTL30K2OS`UH)#CaNYM-y0@iV-_WJa~yfgGlhx%uH{{u;46o98{;rYWdo>9J)x zlXG)U`K#=_jphJT4jg3$;%6<#+ymgYME__A%KbEGDv!`kXS5xT?kiK8dnm?4uS3`K z^vcIOFsU{<-+umyQXW6-!{H!`?nt6&bV+$*diwRl{&^mdCjEJfvUGpb?YB3BD2-mm zRc;_;7T>o0Fz`tAb1l}YUM>$pEH}0Los}$j`kqlCp-s&aqc7Tq;C?zr$G+ZHwJ@#p zSPJZrW1QLCLwk?S!Fu4s7GV22b>T01{D^L}Yk{ zo@;I|X%xez_ktOLQn)A`145;-W;9S^1?^$MVgYCkbyWWj^>}YO0h+%c+FHvlFW7Ro zxJ1+3Fn1oE10F*lA0GS~y^vj7)dI4quLVHb?Z|jJJG2m811^?)Q@md3Fhcg2$*dr~ zwz-AS=Fv)hur-ujsq#(SJ!Plm)Er-TYsUNQVM>VzD*ItBg&cn7q%0p@%MUbkG;g4- z-ETrH-vwngtR%!QjW7(MDiUJf+dH9Y_8y!0}(U<8WVRZcnO^vDXV}@?us9b4?XqQC>mEL zz|Wy0QEi5JQKu*;0Qm40ofVj`gMKKTYu~C=!HMV?wuh8eQM>QVfVToOG{Z{D4OP3W z?E+p_j|DxnqjS|Gk6JSr=)U17>(~!ND2SKHe`E_d+N7F`Kh$u=j2${j#~PXDx4Ajq z^+Fl->rn5uPHYf&7pGES;wc}9TfAsaQMGLrn!!)8O7?7RIRKeCGP!>Q;!%U)YOmgu z<^;>*LCa_vg!_p}zlML$$;I^KT~i*GkIcbbrp}M^*DVxjmYd6z;mm{Hs)aQ7(x|2< z1X_iEER#jph>~dS)XbC=`Aj&VK)IvlgK5W8FnHj}w&aWfy=b?rgxlk^q`sje@9i<+ zOw&>$xN%{FM}Ng|VRdo8tvD5^QYliWHwb8~upS^1DMjQ-;3Fra)GA*r+Gb>#g!6$6s_hnbIzUjgI>()D_5G)c#_@y4b3QlrRg4m!oo7BL)tM$pj4iEAva z`(yZNZkypJ-InD>q!=2^;a%pL6Zq-&OgW4Bvav-7d${Bv86!f!Wk6k+Mn#gl%h)mH zFxL`{1>0;N(=(N+lMpKjQVp7`Ec|#F?fiGfXP0iR*ff%2250UKvLX1f z^|J5u+7E>-)X3okfL-;;R07)BJNxL0%89GQjIBYM!ML5`3AH3nbY?#+3uI5zZ9~sS zt!VD>>W9ZVs?`y)*(s-xf#d#3=!f!Av6T-^xohOaoBA1?Gup&IkbEZX>lsBy^qk{T zRBaaBqXV-T_O{Ud&^3s^lEc*5<~`W>!}}!o>65KVAuf|#;d(zg{)5*FkL%fe%sk^( zN%`K$WLv`^pL`?e(>=vNrz@D`1DJ0A*piZ5u1@);v&MVVCQg)>dGb;96+4i^^eo@h zXRkAyiHA$i4ZV=b_hb?PN?#*#+cC`6|LnOH8$Y|-YqNCdC)<4h)a`AXA8bvz$5~bZ zU>>I_W6|Eue!~vCUN8mM9-JDC&F7>r96qwTMkGQotWm_&Vfp;{u)~bX2d9B{{{}4r zPvX##M@g}!$!UDBTRJyrlsOIba7*;h?zqJrLV2z{4|xv&sP4+FH*IduxI`8~vu;@L z_iRl-k66|VM5~hFj?8=Z<9UWEq!Y(3<$4`wSNt!EKZI(tf+WGl)Lo2nw7=){?!*9X zQf3U5i?6xU8@HD`H{96<&-W2`!;|MjR$mH1cP2Ww%8U;#Q~%XrWwg~uMiVw0_hifC z2LM+pn9^Y*C(D%d9g+Ob?;(!!XUyKo45n|SEyvrXRJ+T0$%4RB`bb#A zqc)gzm_yIHInq9081_N<*%)zmN$j$TYiE&UHeXaV-7TGcv9W0v>oG$B#Y=gcAL)hG|i`B*N&MD;?0JZGY?Hucf`l z_DB=Rs7Iy+ZI%5Mlu7^UwWhVy<0mHJ;h7uP9c0ci`mMmKz@^L~7JyJ+$OC@XW%}N0 zTM;Jt(ny(7?lN}%l2Rl{qN@YMLGi;dBcT8M@n4r}DJMM*I~NdoSxVxmYx_sK-w8bM z7`RmR<_$oj|5?`mEbIS=yOl6ovG_5A5RfIqLF+k$`qHO@EWl|HW>g6DV4Lcx7-DaJ z*!7I6zM@ka6UHQJJ^Sbq3E7^0W{>%Es9lNJFAFq3y|a2AX-84{SgFm|LA%_)r%fh+ zKH}$9)CTrv{6mS6Oo{0Te4p!v2jz{IXUw7(y9!?slc=ygS{8mqGE#o|cUwpyvsl3f zsG$Rdo=s~tIyT++xetLeSyzT_IhID93;1+NssEDQmY0Rmt32Vgukz_}oTvNM=Zmw= zmleEdwfq$#i7i>rdl#i|{?0d?3y2^FJLTc#Rs!GSfIr?Q4EU66y|5oDv`qT60z&~G5DSZBa{ZF8Ko(Bk! z1>Z~`UHqT?a{w@Ue&c%an_s5h{|&c(Vgp)tFMHo({tejpw->p<$);fSyyEh&S-*dO z<&STGX>y)TQn%m5zJJxv^+e#G0|t2#|Lt+V7U@4q{-??PN6G)RqW@U(KQ`ch+{Hh= z-2ZRfMbC$GNtOvFa{Of-W;S0*>D4iPGUzXIssAH4P4+Wv4u2Gb?Ah83D${o_f<3># zrNP`H=AeCf$ZT6}pF35~@(%;}-48-o!Z5F>RnMg1tDdt%R1AyvX7t|BL&07@Gh2<{ zwUj=_W=?fRkJPsJ@GJ3?197NB^aKD=^UtYQh6mAWgWkr;)g? zsT|#?2jCtH3nM8B(?92~ zfgAQd1Ws)Kdq)NS@ybE&j^Pqv@beV`J6g-=+?FXgXlpP0TU-Tsl2j-*>m&Kks|Hel z8#yCdVIaLhZozDOeS7d$Q%w9=lfg?J{p}xWx3G z!Z~Vfx#*I*^-u9}Gp_u?`@1jij<&XUE7^jdTrxINVok&iz+8sIsPjd*-r$0Dtc(e?O7 zS3te)h;21dN5uZAj18gF)scm>NB^PyV?xdq#;Z z)1mUED_lcCjE>`#W9-2!AAm!6rrmI+qAb3{gWL?~InrKtaj*65cpMlhfp=M*kEpmE zS(HwiS#ePUC(X*DPaU7t^VKeXFuc*uIUfiP^-7{-bL9%* zjgU!b(^no z4+2NMq=B=!yO*vdwi1H#&efNd$0FLFir0l?dIgb%!V1fP_SD;1JnZQ%O}*q)fIV*U z{%Q3wBwe!j%TYGC-U-izaAdIj-uJyl9c`G7Hb@+V=@IP}b(cPDq1MvC^vgrzWgMTk zgp-F5mf+KEp+X?&dHeUwdT*tTnt06ETjMr+GV-8j8(>BEqH{^?Otb$$1+MImmMd$| zB?-89kd*;(h$#6fS(wm>g7Gv79DZ3LJZr1jnH zyesHU4R*U8>9vxUke+-x991S))!sgo9VU?6iye%F#?Cg)V39_4@VMo4yKPtOR&{)Lof(p50o&8`CLLOT!;Bj@J8c%m5BLfD#CTK4TG3ef z6uJgqK{Lg3wRA6Br!ji=ti;25Wmj*d{{^kkUkC!Q zyE)q1kCqXoK=(t%cP4z?LVZow;H0RR zXS-*$V3(%b<3&6!~a9-q;WV6_E(- zOef${dDRDWD!cYUSf8*xuV;S2d2fm#^Hg8;)Y6;CB9~l^6_Qp^j*P1e8>aSm z?A&qhffG-Uo!eOx(xJHHlXa@p*W+2imPAGSNrKw4C#yMz3hVc;@W=K_FU9JVeTntd z*$h}(w=2;ywr_0hwxjU1k+|wQ{p#r3O4GoeEQ?)xZzMeZbc7wWKqHSzl9v}XaT|GB z;3>*pLU~h&%aKG3R^Bfya|X!SZ-uT|hyXgT&C@+u18Va9HioUjdN=?OXD9QTlt8dabB9cyCUcw5T z>0cr)RGePgefj6z?V5$M{K|#%H0Lb@YUbX!cIG7v%j?UDHJA5;QaH6z6G2IhbHrCh z6WW!#vVxhDXJW&W09PWbQ)K*%D}xo@8=vO0+qstRjqWUKecOBQB8%8!5O|t|??QJA zX;*1Ga|%cp%s2J3+jB9P4qi6A4YV3{i+{zAD4F5po;M)z`hF>T(*5N;CpS zE|2F^Pd7#TVZhtJ?vQBmm^>_FvAhXR?Qi<=R*;-qel#q7K3mQ!)Gmlx`>wEZplR;> ziX9zW44fW5c;?759Md1kNa5W4-2@HMpIi=~BA?K+=O}R~sXa(`J(#dwDfA?Oe5Tt3 z`|tql!^C>V?a65|6F0JxX}e)vK@yo6vnnmE-MX>pW15dO_i8kqBG{7G zjU5JrWS{uqGsW%dR`KJ6$m7=_gGLko9yNT)OY(+Dhak=A{IIzsvp?8$hJ`er_t64H z=RsfNP zuGG&siUVF6c15sGh_}h0y5`#5vpr2#%Qy5IckHSs}E}#{w9718`^R_`maC>5AIeLeT{NVW zc0QvTJLmOkpuhj*IEtMo6g1aDz3+@v04n}pQUw6Rflwa4#`Qk5A&)v*~YyUAG0JnuMyNHp1j~B-VK_ozAAXa@Oz8C=P`EE7uk%^yXZM=NFB0uNWtP8v3SPaSsFw4ry4tJZDzmxwLaX*kJx27dxM z?|%bwm`XU5pHUS!$k4rbOxiJ5dEpr_$yRzXse_4YPJGNjG~Cq774jqCB9hr-HX7J) z87Dfd}wn3;xZ;GCrPnUw}?zO}{BIxWtz z?ign8cS=pqDO{w~&_;cfAv5Q)Z~2$$d?x0w$xWgCDxCFb`M5gaLY*EkxRv@y%yo&I zVR7CkAzupB>IFZt=mg_-6ZSSR&@}5#(*?@oe!u1NeJ>zrGW2(regob+g>P`AdJ0s|e4bEHJQ zBk^Q)A;X@{O8y!pi$JAOKN%o4FreA)V@bg*VD0V+2{*jTm4c>u&WG6SB4aQ`HhFP+ z>fXM#@J-)op~xmUqYg>F3Z?jtt2H^c`pfAR;F$C@-17(1_VPb6&uVLUr) zYur3SGmNiHP0!~vfCc(d5@wcZQ+O`PEK|$*%*t*qy(*dYGhII`96VQXIaYoIaJCN0Tob&+t{=%#L z<=EpWef!{)QQJ!8^TS-=(+yLogM+<3k46{IubRs(18;<5(-Y)Z%Gt%a>w5R)4^M@_m0m>6Xier+}5W76?X)+g{N(&jl*ahOa_-}3r0Z2 z(KwUG_A+7Ex6o6RywwypPRC~e$YUP2i3LdO138cKp#zZdg#NLoTP%VA0&EM?UX{sD zDKrL}Tl1LSoJXMXXnq0RHH!C1xSx<@>NO;Lv1#m?MysJv+Fb0UClsO|C@M z+N=2Y5K<1%CD!g;K;Z)#J?L1!y&TrOjgqDk9f@uN@tqk-JR>&L+clSX^bttr!zf%6 zOd&ReRKI>`+x7e$FZfs;@twbk=+#gNmnEXE>z)yupq&8Ha*rf`fBty4RK-x}wd$qvG5>k0ND&(?Y zCq zPKjZ$m_3|5%yX!ok>KU&8v#hD;V6Ycv-8Flgd`8t(puO0;<5)JEg!L~>gr0D^?H4G zabS(8P?gzB7eQZFWAkGqrpbs^OSmpAd?WCB?UyFyw-}B9kns3$ zmGmcW;e8A&)QKsuP{yY+H9+&ftkNH#;^l%;V+@(Q7r^ag5HQ@;OR3VQpPM&U5Z4=z zx_IF|VQL%jCcl$mF8MeFnp?pNjX(n5GD|7;0M0?qe~5o=gXl?o=@ui`KfHaKv_ja1 zfAL{Iy8gI>nKb~u{K4VSZ3{R!tN{T4p2_J~$osB^fj=FVFy+v<1TID!%^(@pP_%aM z4LP>z(T)3pmgH`J0HryCq7Qx?o&-PS^h9@Ea; zZEq5OBGdoH-dl!6*>-#5f*_%Ugop@(1xPBXAax@l-JMd>Al;=P-QC>`9YYC7cMUPX zFmw$e%`ou4xSxGL_p_g4zx&-E{>S@if8iKluCuO{zqQV_ptz;Y%fGko?zq zb#1lcfN0olRGVM_>E49=jKS45O9%%#M($osG5h2;=mH>8oT~O~YLA2V69ejOo&=_A zFHva8z&d#D155q<*RJQ9_j*6(7w(X&X-8rAS=P;(%z`d2`fp)k-u>wfW1DFW_p}=4 zG6bui@e6*giy{Xk*L1$?dK&#L0QuUjEQpN2_mB(?U~zFRHm4VwfZ$UtL{F6af*%*! z@3)-g-&t&m&VYkm&k-Ua*X%NO+v#DRd_lO4O@4Cm)dSkp^=*Rx>T zNuWVgY5}fwI_24Huv-~7gA1~ZL=#Mt8H)weOOAXv8ay8DB+8TFndJmX)M-|Py0SFk zPEwj+m3>P+v?2UQRuF}zZPu-YMJ)fY+h!i>I}JOb_{w;`fJlUc&2^&7mq?iIYJO8!UV-5H=xm0p}UEhV$0U7Jk zcH@OI<$?b;F4M)Kq$P#T1K`W}={~%5YQ6fR4Yja8o^ib|XLY15ak~?L(orFvg}ND` z=`g3`K@$F&(A9fFu{YZ+x@k_c#tHc;!GifO*4mlN+#-X1CgZ-divN7xp$<-bF2t4o zV`PAZHDt?dB0ujIaP5M)nx9_GElB@3nZxegtw0lQh1qx*>Ux}N?rxd%V%pq-TR8XM z-N?clyN>oH?iyw1etuup%1xi)@fEVM=w8(oCg)bCSpd9%cO!czMJ)m3jx&frOS80(zEcsoCrNFkUgt$12kA&JmNs9E$QA5nD*&^>amHx z^;pY=jE(HR>xg^RC6~o~KNF2kE49<6!R& z{EK0l7f=n#29ujGj|}EAWT6`aRHvfAbM@DrH}W_h6Q6j$ks4#&f`sAKb{BbzJh|iNPYitn?7k^Ay|m%;SxQ&CS%MHxfu@m2p~X$%_1qZQV(0H# zBbI&u#n@N)9PJ;cX??gEmIiM3)GeUuq`+=dC5m3xp{@_FD7_1=uSzpaz5M}`xa+;$ z2>)5BAd>QE<--$KXVj+kY-8dJTXM&%aCfj@G2$ zQw&|+i}2L9oXUe1fUUAd@>lrbPdK5jsH|>|5m~b$tMej)Qz+lX+w!HA#x2C)72z(K zaeZ76xS-c`^?P7K)VtwJ?*=8mn*;B8rhm0-8O_Z0$$l^c^WKo>l0Qg-=~~eJ3}fSC z?Wx_BM(zvh+)w29Gr`%}>hinT;1-?Av&ANcU}`YZ4cQXX@>y7v*@u7}n=CeaJa;;; zuXV#4idQ}RGNq!=IvSle5-7vIHkh>kEp0Yw<3oXQ3CY>!qU#2A2C@;b#k^9mdR^{$ z(MFzOV)YtrJuB~xF^?z7oh;Qp8SfH>oxm;^*V<&RSl0ckVrly;E3!@F6oI0tiYeSy zPl($44f=|K#zsQC*e*f|vO~2cCDscN0sW6e2l)3%iTK_fKz*Z1-`*_;ErCwAJixkJ z1NaFSh~Q|m?=&=Z>frBs4ws=@UO)1Upi+Xl9Bvur<}ovEtmK_=7CE-{q4yjV?rVo6aRV4qHCQj-jk=6odi6bjvtli?eH;i zm1Qt6jjE0t)Z${yA?JsZ2`^9n9MCA`4$)>6^2bYSIUo%4%i;|M(9BMVmJ0jbjme5a zmJDzXfAyp^O1LwUU$x^h`sDT-l)!k=3dP@y-xcKtgsYkBGKc-yY@QGEL*_u5VO~55 zZH!h=2=qDd{2|u6o9-9`-hb_ChlTke1^=asD9}9bt2iJ9nE6#xm6iD3xa6&OjsH1o z=UJy8aWBH*PrciL3Um|KF=l!E}=^U|((m zRe#0-cHU)>`S8y*P(E6^N-@wc{+C{jwBpzeJn=a=;U+J9gyJ623eias3DQqZ5Sh z{@e5Ve{xEUAB5=aoBkO3Q%wI)egL_mLisg#O8=sB{?PIn*N46;(Uhu zKeW_;@xA{vp06bZplVfzdNNh%ZD>Yo#m~s z1?3*6u*hUn|4(R(HuBZ23EStJNx24OIOcnJmHugG{a-|okidOn+L#gXdVC}m2D{3p zes#(JWVT!e0KN*=XHHMMopi%4OXYv^lo61>z&>kB_C=%-u&!S7JR|>C$@Z7|`0sy< ztOw>;MP`+0@`?FKPw_79vi!Ha{~zN3_o!%Nf*%c-l-){L_b*=_|4*KZV+A&r2f};; zSX7us<5?2_qr+b<0Oq)G)h?OWeMqacM);mD^#8P*e|aB5%%tS|CYogz6COXMAMwQHKl|s=D?4IP5GyISjh3dP#NSBoc~FsY zR_BJ3GZ!1?`%nT-(0?XD*W1@a1DY?cu>itUc{xL^@!~?hZ@&-m&h=jo^(ztVsQL+o ziB^{l?|#DSSN7vi`Fpt%w3$B>#X^R*S>-B-tH1uCZ^puu*v9J1{@$+Q%gg^f)6Y48 zWUIN&OJf{wxoY8AmaqmxMa^1wU8z|Uvn8dBq-f@8D!gnjR8LXkyYa)n-&F4pA%%(W zCIksaxz>zjAAPY;O7&&^B`xoyi2eJ)aoi5w9jD2p4jdf*JyZMluMV7%j#i&`tm}#i zdEVJ?|9thu@}%Rts?FSEEz_i(BB?(erhiP9nT>5;UX#6kf6%C%dlK>ECIww*lY`N_vyK_1TY(28+q_8b22g@cK?+tG=nO1PG(l;t9bY|F%DU zD}Z7(sJNhgytjVrUgT&dGqJqwVD_n&iLlg{Kj^Txih({|V@AI9~+Dqe` zG(rm5`#2MixjI?awlQ)S{vslwa@;TKc~DmOXGw-%*M8)I)B0a>l)dg`$&-ss{=66csfr{6sPNhHOkLOJ15QoE?DPmWR^>vsX#lPAY2w)BxM z)2uDknl7&s?vaH;94#!y8!D%YlzKo%9UXt9@Y$pTmrI7cQaH!DL#ZtW64=1_@W9lC z9w1;f=4{qUz^k=E08|S9E@icx`-yw)3~sg7Ki_0GljZ3SGao3k9LxTG+8ziJYbBy` z+Ox#j^Y#g&<{4geb+$EfGj1tr+k-$W4aF@gb?=wxG}RrYFE3EA>1u1p^cN#ptr{y? zEaq5C<~|y-v&p*;@2fg@vn9cawf?y);=-?(qB0c8T-u6jrzzCoB_ z>`>}^j`b_c)P{XscNlAnJIbfRYx*>T^Dz28Th&Q2&shez1>vSumHX8?6uAF!S?8T0 z0Id}1k$`pBsFrCO8+y~2vbA1)jUzDEQmKyuX};d=Ko!5p%!)5&OVe|7O5_*K490uv z_$vxps33w`87Vr2^4TQJxMOecHKO*s=9s{3=}Oa}S5DuE{@nX4y}Y~V;i%;7G`prU z9;R1eo-r4b!GI;nKPiWn+?Pf6ass>i7h!OaT7;ibKPkgRt{rKK7F%s8XSL~2m9a)- zZsv#p>XL9a!}B@`y*3wXzEwE|g_i5^O((f$d!C`sipq8O*6J6{nJnPto_SVn^L#?s zxXPJAarlw5HgJJDd$8`q#Y0lM8Mc)k*uM9bb+ySzU7l2k92vgHm&MYgS_{}P_u`iq zurHkiFLoZFb~)VL5BQ=+n)?WSg9#(Y&Q|8DhfnFH@ECrWw*!)C#M9Y)vQPnYEk;hT zwtc^4C*k$m7xx8!-H*h}w*c8RT;xldUC=Zk*J-Yh3ZG%Xi>+?ExrS{|m8gA&013Np zC*)Ko3(l|d)xHyj%sJM_os@{p?eKD0sE0Wg&vyL5?tu+QJ_#|=Lc>cI&je*|9OwV;_-hRz(x$NF~<#f|=G+eF9qIIzoR-zNR^P8MW za?oZ15=O4fRIxQtfU++z*-owpFw|G^Ogo*EMM^8W6E#*aC@;im+oZSjeKm4J&#Ur1 ztA4`=(ViBA95I1+&glaOiG`endT{RD=B!$?iMdCt+N(CWS6g#UZYSFxOI~q-MMEAz z`;5U#KPxc57rYloQ)lf&{*G7gq0>#Ha@aQ7sn>u%;jvz|+<@p830nS+eSP>y4)vDM zrckriT!7TnMYH*gY5wdG+;$zz1CyIR+}W*qbh%&2XEI?re9+wv|AMDRI5b%2_J_<0 z3+8(!`N^;4d}g*oY1KGy76|k-2k=dDozRhcbn>8oYBM1Z4D2q3cXSNG0gsJ?f@l<9 z_r94hn2tWPY4vtMD-PT{dF9rEnA?%gVa-)c_e8j&t^+}e8n0dqEII*wvK9+6+@WGO z=Z5_-+`XYKubCXV59z-z*K`nm_9L~>GEJ2G>xd86>aHb*o>;#%GbOQl87u}L2GXos z)72m1C=rnhIM3=whuxVBJD}EqCL!HUk9T&&P?-sO&r_ryp{ENs?p;X}K_06HsFQm5^Nb_3jHq$MtoIHp z)IMii*jm8uUcO>2dXl*gBU}=a2NS9YN5m3~Af?tBpE|QAr!;mT}Vz&*uYlN9(~Q zs3c5*lOU z2bn^prf_Pz83V6#*e15a)#T3h+O#f<{rR|M3B8-%d8p7ZzOwvjVj0h3|LI<1z31D@ z`&5?;^mvW3yY_yy*3dZ`w<80Th3@iF(>L-s!}TRtFh?WOz0d3Q)YmJ4p4lT->c)v!?8x5nXP5n`_zuZUKmzhEdwiQy0zN}+A%ZUq4;p*8+Nr_k~olS zn9UB|6po{z%~kwdmcSrHHw!t@mn14a9%Y~wHA9dsAUw*l0h+P2ArM>i>7={h~8yp5_<{?O*C(rfYiODaeBjmg zW2c3pIaeJE=X<}E^E?e6Cfuxt zT85IWQ}_kq4kfk^=m6|}aT1NTb8Rb;G?JNh-uIODWkytuVp}rsg_YwdJ6uDD!a-sY zglvz_JUasjJmn**>aboxy)4q}?AjYQL<9UL>mD^OWgVQ>&Pyk>tO`0WX4QY9AkfO& z4`t6QEVRbHPth=fNZ}t7{?um)bf_gQH$2mEu5G#QOV8bc>`geT$~emu(;_mPm;EHN z!S5&RLj5mu^rnJ@gjf1vT`<`DPro8uHxh8KqAD@7cP5KSi`*8kT%CFroO_0z##x^xTVh zoN7BOJ(PO9Y;)Z_y7goD6?Y~4)YJ0kr@NLjXPvu#?ySsjrhQMZ)j%^_ zH?M~usF`PJCsq`elMk9F-e<`R`=><}_Yl`KTp>TP55%KU!u$r2m86JQ@z8;o_Gm>; z@M4&?Z)rzBh?o7CuDa~wK%_8T6yXtZFPm>OVWh%(B8TkzDLCykf$KuzbQtnC8NdFf z`)V6n1Q)w+e&4NXIPq=H2Ne?}L=xczIZ{#>(K?A7f+|J<>4x<)9pSvo5^{Fa{AV+h zW_>t!9A=G3`8Iv-UO`4$4*uv6BEp_|3aba}oz8A#)W2>6_l0NShy{Ya7H%0B9O!?9 z_Xu8JO)R>e>7)o4x($ltoe<9K>v{dSQ&td2G_i2zJUCOCFa6HFDUhw{cn=A>{>E_| zGC%clshX|cm=TE(P%Pe?V{MWKo!u!%t*3~OZxr#zW)G%Brh(To4gQx2dAHealV>LGPcl zbiVyHS0F8$GHp!3RIGaShCK#`hiT-M!4Ge}K9OrH(&Q?JnIJVaVI~A+$w$g#VAxFy z&wRO;!H=8Na!}5_bi*`F&Ppv^)GupS&qSg~4Q0Ge=2!TU7c0I4o=t9N-o33EPf<69 zkPq2Auhm=npF~hS;ZGXDU2PUpxqUN{$a>f?sM8(P(Dv)ZACs%xc|$U7z(KZcWv}U~ zcHfLXV|Suh40LYm6AHz{dG?X5WF&0iKuma@MknNI{~Gl?q)5g*CD@N!*Xu+DWi}`m zg-E-$sUGqeHMdPyv6a#2q_(PdB;s4m^nWh=y1jcDyLVGlWxAA+lwPKaKEsul-E!M) zr_7X|#<`ixu~WkA@$=bNT4W54Q)_A;{Xzt;jSAZy5n9hM;NCRkL&=rdN%HjJcj@9XTTo_ZGpq<+-VRb#+PCz=aSo5CuW){h;Tfckg3##BlF%gk8 z@8S1e!z*(98q4mKEe+xB#}!}9Q$mf)vUfT+a9W7_<|cbR&uaGjNeW3k+R%Zc5rF2H zR(UO|z0}*EaUyV0eI4i}}-n*4v4Yb(S+EX{ly+L0)htrUgF|y%J=_U;1X!|`3 zk%pSD7=~^?$x{bAkB)VT!jHjcvV4H;udx61L`Zd1>ShNgR$T?`+%8+{=x2s7z|eI$6h)mjDYTc?da1}A-Pe&j(k~2BCx5NwLz5ln z*iLG((4SoQbs@j55FJlmbwMk%zGVQPeIL=HVVzcle=(UBf+@OIOf zarwlB#kC){(+UeuLZRxkImATC_4if*vY^sXn$onq^*5vUijXkNi?&Pl=rES2v`X38 z??8SQx&9aF@Ge9=abzEoHqG*%Vr~PMD z<&FgoD1B2O6;{s&YYvq~>HwJXABhu?D8DV4L41q6T3N=w;|uD1z6S>qMOZbzV44ox z$wqgr`>AMi9%4IyOc5QTtugVuyf(9*_XUq@F^wGHqSTg)9y?_cIAxojUto1*$o0MV z4%;(h=F{cWc%@^uYa-gueZZ|3yl&(-@1N4X?1tULAVJ5l zo#dY6?vvxDLdKcD*kivwT+5<8vWl!jQoes?(W*H2oue1_S|?H8)pI- z?3HD8^W!%eP%$#*+&lT&c+s!5ZSFEzE*5DE^p$I?`h;$qEd}sjZpT-b8s}UJ#0;8H zEEsza+ilI}NKRaq)1zr%ni(uSb;D)Jv*T+_mL13MozMfIS<@A|1og|gPUm`0h>ayx zYA9m}A7p_%byZwiUW0fqFEjr1ncgIjRj3KBT9(S-p_@`)7%D zT3nRziAjm9)o!a2VGSr>x?XAFYO_i-Q1x`l3?i*w-{sJXbNvN zon~5_*MK}yIYej;_ajbk&6mpbHmJpPU7BDU`J+dd51#LP9kc@QO!dbXaTjGGfv3<+ zue%wpGHoylX6Ea(nn5(70+bv(I^A~Ou1>brv9w)~k|my5<1>?L`GKS7`B+bsU?%xv z+sP<#h~P)H3j_DqBBSXv_Y^;MM;cWH_t+@QUU5*@ZeBJonMd)`h@Ifg?sU+JVN*Ik za_KJNakZ}JiX+wAuSP*#<@?@cH->_j+C{rIx9LEaJWk$&86F)$UM8AzBg*RPI)R)0Y^b3^8>>+%wu`eM zub1wYHS@mKE^6dDdSRNhkN#?Uo2_d2&4+HXYqilj)?e1xc8eIRrCrVVK;`&{FlRqr>6(eX9-5t z3;F!W6FGQ=yPj4|AIp4U8aKSJT;Q59h0D8++EE97P&(L>u~Ahy%+$KqH!oKBci@DU z(wEkKa5W+Yk`Dci21A*z&Vay**N^`;bDq;b8fY#3m_i-9%xn_Wmugh^+$ zyGkucRwQHCpJtECwaL9A8Z5%H_6H!maC&!D)_&6J>6VM-mbB&wo#zJ@rONi+F zF1Ln!ha0tqXOYTnl2yRoX_|uP!nm%+p<33);!m9t!D@nvK$+vU04lWqpgN`9bMpLy z^?8mFc2S~|2h`ky_u9^^i)tgjiWHg^GLY-|@E;y4<;C}P zZ6ht)2$HwTbZrCgCu%&>@VY5$ zno-(#YCW;RQpLIff0#tmyj49#ce>jsJ`;KoVij{_O+=>!B*GcN9v8h7u`y>(wmR{? zVHK%WV!@1iK@3>aqe1KmzZkcNvMlNPB_76xur<6vfHD)b?Hc!0zIGQCV3)+YsR-=? znC*Ij^UmB76T56LaT;xSZ)>zrLp6BH!9I}q!XFn>&sEvmz@1c^1EZm>~y$yBpPw{xD4A{=3g5BtB6W`qp~0)g3+WEHBEFVQt6ba`u_Qw+nQ z*(Y+4HKSYL#>?yA1+P%PMyJW?NvGbuYN_VdcgL@qcCVLz4glqFmTQ8bSt>X@AFK{- zJA|ofm!~4MN%0EDHbTN1Mu!DfnYCKKHd>9>m(ayA?mzGtfH-ZMzvvDvZ2(%G)t2f9 z3_KV4I|^2)?CW40p&%rk6aM`brlnt2d^ADxCp91GJH@oIMDytK!@YFnuqRwr@Rl>D zv^1X6YQwN`;t$>_$f~E_SAFz*x=^;dnW?eQEsvnnj!qUpghWp*C%o{5YXcSrdpjrp z(FFSETUIT5KAx-UbjPCV$Y9=sLJ<|0AGx>qK)8FjJ9pl<`;3ARM4zBz5QW2jm2pTs ztJ09Q_4xt8Rr5%ow}DN=?mNV|ag59r@p5uL%3lv6tGs;&Oo-5O+PB_r&a=Y$ekV!D zPYrAN{;ILhpuwKWHTRxLtJ@6YW7-%|ez&RWGp6Ymr+Msdzf7vAlgjyE{ziQcLY*N%ZttAxq>!N2q{r#tXBC{2-y}=o%cLn77zMA7WB5;Y zIj%iRK?no#4kClkEGaA#j~o`;ubud*nX+F3!_{fq&saMly!ht)@&-!Ll=WiC1%q#I z9cO|a=xLJvDX5h`Mf`D zO|U9WDY%oUXF3=(=_v(ov7(}onD8Erlz5cPx&t-^>3T-%*=)*@A~Rv>;mjF;-UEci ztV_URX|+cY*VReLgDKfsT;*_~bKwTfO#2OSk-#~1XMsu30PJ+88ymd0OjU4H;`hn# zDBACV<`&T~|LH+H-IMT*79xRz0dvZX?){$*1)aZXPmRq zDcI&KS(Lx@&Y=Q?c+pkIp7=Z5t#)ym)7dLO*Gk>``Rpb%>c@*KX5(=MG3q$Wk{+I5 z5bkP}kb)M4rDo3Y#cR^0#PB;ww2>b*KHq}7P3Z4@^KkqU%WBz_IYYG%=J=m45YwRD zpG;Dx&B~{7DY7l?rlyp~V<7?q(hGBr$gmW>>R~Hh*j3k287im?gR{L=9H;k-8!8@& zlt^e?KfWtl4L7|upohCv>0NrF?$z7Z3-eOk*n&d=64kYPNhUd@uyWc3F}P;{EPW8b6_-iNk*H)&$wl-W@>D z#vH&eAVhW%RL@>sQo@Sp({}HwEHBh6)Xl4(y*PgQDXk1h3|A^9jhuS~P>)Yo)tZ=K z6W{TYKbl{HMX=j3(Yu2`=e}e!FmfG~Up(%w7)^!bD%ayKVc5<-uO5s2$h@-o&UNYz zC%DeSJ5Kn0gCJ#TDN5f>mEr?Ea8)uALGF8w=}JMHL)Fq>k)?ota8>dfM%qKLwng+`O?s1>z<5(TETh#j=edZEhW}r?4|HU`& zFOQ@rN}g-W@m^yInvD*yX}DOnAKVo>QC9nA-hkE4k(?iM)eCOrNeKFr+~Pq(Oo0I#r;FYactPw%#R+B*8GIPtyo$e_kR{gq$7EA z78tvyF%LvWo0i9={D)%QJdcp|3o~IEs4bkmwl-wN!s)fAMoW7qkpSG)xx(}JRx&eP z9(VLB(sjq#uHa%7a3nMrxXjXGXhG$Md@b-JZ#Jl_UB`UYzku3E-15d-fJsU%p;k0W zw_^>-6kbiuv!xH0OSf)836iB7dw;NPoN{hwPcFaci!ULZ?P8tvrq@~z_-N+()$Sk; zDr4#+JsMwYWmw_ms&`)%T-Ci25MTcUDo$I1)v+OtMwG(W#-?2n_PV9aeg&y6(N;Bx z051j_v@m7K7xfM=HSI0a1$%f)UR9Nu*!hR7k;;I!G1py^ghsK>&cbE@&5U}Me5}E* zN;b)H*)!&)E+`YiDok6PFHSV@Sli!RxAe|a86wGS+ED$ZO*P{xB{9A@qmhL%$4z_U zUpZ&fjajc^sG}7JN&uNL3zV>$=aRKUaazXuL8n6KFEyok6w;l9D~pWU@XBi+H9qsc z*I@a|IL>yxt!W`FOxKt4lLi4Awb9dCNpmfU2qL2 zpm{sPR`QI5{=-d3M!7+hE~@6;j+Xq`<_5X!ZGq`kBOOjR@cQ=s|i zu3+0)W7AwLrPA|(Zosr3Bt@m_tAVCR=&mkGkgf>bs5O5cKu%y70pN3a>>m(gi9TwdH1y?z_9Y$&b1md z4&TtXyGGYLdjsf)T$+B2o^cMGvNs#!MM#tK6XB7@|FI4f^ zRhSY*&p4G6BufEa5otbzU|c^D97FRh;3yu1i@A;-G4LlS&YJb;TGs>#T%(Vy&tDmv zhO0P4NT2m91085z{o=%u#9!6%2_66Rx}@hEk8~H&L&MToPkBl9!Sd7bz-y6|@&of~ zE{XgqOrs7QA^JD`iL=G1_<9G0egqVvHD23(!m+w6Pp68P9`nCZ-r8_06c>jD?BKQz^Z@{_Cv0dMzNB{Z zWwR$L{Ty-WcXnIuu1Kv~l96cE?@nq)cjzIJn%||L8ul;hnj4IVJNj|J-!r!f9beT^_*i#de-l&ePvpt-`{aSjW5HI_v6NX>%vO z*mql8L|J^{Rw++{!>5xdC1Rax^#7}hx0^6?-B_j|931Kdy|Q;=Fj>8OFZCtOJ?6)Dxs# z%*HDS?D3R!Af;7!b%<#cj@&6v;9i)-DY{v6Bima4feGD!&`3gj$9`ce7mCZvXWxzW z+p5&{PkDbB5D}_NpSmSZxgA@?I!m%Y!)ZR*TMpU%swZ>qMyJq%Lc)5S0CJe>OVHnqzBMF;|W0WPB3#G_tmOE%gfZQIy7Y$M(mhl%UMQy zon2Fy=e^R zdqeSEl-^XTU|W8d`8)CO7pVl7&nrm!!DTW9Q!icIoz$iD;63bL{qav*(1A3bxgUEf zKVmSqL$;shxnnURn5)}8_#?LW#C&FcIzAsK7Q0WuS|L~T*O#P`P?w$yPZhsVwrZ@(_@EchN zY6#BzOmA<&B%m`awZIE`P1=1-BR@pkqT2>F>iB3xa^LP=KGs8z3xPpJAqpl5lOI%f z<=bkQN{mE&q+Q_TtbR8<)UvB#~F(g_sNDuoy%-+1M3d7d~2hYAN@#6x#2^V zwgv|KG)-$$8ob~g19Mfhdk!<#RE>ffZ>nnv0AN1Fko5_rN8n&;u-&rah>r8zU=oL6 z-NkPy*4liTZBZ5=&wx3nc}o?gUVn1Nb))Ndur^mswQJ-QI*2nA}Fv z=0|1P#N+WyrIj^Rbi`jW9{RmmE+f4bxjCs{tYHfvim3lGzx8C#e4jtWeVEB&kf474 z=~={iLtFzTz$3VuXh3@ zDw;8K9XtOJEpm+e%yY|n-|ps;J;=|jsFHlAmELLrp(F?At~}m(g8XI}anvrM=Xq4S zwGX!C9s7Mx!;o{-+&btm%JL!Y(UL8o_Pll*COsM<50o?DJ zobnwijgReIMA{x1pmhfJ!wjBFonp8!55H$M{}uE_)a)8Tr0Y!y(eCk0>cb*77kgOJ zUF7Iu;7lY~utv#-k0o(e4+nl)=V%7+YCX4Wp!P(+_0lAMoST))y#<@P)Ii_1o_jPEelfG9BFz<#z^y9@XkyX zgZWT$G>FcP?4ILi#ejt+UHRq{E}a~|Z`HrBM&dYEFPF~XAx-8DIg|I+cF2>q8l)JPU3m8O0B!V?}wBn0wlfc!9g}LKi=T9{4ujk9@zsYj5evGb!`V zoUPldz)|sFKt9Ub`DQ=82AWnDCyLWon0A|3lZV}Bq~#-RJMX8v8$%~og`)9z18lsr z{f%KySanZ^+qjbh2Af-C=GUX2zU36h+BX7YM53M6KrA-nmDs*YY`1RFma@~VtEm!^ zbzIf8p0?|(F%32fw2O@;EG+H*ugoZ{+;Kqw@+pC*?90~9Un7p9BdU%n_AhaHz zb5=KT#z2Uh!fw&pa)x#RX-_z!Pf9!8!eqdV7c{h;#8Oe<`!>HNXrI!?Y(AyLQtN(l z%|?pBei&eYzuBq5-`~Ibs5Hk1(^x_2Ucv#WtNrT0afVc`$tScj=q~#*wgJ}3cfDFG zv~Zce-a_c;iBR*AyGzS~d!CodoyK5HI%{W2C(hI3x!Xhygg&t`7Gx*g{qwzVK=`UJ ztka_yejH)wRaKDgnm=grg#kpcMe4agYSXpgyfAe-XDBDACE{Gf-xu%FBSvKCzbMb! z$~$ZvS3UA>Vy@m|<8D;;1Xkd*OwU`w>4JT;W*TV(?UwDM3=txMUj%QVoob|nsd&>= zULe_wr>)!rb#5J2>-?A(wDOcdRmW?q8fx1vVZ4i0Z;x26(&^C-40bkcRH_xM_I%&x zBZgnG%N1zFYCj}|ujF{HIf37Ciqy;f=+RL1h`6`G%FR=oG?+tOcp0zyG@*{?k~B9~ z?{3Y7?CGjX1d29uC>%B)&#Gl^v-mr}3Tifyh{5Gmz<%NXES|kc>hDx%MN9;3f;t9! z@k`Z6X%~JLQnq(uM_*qF>`_lBrQ6+^GSz1Zaxt9R|HC57_~FC9;~FCF;1P)|u2sdt^N9-lf^0 z7gmlcF;IQu#};ns!``Mllwo74_0~E~rvW=webKKhPC5PeIVZ!s4qv*H^83pajTUzj znfei^0Sg3xa0d4f_Iq9KkBMEd9;O_!mp--IG^jgK)w;mpwhB;KLwLLYYUsRiq;ZIB|3~Ogk^3XB8P_#JTp-7s?a=gvL0<@()EX_GF;5E5g&^n%^Z zQzwKWMFgwT-6_w_(QFD0<8DxV(mEzzj&bTbR95{@%qD$IM*jU@ z+Qmocv#)KY)H@+D3v3OeV}YkHNp;1KNU(dpc$H)IKK(k{4h5n-9)WBNHyRcCzR7yo z4o;n{uRB8}n;)#LG0>Zj0hZ>N*ZgkG_kNJvnmNXdulg_1sT#UmMZB$&Z%Hc#0~L@ zNarh0KJ!??KJlR{WW7Dn@_e96fe$Z?3#9D;i*(`2ESsoSlmnx>|>K&()4{q#6po zzVi=_zmK_jEU?)5*my<3Cp7rfbcxym^ZC^;W^`qtj1v>xAG z(cxM6soS#prLD~NUXp6q4y>Vx^?1Tv*EIwEVTvCYH%{34M`6pnyh0-xt&-uGWyuZ7 zIjd!f1+$SYvJB{s)p8L)0DAkJ)i%;f=Dzk<(ZlzGdmT4}xR|`0SA!~OaL|=P=`7-C z9wj1BK_qzHP`b_RA@g;>+q(L_^}B9$(G7EKjxRtKG6s{oH2aEZ2`hn?-JXW2Xn>dU zI+d{_Uch8fZHrNU*Zs(?sy;fWWxE~}V>;Eb-)$zoUCDiGd1eP+-f6gp()^kqC4!2Y zNbt0;o~wX2M3}E-eX-2ER^2Vh@7gqUfy|_ zO22)m;Z(w4&C+A@$D>*cXL6#HZm~t;#=m-_PPeJRs53zFcKVpNwkG(B)=iOu(bD3# zkzP$mXue|%(IwM}S3Hl9$+~T!tYVsN^c- zyw7WXWdm4e)kC5O^_pDf#$Cix=JQ)PsU`_0EtBzNtd$9Zu3h1<4fPau!{8GE=V=lv za3qnGg+_ZQ9eLGjZohwC7b4c9Rk$PN5IG3opq3#q*P+U)szVj}4q zlOSWIKU0BD|K~Y5F1B5ep_m$+M~pO|ZSDy?jxR zPm_jMr4u6u8oGYQT-s4?ppv~!lH=&9&f>Gc2bEEJ;i1Qhs`-g45$~a~V-oFr{n=!( z1boii{6-365Pw~-KCdSn-EGr%djwFs7MgSnefN65xMKG)9Ld=85PmMrM!Osb^&nSC zWsj?s2qMQMTb$?m>faXXJ#2JiIB#ltEdSDKB44IVDKI==_tH(CB$ht?Yo~0e7RT;K zj{5oUSt!iLbDSKRlLD<)L^en<1@~cnVuL_tIbS=itFHM2EQ0-CkFfF2Q-4I zOm^rAx6v`!X$CoB9?e#;*BZ9qb}Z1ER)p1i<#F~MTBYFGw7S)PdJw3GGo>N~1eTBmDATusxEcP(lntNLG;=xZdME~`FHeyHs% zY8pA#sEzTnUo!`3_PEbw4N7J6d*F5L9*~E{w)i<}3;&dIw5{!?w5IN^HRNr1b$OOU zTK4a)jf`2X{pJ-oJ?aI(sPLMkcV^KGH}ZW5-cH!)i41W?X{Z-q>JyHHH|xO+pBB*` zi=86p>Q1h+`d%%XQ=aIL-+bTn#I@Eo!^T#UN#m~l1!)ho-7in#Fim#T{w@WutTomC z!(K<}zccZ+kFQ%@#WoA_c2 zk{XtarsKXUcnEbCvU}6AtywU~%YEDi(tw@JZ5xhbu%j%S>KB~HTI%%sFk#EzSkMpz z$T{7yBo7^W|1)6y)#ga?n47Fxc>o@Jxg70JAt6PmT>x(F6B(hBK6>O_Kp%W5?6@ zUN08)@UgVSNI-T-y0H$BAQNRO0nlU(Kvfwm^_$i=0?W91wE;6wTrA-ra@ri%e)Sx8 zD!2cSx3><6a@*d31!+W-5CI7TkXBL}0}v&oyE_NzP5}W4NdW=r?q-+)M7ld?=p4ER z7zVzVbM86k-uvBq&+nh_`-^v&J@4Lo?OOX;YdwoG+kCczhs z=YA4y2!Kr%fCL_B`0Pg z%d$2AJ^cyy6gs)dj1AhV?nq^*Nsq~v+j75gH&*@SQ>t$1*Mfmz{w6>$#SYWPa>0*8 z;F^`^J_QJ4(tVS0&$cI(zhNDF>qsLnx$T3G2AceS18+ zkjCR^h~Y%3M{=Fm^p7*p*-%|3vH1B+m;kls1U@g`^*Mz2bGu@4aeH zubX_N+r*g0s^DGJL0sVlN|GAkZRIfTI*kHJ`poNS0)?`i%gKu#6TFe#Gxcmg zgoS-I;$sGhTnv@2>eLWfELE&4rOdUDIRe^t&$~Q5&C@VIN8eOKLSuyNNoIzDJ&(5B z2Oix61`6$UvCH}P590#7iP2B-9yda{qMnk5^cPb#NUyb4gkCm_0f7sT*498!^f>Nf ze6?=H;S$hWbf$J>+D^$@WT^kgvDZuupKhvOyQ8C)M+}C-eqB5$5rTh6TrglGzvZ}n zeDfVF>$8TNxnYJ;CL-TELC=6_cJBiVfx6=u-5OQ%6U2mI+kFMxF4;mzp zK4uWv>wbJZae-tM*4w=Tym&^UWVb3C%&TR;^9|i&*I5qGPU17) zyo%5*w-0m@Xh=>gg-wG{qRsu;) z)~9*h=vm%~DNZj$L0`q^t}rm1wD4tpf|8~J#_ zdS8XeACWaT{GR$5`>Xq#_^ZU=M+{ZGbWU<@;eYAXVg;mca+>Dx*bP7ibm8kUU7TBG z#i-atzDDBmynEG1@`dpr6ioO0pl30nqJzfki_LU#vYrXxwRd)V)xBM*&{P(&7}O4T zDTO?4d9L{sP%l@3P!YA0{Xu!_oyK}mhl6-6=h~aIgYO#jGEw4JA6rXUwQN5Co_BeV z#~CPe*DGhtAro-d)`{X{EqehZ1%`PI`jrQB)2 zfjjpRpN7RuXZ!qp17%}h8Q;=iWn4PDA3|=`6@pHiSTX2AO!>>C;{*|Y^C+JW3Wla% zh!;{zhX7X$iiv>2*SCc`d8&LdjebhB-e33EKZ+C!Vv>SexiV%Ok6^$2K=zBfPp8Pd zGo7Y(uElu+Hggp9in!gMM0j@awP1B=Q3h!xZ3#BR?4g=S?O1?^O=!i^)&kd|HJ}pQ z!mZ2W*bWZ*a=Mue>h?U%rl-Uv+_&zDGXn>V_0z z#}SaTzB*pgD>opZNis~>sej?5w74NQ4>bOh!Fj$pcYDc7zFd~yJbRIB8$h)Pt<6qu^IQmJOk4x zq6x|1u?yb+YQlA#1JD{+3EP_I6y)k+vB=WXU~mP~dY0MD7*RJ7QxQmM`~*M?l}8SN zm~wF+-q&IXuc+xcO<=TXfTALGv zyf>>2I8(MWsT^RK=vS-qJtE4n;tVT3*!TPmu2_-7SqDDW_7@{2G|BV3x5je4E)0L! zq4Yb0FFkS)8D6t}DK;KQgVtht{AP~a45}K*Mn&$9eObP?L^@|9lh2`+$NCKy(eEGm zDNL_Q+18a_`_0beAeLdXeaY-PsuJWTOv<=8I*)^U>djJDKsPLsFuz|%cPQ;aN*KsJ z9qPbcnMa*00LpndQF!@!^g2ePz|HdweJ*yWVBN#O!g|7`TM1SXP1ACdNLOm~jJeQ! zXaI?=4R8TzF!)L}rQwol6d-krqrAx9n6`1*d&YKT``X#`t6Slvu1PDD&Xi)-;VW@c zNUt484t7NbKJ5(i{P6x6#Lg|9$aN7%$g~tXUj2GP5rc~q7rjZb?f7O*KduvzEu~{< z_Q2JB`7m#PZt5ZW_Hi0WWa*xeXF}^%%H7?`DVJ1g4MtZ|<0vhr>uw6*juM2{+-z~aDQL^QC|JntAVJ;X%kzhlyUUG%RutfX=4pc6u+l6RN-=RoVx>8GEVW;)=04f z4Ca@)M|M&UWBDlVZa6jimY^;W-81yz{pL}QhXhN(YnqYK=WmhX{#-LKp@yX zY&WSZ)YF-Zt4mJx-qKRymIllB0EvL7vjL{@BbmmR^d;hO?9K@+Y8Ce7kSn{MGU&-;f0qTLrOe1d) zZOOSYC56p;=D)NgTRDn$J;{D$#2;_tX2q2XENq1|MD%!Pylc0I z$%s*Mpnq~r^DsvfVqq0@uV*qS@4g?wy|+@nGPw~cTVIsq!>hE{7*Z&38|LHe%A{TE zsMs?dj=z<2h#*Gf&zyiePbqZYJ%s-2x>%A^3B+x_xzqJmOM5^n$N7U>ZLXa!akbfuDpu`>6nlS`Y@m75Dn z>H8zk2=7gXbG&7ET7Jvlt;H$>xO`>$rW>7~gwNg?+#hz5jQaSdhs_=m82eN8CD(%D z_zCZ)CG53SwMEI$l1l$%;+HzRUVDCCJV#6OM$5e4A&k21X~q$la2l0`RXvh%C;PnSaPZ(+F%fgx5OTKfGTA!A6&NkBttY zB9a+9B<<9}0+?}&__&Dtw8@`ZLYs@cyXMmBD>%0`tE$=gr@JL1C=Iw*`(-ArvB#~a zEtC+mrZ-WGxeI(o5rnr`q!e(HXm#8tndXS9-NIHAGINFtoe`5`aOg3+n9sGvW16=gE=wU^5p)Q25@T%&nQEt zdc;w!&^JI@L{eUIHW_!DJ|H6!gH4z`P&KQy8$#Cuc26trS#w;o6z`xka$xaotfe|> z7_Ck<5sUpy0{4$Epu`(G_5q7oN3WqLfR!ih=mqUQ44V0|reK*|0sVv+<)TVL1K}gJ zAj#sXguMn$U79O*>uRSEr#K5Kn$TF-d1K|k$&~pb(R1>WNF<)J)3qX@z$t+q4ox5s zA;lGb%XxVb7I0DLm^dkEGLhKV^1LE{>qg?i1G_2hU5i-6Sr@UxeaM&L{GG*$Y-|ZX9L~C4gYF~}G84w3 z*B&P8c%klgPYJ)g11v{?ui%l-_f1Xa`vgqtQhsazw?-9nfQ%!)Klx}3kh=+mqW?}^ zNRl(7T5@pKHi3QyY)_XEqZ*>7$6F)&lM4QD;<6Sk$~hbP$#+z|i7gfwZqE z{ztIDit&tv;~DnvF8O+gQB4=TiZ?OOn1389bwtphosuhRnX@e%hw5ctViUwG#Mf+a z=Sbbd#}x%a0Z$*RS}0UUjHhgJbu)DT%y7u72$ped?Rx5J6ue!F^uw9%d|%qA$g-|H zwd$BcEpp2+OF`h2ar#FinBE2U#C*Ie5q!39^~%SFHEx^rwe9_ac zy%qJ7OhLgd!HJ`S=%>`OaegLJcg5*2u$<^u*>f;!J3(Qoc3DE$tyj zMW-vdddz@%mq%vdTJtNUyMTL~bmg{o zS2B-ZGXVpqRTB&PUFLEIwweA`h0LAJ%^6HPtbLDWRXp;_}A2U2mD+}qV}WhA@6xX%67 zUtEhOFVti|#Cn|qkQ|RBu#LH3vc&)1J z6)CT`9`Oh~vg$+|RV$N-s(8~Jo!`i+y6vDAF4?dCXg~dH%%Lgc=&9c6+kLSzFtz}o z)5c-qaGXxOQ{a@_$6yotLTfW1e5I|~7kPr;M|{9if22 zi~5R*?Z=DhGod?i&w0y0VyvJvu@l@#_7sSI=cyVN?76qLa#^l~XPhZsY1(JKM&ogo zWAS1jBO}Awn$hNWaxr=cCa;>Nf>lBZglY|P^mA3*rjW3gxVS1q@-|OA<8K4)|MeU2c zOWmsW4wJ%vZRVncqZ+mn#jC4_v=yM|SOhuz&smGejc&*Mg__z+i@#cqLZ=>(}^LH6MA*NFU7 zR#(hK0f*{4AUh=2#&K57#oZ54y^A$hQjCcg0$E>00D1?ftNXHcGH*Wd|FQ0FV3I%j zL7#ZhG)C3)78`{xOS5w7}wEtEYaLXyko? zVNtrvKs2vaylA|}xD|ZXdDa_u2Ds}s6=B-oKrToUjk;qC>i|Z{{1;X=u^yOIwids! z*~taWS_!j9Fn@s9rH>`^1sTK{Za%yFXNB}jK*@Z7MMIO78_LZ0K^n8iO1-5h$n;jB zvNW!5-(Lg!+vpmuMA4J+*8YELw<`0R^42YU;nl+-O_7apP9B^qZH;BCOwDffFc zDe{0D>7p`UqAmxu%pZhipTa^zw*Y;md_a3Vk&@f=N%d_)l_Fpu$q{|y_G{EKYN>Ju#;KG2DdgYj`TS<@=Ggd=Xq^$h4-tKhL`U&yhbOt~dXy56vz`CgAAc9?ze)KY zAMG`OIi@Y@UL^vg43zog|4-}i-@5zHAMXI^-DJq{=p2-QU(X8LR#E-uxBpY;fL$#V zNV%2sD0WJ+{hBWS#dGSvi245e6TR7W;i=bBt*t=+KJmIn{_~9g=SKa>*m*4v1Ax%+ zCspHs2JqMZWN^st{~`>oYd+WZkSTEqfLl}PZnrfMA^R^~_)j1GX2}5hMgBBypfySTA~iKTH3s7=HWWM<_r>tkl+YV@veU zW9@&`0p!Qnz3vI>uIbhPr6<6AWx1XX~2p<*zAM51GAjv{`bDWIDG%dpaD}xxkx+^x3ib+ z0&IwkD*iwJ>UuF194(lw{dLs+$3ghV6!?P@_PNLB|2a+noKVXD-&JrmPy#FBx%Ecj zMk?Q>3f9ZJI-gnRu0pg!2qnm{$~9%JW+==F{A6~}_oif{1pu@Db$V_3D9vVZMkn-7 zfHB+`NFwxS*1P}kut<2n^VhEWtN&RDc%`_nxFyET#L;6y`M-N5-kr~!`t+ntM)=pM z8~>(sKK3nR#R*Q~|J};#2GB!&{bVj8l%6!E^3HtcJmizmefYN(`0ZfgaKVbd7pXUk z=PcT5hyRT@@NTi`({tNlc+W)wwTVSQU;Rz{u^tiJ?|fs;YruFj@l$q~%-xsSoEnwV?%)4m*ZiJhk0R>y@P*wxLUy*?G2mkx^cz5ug0CO|1w^!ko zF;^|8(7zNPeX=Ly#px3hd3>l5A9HrD5vy`mxDm>{%f*aq(jcfQR%u@*s3o?xV(0dC z_?7v;$f}cBpFXA%X_rrA{8NSH&cD3(%UgZ!&u12?J%;C&x41Lle3^-vD=GrEpqhZh zyE-tHf9+&59O#Nij9a=SFeX%5ADRB8p3fX*lY&lODf1 zUVEM%D3691tE`t_9qHMVfgytE?KkjIJxVL_KTH4qME?#`1F!RqbkbN>!3~T=nMVfbBd624de+wqkZecc{^lky>QdU{eF(D=V) z4Y;F)IbA#q-|ESKK&llC+bLF!?($hCY0wI7F&g0bSG6Qj*4J0YR4C(lgBX^v;Zbwt z%)fO~;qGLzSIC3D3QiV;A;X3|{mvUv(&&0&w9S33Pk$bIcL0EQQ3#y_yD~Fq8t}Z9 zpy5m4&1?@=?oUc#ay_>Le82xy{qWB@c>M?Hbm>UKkKj6_+EuLBDPyL-J8}EBT^AMYd z%*4AMIVb1U9%Ib2NNtvnOa#Ui5JQ(gQ~m9Ro zrX<*^BfHtdK=D1n6d}KH!Yzh5LQ=|^OMdeehu#0!!KM6 z|E^ILHQIP#C{XGs-4(-{z@||x2}OG+Zo#ROSD+&^`_hHG*a(Rme!c8Je2^~CD>-ls z1UK@l&q)qi?0Y72Nz+h3s@KmF`*weZ;q19PO=I$uL-L_%3UB1Tzj#=!#`vOb-S3}RhL;Y}V)LfJ_7 zTLYqn-?n(xD5?3bC><%??AM}0SKcMt2piToc@0`P>er!2EiufS)V<*%v98Ug#> z5|@S0w3XBSr4Tleqr72;f#{4tIbsn%Gnp3@#g=N2QQbSkyGyIZLdF}Lyj(sT?*pvz1@~y zP>R`@?tN8w&|s{10pW!3^X-R$Vj!k2Hga^DR7ytLo_qY zdsT`)2@}gWBfqafQI?(^lPgeefYV5C<6&DU89{@d`(dup9KXrRG||hB+z!71r#dMr z9WABXbfS;Ol4}ob7S}+KNA8cMwE|FrT@fi@uceH$)zC1`XZ%vTQ4RylcO9!6V7p!? z*|#W>7K8g10(<*>eX{m~O`gxq((8xn9%Up)>qf}GaS08)-k>lr6I9taGj+EtgW==p zQk}jM&DP#@pnR8bZOsi~jY@;cFT70@Etf$cbd@UiOuW4inUJE&D6@Ygd*+7#G;24pzosf+*xZe&>L?KrPAW`eC8IZ zcj3l;(Gu>$!;)0v(03Jy^s@RRd!0(9w_=={QZ$iNG`ltrUErP&LTffchZnC9(N*Q;H| z)AC~1S4xvN2AnjWP-i{W7_f~>8@G-M_P8B&69Xd~ixlS;p4r?n_^iJNmaQDZU2N3+ z$oPBNuee}epFT~*1!@yctlpY=Q@?BD8cD{fs4Xc& z%Pi!)`_^%Klu7_{r3_xD7MhDKQmL}AtF0=SP-N^q@3i%)FqM-cRgz$&p}EEPCseS9 z_g%vz+_jaX3%>!Y--Bh$_?{=vtnS3VwPG{~zw?PS**F%K@lQj;M_2&CbOPb)##p1P-9LlEndjv_J8LT!G*AQ^zm#!0tq_n78)X*G)0ma!TZWH zs`gp|g5HQrWK-+7O4{ucJ}=FBSS5O-PgWMjm+(DR*r?=8^vj8@ZRlKX@KVfTiarK# z4vCXse#Ptj;&rT1KR>HjVS<_)&a?5HWVEYh2qll}YSpU0D&jU)FYV7j&1=q!uE$7}I{7FUsFtiV;!{Q8 zyZCq#;=7KNI(Q5fSe4Wt@)yr85`i0!heo3eX4JqUk2D{)@fP3DGq?qsm)zEL*&tQ@ z_H@>Z^P5it*z;lEehBQGu`sDuD!@GqClZ({(Bt$* zu@wYXjI-O1>?(8h3I2=qa-*DvJ_QE_Hn86OyVt#&)I}1T9{2NCux2EK9^MJV#9bWk z^wDT7EpsZ6gzO-gUB*BRtll~g!@<0=j?a6fIO8zg2s&GD3UwY~kB|ax;gYuB_X>-r zRcj;!np9>TRbFp6>2W4PJZprX=Vi{lKtC&MEga5LB|WoWP#fNfJHc-^i^UL#Ok;41 zQ0;u0+~fQwO8)%eeDQ>tsjlK8)!6YP#w@{q z&TJfGU~88V6tfGS>KAryDE8ToO{QHp1m>8SA~(P*nh@W?Byw6o1OQ2A*oFf1Bc);Z z&f4U3Tdq||gm+wLRY7O%63&$GC)D;x^RI8-FdL1rW{_l=Z*SCET5LhWuVAI4j5lT@ zUL%GhdKG-=aIbOYZzDUOt1R}?b(15YbNWKhe$m+^!ORCjc*GZN;J#mQJa`_&u+ndB z7SqSfqW4RBAawh$C}!AWyx}JP4AZg`vu&)NYoKX)$KdhW>9Vj?u#O4K2Da{Zx2>I- zH@PD@r@SQKi8rAQreL9 zu)xo#9i@_3j~ovghMFi@74~=!E303e1e@TilIHIkWW~qm-=y>v|3a|U|6EP3b4Ym( z)k_jJw8|CBj zY|T)MS+3<%=9W*tGQslEj(CpA+%w>)PFNgGgv4u z!nW&qF44(k63~}0YjFPBb$zf2N-ez5U&`O8jeU<_-VlS5UskbnhuP9ALy%;#SjvA(e&x-mO zY3Y%QfLsDU=;sHm1>*rIS`k^&ap7F71y;335bcwXyEh3)GI|}R6pwQ`{p#W4$<%qg z@eHX&bw6sq!Llx00bKHuwTx(cOuB?;jc*zg{PAFhegK!kZfxZ?N9;EnzPws6ym6xg`^#aBmRJq%LL1d+tpc^>{s+D*x5_#+f ztJT>FSB*cj?7e{!5isv3w1VxIQO7MKM!$0QXh;x-sm@ysL$#tuJeUR#{WXkm&$^jh z=$<_?=YLl_=a{n1sI)c~CI%>%dnlhLigT@R**n0IjZ*aS*b&As2GruC84>HJ@|axd z#>2aNo>H9gTOIPMpWioWb;tjCUrN+#o)J;B$7D}8#w;BAL|rFsAuhR#TV1~*d1kgN zYH`xZok7g1V?|5F>Md#Dk%CBrpiJ75^kgYU9={g-mPH;q1Ba`3CkV{I2L=nk?kTou zZcn#h(t6XlVgB2-{Pc%?7j3J8itp=-6y2B&OH4Mnc<3t~$22#LXd8w%NB!9IeZT0w zc3VunXTQWd<_S|m+%yz&zI;sQC8`AHo{3in*V_`gbqf0`R}F4BdpPQPJ@e`Abvt>< zfXNlI@%%Q14=}4QX+67tU=H2tbmiO=n?$b|J8}Que<29>0IPTd0hF(BL>w`_3e>@v zgC}3k%Js^uv%N}vwAGR9=hk$N23pyt3^vJCvQkWJY{ zGdhdMYC7)e=2U9QwgU}wd_6Oyxl>G4O|(X~EQ!gwUcpUFbG=$yrm{yWuZ1hc?r(u9 z$BtLhxr|z(->gYnE*JBU-t&sCH(&6FG9~gpv`KHov2DZyn`(_ zKsU$W4{si$R-5+LL=_6#Vv3bm%&*3uPjsg6>v5W;DExA%l$LKi$_IEZ&srl3Vaw2o z4;^OBBQ#kDXDeI6oVUExcy2gZv>j%B@Vnr%uIhU*FtuuGe5F8l8c)6@Tm7CTk+gPI zF~|7h98$IrAAOFZ8*Y0*>O~?}wsFKimjBR-?~;R91X(cqp|F6b9vc50)WA2SKTIyW z1Uka*?=S0$abU+jr(Ltv}U3YPXe=B{5E_q>I|j<{#c2o(XO`5oHMM-_~ab< zjZ@whh5UATxeaq^mUCEdy0UI74`cn#dQ+Bx6kR-Apgn!GYemuMwp$r<>ND@bXF;lxV6er_p%P?{7r42fbSn~9 zlPB8Qg{LMn$ZIe0%LB0~P=(u4@U#zL`qc=(#{{+<+#YHw?2x_ezNESM8ACjMhIx~V zgD2~8n#U6RP|3ppUZRIyCf+@;OC5)`#}7H*)SZo$>m>v)3pn&w8Uf7YmPfu=7?dd| zCQ5E57o(IX-#5ugIZBkaxte^x$dT?`u2-ceIX{k7mS}2Ai>RQWTxB~~NOfIU236I1 zFhcbAr@!H+tHu;9ENp?fhp_oQe>e=@h=~{>cwr-xpgG;pWa-bcidxe&oU7&R`#2OP zLM{7kQ`KRgSwJ?j2i>=n_GH92Ml~3JOcF9V_B}YZHdE(Yk1X|X$I?QO$&isd( zaQmk-IeE|CaM3HR4Nng*PT#X%!B%^lI&#oCo}y)P*^PbB+ey1R*W5w6B|pxlk?jUs z%?ZnmSIjWS?@HmWeQ=8Oy{I|n-#9g8nyMSSYJ5d;XRzbDju50lwRa1j%x>s#*_@EDKXQ#NK1qpLl`Fjs1$`zv#>WRwgTw(u|Ot8ea zkhaq6quZ2egKFrT!yx0I+m_7P7>T(vwehB_v>`!a@x{7p9_p-iK1Zo-BY^4K_2M(svLJRCU zLkR*mvwe?Jq&Mw`z_az%HYChBhN$DTZ~km=XsuF)^A^RF<#77R0Ji|>?q@e(n|gjl z-ud7LuuYkpd^1>OwzM(o>*LzqWSU*w#xX$Wh-I}I4FrBa-cD$kvI|g^t#21LLA)#0 zQOgYFd_iitN*7-mADrql2C9Oedi1c3sEX`UlU}_9g%)Xo6>JMURQ!Eq=HzU$b^BPi zyCjQe=nj&#kQN7f37#fbXvrkv1~gT_oqVtr-bw)T9G2X@qskyQP2Lhv2a&5sBczMM z@#iyKOa0{}R!)3@YPh!brFkUQ#$4?8*m`Q47S#p^ByGNnywu!N7t9svJIj6GoJU_% zf4FJoEgfz|QLKDlY%?B7o9QF!)8@OslrjKGYjVtXT<0D1I`Xjb)R86iZs-7gLk7TK zj8lKs1NE53Cu9 z$ZIwZ{4XvLUDWO)QpfT~bU)5rqE*?4d}Z?Z5UA|ojqDcZD&(#tQO|9}h`{nLf>Ejb z&1+mgauaCUi&-3xBNxR&i!FW?UVq++>WCe+@YQW}cfC7nl+1-;{1FWw-{hlLIL1fc z=TRY#tYR^` z$y@QgO)lY_RQP&MD`_cU>){5VxX;IoyrTh>RWk6AB1WPa5Rc?xYrQmMicT48a;X9c zc6F#k#@;w@!564YL86-?FAJ3GW^a#d5YvgU2~@5fc|muxQ6}RRplvgxl)iY*TfavY z=F46B8Od^bOugrC8*Y1b-?qm{B=WJ18a9jLTO-!kZc2plZN3qa6hRPW>{&RaPOX5 zg@=jq&L~!nhGyYA zo^f6`b3N3}F=h|b5hq}93tH9RhSUk!RR zCHM}S1pd$f;hKfI__(qXB931|Bn37QyIVKM!%GVp)RH}P;V5rEgiFr?IR=&-!JQ}p zix%)LwmW^kU%1eF`*>PEb>|R~3Ome zt;<8f`qG*AP>FhK9{0>`FMtuzY233b@p15Ifue>cPmxvH)_5qryHQ6qfN*tp1fV9V zKMGp!%Qtn#Y8)=tiq(X`mq(~&0kCA1kywa6bLMQSEFo)f<7~T8Q&p~~zVF$}+R>+_ zb1JpBPD(26Gts0`ANj2@(?XFPoU_R3W5w-)gy}Aq?I~8h0Uhfar;_>wWmVfEoxY&2 zj#;AnrScOVU^9CR%G#3U@39v1Z$W}0mZ_WLOZoh1v!t+@%V`sN*IE1Ot+{|&{^;tQ zgMOhjPmaTcOJi1wb!RcNS1j&E(wvi)T+>=VIRTwd3yNcMl(h?%=vfhV_&K(;zz6N- zYx${573w~u{9tf3l>a+D=+RdQT-< ziz&VlsA}rGE=;vB0S3K8EXC{M6rb94j7dQA8;5T{k4~Stn)q~8Lm1B6YV>K3yIvq4 zNL(@iLo-hH%6r0xhf}+JI`&<$Ex2uH=Tp_joDUGiRl5tLD?y0Bh>6lRK|1;)?|4B+ zuD!R%hf6f2`)0H!UPuR8zrudknA38Jv7?g!od|t4of5$ZYHqoWw-kBwAZjR#oD>&G zZNkuB)l?1Vhz(6Huyz0Xdgdp&*n5P! zyBt0GBFZ~94?Vq656XTCuRBy1nJYNE8g$Bn27lF*i|RAIgZZ4bj0yEhAbv$(`9zEa zgOcLO5XVU~m$m@{77lDT{+6c5hVHn3}F-J-FEYA$-|R%H`0-ruA|)WhXP+vaP_mA#A6F4Mn_NyX#;)@UU=B z$D*IVVv6O(64ZO{wu=v0uiA(BFPg?zupCql>VA0q_8VJfyX9{4qEM$lHzB+ykD_Mp zyf2doEV#GylOJ`(#PHgJ_h&;xL`pCUIFEZzx_V$DU+~fIlrk`#azGvPR z8e?GUN2o3__#htFbK=U;+s5o0{3d20c-;=-osNXrCn9Jx{Z;|oVO?ME5XYEDKT{=> zHwr*FP%`etd+^-zbID)=KodX!APFw)c!AHWlfA6oL)blKuVFlL=0=2E=EQTeZ^89P zwBb9uUh+-LV9|~EbYhk!Q`++pi>kX(AGsPI-O&VWNaob-#`M?VP!($iKJ+oDJ2k>bJqoVM0IaO8Fp-FE9S@?gzchf@=9!iq_~N2hyDOH4 zhHSfcdGB4M!xpeq5AFD~94qu;+~& z=b#GjIa3ien@`+z=gMFwVKUiikA+)r3z%2w*v`|r`#Zb)dAF zx&KK}bSK|dM}A&dPzHp9kbS<5vPb9%*(_=VTd^t>eI^pykd8}bmh~c7yRBwJ7ky)YIZjhY$ zffPMKEUBkC4{;pxD073l2!v$k>6Y|%Ex;0^3x4UEL>KFq=7jf}%O77}NdZe1ClmnW z+vScAIzMuGCtbyG!%gatJFkK-Q~4~ZuXq}%6GjV#=roWsboQvFmcsQwf)LjP8cUzX zktfHxg$n>UDs`~hZ}TdXVI_%`W8aBXp#76FE<|Xk7LTZ46Z?)0D3OpqH~Ag6Wp2w; z(8ytswBEp1il9aW&4Uxv2Nb+vgQ#Y}M(2b6ggiVDO!!7nCIHGW=6WEMI*HsCa`^Z* zV3@--a}5`s)3oINQR3zdobdHI&BS0GAIPp#2sDpE;wFWuoAj5jsh5D;-g*%~uKwO^ zv&xNG&Q>PWp)K%GD)ZGmCKr|Ml#88S2BJ4js0nh4+H1be<<;USWK&Z#Wemf$+Opfe zw=p7+cFvw@JQRHZo1b!459lXaNsw(i4JSTXm?c^3=D*ogk!dNWsm5m`q>;h_DBnzt zwF@G{OFL%9FgirGZpW!*9^3@%+xy%h9UY2W8Vf^R?uU;T@QOw1m>|;+qd2(sXCl3p zf}E&Wj!TP}v@WL~@zR|%-5Ww(>JAs^zSpA6wVc_6x+$V$?}fzp2V3QwSgQZ!T?aty zB_7#!;Fkp2-}xV8E_pw2t^|?nzSy;!!@>Z~I%WE{JQQ=@;D2MvrVdzJAQXp#4yB>a zLS&OiR2@Q`F0}zOiNW7Uz;qNZO0}S(d(I}6xEGQDot`c#55#hHRmm?}w!{DRY@S60 z;q-&5Z|1Bd7mKjdl`d#vdvu#<{HTQ;BASV`tU@_#;+oqvF*9XOQ%si;)@ zmQ%GrRZDoCSPX{rnBIW3>*B>}lmd1JO_Tyt@%Zq@r4agEf`FJ8foDYia6126%#mWj zaJcITwcQE6%ZSdad8PUip}=Oc!uXR3CQ$WMu4kJ25XEBI&47yqqU9&fH;Z3QIlKWC znG^EUFWJs+9Pw&?LqB7}YMK6Fmi7!yr)w@1NF6m~$xOvEl*7Mu)DFw%fw*yBqjVc@ zSaEpjcDsJaZy+kb!h^%KYF?!}W)>>sHal6;b7`B>8ZR&?b-WGxuyw0Qdf8KLpG6aN zu7Av*-fF>``Cb}yXeFWR`sb{s`OfGacnplvw^0>*B$td$ReOI2~ zdmIo#rqYC^Q4LtI8_%bJ`_?Vvb{KO7p5! zuPQfCy_3gC)YqZ6R3Y6CaBp1|L*H*S&?|nb-2O?mdc!R+esnC?tqL>D%6(sQfFgPZ zFs~my>S`noKE)KKk{t4_F43B)UyF_M)|p1tybs68a}-P_LZ?$T_@_)_BgBNDnQ^(H8>P%kBPdPFNLY)ybp9> z`K+q%W@=2_q++2arKW8cI0`+YIs~1fa|$!CD?DM56^6a`fKfaW3rAIvDoO)tThFr% z?*&mGwT^l#Who|xa+$!D-Hwh=S?mR8srM`zX#?mZt1DdvzIG{UcE9bVH*sCP$MY6U zHd|V+L3P$?OTuw%*XM`&AnwCv$GEWmgvtTo*Uq~zvj(H-N18UZ=IJ9gffgxhbT|{i zKXrg>0OTYSmK|&fo37>}Hl8TYq}xU}?6%bEV^9`z!B8Qm-O+;E(Q)Yk=YXy@tBW`k zRbTbG&r)9S6K-3J-}y<<{+85y7T`@1bFZIX7NgzuQ;FP};tnqRc71C-`D=Uqjhilgc316*4oK+TZj2q<{ zd=AF8l)R}>4OA*wdTS@nFghOrEnS{CnOD3bsdI_cAEq18YLbgtY_q;!a?-{M0gNxJ zEPpGLUw6X#LMOgdm#LO7?=gki3;q^aP6|`}qP-qq$K6oR7WNDZ*0 zT{dnLE%%^vN;X1%%eYJ&F3g24J{_%$7rHn`vO8-4R+@O0(J~4mz@q;)#21O&-{Iiw z?5?Kv=jcbH$%_bojN)~gCj?Db8|39+U=oq62l}zdE?vERV5zygmjD)hGNBr|+rRKN z^`=QnMI3a9svWS&P@mu*Hotoa4G{(bYoe#pxi`-2(Y!5Ql9I4tilxtpM z<8{!U0`h+Y&&maM(Xt_qn?PWaAq~tFu?s&0HQE#&)EOZ8o1~}brbfN0Fuq23%^fA@ z47-^uSDVpR!&o*y0pRj`T`JLWe)$*IRXOUSZ-?`~GzIBPutLp`XSY7?lj|Mv3rFT- zW%^kbTdNNUZGRv;3`4yigdg$ z*bqoeO|}@(FA4hi==eA9h-uvR$9LXe&mN5?6NvChgHQgU_#wWCSe4%$khrOSFa}^i zG&)3fe;l#dNpIHJTGP&5;Ucax=3PkGUFlC{_Zl&;GgZ%hSd;vCuKB8IXbyySxeVJq zj{B;#$oUhI7mH&I)jo}@@?f}}%ZEFi_^g}MS37f`xexIl=wH>q6}SMqcm0o1Y_8qh zv*7}yj`Mdy91AtYwc4Vm9TBJmU!;~eizhvO3_%_n$!~5N*CQL`%Rj$ZytmjOISs9A zwARvoxK08&+{9}6`CRZq8Ixq*cUoI`9$%mX9Z zKxbzq=}sJ|hJ3_G{N;`@XyOijL$`P0O35z(-83%q{Zd=|Ijg249I5Monw|9+dUv@X zjJLA$lEJB|zc?7cDK)NLr0CExRl64CQTrsDBamZD?T6tq>Z_sM6sIgb=EKJ|w+EiM zvdjc3V1o3&xR)0ab*+14hcacu^c)Q~}4(9=wdzc``Q*;f#93ti8O;%l2} ziZYmpKy|2{y#w~*R<8dSQHvt^2Ua6HSnkB$9qf!Pg^bQRpC18hiQ^ZxUHnyJfBdn0 z+59sc*PE}Vd3`xp%X4(pE!0%cm7QVWMbJg|QI^canw%VoQ2l|emEp|&`=6v)=t+wX ze6^q_^7#h$Z1|IWdz~E|WRu^!&k!42rt_2K_I@|Zb;h71`Z(6GwD2sU+4%Y(Gsggl zuh!faAyGcFbC9E+((7l_?8GtWdAnq@g2=6MOM$DhgZj$>XK^H%4qz<1Y~=@(}W!QFWpiyn17tfj{JeV+Z_iKaKMBm?=8 z`yL3=iJBgH_UdB4_|J12pREJH%53!6aNFGES1=(t0MT`7ur~CmSH;$clt{IYf7Qa{ z0e@kB+U4=`S(XNlgv%Z40%dpu`)9JnTO&Lw+SVx1%G_B$8^|X)-fa$5X!yP;KG|<& z(hHPvUk z9HhLv++nLx#(;FCGi92CfgrsGPgKUvD>b|0A2FHtv#y*+uZNJK5f+g@a}%kzrl^FjNgeGfBKNx={LYI!40NLh;ff2ni{_o7yjz*<#TN8 zCUO)fab;Liyj>w*1$_gkRn}0x=OZGrdi!~r76jMdvAKQGR=|H}zuiAbxyC;P@%kfV zpUJ&u+!mqZg>*T?VW;e3KPazMd2=fLk)N{OdNw!Gio(l&$0D@ZEqChxT*0?+1#Tdj zOYq9Aa_Jde%UPqGZZgw=WUbx?KyX86V=u$R1cZ5xK?H<>x*2Y7J3RGdd!!GxKD};? ze2tOuAZZx7*7^1{X5>X&vdvt|N!nBN*6q4y(XQ*C_;)UY8gr$^+XG{p669cX=ku0a z3vFGlT;x##@f=TMbcq*%c3QqG!?xlpWy&z~gOj;uv~l@UburV5S03BXYmV$`ez~T} zGUgJpNW}VX<`?e!K&EvXwvhTs2#AzI3EFU#ks;LJ&BW@!6aKUG3^~+!aM`cl4F&mtpZ>JfRx!@$57AlhOHm5?YFCGugU}l`po-diK&GjYNdRytNZmlL=Am;=J(5GO=FeA zKu5No)&i?~js#_1dX(d-x1%0VUm0y5byOQqX+u~Lby&$-w8v05`m`K%CnJ&!Ad2hv zfDB&k+ofmB`kyLFEx3hU@Wr@QaMjSqeq#5m1Nt++`ZoYA5&| zgn0?qpWtl(2jHZYw~9K~JVCPULXi;)Y{21#TV8x+)FDz9$n||NR2vT7DKD#75FNuULrvT^c$QIRifWGySHBEQYtHE5TUis1}Ml8n|zp8b4-UFZ%{v)JYRc% zp@P|sPswTIjh#w+v?%MTPG?LsQUr^aT)P<+68|8r3(XC?Vnz*tT7R1Dw?cCxR*2fH z=7Q1A;GqQMIM?~qZBIc2l)ALvQ7e{8aXFc?E~hyH&f&h}m6e~?OLcR7ut!*@Y2S>T z2(i58sU^aYO28!u+q`&@@pSB*ayGIq0>wu}XyCqk#r1{bWv=9s(RZbFIYlEAA^vCc z+Xy*m@o`oaQq%x2e*#KYi7>PFP~Knlg!MKZTxsiE?`m6<1VNKwhGlCD$_V z^yFA7jjOWyHZZ(1c@*`c0zA&aa4;jO=c0x`cshO8&I4JogbNs-2DAaK6*D{KSS=k6 zblDM}x>1Z48o`X-+WY1vHu1ax2{9}v^c>Hwa`RcET1R~FpECdGkZt>~@&FXTe2iT= z{DyfbQ?(ODASsW-72l(gAjj!#Qd~T;^FoUcIYB+<$_ciu#OBI&yyt0?P>a+p?gT4B z24vS$IDztjBDn$EdV8(yjAmoq*8QtDXre;qyxH9Nt=LoQ>|>@P+b=Lk2u|VIy?>?n z3!BKu{^+`jiW4`vl<+yK_gpNrvmt!tlq^a8X**RO{`K!iWDD+#=LYFy25evCunE+5lB`5C2_41`2U!*jiHK(XOV*5dCwf*zQpm&lKHSXm%wCtC4jv z5ppn_NgsRQnEK>WqFl3iphva=wN;mZy)Fl+9a_$C4ThV7&TG_?8<1JdI7~nK#3K~+;$~A>sA!SFiNgacXIy~Xt>*@mxvQQEF{ne zh7{7rQuF2k0OhZ^So@mKOO>Ofby1c&mqbE+97F7X26sjd8&qJ{S^%N=S4;$a`+vKxX=9yXO zzv6N}P3NOrLlDJ>49q=PVJ;wx6tN7xdTP4SnYdh%6}Vl{ani)$L|*9pN{KIGLKv*X$fr*J%^u$+E1uNh_i;sB3gZ^?Ml$v9HqalpKJxq%-? zsEI|%hBum%+?!$BFoZK@r+wY_BG@oN&z7HX(mcjte85yIY3HnJx@z|XeXiEl*maad z(i9rfeX8FfFIQ%|%a4~;^-S|Wc$wA3aX2Z>b~QtGmDh;6-Uc&~MhsccHUSxFJJ!Cp ztHg(*>^NLIe${k7PiDo%;wz}EU;{jT&f%r#?==9J6euTM$`EpBRu-If3syEM-n5A~ z7zePN&NHVt8Lk<>lk?ulz>ebLo>mvsc;>Yf6xKmbL>Z$t;H5^J4ONY$p&?(V}14Pf*3Z*XRU1n1!H3z zD6@8hYrxDb!%?3R>{XF#a`z$MWiCS^!~jC;G2u*h&G5Gyk)T+|NkC+dxja}R;@&gjBl10r|lK8PX z;*;kb)>mh(fQKnfYL2rcu(Bgz!)@M*MKK{MGDfh~hd`AC13vCOYpy>}I=K9-!YM_i z4~Y?2X?i}rKS`L=@%iN;*zsJp*f%W5LzJg%N+UDq=?)k91Ah%y0d(qZS3wcZlUK(! z?rXk(5}&BcZ?C(&WJ6R4?QF7Ww`Fk<{Gkg}~Bc1lHnA}ZrA!%*v< zBm3{A#HHIF zWVCP@@LYE~`}$_`$0{C>IL;tyxYKX+R8;EiQic9tQ4CG_sS{j-$b4`SG+`j*xc~la z@03zN1ayg6rzR)OFfo=_VXT6+bIpIO`68640t-!HHcmL$AxC!E(tQ)V89fY~Z}2$6=T7k@gukDE#p&ORKfOoBAD$wT`Z`Q`vk3l< zV6J|-L5n$ZW%fR#cpzW=xCbXaExno_} z@!Q6;hDA`9E$t1Ec7Ef`+?j>ZQ|Wva;5fB-klyjVGNUu7&qu!X?0D%gr7Zr`0oqlj zMaSlFY^E}YBP9q1$_4$W>x1O>E>vltiL0?o+aYjgGEal&hPlPsWASO4tu^+|-9Q_mMPzV08HCnRaAB=h@Z{9;0if z%zM}Z-TfZ4S-i<1moYKM^l2{r>1-kyY@>=W7syM+2#s53&8O+EtXqti6~Fuz0Ur=V z`a;C+lro}_KEcm@yoBa_g01Mk)V{_6Lb^lyr<3n&_X{_SmBQ009;+I@*B&vPVK#Eae2Di+6J)JaC!LWs328NR)nbhS-hohSv!K+8%`7On!!N)C=KbFPR!H1<^deJ z4&SMEtjie`w;$M{4JWJ2Yx%dFQw$!^FFt$=IAU3Rsr&ScC-=wfhv(jJ`ygYwR})cJ zSX}CZm}^3%>=iW2qOWGS>j3>an)^rzEhW~+^w}*gATZD98Q(yKxkgXAfj$=8y^YpR zthOC6Jbf3;AD8JjM#gW*%H3jgf65@55A@Ws4-al&B2MmxZ7cDCxafjNi7~0#C_H`u zu_kB)adqngpoDdygM>GAE4Q(@%$p$zVcW+O;ASUM3{jCO%Q&uPBz~Qkt6#dBPFAQX_C<0P+ZzFk?;dS*g!pwaWW+NgKGiN=mJGUT-p!LZ6#hqCkF$ z7K%X6V?qN(sA=A*SNb9`Gd|LgcDEVhBQXF=x0#kNYuLLzC%CgQqF2*sVjTJv{UVV9 zK>j<>0qJlJzgdBmZhV2{4d{hk3a#TnxV_o8a@L$Tki3vG(7K+2B1AU7=U=#gOx|cz z?~i`T+>^jj2DkpBAL+`k_a|QdhWcNVqe|ZG-#5;_ngicfnR*dQ<-OJ-Ic%#)*HG-O zP^jH#;_urVw7a>TW3CtHRDEO!ote~`;x!ig!GfX;HDKQhhx{rt#tyxLNGj?#VhaxF+s6_wOQ?iqtW+Ybc?$Y9{ zbMjc|5(OOz=;k$MppD@n(F3j+aULA5lbkJXVn{RqqWyt6ddiA<=_DpAs3^$+>xC~& zL5vGDp&Pkb{9F2j8uL;ewo$o(>$IPtH(=56eP>TMT^q>Q-ep}PAxeImf(|z5sb)7k z4h2v$0$V_Fx{7CF=$o)cDXFPr61oxWfm&ZZNLkvB%%4o5cS88UmD9Cds3A?p<^1EN z_Xb?+J3wLqO8IR70CQ-jhH@dXYBV-rKru?DxVL^~)`upq16imQ)Wwe?gUW5$$}4xz z`0Fpf(9xZt5GA({hY`^~~-O z%2mM6XQafj((2=LJ>%TVG-LB+7Q=ay;U{B!vyAo*(0!OgiYqvmKluNe50ayl;uiSH zrh5m;z^TaY{5FAf{?Ob6oe$r#4)j~1uH9|Wb?IC&_~>wXU; zGf2miCuc*o$lkVr&N%M#R$`w`Gs+a-)bZfQkrg^diPl4~_4yqGSCh^0W=L)ELlB{U zT?EzXWFpt=eO#njGn!I$2hr@3HJ#7r;Z0V;607$@z9l%?FhY;E{My&5&p=c1p3zt- zMa=h96U!d+WzIyT7JHOEw2rBfn6jjyVk=O!>}vxTXxVGB&Pgu|&cv(AI;j7qm2_{r zN~g+mPE1ZIy<|7OTRpB2lQ-dBR9DJ@Z3i1Wi~jg@b+;PZ;vB7g=Z_5F&G){(n-+59 z@!G#gxA9CFs6J(H7&UcHVkYWb6RDU6HFC6y6n)-y85c0bR(iOJ-GQwFK5?~Sn%a(n ztRFNC+d!Ca@SGUe8b%J=a<(QLri@(8u}L}=K)4@xhnJ~%Mhw1=67?c4 z3N1A5F~57ck_FgVnvq_N(?}~kGwL)~r%$@h z6hM1cEsr|uS48={rJJnC&5#S##)o!iY$m=NwdSGUZ4|io@#q@_n@+6t%madvNzNz5 z{H*5_jgkP&^>e~UTW5PEs+j`oMk~kC0TN=_0NbKTDh{nVcdp*W_N&bsk+mG-wT+{k zvF8ShtW!1HLq=p5`=M0vC0bwto#HjC+PfeVE%Mu-W(C71v-(!zjM{Me0anJa98$|B zzx!#LZA^7M22t*69;$gg~Y=3twaAM5K$xbz|9;+kQdN9oLkbIa$Uy;OX?jk)|X>zl@(rx%wo z%tla&EK*~Hdjqtzdj)TUg!%xvZYAb{!=*K|=Zo>&D`Vt8YD{{AvWi;X6)nFyJ4S(Q z=Ez?iu=OFVan#q>=Sw=Be{nipMrv8sa*7YRdpf0A{>#PhTmYENvE~iu0oZPWVw%7l z$jgMTDSj!r25A8lUQ-N+XU898-}08$|5INZfcWvhO9Lv#lL9dLD`xEtpJ zUn>^f%{Bm@a63lfy?R^sl5+95HNS3aBeT2>)Ok{F8)~?;elgPK{mLj!1!BMnJRWy1 z0(>GHe5EdDtX#u*ABddkuLK#7n%5NSu3>y0z6Pispw(NiRN7 zF{v@gS2k=NP({Q8pbbx^dMg?>nfPs?EWa4s57u=+xt+Dd04>Q$s1=B#=6tnTYZ12e zwL5$9+|v|A*Py=MUGMgo&!BbIaUN1FsBxB7GAJ)!!cdKKx;I(h#riWAI=?sje*& z6j)7NDxQrZ;~UTSK0ZKyntdHyO`RtJ^t@^_LQj~g}mRxC^Bca*OXdbry#x-Xg0*a3J>AQL@Vp)KJV5z?4Z6 ztPDdUN2pO^w%C}gc{hVwIO%O3pM8#aFMLO*JuVFP;p7?4F+a3C&>5w zfey~4Q)23v;~wwZMECLdFyJy*YX z%u7ixlm=*OPLq*jr4^YZ+vzf=&&K#VogWln9(qpud++nrx zDRx}#X5Qqtj~?CRKhZEJtV{ol!RJ%r2?~VLc+kE?oFT|qRbT8=+kE5Pj0KD4sGR8= z7W#v^WZDWsYF|TGE6wZQcsT7lIw1;4?Y$=}x*R;eAHPc(gE3lSPA)p)<5{OTI%|X! z&=}Vq`3;Q=u|X7D?dZkT5zUNu@(x1r$X69EQZ@pu34M=oO`aPY&8Rp&-0at$oON!< zh&4J<rGs)2Pe)>0JuQaR!y7ZH^#4*x2};!$#r$t zZfLFFwwxlM*DdX%k{|50l=Kv}CKq$q)4B(3kn1{0BLDRu>-XZadNe)*32YuI#;=S8 zf2(u$uoQdiF^I^ZV{&cbc~!)trde(?IwZd{ibd)BaVyp5YRA_$Pu6jAa88p2kMrj7 z8)p;B_BSO0>$C#U6a`f-9m;Bm3!b45_owPEU*V)1WAb(vk|(R5>a0Kf|rg84m!SKJC}*t}6P zo*y0DT#twbuF-wC!$uEIe=EMferT+O-fk)ZtR@$Gopek-qZzQ&Gw=ALQ5uY?Bo z=_~k8Zwn-w8{sB=z0Z{;J`>^@diF=@wb^5fPEKk z_VzU z2La=ALd{q0LNvd2W%OdZk*le@?#@Mq-H8g>mHhT+7B{mO|4QwUQaEo;ZmE%Wy6u~E zc{dFf_V;`JVY%0(#G&eYb)PvBn-+g%H#F0{bQvIU>};R#z7-WxiPOLH@4o5ZuF47V z4Kh3ID9wveOkR_5%heTNL=Js;XPVX1KlMlH>(^JRF9Fy9%R<%K8nEUe0MW&tsP*34 zU)pw97oVZTE}WgD*#az5C|YF?F#izwq@%mlwtvWp-N0-Bsz2mgb~-*f$ybq4xM1t{ zzo+U~KP28r_B&CFGc4RrfA5O2kfy359c$tlMbe+y6#bkzfGJF)qvyjCb#cuLJR$wR zcl+gX^qr^4=8@FhhfwOSM(&tUa~*5?C@htR%NBKr&`Wxvv3{1{=`?;_df<;N7`Ry> zsFyN}9=JV0XUXN?Klz<^tK4aALg@+xxSuv=IBwW+s z>DE`Cf11ksSZM)7(PMVNisb|fZvN40_1lfVsfz2Cp+r%sACV+LhcY}oL-_+j!4k`Zo z_r#Ndil!Wit0pD3gF2eb-2K15^WQ&iMvK+wRqgiubU=I7+XnjoFR##F-y^C3Fbh)d zcavUX#~1hD+aK%!e|^EPgT0Ae{2_kJ@Ivh3lfKY-_~%LftBaGQfL+2U5LMYs1uz?7 zs6LgSTn9H{HuHa`8_EtkSDHH$6y0Hmo!=lK$G{Mzw=*9AZ~$OCW?sr zr}VgHN4Nj$^S`=<_#;59OtZV`nb-*|X#3XwCo}Swce$wnT=jCj&>&jp4uE1L7H6vu9n8 zg(b26{6%nR_@AiE{_6_tgwhuQS7mkgb*m}>g4%Rd>HqGW|8A|gnt|OI=5u`#=YhC* zQ2C{QR#{+#?`{Lhb@`xq3hYD%3F_Oi{mf-Av9&f02h9XsKu}eMgyo-6+o)Z@WSX6s zcGBJj7R!t1Ki2*)XW`ee(#HXVdck#l06URfBl9MvKch?Uu@r9wj@4Bo!0=*qtJr>v zF8@kd|9Hgym}ji{iVzs+E!5g@-TB-Lx6O2c>pLV1*bs*H39@5|(q$;^~Ji zNkzBHxXqf>y(5^LYyz9kSu;LB&6ZfAQ!U>t+<*z%47LZjU?5D2%8yh3qiOSh3vDJ1 zOl8t;LHl>nZ;n@zrbamui#b{*+(vvZoKn2@zOe}a)ng&W0PgsHR#u`7eFlINX$fHK z;W|pgcl>^_2AYW-;SYY53<%b*&AsB~g1YaG+S0bbja(X8jyc%(&!%4QKnJcWH zt^`eunjbWV?``IZU6z?1pnPBGu^#BClS_cDX4SETPEx!eR_^}Cjw_w_ zG&q{YIf`B=?=AP)OFk7G0=nJJS9e6X>{s+B&(USLs97IR5}=0@O4IByi>K4DqSer> z$;)h5@_x;A?M$x@!$6o&78Rayv7gccbZRaGa)H~LQ!y~Jfpn!JBiG71?COJf>OAy0 zuQDl6WFeYx{Ly|^rwD!Ua;`-)-2NL)n(}z5bTt`U!mQ^Z!^eZNJbw9eFZZq2vvup$ zD_yzmC920&7N?=zdm6UO#mHtz5A=9SSG9RdpsMYz;<<(L;4*{uC7hqI8~3qU#;jB} zwo+Vx2FPhMd|ck0WbZY=k;ZMd9W*!FQDIbDoOcyz#R3r25eP)$DT#hO%O&bvlOi2p zeGp#W!YF}O_9Og=X;V#t9Lcn_s?@ejlgm!}eE&qWWVM|5Id9ZTGJRfLwhbny{ML18l7l)BLTf;QQ1`!n; zWJBA6z5y^jxQ5?hTiY8u8aQL=0&uKyrE2JPB{=(tC`rx`+1)5P8*ifTO;0SE=FE7D z)Dvur3|IKsCaxNwE8ftZYIyJBnfdo|kE>55RliQ+DN&PT(PBfUNa08a%wamwNk79` zKLo@jBs7*|G2NFdsiQ)A5|jiXupZ8wg?io+;P9Bn_qf__lu}?H>EjTG)M#UioOOa) zO#rl9omr$tW1uO!Hh@#Ggyp#+xm3$XhXm1MlZ2Gs<}qkva-1;g`ZVcqV|dDQsM#<_ zj6-8xUaF6S^<0gvwR!K?!sY=0wNSdh*H#r@)$6RH{@K~c*|u#{DnO_VEa2(KrgI#M zxeHXlXT{mI4`a6piuBj3m-8BVG5&&}Fj{2seYH$GX6vy}WqLJM*QBAQCvOe}g$5Yn zyQjg9B)ATqSR|P3LElW^-gJVPIkFkYRTH?0L63#QlRRjC;9dYe$Iwq`brvh2)s2V} z_IRvTXXjXwv9qzK%+L!sEy=3Cg(sA9nYX(&{}Qb1H3=fa-_HPE!x1mS!zhAUWFw{7u+&C%d4bR?L+rw}8Go*%GNV>k`6bEG8+L8- z7l^WA9&xx^=Ux5=Ts*UL#6cu4eEo8YtB%I8KdK}R&mPA|a zPz8K7IqB&!8lUN%G>#{;gw`$;Z(armKAh5K-l@1NH1# z3TucoLbF2L+j?%p>>zY-ufkJb{RXwK7^qu;LNK|Z)A88y%Gya z?jb?Xu5TKyf6nw-K7feHJ_Z+DnqpVm)T5N2_rLN?X@UPNHxqfp0tYrKV&gG_qG>)2 zu&LdHm94+MaSYqkwrR9H`Qi+Z16XR-2lE2mswxmFX#!fBXHEUen?#)t$Jt8apWONh ziGM%p=Eej5eQ-~}$tE<6H+5dV)KMKT8If74E-v^180G-4_nLvq!WLuP39a^bOG{h09pK^9UtY9$Qz?%(Qjl2k-VCoE|xJ;1~9VVZwTARgbM&4=zw&NgNAJl1reck3G8U=C2`dgC!7>N4qW8DypmZFYT2W!%p zZN9Lh=MYjil6RsR6;IpA7p~!!sKGv{w`|>?`#z8Kxi92~jBeD@h_*>gr`{=zTS%E` z>WUVDQj0o%cf|w%6wfk=IJ!9* zk;`>Addx~=BZJ8%my|QNqxV*c&*HlixUG7mLW_jd87P5 z(;3fQ_(=j)uJ+IuM{yiQwU!$c#(R2~fOP8L9h-jr^gjazUV61A?U&Z0HGW^sd&uI> z0Uk-fP>$g)dKi2c_lK4AiqLpSN$6JSK4v z&y$Yt=KHv$Sz$hX!+mwpdgnp;U)jb#z4sD(hGVeOjBUJJNg4H0qx8O0Y~hM(rd?r0 z)VRZ$0oD^*0R%Ae=`KMvHpAjo7D{&u-oV#|;g)@gq(Dt3pvIP|wC=Wpf(igZU9lkA zU|e@y_=w?^zScC&9v zRgOLZhbv-#tNKG1?foQhn5%IZ8+3Kbp>sn{vPyP%+jXqDBAllCE;8i(T?29+Kx=Hb zi_5A__H06m}F6qC4};h2`7_JNf7;ql%|w7t-I0st_L{Yq^DRTqSbdmne;>U>EO?YbiE ze))jK+2hhN^2aM6gy#SbEpzYf{4|$_%2I)FkG9fW+N@3c+CQ53o05P?CTqr)D+Ubo zu}P5}r+=a#|4VNz-VGdmb9y5i;30rtaCW4hxc-lW2lQe%6Z`GAFD7!92!ZTNGlkPX z2LspWZ?a-VT$Z)m!#t#q?IL~*#nu4-=}K_|tcbrv>cAs`AKiCio4EZ`BBo%!?J6~q zt_Ex^CwaTxKd90Faw>imMO+cvOA^wSdh8bCtGFW8zV%<(dPNF4Y0{5 zt>A$0KU$9ex8b7y_qPSG*}#03j{hiE{MFC=_MVwH_S}1Mx8p1AZLF-l%0H92d5u+B z<&f~C;om2Q_NS)t_eqbrgUzE}qOJa!AB*b3riu1&s9B*h08}J`=k%x2-h04R59h)J z{;ggQe@evPRW~dSJNrp=PCt`Xj!MFcxROmJc`A*~p723`DnZPJ6_F&Y3!aZvFL(V3 zmY)(a0Q>FNcP4`FVE4w!?gpj=0INSS+w~dpZ)JwQ3BXm>|dmG@_a7NxN<{4 zC`>%))+2yYIrU}zr;^Dd&!9;QzCS;D?oS5Rua^-BRjO%*?#|Ky5}$sCICun%6uKtO zc8UhfMFXVbx5x12)X^-~nk{wIqFzz}^=sqV>D+w9ifPt9(~DZi=hoV*EDZ%f2)-Hi z#c|h-TYxaB!VXa<2|S=-MUKdgDuzl}-?z z`tn#1A<%uUz60`(#WY#>@HH&Y?=-&|@&XcEsbTBm1}t$ROhcm_da$u~Lx?Egq{ARc z^WY!E?*yKaV#YOf%hWRfP(=Lh7zaE6d(`-{$H$Nf?c&MYwf%rT_TkIM4C5atn%pUd zc(3U~iI25Z{0gm?k8_+uxEaQ+1;C5SAFH?)8GRUVWK@0-^*qA%zY{F=urA^Wv${Jj z#~=b^uni2^%?ih;m4uLhlZjs<%g*ZGAgZ=GCyzQb)eiDL-r>}gs_OW5T&K`xJ8=E( zJ#I3#U82Q*I;l|@0QnSYF@L)jAk`h)+;R=b5X?^9TNI6lh$bhm1(8I_#WBrBmgr%) z*5?jhLDPWZcP!IsGc&fuXL_f~k~}dJCMb7H4g7ri8T^|Hz=*Y*!uY@oi-sVcMnKf` zj_EwzXv-xr=Woucf}|#M+3+)E>q_G7=00qh^);K%p?Oc6%O}U*+jWsuJ-qYb*|U39 zaSTG3m6Oz!^FDCKsVHHv)7)y4XrxU440lG-aj(-3Tx=CnUltRHO3FP0FDH*!jmz|> zw=C81h#>Mcz(exffqid}2*{C;?Y+vs zw6_>-1TGT*=u2=ld1LN$#dIc#advJ`yLlP%=io5Miaw|`?TCS|avY@|DrV&?Mtx5m zRbG_{3X-_Z;HBz~!Sn{C(mq~Qq#BfSH1Dw+n|2!E(Sf<=57eTq3<0X3PR1#Dg*Ki@ zN8z+bnGaR=YN&9?3LYj`Jf&w_*=*SD}+lEY$&x*P`0_bCw} zVYm1lsNF?1KD_9wo$3cLNy`#G$Ons)^-O;oVSK&-?D4S=VclhIAdvHE5w;YUo~~;$ zpoi%EI7oryj0D?D`FK!e0*oq=oAKx91g{^4Z{Up57seoBdy?$Z)G4C7n+GRg-LXWI zD^5KJRQ$^r#x!$vNWz}u3b{VJPYqF@Lvga4-li8O`)%*XC#3{b2Z{_gPDR~z5b;JO zQQv$+s+R{jnYQ#iF-hE;p~IOHF7E4rHMiSzAva(hbBX2MjrMchgVuyi>506ig4Sx~ zMb;tQuZO9JRte%NZ8mPor3n}6I3V_jzR*Y?o4p|KiaU32@I#h-*FA;qi6Z zUt&%=Jr+crdjb6X&Q&(uHvyh)A4bljndFOHuUWz)FeQ(?FWf*nny}= z8r6ulwBVV#t2MT4&-Yg1T1w`MtHOmEBCLyx2bhTBw8u_5`gHF1jM>*BtnHZ%A4eXi zjsJK-yD79G&`rvDKfI)N1Gb%csZ6Z&^~_O2M%Pp+bZhqP&sc*$oH6#*4=2E$d!PGj z8%|&=Mt#gx76Le2lyTZ3_60c=EVXM-&o)7-FnhXk1wwZEYVR>wxtOQX<4)UYCo*Wt z?GwDyY#5AD=zSEUx#Q^_NJenv1tahDVf=C|o?LQV*G$AD9nT}RT5}Zv_mxyw&-QA{ zu~Sz?f1klT0VLo8eDsY#Z)B6}k@mHv9*PJ0+rfEk`uAeVy?3^qTV^b&HW!l7wD;z= zgzlEP*gVQnUFYu;nA(w&xQ9g6LVSlOCSRGU;`Lf^iur3{5V51{v6Zo3v>2Ax3#OC1QiO7YC$BUigI}L8g=B46^LHCds5J*2AlM3T|5DO}<0Ipl6 z52f7@KrmWWSPgw_&SGp1Iu|{l5t7t&nA&mq5M)ZGH{NNi5sq)|b$kFB1}~{M_*^t6 zS%|fD!7X#2p&Ue2(!{b7%_^T+op>63k|!B&T2;%BS|+)gJkT=^iZ{`eRVjWt*`_C+ zXWB-odN6Bpc&A)U%Wj4dT(bHP;mlDBP_Vx6ktun69dLSIeD8#)rAma%EN_I?73w@O zuVB6No&D*j9wK&nI4Zkw&wKZa<3Yw|l@0vHWR+*end3s7Rc%6o3rlF7)KF$Csr~FC zbwBUAxBV?{mtFbe`5)zZs+}^ttncd#hu#boHD%6U#XM*{pZCEW&fdNVVNx^?A%}}t zuFO=hMBgbJ>$MZQ=*r+u3EP|<)1Z)&yl-TOk?uD*>QRp^JoaYR`eo&)P%LLyW;QLq z=Ojt}nor5>l*J z*VmrD^|uOq;8}3m-4(!qAbHcrVUJS-MiN)KkE1n(3QANTs`MLY7XH9BmeJQwuAmz0cWG`P5zVblrJm zF43KJtjDjdqvVH@usgRA2eScB3oGu}r%mJI^TAsX1)HZ9Lu;aCzTui_LjuLkQ}IzFl9uLFZhU?ZV6swpW?RqKk*EPpaikEdZ;ko5=n#F3i0(+yBRWm5 z4li}o0Kd0A0;U-`RQGDMC+@NRnDdt}qg3W=Bgcn@|6~c&u$JJ&L|gL+YY7H6-we10 zz2u?K&VHLI%vCR`Hm;g{K*<3;q;mw1g%4il!e0=1Rb*o~3!B>(K5bJiW>+}5VA0^& zd7^%J_M;jsn`%4!i=uV$MzBHYGbZb&&x#=v^SBsOkF*H7p4RLRgYm)e!0Z!kdtd)& zTe1DzLAvKXI%v|G6l69b4s_8aUn^F(stlJg@uKKO$_L4x5 zv(1VPMPA1jlBmjQu61|Hh2ht6D4~K=LLI;8p;^5~eDRF}N_BJq{F^wzTN z0)~CbavpUBtTcGx{40l*?{9P#n96LT<=T|fC5y?d5AM@Y>JFp##^Z|};5GLL95>zc zF2pkDtcgI@qm+1m8x{Co0P*hboLgJ>7i{28tsVV%l)|wBh<&eH{vv%*Uve+LN2|O+ zb4|F6)Yz-`v18iz%6U5|HwLc3^$Ni?etk7rIDq{yM}j6Oy<|Sdhw9V3fhd=T_`dN4eznd=17YG4ifGzwtcue=kYOL!ULr?B)A`7z9G>OMa9r`_ zqBk`JmDpADt+=-iGq7V0SF~F6Cw<4F0V#zEea+C-uo#Q_q$#RZhIx>?QH!GR9V~j} z%8*%sXI4WLg(vN7)$_m}oFhR9T1?|7kZs{3>dm~0-?fmrU_mT+uX#_S1IJe2I8;j`hLbN;daaE;?iHjZC#s@jzT*#ATEOSoBnex6fzJWVA+CyhyD6>1xo~oAazf zGN&&#Iyv*#Xr>RTqckxxDfXBS!&uFrE;Z3dUf%_e=A?6nK|1jdZIV^8Ex|0+iKPdr zCZf}q!ssH;Y>Ij(V(U1Qt)@`##%N_%ZGU+daFdwQw*t8yDOT&R4C_Y9PeMX*ZRO0$ z(T8bJF30x!I!zX_u$}{_z|oaQO5J8F)pfH1;GL$;j}CUp+`6~L;s+;4ONJk651L`v zij_1LKJjT#8dIEiJ)5imM^5t!i|yObiX*_)zLTX$gSnRS%+e^H>$wj~E>T!UNfj?x zxuiw~VQ4%*B0JzAw?EX~7}k{DShim~5h6}m(p)ciHCi>i6oBsAf5}Y_I4KlwP53ad zwLjVbJY8^f}1_&mmRR~C@|bo?O|-Z<|#kT z)VW-n)4lLfwP5+8B{_dg3u}(k)4xwP-V^|w>iv#1sB{I8Ww?eH{=G-w;^_`Wlsn^) zT9w7gV=b!mrIjeIIE{dj-H9eUIan^~qn`ZRrck)o=xC<_vb#LBsMcaCBt}F~4=5iz-yG~-t}WqI>d=<|F+r`BV{777@VjRx&4PKsjfJHh-HDG( z{LQBb*n&t+s)7;O3o^6%@oIQ(b~cDa+VLMr=Z1kiHRka*?5*=O%$&VmVIuNnPr@d> zp{}g(#!jzmi(B6#F{#ZdYedi9-HGZ#bt|k;3mIo_zbMl!eQomfJu`kr7)W;m z*MNP^i0G-+U@Prm@-qTzVMU1Nb*64;98=~YjuW-d{!#NaUX#WUEp5UlU*Er;ET z=_Po1yobNL^x}ri=X{-T0@ZC8#K4civY69S`%#=i1I^f&)N-=xlhZA9e(4B-wubi? zq5E9)+3fW-q=}Hs(#9Hdt+&D6V*8$7{yvTO!w85H&QBe*b)I6Q1RU1ec~h_Mz-l4B zVLKqB3!LLmif?A`lqp3u5zc7}Gmo5=>q>HDL z#B|c(=4myZo5`%86M&3J4J|F3rmk2 zU*J#{=UtD^(fmb9X8Q(a`TNkKgUWcG11UC&tOgDH514Ock>-Kp@i<3xSyP(EE3&5r z5TZ>#&Z<@O&n|MTnp0yQ&BvB8Zy>BYr6%j0$|w14W%*HvV8bWApra>I&;!y2Xq zV^>u8<@Olxtf)}Y*oc3*yZxq;&FX6Vq3mm&6a2$PT%j^(UecHQLMbgK51g#DS6A|Y zM{FIfPspK8tusi52k1&ZN7tzhSN0PeO&}pJM)Mp|W7|>6M6O$Ju9(S_cX84|2t9VN zo);s=G?7IuRO8<(1NLf>>`>?X`&8C_IUo`8u+?e$Jr?v>nSKjgTY+n~pB^fWj>g8_ z4n8|y7>*A=tElE_-$P9Tc4?TPWsR=a<=qI!^GKww;B%9X59Yc{!u)jP3>$uePK2PyW!woI(fnK=p$O3Q5 zOh5j1K#+M&S_CFd$Z^5#_>&9r)26@_fpzVzQo#k=rT+BiTYM_7h&ru!@0Jo|OX`uu z+YamW8=UoQvZu~}k^#7HQaJC9>T%`!AW9ZXli8QLYd0PGfe`u*QBI&+FYS~;m1VcF z@}|fNiB5yHXFW%yJ3`xiqYJl{W&f?A+2p%RF=IBnOFD(p)3WRtcSlUva|pPmXg9bw zDFwZ1xAvNtGX8!lFG~VbY23u5Nr6QQzVN+&{8}4u6JE!AvGaKv;T$@}+E(??gSqKZ zJ1JLkK%1Xj8PkH4!Mne6=5YEq#t}z#*b}Q%XrDUShXxhiq zL(6pb8R{@ad~1Z~JN=_g$M=yUMV<=GF--YMYA_`_0k1QNF{)$Vjy=%O^V=3^%(i|X zH2osxp|aU!#=w#~k<3~N0@v0HSG!b^shYQrK`Mye422-KvqgRZUT2`g@^?YoAHz>4RYzq4>v6%c&7X7l4+S&gC3*19eB>!XPvdz znsctXR}S7BRR;+Wo)??{S?Z&RY37*?9fY-NJ6^QTtxdBtAyPt<1(87S}YOwuzE(SThvt491mM%{uNGE!*P+s2K57SB#Pu9*oxRCIm1yvg+@SKlZM*EjuZQOTi@o*B#3W#r_p2eRd4lgms}kI7jn%?`l=0OQh6fGQOu7 zzDx-sr~p>IFpyJ6)Mi>~FqXw;)Hc?|bSDju3Kf@%@+o!eu7`=GuDmKLcHH$69=u?6 zTXmS&V4}uR+g!`rC&HwA6zr*4go(|&=1at}^DlZ1T^r8acJew&TNZRseIWm=H|Ly6 zjoYioNTDn72{05&o8sPG$2*xqq>-J>R4kJ5q#J>^M#iX)70A zeEDc&wv&~Sc#h}C1KgB&7DuR0?y>08bkvvVK->s%0wcG|7S(B{?y%E-AxLK(I&~)& zoRfjN4=u@os_9f$UBdppL+abiuCQ|1{uJzY&`5P+#q%`ocVPp3gMNMuw)!F)C9-Hd zlx5HJk_Q3rt?o0?D0NEHuWx#<6o1*Yf4bnu&<|~_7H^1Te9W* zN~GWffEY}kMoKa$#kzUr+$P3*Wp8M5XYwJw2IsvB%+HlCdfZ=aBwWF`NV{)%c&(<8 zRHteugvjsEVL824E5jYBA=1ow&$|*=fuI}oaUe#jOl>OPragiQU zHePG)p4e|WXUKs4qn;dFn4NMuk$w$Z}s|E7QUp z>nuFG$xovHITiOmQ|xC1Sn54&wSmzOFabn%F;6;HAVoUUg|NlWz3qC>jCa->mRMfUm)EoyXvan??Ne zN?&<5EyfL_>#Gp$I9|8S+f}Bdtx;B@wH3+s?AzOCI%ki^dvk;)^LTZ;pNIQ7n1uby z3&1{@Fkx&c*Vsq>HEZ%n%T}$~_{S6#Ovfk6+h4WCq)yXQ8;5XZb!r}G1jbd3hzRS5 zu9ys68r0^|_5~-b+coAGDQK`s_Gc+XQMlJ1fBW9$$`;ApnFG$ARrVk`s=YB*guL2$ z6p+grB&=SL5@q!1V)8BKyjSl*7h6PFZoyuq-+hIhA(K8vDLRk$#8ps#T#TnU>Gq>T zm;6SmR({8w8X|QwI<}7UW(pdaFUyR90cw__LC)}eu-SWc&3cOtotDRArq6OyRox3* z3b8>`Dz%_uzLu&kJv?{)msro|X;2bwy3|&U-v%Vv=DX*oXNoBYGQ$!$YfZmgqjp{m zE5UH?ue5KIZjX80(VJk-bCNNc#l3kV|FB{Bby=;FZLV%4jF;bKtFpihuSCC5c8pc} z&Fy*(17Z?#ACs@a#UaTo> zrB2`1IDZ@`0$XH@Q7*Y0xD10-=k;PkEUAH0>2Ov`v3iM7xPzH8l2=N*e)3w5k7vHG zB`BnA#+=OLigCNxaX*?iC98_4m8LBw7yFq#tlgf=UR^~9{F%t)GguyQh@V?&D!;X%pX}CFrEa9VH;`Oqv=}053EsM zDgwND29Nnal`dKxT<(xNtVqDuef!*2a z$Mv?{M*F@6Z&patZ{9a-F2(1H%2=$niI09(H{`WDC2TfiU%4#oGBSMi?>Y1T_E-O> z7D?<5SlP#TKVLov*cMUX?pM~!=L*CMC>%3D4RA$tip&n3lWI3VZ;L!$U>*JBj&R|e zt=LSKzoc&-&A~FtZ4z3Vts>i>Mb@?==sXMd8>3A=bjR|neruG)@R8FI`-T6R`Ti%v z1xDho`S<@Z z3jM#f%%3?yWxLm8@%%C=5XjFN5b*y!V*Z2I=D1v@ayK~Z(ZLx zP>Ug7+TI`4hm!tMyn*g-p9)lP63}Q~E8=V(9X_~MiBq>?{?{k@kM*PrfaWMuIe9+` zQ{W-zcbZ-GenZ;-b&p@5A?RgT=awM|Jg-AL4XR%zv43QAVeH_y!u3y8gh11Im#16R zekWvv?)Dv|VNd<39pu|10aPk=4m7`RNB(|7?|YCY#qG z-ZX#^!NBnIzy9q1{!lK>LMvXSP9;qH4op>fV1;=8WH}6=VH66+xxHFYd)Ff*+5bS5 z4s7(uz;BstO+35>qC+B`Y4}g#mkydj_1D63kBN}rAx&|Mt}p-OH9v;n2-eGF_|T9X zT@B;VyMNx~uL4pG5_tLFa9*WqfY$JOWXB(^p%1i%DKV6Zv_4?U$O|VV_$O;f4-y{H zs9zc$WWyk)ceUf!4Ef)m1l<+rTKEDLfi6%S+O(7Z$!GbF6^g_5_`tcIM`BEI2s{^$ zKUza5U*TW$!-uA)zSpq9fR2xpdCh!C-fn(`sLB)9-KhJny9simjNbEbYl2jCmHdKo2HbrjZt*3 z@n?-^XPX;|gphP~9&1zM;hZMCZIP?|GJA0RD!Xl3e%k|5{(r2Zq3{LlY9#|{?Od%I2pMGF2!3wb<8U=Y52PbIiN46aaNGFUGb%pa- zI!+MF>+a!-YhrnW7?chIi3~@3?AHrAlj_>az{kF&kZu85928r8iO& zscLkIMku;Nl#Rj8osvqqm;z~k0V|KY4?taRBp))w<=TMR82!W{f|2~{9edwU3oBfv zQ<^h!=*j4Tj(>O9?cz>xR4Z*#dvYGen0R(y(Y=}p_lwAZ;_93#6zKUj|v`qp7n9E)uoNbc4MqMz{#!!}dl zw_6Y;UxWr`OUXYGnL#*iPA#r{X##=DVWg5C*=+3Ldj8Xr1+a?ymAbd>{X=uUn}%k} zY};+<KGD~5-P@#{oKc1<78i&@imoSSM2Aw8vB{>sRr-{lHfULj8c67=k0fB@ ztK4z77V31)bnbB5aB2{;8zc^@9r*ADlhI{T>ot2qUNRK@*-__>p{O=`AuO34!uS1; zFMcijB20BF&H@z!PM7%Q#-s|(`wgOBK5!KQ2*ye3a1RxW%$2hQyyj(CWC$=NbpaEknx#hrk* zHxRsPTrnkwH4E{wq5{ViUM&=LJIbcdErwlM1||4pu;{Y0@!WT7(Boa}B$>rWkfbC-xh{pMGc(F<4zo3I|HU&1Ymy05FI0VE~tXj*|6$*kS40&7)rOY_Fd$5l0D!nVxJbXGiN zknH~a9!JdzEE|vP-E)>q{Co!$X0K1C7$k^43F#OsaQ5#$(eE3c9kfI;C@zo8#ZIaC zRlJf1AT!FG_R){)wcSdvm-7HN<*~|u`0Sa^IGG0%DTXIX(b_TJt)0Z0fNwlWE$$!clGMC3sg4OB#tUn03&iZVaU3o{qY&6=E1WO-P*B zsYO4RKI^|pwb%DOL^y#Qo{9J*%haiDOdDV)%JX#V87kne3g)yqIL1IhL9_IWiH30< z`K7jSdKAAx?)toQr~UGwLotz^*?ZJuwfIjrS0{^;B3WRq%S#U&UKCym7>Bp`z1!=a zp9MNzilEiooSE+36Zg}x>0T$pUR*liA`v5#r}WhlhA_J7L}o3>ciZrAM0+m&NBW--8u0TpEOoaUq-6B-uW{eXvX+qa`er+d2;d3kK<1o4eOs z{jJV3OCN$RfRkBCW)N1}Sz~fVm=OYQ$CFm#YjjN|hAB3r>eRdFO~j1Fs+*Mo$y0*Z z+w$Q;%(~fRRqvP$lA*j(8>?uJEYHHb^$)aVhb^+IQ@dI%eBkYMy3!k%*14R37os)g z&scTqJqrt44>V!t*lcf+F|ojMGXPjQDI&Q%q($Y$qL)<$O)o6P))oOFmMbWqacTRm z5XlZiSKDpjgBv~D)YdJx76sF;ZIg!L7_E7jXonh`8*)La+E(bKF{);vb z>n@&@{22wy#?I>&Whpdxt-5T!j(o6Q6q^qP+F@>g+dpWQl*}cCI`*3_k z#v+E31GT7n(diHMeWCSXa>j0~l6)?W4Q3pd@FOT9t4G#nZgN>X zpO}l@M?fbctw9R;!Y3Wnm~%2A$p_-Bp5G={vU$E28?HJk|1-WCI?K zeAb!l=rzYe{*)D$5x{C8up0|=yxlK-3UC7B>km(J1?5CVH4jelWqH<`)R(S`HV-p) z9{Z|w$VQO9p0gRZ7t`9NU5Qg7puFZ|F&)nsp>V2MeI&&UHniYXXL{X=;S9F7>}$MY9u;G=((MX@M!$vo4Ii0>)BP{+i>q^*zH`M{Ycn<7ZwKBf)i5SPl4y692 z+9!a*nB7?s%;&#+IkbCa=NpR3J-X^>d9GwCf5pD$FbEyoha zmu1~93g{1HbK>mApv7FtQ3#TPdbJA|^3Jx(JMqB@^En$CoNnZ(=#*eew1)HFRwezIPZiRM# zz16mAZ5W-pB)eF_%7(QZ&Y*it5rns66&pTN;Z8&7W;!j}WttOOr8ddSBHhG5T!F%0t9A6Zbb? zF9~6!fXuTU$UPrAwD;aw?3V6z^WnD6?RNw1WFPe)tGcWfLZiu1sV6A+L?=dT1*eIA<2`o?k5Y+V zrpmH{6^0}EWK zUTBoeQZMkE$63fqfLS(yWQFT=fIcPVMy!2KPC$eFsa?l2V^s-c~RIm(T(KU2Sy-I`u=g zZfJh@DcA%z6D@qA9J!^WFR)prrac;N*f>hLZQyntjOCOXadea?ou1InqEmRhu%QePoE3E*GHQO%5eO4lMpeAvz*-(~hi@RUTuiq$) z*7T-Fox1W&oNdaqEKULD{$bpCRqC73?G*ttWu}-s&die6toKoCeWW7d5_J?KMFu3< z2iEuPU6z*_xi(8UJruS-i5}T!Gxl_7GQjd;H%bN-7ruv0r_v*Pr6fE}gs^GDwRS6? zFxJB+N5LTM`j>a~Q_3FLC$|1Ng`L93gSfWO`g9$nKmgFlhlh9O3tK1AUAjU^1D;s`3e^C0YWi%^}|3{-41m8ak+Q@?lEcc zoZr>R{j2<87t_86Qc~)TlcPXLVbGs0dv{?V-L4E@&{~Z-XDZV<^5dPAg>bilKYp2yf;b~%Md5-h)peg@i4jTg=D z=n?u=Oh9ZA)mI`Cg~&&{yka}Run^eQvNICTMqL}o2m{1~+{D8oNMbenHM@k%eP3(e z82#u(=V9(|2)gf=0q5xYwo>O{9guXc9zzpE-XG~cSowi7DXx*z_?Y}3Jix!JZSQ*! z6@U7Q$|11d4Lqs84f`XS4h~U*?5?ZSDG*H;8S(y)Xu1rDI?EmghbZ|1s?&2*)(R9ktwTK1zf=odvbeW@l`_~B8-+%f}0HVses{@CW z9*Z$))qBy<{IXm7JF$3Qf@A@$jSXTDDSO8z!134B+27#j+8+2VAus#Yy>sAJh45AH z{*jN!Rp=U$dTjN*e5N;ly`lbnvF{L(Z9^S=CKRGt+%(z$zzFD+cMIsc=I+0- zuYLmjw&waO?bQAqH@{ex)Ysq|AJ-^c3F+w?fgIsae#Zm6<8{Wy<5wU}kv%PV-}FZ- zr~$1Y%-VYABea67n)$!?E(Hek-yz!f(7BaN1H9}#s^37-e`{D?ae^qSgOAWcHoy3b zjz#}D7Y*c0_k^*-@i$cMUtjAv$VS)u@6sCB z%$j2^;7&t6$zrv4DgI~P~iTH##StK(WANYi*X7C`ofnO&-u1&#h2Y+fidW0+$WzXAPgX0J9z1yq zr}=UIj(+jSt6jJpcvq|<(AhIoSfiuSJ;y9(Lug_g$DKM>Pm2nFseaO#u?gT#Y@OOu zy|%;G>55^h$4BZj0I-@}D`1|D_dGibRJOO~q;v>={RrNs5R5@pfB1209#|`GS~0!b zeQT+CPY>E9Ae!XMU|c(pHZ_)w6wC!jNf436+Ot;7)7Kw+G3j8QG|wcyXO@|$wCzMK zIZ@G_y-52$&`4szy*Y?X+xX%tlct_D^-p^*#QeL`MNuh0jNbn08s=E|&%8MO)bSVn zm<-K=A9i4-mA-qL?sv&|4;*YcJ??uO4|p&)BlL%2lTaDG76q{c-8!G7An9DHEJFYe)@*I@o`Vb^5g!asxX0h)&5j8GZ`ey{rPC?yk-EJTAOn=dA5|G`O6fVR~tsPN-{R0@qUc-S2 z5~j5e%nsLu^mtbe?{;Fi?k^HwutaOfQgoZptbwtYbg60)yPZSEinBx0o?3&~P!G}! zN45xxpU)Cj@Q3ZEXm}69O|w3reX4g?WvacW;p0iCt>xT)?3)<905tA$JzZ}Ftomc7 zuwPZzkJG<<0dEz+J&z>B&SIc@#u0GP45)KuDi~6X{_RL&^6~u8zFSf-+wgH%g?agw ztKzaoQRlW&qTtC>ltU@Gs#dOD%P0ubIn;Q=>NNmSx2@@zSMBW@^*xu8AgQ%+Tlxg( z;0qL6=di;48iOjwdz-1IYEd5r>dMEQ7~jz`dhf|C_PO<3ub!y%0v}AIFrtm&dRYA#;ulHo=z4DVpki_eg$IGlIGlN-BrO2|xUx zXI;y97_ADpaLR$SsL`|^Z@7X4_=DZh32?RU*7)1G{10u9xsc^9QR5OMO{IA%GGNTm z{L7V{M= z1I#Q{%WGDCaZIwm4K%U+nR;piai-tX`BSal;TtV$@+!R0=*i~rmmRdieeQte%AUB( ziMSM0nsub3S=>Li)FlVYR^u6>zV~yuSB&@g@goMm(T5ATD%;oA%u-7%h(%CS{mx7B z9RtXqVP|@*Zo@!meRUHF$VDadD2Fp#B>wQt9IbTm$nFcqs&u0zliyJO+)pT17RstX zRuvX?gk%(&^w+E&O1ZB>a<+X4VSokpVYAYyC3*=Y`fSivh7I*R)sT zwmqa&AMRNAcpZPT8@v(6Um0H$K1i4!R&lG zG>rN2#rk59au>179@Rgn7>Uy!WDJ6G_n2fJk?|@vTspMffWO|Gn~eH6FqU)A;m8{{ zcc^&q=@l$IyDz_BxNxvBL9|N$>|e8-O@lV?cSo-( za@6u8OOFc!_}x!>>ZNPDPkZWRgZax;HEoBy(P9<1z=SzoXTUtCl0S7gv_JBNq!AZy zh#31Y{hNALsFVufn-|ci6LpZ_(`~%iTIr-gorT(wN8c2>HNHa=ibAh)ldFLP{`zf? zx*m{JTTT?I580qOY^T45O>mloIiuO>)=}j`n7cZ5xmN*sE7f=(O!(RQxR?G6%D3s7 zvta-d^$hqAk8u9R&HQa8t+gt7-5EWC=8LT(OTz*81?xrc=wnAYnNf?}TD6&v+fwr_ z0?TvyI`ztjlB~V*lg$XCk8@+W4cn+F`JA)IZ4t-!%1x+Q_QpDl{nbyZ?t(eI$RNR8 zU-vd)(Hu5NnBf+r7Vp#=J&Bu%AOdO z*J7-kd8|eM;VhTo0#yZFEaqr0@Spnr|CC*jg64IuVdddK2vj@tb*vR#MI99DvQ>Qb zx6(RgW7##0Wrb>bn;(QduR3*d75ZB#-zRq5 z8^1|C6qQUx#7tWD z$uy0)Q4gtTweE&N_b{=P_FNEmJ?W0*w(jx&u(tTY`Md7_oCG+k1o_T(hV>uytk`uM z^mH0&hR*seQ=?5Vo+77aE;a_TucFe3r-7E5#jRMHIZ~`QWcc{y;wt}lmZ-7Q+by*YM-g2|c zOlv<=e!3e7w0H_)T%j48iK1-RA!^w9EKu}R%>f3KUJar7Fek)RL;B6NeKuaZL|Ss* zZ^}0xnEvEnovh}3qIh`syt>W3C||3fzqoLN`dp@;?xAJd_)v4ZOf0d z2kVk=9L&C5`auQbU{errL3_~f*cU;QBTKPh3XkgmB7h4RE%-V<%h>CvBmm|Xwl?#L zTx^|piVgPkpfu0sq8W8sRD5~I2)~>pTm9PyfVgJbU3$(MJzoV;Q)Rwd*ZPg%ko@hw z6%}_@AUsu*N>2M@ReZV*we|p ztMx;xri7z+!Twr$-k?`2e`%`h`fJzDyCnBbU(%(At&T>{6_z*mv2yJI>Jh_v#F4R7 zRsxI-s{UbDD-5+pr{ANhXCfGLCD|HWF6!eUIWtKkuF53e9}p)l9~rh#sR;PyQ6ITK zZ+Y4X*lhEzer})Ie$mQDwNBzPnM2?1tYv*V zxe=?^HwCYgX{Cx5g(xBa`D)pu8MBI`owG+?W^(s#CJhEUpc|74hF@MJ*{{*BDclb> z>0YY==$V6!yCT|_TV9e9$1VE1&W>&w)HPqMo8(2Is=9@<#n5bQrxrBwJ!ogQR_J4H^7`8Hb zpHxt{uQ*0ZWixjo=Na+szF-r z@Nv;=p8JeHBGx6@svrJUivT?i@Vwgb81{KQ(pxCsF%~7sHap+@L8&f)MEv0!@&7Zg z|MLgmL3Nx5?tIzs1_n{F|r^ug&n#st4%Zf#Cz81Z${TFEA6aT z@fQx~RbQP)&2^ti!4zb))DC9t41C%CFNQUbn2}tzjvkq}NYj0)NruhiS;OTzuojwp zhHn`>nTo35DLD#INxU;#d+bmid9d}q01hS_jcLG9wmJ*uCW07OJkA^nz=NYYDbgD=-raL z3ZNmu*p!QDmhFvS_k?(7guw3R@@nn=Jzxo8;ZrfWiAQQ6w-Hz5U^x*C#|!@V8Mlg69X;d7Pv zImIj^xnlWiTRd*D@mV?R@s8}|(ND@ti<3SaUjpB()U3T<32PXPtv^RnN$W=pYO@7t z4^rRJ$x#_QN+0TH@pSjng2j{ zI@ot|s|*>ReK}*So%^D*^b4IOzHfwDN?5{?&!r#~fgV%l_yka94?<_yK1^3J zA@+4ZA!MdqkfYf>n>(Ct8g!83$(+pd4`9 z*TXGEbGOy)>^s3;HL_U(mu9nnvgP2Dd=Q*SpUa26P);}*#-?qI{8mt#{UR-;2tVr0 zV-Y>(lHWk=AbbGEy)M(}Ee3&u(l%_SsIhWm+)w{G(v$ANdX@Ux;d=qX%+?7b#qfz1 z*h_lkXogh~p?tz^fRIG&ttW-zR~5^RR-Bhh8P>bsqLd`UMjm(8M`PLIEpQX>HE%2d zif>50acH6D+V{O11Cz^w#u15<<)5!UtM9M=%Uws4MBntB_!DV7WEL4?B=F^HR~h1Q z0P5MPPpiC|#ZD#Z(g&rg?z>hjx?7Ga^pYX}NF`A5`4H=CrLH!tbpmwe8JT5HR*vN7 z(&lg(>4Sbz3Y8MWxmcR2PvF1vJ5T|rqf@X$9Lrpla%*=m6C1B;vu2a^qJ!+kp zE(l3U*tP2=c@dkn@Di=(W{xped^SE!g>~B!!nZaX6AG57(7CAny2Ubw1iJ~zkg ziniB@KT)tiy&iI|R1NdE(n!p;FaiV*50-c)EH_Dii$XxhJ?+)Ru4F--`Bu~0Vsh6H+Z_Nv^4O!l(g`WVUt?Y zpcb6y-ri~8uDk^LmmUNpwzvFws^XMy#gbPE_Jdi&v@829e6Dc{#g_yR{u%1ttqDSV z4dvV=!<9Sxq(9c4hje7$B-ti1`NtWmZoc%`TW>7@nqN1S$yQ*@QHZhdi8DxyuYRo) zJnl9*;rX4JESRV?Kva*`H}N-LrUU@4DVf~@V;?0S*J39+oK8X9$g7wcBmciFF^mIW zswc4=G@ZtQwk%?Ixcjs_VNYVL#6JW z7j97U5jwGyE!frEXi`rdlu0oBhq$!Etm?YfhVMo{JXk(G&JzuKJzL>=PZHE(vE?L; zl6Ugx(~hkmT^cHTL(S3@dvT}4Yj#(Ht!e(_(5Dz}wp&&t862q&rPL1TpMY=b5X#2fD+^y|!7F9gL`KQLuJ`5i9*`81Kl_$&G4 zuQH6*?HC59e$~|RA~NCI_kRi*Tso<>ms{1_2mjRFapp{l8pkLiSI%CUOK$-aSaU`9 zaI*>z?rdt6cZRcSUh%)o?YlgJ6Mx4MM>9tc+2L+zct>j#y=d=&31+-`68xUHP!cQ2j_mR*R5-eul+j>99+ipE-M2q-|PyvFlgf%B&uDE!l0(7*x6bESwN==aR?VTUdt(yPBzqKRBNP%&T5`$BTy? z@eh|il;`h6+)sXKlXZFMn$yV;NtNx^t9|ThRG~WaxutF7?sxEU(o6(%|E>;&_?UN# z_57Asb8!{psPQX38DIXs?r}75*QW-a1|eZ3SzS(C<22h+0Zb z7K^;l%HUR;&d?gZR8-fsBmby->xP~YyZO4&^}HUe&Yb!ldAmWa@n(ZDRI|sJ zPcv`c!V|#2MDH7&#+DXg#PT{2jEHQ}@XKv86%PpmSwh>sF$e84{Xc){|9hE#{*U(r^V7mJT-D@ZM|T&PBxR#W z6s!k2xMvG&L^cEUi`!F*hbgbQuWpW2Zib*X2EJX^12&S{*Tdum-Wi^X!AAyqe2q2x z&qw$_uZDM}l?Wwy#H=%4=1%93MZtPKrN2K(l zTS$k?Ew2~}xR4tX_mdgK@c;BDbob1i&=fJIA1WBe@Pe#A zOMIlVAI`ON*8g_+1vFOar2*l zzndnDUgs^lY_ z;W1jgG2k1tG0TU}V*lCd>bo^seBymb^yz9ZMBE^SyY`p#Wp!Sb+Mk^%E*B_+h8x|4O2 zTACgGUf0IV2A4m7nuasP>0+7iS##yO1_I@Dc=q?)5HoCd{c$KdT9gyvxoafP!i9tr zJ*6voudy%O-cFhIEh=s>SKv#KuDhhu@(7DQ;^a-IUZDiwC^_BLoAYTATbKJQ9|<#` z7&7<3UVl*N#@=H?b&JZG-_U9D7x0{Vu@8WqZR|xl6@YkqbCU4OFfm#48=SJIPrCUN-dkMKYLoT`40_=0Z{Cr9dpq9P5pB{R&SEGnNObr6F_7jtBKIG)1X>g>IeJ;!A19)dtq!BB8SkPdmRma!R@H_?YSG!1>!lFU)d zX3rJf)8IY+G+N~)>V4tXa;}cX;InA>5b8v#y3p>TGMm8}u6I~xJwcBAKmXj*6+e6? zhQCS&_ZZ2DzO?CTZNs#FQK}@tka6l;5ZbL^KUI;v z)wxeb1W!$%MP9tpdPY}O!(09-l^#y^D(9+3#rhbw0;O@^k+b4Sb&Qvpz2KiNcRIH> zK1V3t-em4jB-fMSh@bB20ox*nB|pxN?i^EZVAL%P6=M7|q&^g$hg&cA!|3Af{Rj~~ z3GX8_X~!ZC&3O6czFG`!v5yvSJA<=pvr8uPZm3p;mrIpEUv~DST)TDkN+!Vr>7}Ex zrI{%5T>Eq87jwNr%cEcP$3Da`Ixep&pS%^Y6U#U%eRviZ+8mGdWGE=`;(S6iH=^2& zWejD>WS?WOKOQT)7%{Lo#5)>V6oF|4UmFU6BZ9LoYbt8-SuEe+Ml4Vlujbm!#5R&f z9WW1t^=CNs7*}B`IJ6ThZzm;Y4!`NPxF!Dmw7LTG4HdbaJ1SaevgJ4D7865;+CeT^ zVvEf#Mo5}D$m)*TU~3ah&h)hOQ1i7FN7;aC_T;(ZpGWXjP|N7iy%9Vs$7K{OBqO`5 z&l63(zk4#&QBJDfXD848U|J^q-g$Vi!15(CC#TbA86<9oD8#aid!00nQaEL}S4S6{ zR0-p!iO+Bu_vcyuq^=M%T4?9#|NhnRCcU3vLr?tyEVHJtw^nmw^N>VIKvA*m3|C`P z!i-K@vKZm5)ZDvOpR0mh<@91IM0Ik%-fuCt4K8UkH2VB5YisDk<}Lg)vMZd{sXkIP zZSxA3+5;20w0UhtqdD4(+P4Q>vy#KD;&Cm$`iO`Y<}St2FCl`$$A4N}c{?yXy>o`^ zls@=;Ssdr@9~4NpDYHzzPedHiBRqDJj>qd<4Q0*NK1|R*jV0hJcRB4qFXVlSF{*c~ zbD(sa%zha-U*xLO_ZK#*qmSswjC<^Ps|dKdgI`5eOyM*r*b%q20}q7|p--EPFWher zEh2NMJ37Oa#nQol=^TMiAwJTnD_%OPo%~IBKkhj>VJeM%&v(V_p1~C|n%x0kg?6p( z<+tnCz5g_8av{Z1F1N|icT9~3SC#k;a&#qzEsDsBEk|fmD9ufAYoXzAjHJFTC9zN8H2&uFD29hxG5K$=gL?P-2aN*%c%CT#H+!cI+~{sT&D{Zh4TNn-g(6E zbp8z291{gweMRI)mk(FRtHYnyYE;$2D}FL=uOd$N<;rcQ7{(FfbmM%7bcmBZlpbG; z9n$Lzafw)_%`V$bbt!7zBc?Rw?#?Lc87Jxohy`NJqXy;!9c%9kd9i_1qT*hY35&K6)Gl=V*;xdWb8Hn0Y%^wxx8B5^Ovr9hwJ; z6{dZ+>{Mc$l+&dzGq0))B*mN@ZN1;5W`l|bz?B9?VYzbwR01p)oU1PB7#dKtPV}afIT^eizi>^6G}sIF z9K{fIDn=N?D>PapO%~bgm+VDvPjPqf*#tfkY`z25uWEw*=1>15Ju|cG-I8RRI*ZvK zP@q%UjlDgSaIk%Y*FfDjFp&Il0MyfdPx`y@Ms+v6^noRIp{=7J#L z6ag2(q7%i`dzMaoWCy2!dJautz5S-X%l=@b1S#_%zjC+GwgmIdJTcP}LyRH|tkkr8 zW$!XWD007_ZKDmdWPjrg2}gVai=UdHG`3{&;_NPTxAreqZqMco6r)L%KI8|f=xN+Z zMr@->%KF+I%i@^}+}}ytASz+sz5M?;kq~p?5yOc$COIUAVIW4-NIx>f=sP6YS2(ji z>HvXxt&&rgNylB1jYYjYP~=R$+Z?+FYci-#LiN^PG(|Fo6ZgXsv!ugr2`Gk&88^l4 z&PI{jxF*&8vsrA3j5DfwC5uj;;o`~p|0sLQpgOv(TR1obhu|Ipgy0(s4#9#$Ah>G? z?(QT&&;)mPf(CbYcijZrz=n;xea$)N*8T2Vb#FcAUqcm5uhmn=9COUo>Oa*L#vO@m z?;fx{Hq)`wz`jgWWe>VI^AuRco>}Bh?wEXPVX-U5$zr+vg8*=9#{O&fkBx)<**Mti ztL+Uw0>-gEW-$GT$Jj2d1)=eW<}ehF{mkTj+_&ar3Y~{-(4Ss`pT5vw2IHE^9_k|!G>8G>0ZFDV-9Tyf3&4K;g>XHdo+HC+d;>$nm!*sBBgTZC# zTryMal7xTst#@dDg2B0V>&4%f{|pp~2GEKI$Okm%e>)3&*(_Snm9d>C2i=KsAreHY zyszE~s;#~air%gt)!FWNxWd=O<@=kYt=IxIPX-qTYd){|ZTGPPb3qUyx-t?@%LE|W zq<_A}(M`g66C;)u*>0O~QnSMsh@~lE>99uf>Ccx0B+?!a+rOZj_380^iIa^RPv5Ox zrJ_I|3T^IKAl^rQzB#LCuf0Zr-W}CP>$(ggY0kox|5&dc2$o`?Vq>6ki@0Ho%`~7k z@P0^-Th5KJUaMBH!{)bxnn&hq#}AF2R5ozl+DiPfYB}I`t>x)dY>Urt@ibY$El9W?FJSlJteMh6- zlGSWDZY%-0N2zZ%ei5!zD4I!Sx&U0at57%m&bp)Z@c}r3$1DFeA8h;BqF{)SF2VSJ z7S{i_g$4x5`okv&dRm|_x~Ndcx^y$WV`8vj`m<$FLnboj*FASnqgj5#*+Evj=5?TV=AATW?;>(MckUW zH#WoShqe#^s$bX%!0RIGEu9~b_uHrhCNK^OO%Sl8{-{DcTVu!^L=QKZ4QbZ9?66V2 z2*Qe+RxJ9x%CHFW_cvKu>8(Dz5;++46q-GoFLy~w1MjLawD!}FCpB>;9$f*S{5DcjoPzd6{(Q`S6auQ>mZw4fGft)`JeJzF z^)zdFBT4h`)hjiR%TF>B9tt0D2Dt=E17_Yg$YP<3eT1e*3lpp;X(m)5tbE{B(Y;*u zVp9s|1QaDvEp4|#cR2sJyb}$0^Be|Ret$d4c^h-m2EiFPsF~0B)TXO-Bh$zgsFTZ{ z4S4IPd`HQ}?3GLJr%g6^=o>Kr%bfv0^EReBUk+WD>){cSdAd1HW}1qZ^ycMYhREAi zwK1wV{daeU9w^4~KJN|~MVMF{uyL5^$f$iw8r+Z=^_t@Db76z^BKL2W>yJ?5f%(?q zUBOo>9yeyw6-$oF?>talKvJ*&Z#MfsejmW~9L-Wzam*RG;a?5p^|6%a1|otS(u4N? zDaZr3FVPafbY$Ymqve=@n`|8&0_2Y0&Dp_!!?3)KLEGtWCHVk&)P1W8a2GbejP!pB z#6MCe0lB`@yMb366(G*qdB0YiZs)C4N%JLZ{x9Z;SL4572t@!gCpPok1GWI%5T8tz zUgDp^4q(wpQP0Q&mOwa$o+DadzviaT{m+uizj(x88sL=>%SOarKJV(CP7lVff5jgVp1q<54DVG|s#X%)H~8c( z?<5V-T3Tvx}8H3GXI?a z&k_ZeT_Cz5rH_aN@<#qIe9Is49F>*&&j_8wr8!CKzp%0a)#n()Xq&-Y|7>PD zrpc`Tg`t=V1N#knqC9>13b?o?{@+nfbO*OcKfgL|sWlJy4t1&b)#iAz8{7!T|GxPa zN5C`Rh8v%L-H=o6(fkOn-Gd%!?cvX#_nh3*#e!G8KM3QOLgr&;sme!ZhRxfigGG}d75eG4 z+Xt#p*+D$It@LP-*yOXsp)tQFg;=Jy~54Cr7 z>QB?7^SquqRcvXa=>ohNDm5B~Oxs(pe$^WIrXP8r4T;hxdcdIXKF)8n)dilWUTlxF z#~Q(m3iP(u+vbNXU7}A$E{`oN2Cn(egsvQDpZ6}04A|(Y!zgwU#^=yPXMN*2@r>-| zYwZ|AD7~|?XmraoRTe8PYiuzpJdaEOo&ys=8FSvFv`QJihya60pL=we%UQS6tz>px zGaWm&^?P**3c-R;Dz&4EJG{0)S*4ez)K++ARY?Cd)`^Chj@j7%()D~yUM%N50QksT zo$@^q30K$($t6yooC!RqG*(PWJd@{+{Xnd$X_pha;FZ~JUt$J1Gr>?|tWw*x>=M|y z!ijH{&5o6V&9cOAlg|$*mC}8ZD}N1c&&B9?eeA}Eei_*`A5Sz=QW{0vT0DJkb1k&* zQ}QO$?=1aKTee@F&)z+4Jfv;Fwt4V$kk;(#7v0vd-4g>#MJr1>+fNVRF^n?WLu?zR zNM{9Dmp^w*%_JXIjMx3He0qPjwV8h?8EMuZMKNX7VIQ!-Uf$s*%=#-iUD48P+h#CW z`a&`y_2Cx=6>oQAmV9}T>FrtTadLK(et7C+-PP*p3B-W!icVEsU7n0ZGM+AtFFbMB zhcF0$7$QC{(|Vw0)M@$?inro-@eu7f)&Iw%V!(5@ZZr~ShjORS!%1M2s>uUrmvZKamvgaT~z549iwr;^UGGTxVF&Ygg2E9Af5ud`oR-lE7gJ{d4^CeOL`z(svr%q5C{XafdMks#LLf zbU&ar8moe$YdUuxb-)Mcat*F79Z&c$Rof6XT|=EF=(Zz{I|dLVM3HMwyf6nykJ-a) zRn^s$9|?OZtv7N%6*x2A>^Detk14d(;aq=ah z!MZ;x-O)IFjKryRxY>L3~ZlY@J@?JY&_d20;d4HPs z$knQ?fd?)+Th*yj)3SgI_(qZP>eUu?%s@}U_2+U~9gXZ3_izh7Qqs#ILm2^&dl zy(#z7*aC;ajJEK%RN<4@5zsST-Hk>No~w|rcYC*XdEG2p6yyu~IPm=GOQlw4FQr}~ z(m&nTtTO#b^D$F84D54a;5B~*M;qe-eNb}LR2eElmjTuI!Y9W@3(3Nuvs#bp`C!+8D4JRmTJSC07MblOtTBQ;0U=Ti%C2x(SSFfr5~pDIT0#CQs}b636&i z7DjRs*V1CFfEpN<8*C{@r)Z{u(GFq*7$&3gsnWhHYC z#_Vy3>UJNddbgFjz(;icN^GC(t0;GRSEy1LEPGHxOf%(?2S7tzt6SVLqJN+9;NQl1 zq+40W7@4Q#a9JApffWD6fAr!ijI$Q$9 zl8Gz)3PXE4g#cMSUpIBSB9-BRO&il`C{~NW1l^o3frCfJ`zS&EkvevF;eLfm3aBY= zXi+NXMG91rBYv6t6Qyubh zgiT#2>(?07$W|d~3t%(~$E@DkH0_fTD??Z~@5k)g z_{jX0ncHpG_K8NF1ctJJGjfKWUbVAt+uJ(tcNxE0A%BgnvRcsjdj84x(-r%m-H$_I zq_+0ItZZx_N^T_A*r`9uk4ikj`ZH_HxD^8;JnC}hEJlQ+(y52MQVu_;-v8|VU9@o- zZuhc?Atx&72SHSk8D3Pyr^cM}c1agDjnDZ(N9yn9|DyLVskF+P$*959*6gSjFZ(m$ z(IW@Hn+`KnoSz&V<_}#KVSHk_J63qFJWC_2^JFsxCY%vb=CQrLs1G*t@_lJ)yT2mE zD)1yPH0`o+hMqrQE17qJWU;pl$3#+@fct8lbpO{`H6jlVm81`Bv@vJy;=(YsfzioKGGopM)$HHaFb+?OAnANX)t@U8>&FSo6DAD2IHoZ`PE(yjN*cdJA@a z%bNvc+!dUGo{KaoMkbUs_u4e4r7%(-{n4qYUj{QaSf3tV0DJl?*E&+J1rNfv(bVs* z&+&Iy&+ZR68TdO1OO#~~@dulbeT`emi`9I*p%O=vr-#cqu*sdf2$7s?ngn#v+wRkE zr6j>PCLQg>#xUegATl|e+a=ux>q)iRR-7fB3WzMn=-)WnnfNR!yn!5bDI4^C?w-}G z;Z&MFtl<&5L%*eH3EZRVZp*k5`ZX~-HG+G!_h@sT-$CG``xijW`+0$FWWJCerBrZx zh5W3>x67v`wj2F{%m0EHBtRYUMm*eMIswQdmR?rQeNtej*cqW)`_`yViBOX|N$2EX zsh!zG?pSq&v56c^@fSHE7eL=JT99+J{*%}JPj0h?!+EH9)9Oh~)`_o8Ga)>Yl2lKS zch|$mb{Z3JfvCwFd%N*5$Cf4@H7N!EhMfl`;lw*Bp;!~qFSof@Uk!E_z^zY)P9LMT z{ns?)9`L^o1I*;dno>L0OI}O&>hr@n#V45k@C(byYiGW@8GOW`TY5vnM;2_M9cQTy zGi8W65h|$|D)GR*dhtr8N>}b;ctUEoU}9}_5e=`)SK1H_kpTyvZ<~IfZvrch#Y`AH zC_^HjD~445dUecSw^$n1(uG$*2b)?vBkeU4_yINb0}5LJ238v^BV@aF_UNV{D7h}l z!3y}L{1cRaAQ=$0u;|pw#47UgO>%}c$L_sR?|Nx^yvE{bUi6AhU$;#qa+s$T_EHcX z8GfgOsNPfLz=Dz@+KH0vt>i4{>2AXw$OgvbSVLOLx80Cy`s8!vn!%01)pk4t1?`@M zwH;*-ipE)R$GhExikHYLnH|0itOekpH^bKb8gh7_Wv_n_Drnz7YehfLfWi{j;C9T{CLy{NCBFF>p>h)lFc3^ zWnNcF-zD7Y+(8Wd1{XEX&)#(}C{M{4OD~y=t^{6Ut>ef5JTC+LAHo^)nX=?9g``*D%GeH{`J zi-0jVwSWk44MBl$tmJEGJ6PyZFN{w3@t#SKt)toeLlR`Ir#5l=JD4_Jjj#1KNNMZ4 z7nOtSs*9d9-)7t<5~Nvq_U!vbvtkr~S<@ywvI~kP=0W~_bFOv23)sa6MQFfch#;v+ zzc9EDK}v{;>bK5Oo=t@WW2`)X5%y~KPysT-jKe;|I;QZ^?+0C&_m&Kw*z6%p#YHe! zv3`xss{Od`kHe(aMSgfmw7OcC7(Vs;YnjHcWE{Q)Eq|Cj&_iAIPK-Whw%&b@(nhs? zpM8+db7ZC$-Nnbmr~#po(7^hwE-9>jRSZ20 za@O)2a*#%ED@1Kbd}}4Gkj5gX-uAnG@##LJ-E>GemXhDWP92<}8ZDyTtje)m|F-i^ zI`em;K0-|fU(IT3%XQlKsa&6M>qE2^an#%X(PXyR41+Cl(0x?Kr^2~x*eo2pEp zd5EBE*3CvqRN9#2_vebA*MPGX$2PBvTzqEoZ4YL&8*NH|9^Qq5j2}-w-;zG89JC3- zjP$6|uUFu=Pi>0Nk0!<9`DW8DvD%W^v;F!j8Q@Wh94HzIa#~D?XZYl5Pvmuu^OkCz zeKwBwKc_nqY!e2@T#4}L`wh32(?&T1r0!0$jbF&>&Bx0-Q=kW1dACgjy@Xo{BY{>o zzyO_JEJ~le{XX^%F-C+i=Pu8~^i1~gLno&h{EB4?e>9kPw5Jy|fJ#i+lQ_p)qYAiB0vRpxOalR z%IZ}VCX3pgnVyk58uwLTK~Fe~Wv#T^%&`)Wi{{BGu{>ruBx)9dd4_HL%XhUr<~zfz zLtB5tqn+Qi3}M@4K{@_4nyEdrZuUVz#>r&tPLb#3y>+4drB|%HPuJ>PFf|Y`%40Uw z+KqrJ?fgy4nSezro3B}h4mGFe)Ir=W@4>AzurxCh!>10nmik-Y*MF1`t!D&qe>K{+ zTTP-pT#Z-Uk5%yGrSq!pWM_t5m<{p_PQ#ekM_%gqES~SJKYVu={HPZ37{tUTtd#31 zA1|^_^eThQr(JXePl_6WsH#9=Z+1TTlsp7gwOBI@wLSX}woxvnxoYHF$ zuKU&gWbm|sb`Hw;sGX{jGxkKvgSn-=m@zfX)NErin1?9sHwxd$-9xRxz$ABRs@`J4 zZkgTGp44imLnle0`Le~+ZUu4xd(j?&@=s}$@5Omuy;_CHXaeW0BK_;=FkDhh905cm za=*O`H)P4dx^cpRtWLufr>yC{6|B~p-daEAOs=jI7IX)~3^^|TeV%dKx%rCNcd8A` z^JycVngJM7TpKUT7*dL@vAeRS;R&;G4zThV3R<&z4ej&SiPqt>6qNip6oE7{>qdfb zW==g(QFhXtald8@Ga?Qc`9K$1qU@WvO;^#9o7U8FwK`@P6!z~zwxsxRQ6(O~J3dv2 zQ`2Z;K~580ys$!`CqByHX8Gh-!PgfBjlzd!yeoU5=nBGJzE12(ZmEtGUzj(t#BuKf zhm_M0Hh!6FfH%lPY?v$}2I-}`cmxbPF0&b`5q|(lA}rd194wE)dV_>PDaQW8qKjgk z64w?F*J3|Bd>cfUaEflkFMe=Ewe1kZGtWQx*X!GuHX^E9)4A8gB1FIO{GKyU2{L@K z!@G8){7h+8^v4@uRCij};?gyYM}u+tT^j!+*NuIT+B@T4+a(xv(^;@!QX#?Lq0FTv zL-@pr9yA#y_G)R{I!M%clC%4~9_~ZI?QgfnC+F7>^?{IA z7ns4LvMsAchb~Wti?stbK)Mv5sx8N!FT}pwqr8sn=@37I`8a8&`zyl~wkcm3-RK+* zok&x_blUydb9!qZUh9yoN(!!M&$wB4tqW|~(@}q*fcBwC4RzP+L55!*k+cQq<701p zWcWypFHO<&-~<162f`Jz{D{wng4-XAiE5)z^m)^eq_783Ec3t)~~!%H**CG zKhi#b;@T*ILOX+P{!gpslk@y$NU=qp@9L5#c%rai2ZuO`tCHO1D$;R-LwZ-CXgF&e zo~Hc1PVmZ^n=e0IaT-e1c9vM$^kTmd6?V7l65*wz3kmg%R%i=c0VlsN68Njft*(XF zD)Ls^Jd$+%+@s7Jl1m<2mh&g*@YLu>N|ArqXV;HX)Im)z5m_rW4~X~Clnb+Ip00{n;Yp54r z#}utrLHK}fsk}&zCX2$7S@Dh2s_(q<7=D4z&qSM#v1~P_J|6QublpA7hi&lI0LYIy z(Km)y9xv72OW%!_HSHB935YOAMPUdkI&E9)EH_ml%!)<>%LqsuN{5>0_KacAjS7$y zC=K{9`#sBYMSY(M=Jo;L=#S^#mwH+iy*cm74vUYt#z9Wni}(&kY%m>h!w1nq26L-1 zz0>a?goeV5Fz=+4$*;(7T4%tnk`r6o(-&Y=(gQ2ud$n=*Hf>Dz&^#bjI6{+@~^U6kcji>x}(NmR*MXWpukpal33;`-8iIwOWi-&aWbQ_`XhawB_85FEowrWz9Hy;zguxWfqz z?;C)tz`#hll~3hxnCws zem5Ba2W`i9VIFkFA7H} zi_FDx#cVvLuGQFeAL;kTR0I}3#E)Q-M3YrN?!uR?X$Hasn z^`g^zvkSezZxOdcf!}c%*C`G>m$S%gCL-4*GUXq{7sH?(0%3L}Wwv@{$kiim^Mu{W zCI|UK{+o0^K-$zGvWoC)-z6zm-j)2TsHUbN{H*B&Al^3LxJOjuqq=wpo)#RMy;QXuTY5u zMDStcAZmUOOd{f(t@w=KS)l*zh#gt^m{}|@T&ve!==)JEuD0l|S4z_p3@2Z{Ykjor zCqlX>9&=UMr-TE-*2jeE7pE1~m1-LM#kbLeg?#miqR2RI z(0s=YKxS0PSVoa!x(q|Pmiu>bG#G7c?8R86z}fj!J?`tK@GCWA%5!Bnm3}AC(u*3+ z4_bo)k3}htZPoWke=#Mb`bwyg52N3285a9o(~Q;pI7+TMzPL>(bL>j%wzC|vIXDtJ zR#9RSSg=5k|(YaBRrL(#?LQ5qMUfpo~2Q)@Ozpbzu?rb82cF|Nrf83y6j)#OVsqh;MsTg!ve`hWty_T`LUAJUHT?^{Ys&`t!SKaDpXtj zHKqWw@1;@yOIl`+rMXdM25AbaPS*N^&8jH7X&{+f!o3)h@B%54-w6GNaV-5vD<;aZ zmJ%5bfws*Y@k-1mZ3TK6w#5$q3wM)W5zE`mySN(|>0v&IKi%CB&0aY~JZ5B31RLro za)IFm6EC#QYb#vdTwoi^&S=RSgy`UWb5~jJbiFYg3zzv=Dxz5my$#p*;|vj<>~Uf< ziX1$j{M!gRY?U1vo#HEj8Q<>8d+fl%(eMWHPFrOPgpKOCf3gWS7mc@`O~b*)Ft)Q{q5zC*?HMmDtz&4!=Bz1!$x?wK4(rY zbSys2WUXw{_ca81D_&;XJG-c2dZ%P$_;> z%yi(%A2nNWH;H-SLFYpv5C0xWBY4e^Pac3@T4VO!iESVN*GBrNuniL8<(D8aLV{Y2fbLVoH$1u|Uk~(Pqip0S%9g#v66?SA#e&e$@*g59* zs*4QOeg$ruY={s47r{WVM;+d*Mc3NqaB6xkibc6vIZ31_^=>2Y{8sHbnLHQ8?R(^) z21tq9YUt}K%p6+HE_N5r7HH)MWDRsz_Hn^FG5@_sR)7MD(DKWRY@%iMS#Wu49dhlK zP=XN8S}WkYzfL%?P&3DI{PJhzs%2P^@_6#^sZN*8)_{1NZega+PfrD9A26=2@RzN# z-}!FdIb9O)nwDA_+26!FMDMy`9o05dhHvJ?DP2;(BmSd;aJD;9+YPk8nKZI6FX-zf zdnLv*J+SOEl@;BQyt3S{8%X%}SKjwMwl$m?>b%(Zg%~P9$=uy0jBF6y>8V_Wn!-Hi zR_ARuZdguM-Hq2-Jb95D9(2`Ht}wx<6{mP;TR@k@`ziJ}H1{$1=o^Wk-|-0=XuCJj zDa%v6aWJ3(3+_XuQ~AO69}?v#Vsy|#w5x2PFSaR@Q|0Q6TP4glx{9SyQ>Siq^$GI_yhS~-s_mKQy-9r^eX&ONV9jZZv!&1lK~Y4fo=Z;y=w?> zLG+vpbAx)vRUcE5+X%~T#3oQ0hXCR% zsYVoBNEy;_HLLc+RcW`$uW4&DzJe7$+jzrXEVCqvjV~x(@z@l$B)f67mp6fPNA1O> zgd#LpZOaM*SA!>O#$8AfWAs^+Uv$nefgpF=+S%AO!*EcC6D8I@wJqzvQ%-A~2^I=3 z_3NG~eAu@gKnN7Vovfpdt>s;Dxzm$dI9=Y^xj0w`7Z%xkbke*0b+K)Km3(1#S3KB= zB`341A=>)NxL1|EYP>{xTM#}rtE*Y_^sYHZ?|+>IV0D(IbeoKFx3{$lHg-}(Wgaf# zDPH!JCx1Y7hzL*ePRaLRV2t6AXaFQw1Bd|AZQ7-0Oo{)Di)nJa!wpGmV956GNU8<8 z*g0?DxmBqs3iRQE)UnU^3YZ#US_7_<>_w_euzRVHJfYAaMJ?yCEEbpG2G67Uv?r zLmJ}DOaA(Vw^v$8df~~Lqs`#`10GI#2Qb+?@NR>F17f`>at?aZ1~-MZty9vaXzAXy z1nrw2qV(yFg+uSP0xUqJtS+)3RuSeH-;hscW+fcqVMK4NDI#c4P)F<{*%Ve~WRc)I-nw{H|DPB% zCbtlHc==)oY9$;)>4x3AV-1Hel=Llv{pOn_=*vN#^&S2L>buwxL&kmjq8dZxS*8w* z8*~#CK4Z$Oj;1Q=?_;Vh^}c%@j^jPqZu_d&vlK03c0=zlcxIZn_Q``D-}ezZG=kw` z3xvL){9Ts*D&+;DDe|sHQK8`qw4!lCEwQ5ae3bXtV2BAY%e(V5i|6z;3mc3szOu~z zRV{1EEZvcw>LBiUmZh=;AH_#MIb}-=IJ($v-)Gv4{+hTBwC!|?^-Gh9Q7u^F{TfjZ zHr{}t=vYGx>xADNr0*S*D$cMM zlAwrvrrAc9C)Pd*>VgF#s3DV~^s0x6+;IXf3O&)3h0i0O=&CNuZG^I+&nJ+8Rc+mIQql_fY&}MKZY#m}jF5LzHW!o-pD?c(Rixiwb3hvN2cX z3xtNrKi@7dIqZ$#<$6%vAAv^7r-!w5!LWV&P?LJ@NjLYgcp)E#cK21zJY0>Z@5M@x zLQ(qUQ-O-57{ddsGByU^HZ22J5$;95ZoFZ+5|PD*@2QQ3#Vfpy^IIx$R=Wa0+lB(f zR{L-J*^S01)|;08MBXn6ULw+JHU?eXu+xVA1>Gyazlj-p7M((x zyIa0J%P_yFc~G8w>!*r)xLRGFekoU-%n>O`&bu|p2>RQI6d==4$jvW>YwKwk?8x|Y z`)r{c^>$Rdhr_jZdNrUKP$YfI_U4nAwk1Fo;p0>5Z~9k#e8M>xrPZC39lg%I{P9Tn zNxm@0>lm*8btL=Fz|r2KObVAEU;hKe(hJ;jgl;3dv1$wMc6T*ho z5J5OBT*@%_D4|p3#im1SGmv*s9Vrs8hDP;PQG*rpc;+SJMQ$zRIV&;`)h8NPIeK zi&)gQ(=5LT)u4L9J}NjFh3 z1EbU%hA(iA{9?@LdTN3iE5vTd7u)MQK9dE4TkCs2*rHos-h5)r9HD-v%hB;G&43-@ z3g*T=d6rmo!0E!5MwBqvF~rtE(BEBe7G`zmwWyZN+74}sx@8xvx4%M?<0^>yn@CyL z4@_iJ(;%bcuFTm~j)rbm!5BVtwNVF*oXXHvYl(ljm*`~iz64@JF|_*>0nr@QXo-Zo zlle`9#g~X8Zjl7oGyMMNX1FUA+zOsckU)dLktvhkxzY~v z2MhH?Dz8k^FSg4D0}NFbpu>iSC~?x`!p_Z(>Dr&|<_MK%dx)1kF_u#07=*u45q_m8 zxB0t4*jX`Za^*)uSw@3JDxjilfcdf@LNx83lE?uv-4gq1pkeTs7vR?TpT)xIM_6Zs zDL@UCt+MUW!*F!OREu4aJ&r!Tj>DcuI%3U0PQ~@nVyfPvC?b>7;JYyQ=c8&Q(EK@7 zjzVFo$$^f^p2q{SI%bu|#b`NT89Z+_1bOSPhqC6>OwoFCnQdYQ=<5{Y0G~k9Ri<7!+nok^O**#PJ}y#xOfs4)fasYgLZ)mHmuzu1 z+|^Zm5`{QZXvku52Mm=_j=mk%jkd|hQSAsx=eCK1^5fNkLEpm*ENPzWqBQcwwUJzsCI>j& z?Mhf`7YVf0`z)7+O+HvPQ5ICj6ae?7g%4(q^{Knx=Nw!!aq?xxUu6?0Z-wz{+79hy zVflFB^vdCwkD1(8d5xMY*2-7+{;6oGlCo7}oebawZE0yGCJzNg(ENm3CfLZnmsVe-k2h*tg?=+cpNij z;tBbM4GEk0AVF$aW*ULsMRT!;$+xX+270raC}TvyO9x{A%zEp5LB0pcLVc^Feox?t z3Fnb^;X{r?_&yfGfNlTYajfZ}Q1HWbjUyywJ8Cc;`yM#^AfmB8+EvDaO2aoA6a^L1 zExp|`M;{+aVNiv@96h$K#tJ{p*F$y1=I9PENPZ$LXzW;tZWi^ap=Ako@Thx@)@8!nCT{%E67|j8VNF!v%D1uKkcF zJ`8wK_BIihp2~V1Y3RnLoA3BY0_4ddp-@WfU7uR6@=UYIiNm>NU5kmSN2v{x48UuW zWi*RIx=F(gGG)jQ4ONA+47TFb^;A`qFq+ zeBe(G>gdbfcccUvR30VY(9_uJK9CvhPro;?ZPJvjyB|B`c~d^mRN0o+P~m@JR>8n9 zOv+zYos3pnWTL;)YJgS$HR(P7=H#8@o4_`XKS#<@57)y5gAIpZ-3wW$ykWHHe+PzGZpjGnnXinL_j7WA{FDAtk2_o?qA-(*zK|bCI+AM zbB1)!i2TTe1o8EPJ4@6@Zu|ny9wGEuHX*N_G9h9-4M`jX_uW@wCJPkn34d?BC|%Vy z&D)FFn^3-t`qpsONUhGNEPue%eALY2-%>@>01JQAiDU0K-kJ8-*AU=L8+B!#e9?K} zupHdn3btESqITNKo<$6#LUc~3Q$wgodcZ`d|MG|Ha7xs^j~`EHHD6jSVV z{&$H~8W_zzkIxQr4S%=ny8Jsdjz#rdzyCKDiEcPoi%pjjL2rf8OU#$95K=@?f%yA! z=ldapcExbhc0QO@&2+DDoR?0V(%tH8hZy7RV&Lf@mOdeOm-D`-%goY|^upDW>&1lK zF|mi`jcj^rQ6RokBxihSLmFu}Rgi|`Lph5`?hUinJ_chKt9 zVHTO0`=y&dnc_|quzV6-IY5!izhSDIh| zpg62c{h7cwADgbItgB&-!Kq_4ii4yPe~>_zqA`#FVKRKQk%R90p?3m`fC|Ou>8EY= zw(5+S+TFeWxIs?!c#AksEIYJ@h&9$rN^n!+o8`qC1#7(An1HyOvw*Iu{mvT(?%SZNBjeDdM>RdLAoozZq^LnDx8Z&BahQpiBXqgdmVECGQ%u;cPuE4{ zCzyben);=@|Lm)KBc6I(!c-qkPlXH)d4LrHL~pMRREA~q;BY6bRHgY?tqp6L27EY> z&y}S%gsPzQZ;#a9s!&dyIT?{~x0jj=mJff@+z6Z<&w4>b@c%~vbw#&o>$hOXb~+uw4DVpDTxEq}86*9lQ-nN`tVhW ze!tjGQ^LwP85~lmc8Co=t#GMmCKr<%qjj|9aG4%0u`5*3@smq=KUI$HS?j^BKUJto zW&^kCQ!w8CsHj6dyj33+!E#*ZJK z+ikB3yu+O3N5!{_QEX=+-{qnT((m%pqLE4vdasc&O(F}<@<;Qmpy(Gj)=qyNG!RQQ zikUUIM3hL=Gq}I^c+F9A>53uS)kqe}a;u+owI`(5a?mI|B z-_C>YDl=4ml8yZGNDMknh1~%~nKk}S<;+P(5?bK*1~lTl_xqLmp!>0mCVb(K)SSlm z@C*l_%7x+(>Z==T$E=v;Db`tYIEJeBm&W8Kec<(e*HceJ; zosS)RV+yBvrPYP@VHqF-CuOh@ke#wk)JJ&!~BmgD~`9G2a(KU**io z>3F}Vi#zGXSf5&p5USbb9Se}kTlP7NS4;#%0M3A--)hyaQcym`S1mw34m4O-xlSp1 z*`(;@n!ysoSN|yEXmG@Oi<1{S;29=EHvUlShRH30kmzd`@1y(*$UDz2J0k%&EF8-n z1&DscM%WiRz0>wG* zDg}QCk#k1zU!4L=J0++qw`&&}277AQHq3(~zsW2&;8wAGTG%$=*NzF>q~JuDUym7J z2|Uy%!iOI_@{a9f01EXo(Y`hjBPg}v_t_s0zdQ0`$xx!6=bKz|s2_sjmFp7m>eIas zR6M=X0A4Rc)s*?GRu~t5?bi~N<0{Iz(_e?`Ju_ykR-OqfGsWD$a7F69fSp^@sCO65 zoVggc<)o(t{x`Y9>gIo@Zxju*o}@Eo%5QZONv@~Qg{~z}oltDsO;m0H$HZ~Xnq|s# zr68F5VOab2ZPIOgbF0PtNzfG9T`PyjN3~2*!RFs2A)@rNkCaH&_@?SPHzHB?Gg-l9tv`ouDH_sBxCr_6hBet+7Uece1T?)3M5g` zmJ~;7=ko-_PAu5VrY0)ZKr`?DtD-EUTpt|{7S=SJ5%0{wVxj}O=|Onsi@Of8iUiWn z*fXgjdQXwSq*6P6ud_P?>Bpc8{G=c^H}$PLWdxFM&8TVv-5At-M1+n=zO{CTbNXY# z7l=L*Nn@M>d(;6K5=4DpBlwUx>x{~Y=ZynBSXa_P3wHd)D>p;Vu$`rcgy$J{{>Q(| z<@19n0azvvsAOaYv%{7Hi;y}bkP&G-u^@=m_h8YZ@urO4Gw~2Q_~(Khp2UmY^sklO z5K9o{S*!e}o8U)kgnB3TZ5R=Ismp8xhi42<~^(n8E=U-1a`bk zn_H_aI+pe%Mk{Rip2t)`uKVb&r;BqorEkL8pqBxI!a6(6-?$ELBYeiY02jmlw~Gn2 z14`vMnF6fu(CXhV4HfvDhf=Gv%T=eQ=%&_H^Hx@CiBOp0=zhjs+NE84^-vT(fE=Z7 zUb)~r*Ti2$hs&)NScPq*ipw{>oIi)tJ6@O(@f$h`K=1ux6ftW zr5f?L4_zw1b@z54Yx` zv#x=pm)3_mP-WZP(PP*Cq8?Y3s!`{N2mG#KMO>eTCrE$-m1%|MtM8#N6>4n+lE#(C zaWgPJr5zV~0q~a&X|%f;G$OEdqV{34(erxv69t_GAL|Lbv&W?O_Dr|uBOZ!(q~LFW z>VcNZ?=e1XgL(4{O6qCnDr76|P0x=*&ncxATZXfpvMTN1eV~2F6jL?*@^&rB{h1N7 zsOJWXM2S7HyS&!;2cenKe%)xT9Hrlqo8NC4R@l2Jaw)oW>pdPnj8h4dQlj*)4HbT*u^a#*$s(4W|S)oLdk7B-(PT)Z^Q)!X*%^`fl1v9KJIZCMq zI^mYpa(B`s5wiOr22Ucvj*v^wQK9I>Ik7vtw>~eUtlU7x3NtGK%*ce_=A?{w&pDS9 z|F-4=yuU~cbNXA)64PntReWbw_It(91tX|Mnp5E_T-aBE4Y{MGFUqx7s4mrYXL~GJ^NwNvVB80 zZ7G?4u7z%(t$VYR)RMCOpJ~b6%s#r{MGH28KY|A3mR?nBuj)mg8w5x-PPiFMAbS-IQ*bewpB7qAxZexiVnO zj|(q}Y-gN)_&PDd1h}zK?&6{Fn2+$CP6EJwC0j5R3CE5Ixk6Ttd>c0#{UE?>O%!Nv zsg7lUo{GY`_`v%p;&A} zuy>90?8;RChbtTQ*RgNArkXnasJ0C!U!iDqcxkFwq9-Ty?*C)#D}&-{wzU(26C@BU zIDr9zyK9i(?yd>$5Ik525G=S8f(04eEy3M_4{n1GHn@D7_nh~B_nupI&#B4}DmA-z zckk}iYpv&5Pm2?De7%x)7hK&=n}V;*rn1D<&%kG?0~xOu=!kNjqkA;In(9^?^V&Zd z2k)`^dKaxrZxomUxLgBTqP@D;!PM9K&=MAI{+^VuOdM9*|wHMTy9ml;RUPf zR;VFGpsqNjHwdZp%Y~t%Mep-``4>^1RJIy_O4QRSk@})e8GN?(Q7KMovg#yZJ^I_K zr^S@#*u%KOFf}&G&=c}qqZBGpplbD6rQTgru(jw)DjR#34^CUHyEDnIGtRbMG3(rsS{K1&95?Rb%l=P$P9UAU$uRH(MfA_ zdYOqhT}2=&s1RVhf1lcL{lW#{hPA|dWG=$48~&1zmMBzQ-~CVeXOsfS>a6?oGpYPm0zSWxyjponz#WAs2l80HaOT1W%%$M@wE`QA6Q7h|1+S#IV&==_}BL3 zJ6m~XIWcx0Ee5@1@k8|QT6{{Tf5d+mXJhc|E`sc_u17ABiQyuKypVYIro!Q-xF@I3 zo(DoUbDs$ufbEMZnxCUx-NsC`*oo$;43RjTo$AXuQ{nUo#Ld6!#Z&LN9L9pIpv_1e zAC)OT-lz_*RXh_QGbX)>U1@vWV93+`n+YJoUj24O9v3SJeLQ8ic5XLIHl~07a5Vr8 z%XHmmC~#Ao0lLb86Tc9pF(&>tC4mSX_nQ zw_;%0#(!jvIcN$L?m`>%D^Zm1mXLIE#R|)=w15m82&+}y1f3|D1g_`N{~ODTD|3(j zbhmZ^-ul~aW-ewC_WZ097rm|Z&}sUo`{q4K^Ysbuvjo6z*pFVact0~w_SUJ|WPwP+ z0;94_`%9W}p0y;U&P8>OMPxe8s50fcw$gvW_X0AcZyrlE+V$xjU+h;w8jQyT?{A>V zj-6JE+RFp^Gs`=qxIHv22Rxm1A?q|J%Mq2NHRqA#`B5imF*q`*A#R_~o0ZrYv7ZKW ziaOqEM&2CVq@;1@t%>;Tcs^aTX^<5MszvvG9yaSA@N@`|cTJ?`oMte|EN9i#HzOU} zW~_k{1EQNm&GSmtN7q1E6-5;f$Z#Ro{BoGfd!fgM!XkV~{-(UVpT&cth3%tj5pLm+ zuXWD`+O(jVRQ1??LNa&Hj#ngb+@%pc^>byK30(54ID*FjP99?Q{aw(qU)_58$rJbK zwSkD&ZDFwTI|=ut<@YkD1~JsJ{HtptS)*V->UK|&sV4tZ*H?Y^i{)d5zdZ9HWY{}_ zrZ*Wn?RRO636K(GZ_YNy3e-l;T8tOJUTUG@v~(SL_Xa%No;dcR>0!G*EcEssN2dnb z#`DbUT?k#*TQpvwU!ekg z#J`X=(|I+(_-x;ad2i`0{zX5s(Gq=U0)O@!jIxLMaA&)GYw+8%2N9@tO4&PaPO8}S zbf~8qhF=ML0%#jS-zP)Ua#m3%b>83AHXZVVT5>>{*U)G}5e-NP`A&h$$;KR>Z6W_LWBH} zxx`~pnq&g(g$ldOYYI#eJeAZ84$sO`?+f$ARWwg#_%7+s_rFrb(cI1!Pgdx4Tg+-j z>_%NIEdi*rN+xvzzy-obbkB;@G#exVbtC1*{aend(tPh|<#Fw0Z)I@%g{iAt>(@82 zz$sfM79R7-_M=NrB%rz0JYULi``O6*o>;BjVR|L9ne*AR%nzm1IqD_@k&%{Nm#N-k zr)PLEiHG*-g2BUI)(=bjFaY7T$kcgH!(~;^u^+B3`!!H*a|2cZb0@!)xgacc0~sJ7 z&wOgn_Uj2P0`i(u6p@K!H`y}-!jkA?`6)jMXnV7{IK|5&);KZburyuEI$}A&emDF+ z${1CE>z}gk{SrtAIB`Oypp;#*{=XLkLp~loL|za@{cN9nGENKSo(LeKlsUqak~AgQ zH2k~_D@lN3KbNS{eAbXM6~{mYRFKS=8PJ)MJ&UO(U`eEPY+6`_G5f3RgsMxB;layl@Ad&9C;js@)06#7cUZxX)-t2*mmZ0{$buUYDsm z^9eVcoKSSD1nNt72Qvx_ ziSD!Dgu>*GUG_{VgtM!1*dBkRi*pb-rv(m`Zl@?pr=D$8HMdXp;dxfy z=QO_O*uO37T0?}!Ij$^tPedyxs&BIM{I>_Dy4I92;ZNOE`exM_DZyu2jO@Yfr8eeV zf~Q(`@<~!ps|C%J*4n+LS3(%ngW(@8b!Q>b3{$lxbSn zkAY0yuVO;*L-v87%k#A~u7muUN3y?Tz|3)!?`9Nt(^tQn_0hc4V!U4iPqNez6Rr*% zn|MhAeE+xr$fv8AMMR(kq$+s0$5A-ibLhDN1o|nxe-0y=u|%*0DM>2r;R2J_xy3-B z=g|ox-e8!5#S4E&tge1PVw}6DqOYm{-TFs75-gh;{HqZtaqhv#UOKjgy?T@Fdz@Hf zMbeO`0u?do|{~e!gq9Xy1LfO=qGFI!EPQ4T3m|cc+A7_)Q{&(Zq>s^(*5PK zC~M+hP+yECa~k_8o09Eyx*P9$yAJjg4z9{w2Hu$MW&__V3%Cv)88xKfl6<)!sT8ByG`RLAuyY6zc<@$oHb;} z!`x4qfJ&Vztq6O60*hRK$Bvr(eJG`>em5+ud#>FyWNjtr+=3l;6Nco8XOc;NP@8jf z9+oX&Sz|1uu)(O>(!c^!%>HU@(9RRH6W{6lLH?_{pD^Rny~_RN9;e>-GM518JNjs$|ZYqvH7jCUOt z$XnLUOYHBkL*|diRXOC{Q&L6{e6m~bdju&4xbMPd)6cvoBPgxR7bo(|IBmIm(e5Fi zuofem%`3Q?MNRZK*4&u{ezB=zarOd!;CZFEm44I;AOL4EV(pvURJM?ESBGX$J$%^5 z0bzSxc9R)Qc3O@j{+ns<{^rm=_mTxglwB7j(mv+d?ju7K_$KFs368+#!f!W| zMnOxQ(eijoyoP4L6S^JU1PtIelGg|q4 zH9B%RB{b}}l#g^N8SB)0?tx}IPrhbm$gG!qulpY&Wv-QACGB;qewY9o&c`k)ls)kk z0DjMm5u)-u-(ErGZkg~oZH>`PeNc%u^eD7Ua8n3g6yDySu{PzvJx>n~93L6@_9=D8 z&Ql?+WVJ`L zG5tVQ+84Jtvi3T#S86iVwxLjcn?>4S+w(Hz_nR2wFW-y>6)zb8+UntX0qI_a!6zjf zoe>wnD+^>M-L_n%1|SUWY<6OFpBSp6z(KB%9H>Z^TRqmeFWE8Sj8=gj;Sx;yGu?IqpD( zMQ}3=sd|fw?-)b%#J147*`>NZ-96zCPQ=2D;NWJBKBajia_jv5JGxzd1*6<0^Z4i; zefIX&B%IM-t*_@5P{VhR>e3av!c-7S_hW4YiL7TgJNwI;=KHsFcwy)sA8Y-Nhts*u zKA979${^T01M%euKXGomX}bn=>i=OM>a0i+Qj6|LYHdhM%MMaxgB_AgE&%aJjQMw{ zMhK~FGnw0082bKDX&{T5SVZ1^&9OHq4!8WGqoS?M)3E4A=hGtC1{4TsP3dR&cz1}T z8S^?Oo(e+uF{0*UaNG^L{4y`?ACZfeZ6^|d!_f3de>8+WKTUiT|N7RE2#Yf%Agp#_ z_aP%Q@%WVU)IpDJ&kE3(Ixw7@UX^>F^C}^%-JSEaPx2S#HNY12McF=xFbQjWwz(KH zllr!r`R>)umyqcFr2#`+g@7ON3uJ79CD|^rCzWbJKA|3j+(|6SJg!y+)L5^YmhX?M z4?_aBlWc2h$u8{JA-#_2SvEX-$<0>P^HBDnFd(UlOgdh44uBfMDY-2_)k#LNW9G#H!-{wJ}^++5}HwcmVuP2|}Q)yy5F@>jG zrd0YZ3U?w_3kOLQkJ=Q&s$S?(Df_dy0Wx3Nk0?m2%=3543!5&&DIcK3YptO+bs`Fd zBzWgQ(CEgarIy<$=wm>eIH@4fywKD9Wp0d@(bm-H_o8*GjetDp`Amo0#jiH|f_cX$ zOxx+fF4z4#th=Iu4<8F18j2IE>^!u1`y?S25wd zx!r@+=o9W=FxFR$hM3!u6)bB0f@ce^q({2?r2djIc+L0QWHOvtpc&iK-^cwv&i}xzA{wSsj+M;MX*TS?AbQkcGKH`?Jt|Kb++fA_ zbo68A^b8*YT0B;g_^4Ly_18?LG2x|4h}EXF6(AFBE-~gxq0z>iEu_}m>e?tadbeHu&W;DFrA!;^S5h( z*;utHGX3J$gVQj8J>ohExoD2

-o#i z=k5S|BRVYms5BX1TP$T|=0~J`-*Jc+%V0Ou6$-XwE`KtZTvQI>Tr(9fcOSi<|3(yz z)--y^Wsi5%Id!pWO&fuVr!phmjPNM=V_9v2w{eZ#T30n-@-Ke3_mhRQCWz*xl90$If8eG< zIgX6LIU>>p(^io?PB{z@{A{%A32oLd&u**&yH@eWbs^{^9;xu0^?We&C^xticu)R@B!v5WYe4E7Er|ZB`8$Bv(i{LRTFzEhO9|Pj@>SxljkM zni!5SXLVg5-f?``Gg(Azcg&lM$v;3xcR&84=Q*lMCtFLl&qA?(+B6fq`x(SiO8a&; zw62Zph}qxq0IJ6n4dX6lThpyz?lY+%Oj^Y08O~w_O4)7bzVB`PJZGl0k#B^g;hX>& zLJro$d(1BnY&*{n5CwCFLI(SQ4E~gv=e}V1dX!#~V{fN-E)ZD~2xjJ-OF7h0DUuKI zE|f4^4wU2oa(b3;tB$6U?VVvP=;1TCiq!HM66Zulel#HD0bx`rcCcvxV zodnG~e(u@pE_Rl+5j=psN&Odl6Aj33^@lWf34tEvX(c4BiJw0E6Q(7sa-+3W*5@!^ znxjqkL1k;)R2z^pn2-83l4%2Q1ozBgL|6i%=i)W07u%hiE6>hnF#mW?ea)fZwUcv8 zS&BhFXoM?&g9ThmHPd%+=b4KIQ<$YK$|q=mE&Op(GHV1qgHFDVP^Y{SJ*lvnM?ke| zHgQU(Vh^NWz$+v-eh%q)hWH*Q3kk^+Wdbl}8QUMV*!0oJ)E)hf!adBl_McbchU#*_ zII{MtHF|}ZB*k?SWPg7l_-1`;j%A7ok(oW0E zYYS)v;TmEKY>n7DeIs~BgL^eMs+Dm4wXrwxd`^FK!VmC^YH)Z|jSlWoRoe2^K&!7z znWf=;$Q=ARYi%618&CY&@fx3VEgT&L%_0OfD!1Q)Rt3|Bs!d1YNCx=^3K#mc-&jlV zJ-N^VGzhgfPk1(89r+z}aNFrsNULkRtE>x$3ASL1-f@^362cCw2Moy#kaIDsCBmKe zV_7cdM%1hJteoC_c=E=^kYYLVhpm=2^)yGZ;#sxLdtZX448?QrZ{dzJj;z}*)ehyf zu0m@C*U?v)2J5LoJARY8rnK@&tJ;w2ib<>_IeQl9q{$Gph5Y)76cO#vi4 z_DNFZ?ZlUNwdGIkn_egCYk%2h|K7_g$sZ;-%y-B>(D?&fR8oI7gw0~JnL;2}_Tp;o zo-Cg%gPyg25_2^Ti$Gz;2rWLX?Q-izvOjDod-nnauG855s`ui@nPbk9o^kC{)h$-l zgOQH0&oyH^vI3?MwR30Z^1^H87(oi>yxwaU(wCiufTVw=`tMn>)_EBlDz5AIY~TuR zi)>YcJ5&#UHC=#Ijc+6L8BiT;f2;~y_WT5mdCVABnpjXjim}GxK7CF@ewH1u5bXz3 zp4FwGiIrt|CPdGG0H`;}W2gH=z8%a0;yML(o3HgHcEhqOy2)6_VGR?qZsdnC$)D^o zSHrDY`})wDL!6GY!hgnzeMCrM)|YP#4Yo`M6nmh2IL`!}TGhdJ#I25J8~hwrC$9W! z&d<+bOSJ-w}o$83E^*1VY^^#&arR22}90~72dr63LlsTb?)-IfptTS}5g-Qi%XKl~zbaPII zwm7t<82yppZ+Y23Hbn0?yb%4wDFL04W}T^g)2lae&AV(n1?r@%gh`-)mwiOI27p?t z1;Qh;zRJQLgZ8*2a9+IrYaZ+n352*M&$Xh21%JKjx8yxbhRe~!(*wWwqH=f`7I0}Z zkQkz^1Kin>B{I~y2AU^GuAl|X(q{4vAUTCD5?Js)gPPaFuFRk@0jotvM<{6XH8L)} z9iq2;g9Z@F>`9ZsO3!⁣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 z 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

`%1 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�CQcs9FRVXiJ783HxiZeh9xG%7~ND8XFp%obouqwJb39{`fIb0I69TdOopw ztT65wYq$2rp#oLH2CNA>DK(wfTz765%d+0>XmX+q=OjfGJ{e3q&_NFwcQ>oj%6*EA zd)smnS&(n|DofYpO!2HlNzg-Uy@!VtJ;ON+g`%5RnI=CeQWgBiJkBj-Z! z@u|cRo8n#vst)T)O=rFudvBbA=h;y143+NOEry1n7GqV2)k5@WR>6UU*tXNjLdI-x4wvO+D9}7u6*10?7wo}kk2&7}U$Prhr(0*IrY?J@Y zqWpRA;F&datgotjd@lG)zgcYk2rt!dxAO~lFalq>i3MQwgP-<yFc={46l% zVsW$~?eH+&P)J|ma9RHKK2mD{f2t?npIQMpOUnb+@hZozlrI1)gs^Hn9owhGSej(` z%C9NOEpB_JavLtG#8&Y5W2+Pd*6nmXcm+Eo>|`YTPIn+NqiZc|al#P;%}4)BLK81u zBIiYyjR7c)?M|bg;eOjxiJ0YNaSafdTdecaFo`5^IUmho$LnSs{}xPB+Cl?A(wLci zwkrugr`(I&Rt?DdQ^Yx*tDd^H=DBzDWd(d=#begkqQx~mo`GiqgAX>SNntTu%BSeZ zz_b~@aO^zjdc^6_R+>-s7(*MGl8z z=;9>4yT}%SLhE-(mIw#&1JI4J3$9f$qM>-^DzK>P$|z`5dE^s}I0jM0o-p(voKta& zUuXZ_IGmF%bCMAnz45MdbhA}gT&EA{T>5s(&{pOOEDZJNk$#fJ5?eX3Ga*isD_ zb{)(@QuT<>>_Dv{3(d5QKqA$$M4KY?X{{$--;6KCz`&OI)pc^fTTOV8;+_?76|5(g(hUxoY~7&sH&4nv=6=_%OW z?xU#3L(|zXm}7YS5G_s&7AH0Yn>HC{$JtWu{tPutM>;`)Li3k%vF@p;!;0N3jUhOz zdUDJq3Q@%$;mzJ@`2JGnbnSD6M*utnSr9vZrfTRtJ(=BJ9(6xB>H8`pxS!W}Fm+b6 zHd|_M)&-`;Mg#ena1VRaj4y(WY3uA;15Cvcf{sd(f~$4O7Zqx+=|0LYYAK0+iWYNL zLKD|zlftk!FWWDu9fpV6Xm&;nysx}?g~Pp-`1U!qiz6jb!~PYk)3RGciS%zi-3@zt zM@vih9%I~(_rt?O7FpJrrjCw|+FHKRDO!$n^gpziPS5{R3Q@b^(dZ`HRkxEZm>1z$(=d&0itX%-rbGqIjuo7*o*CPwnZ^(0(Ma)zM*}2@-Ao_^?ID2Tq!ba25fIy zx2xOo&4%86oi;Q{-dhf8BAI7582UMDHlE{68bsGy7*2Q53(s(>M?N2wPQI?<#NeTI zMbu54E8t2o@BZA}$8@u;u{ubA3Kz9iN$cBDI*0*LmlxE2^i!(kTCC4lSQr#a+fgj* z4ClF$&?RVe41*y;>xn9lMfE`ZO)%YQJrFzR`s6@~(n0^;(SiU<)uL>zeVqA^F|fb_ zS;}sn_+Pc+yK{}p7Q58mDE;&_!8*RhBFd9sF)P=sLk#kAWPf1%kUsNzbDQy0URUGi zE3}p6g{&$4?NXs{!r0x2z<6DW)K@Lq{#KsTB*lY( zvryStI$LBd_o&@c{U9502KU2<-2*-PopJh?Cdy?tF+Gj?`h&8&i80h%NF+DPlgx%I zBTex=gC@?GC3uad63Ho5c^8{&F1Ffh2;nb0eszc35j3pJcR2N$o0qhoye_m|+j=BY z?jdtIISs?fiAR5ZC3u@PLn&3mmsuHiV00saBYqgpP>CUn8K-Ie_Vx}^E?1*CM51&V zfzv)t$N0q77IIH_Er_Yefc+IFYMkLrspzCUk z?oOv01s@^=;&|jCwR;Wb5#XUPs~7p43zw#Sxg4ujo=$*`L0M*JIP-=7b&A?YxC6_> zv`Kl+Ghwn(B8aH@RbJcUUVD|J{HCTdALL_oo%MI>Epin6E;qr4>6b8$!ANPx_P%mc zCQY(GB`usH^De}m7Z9XW;+K;d=Xja^vIr`l8lbvApwZx;*%$hY%kBKGBC~S+Tu!_~ zVUAhP1p^k1#&g|d^`K!j zMSjuMaf9~$A*rLqlw6^k{REi}-vvoOy_QAIIphemiMk%X-8{Bue3DOFF!6O-OK7D(u3Vl_I;yI5PT4k`(;X6oMI?pX z`{DI44l2txZ)n(gm$5g|S=0CKc254xn+)gUfx43eqn=`#csePCNzzy~$`4_`Yp6tB zn@ckV>6Mer%GaqxvST&W1$r%k!e^aIkUH_-T^{6b*n5!b>~^wXPt+OSa%h}qG*x2y ze(cOpOSDzVW~RSkwOu*)eIoWELzn2ccWItQZEyVJJjB`PL(5PC!G$@UTFW*AX$rws|BKIu5z{2J62T8<2GSoIhxR2( zJjXR84(a<)2tW(_C zdcmLj#?x5zW%+EY!23h0e1=3kv};S;S~t8#a)aoy7$B1#gx-s5qm>FJF)~e^ zw;2qu-Xdxqzy781!9@M)(A37Kv3z&#J#wd%jG^H+^0pa{AbZ1> zZ^0htlx>iVe_-c@zTwtq@(V>AvzCC zTW4I758yJ60kav&uL9#lxfh~WOXYI&@4mNN*;^y00 zsF?M}E7=hn@`Er^re6n#velK`u#+z7^eRXPuv|WKy%Mn#ag=AkZrn)mSy?$gJ=xol ziCTPE&{e67%Vue6m-HdYkQdd`@~W<8+QYs@*86$>(w}GUCfdISw-v>80UfwEUO1%7 z!v$AE-(LupdDIck5nSns`e{=@rZ?F0Q!dz~b=`v-By$fsqI{pEa>9SCN%}x}uTk=a z4X1UizsJwS#E%ZgyARDrBG8iqtBvE)rV(tS3a0&XB}Nf{Z$Um-`1rbe$VAD=yc=*X z*zN76EXxt&%UJUKQja!s`5FbP0J#E1^FoVrhd`6Iq&+7m=lImr@M*)-gSEJ9AC8Yw zUq--Pxem3F``z56ne&B1JWX+=k2JmfOdAiLr5?O<$=i(WW&)pxKl_JqlHR`f|6 zEhZ!tPQI(DVcurbeqPt8fdO`H99BzK(v+f|d+ADY`Thd-tndOnkc^drO#~ymkl~$# zFt44RJ%F-I6V3Lm1>ZcX!$W~fkdJ|)?%>AXA#|V!mb!Mshq{#BS`R??2#jG1o zs;#|!Tb^2jc)z`AikWVOYN5f@Ml|x?EAZp8d?Ek_*fTCE2*;J2c<&VTFijkItxNd827LPX!6$q^T zDNnhQK``|3$6q!J953_pK$a5lg;eDB)wajOM4WXM7A#QRCGQi+`IuLg=3yUfj4R?P z$7RJno4@-^@yQd7=kBYwvE8<#Dg+B>snT`9%F(kiX3|Wf3hz_6(eX%7)Ay{o1U0(U z^~p*^&@L$_z2IPF+Tnc5xBh%VFqi?PoU1=W{h(|XR{O)l5iWru^N;qJ^5V*bNlzp! zdyS3gcMg$9cNi5Fg$t3vRr3Q-N0c}m-Lfc1OY2W0@*}reZ=HYImztcFbvkuNLUA`w zPgcrtFr)Qh8o_2u!(%ztE0?z!g>cd@JYZ~MH(hyZp;i^~VEx^50=B_S70h}Z>>|j+ z9iLIV?Vp*T%YS+rFumw;DcOV@qA$FWdqbVA!?z?fb#j849I4FK*ZAF##o{sPuABP2 za_*anuWhU^*RQhoOUF{FUcDNuZQif^d_sU&b$W#BVTL>b6Bhv^-)%!!8A6DJ$)}AB zt$p`9X)z#3S4_R=%F>EkdOYjiIG@Ae9Vo9cvJtZaWC%q1V8H!C7m+QB;50>fWeXh> zajHI7EUEwj^9TWRB*b5&E~rJ~klw0dI$s~-%}1I&ZQ;~68jZ963~Lhbs37LZ>O4$F zbA+Ue0&UNpynL2#XtqS5{3wUCfCPVtLX1bk$9%p}sbY1WPXnw?`7Nc+$Bdf|?za|U zY3-2}@2o8oFov?$~7WIn}!~MjZQxr%HA6z5P~_2`YzNpU&YMlU`a3{h8hrd zUwkfyKE(~;g$TCKB_l&3=OvDC!Krhmh$fmE8V$;JX68>$dz>R>kKSGK-Ufv!M46`S z@qc_=Q=G~*lG_xUp^R(XGkoU#rR;<|92~>9`wXntwXMoU<0<&%qGOQ3QS`49t_3xo zw*jiL)Z;jf5?)UoXl{$N*Ysi?Ej9K;c1{nAxSysVk3l8ZYNJU1Lt8iNQs3Sl-uNv% zT7KvKyCUm?IgUekX-al;J)S33Ps^!AZNfP2oogf8`JohEL`4L z5YI}%|D=E6l5-qdLc3C3sV?}v?oOKO)gVEy`rgdc;6p<=8Mq5T$`F%EP=v}lJRum> zuQMCjo>=etu$+h3pX1Cu z$VPR_HXl&5g~;@X>=3gjn{HNSjFozl1~oRR<#+eZHee6%NKRd1T4P53Z= z%!l5fsL3;w!ALFQyA5;l{wqw;yXy=J6D2&v7rJaVHz;|sG~+3*+$k&;eH%a}@Yeqq zE5FS`ZKa;E!{)Ah_|E;Gc8OhI-@&a@&ep-DU85YX)ZbydxtZ)wU02seo<37ZfBQO= z9?c=u6Vuk-MQG~+D0St_rPT&`3WeNu*?T%037+Hk{giODS!nfx@LBrjc$|q^he`E? zRb!UqNk<*cA;M)UW6G6!H~k`cd^H_Au4~B_vwQDv>eh{NznpwWt%QkuV$PMSCc+=dq$550)e`Dvt5*=K151k&(@{SzgIueMQVH z_q~tKzsa{ME5D$C!Ni!-viV1T`JH%+^5l?2duuqgYv+B5-QT!u*;mE^$CFL_PVlJj z@#AF)=0Yk_=NGUw4u>-C$j@A__L!my7Q(~Eo*xhIgW^ECM_^^JB8EEuANQwD z{l&kl@@pK?FH)J`+6SCh5Ip8dd0&hTsfb+nJ@NguVd?o5?%=w>)G_x)^MKmg$0aBF zl|lV~7cz-$A-bD*RhPPIDjDSqDcX1s#p^AnPr~7F7Y$$h9v?9t zWCc+_m&F{rfpkpuvAH1JjlGGc;O>&+tXDD6ywsyS?cCvCjw_SNqNH4UKOU`4hpM+Y{OTlj;IC z^S#eBo{QPc4Bu>T$G$NA=I7leJW9Dva&$1LflMq?y=frV{OSeiXsy;_4k3K3-w=_2 zLp~g^97K0NGG^{OvwX-meTwCtA{0JD&|Ghf3Mr>vLX6A3V~2Ig%2NXl;=vidVh`$7 zrK~#;;be=MjE>KwEZe`MUTXI}{S7*wx;s%F82gGRZ{E;Dp!(n4`19nVGNwxM!EK@Y zAFdv3SnrG~%u{+uEOaTXGQ?9STIJ|a2rqR-@@jhPl-8W`?WDl_ZO|1~3%C%1lGJC@ z%bqzx(3fXjFwrRb!_v}9@8agqLnmIEX-E*SaBV5C0%fmvzwES-12WlQRxVSK>T;A&&Cb^wX@hpsRtSPD103pp zYTbMH+Odh`1UJFh>uI_JCFyXPVBk%TI?iYTYnWzsRT%W8ytk4s2o<_vd-hMLVM0DB zW%0Qj-_EQcqa8*>C~hZ1?2t&_g;tJnQMcoIbP{sY-A$3!SYSI3r;1rCyM1=3HIe4=w4LdU`;BShlQWmDgw4q zbRVICO9vY{-53@40uvAtHb4vDgglguYZ}kCCK$|8?bx7nZ#|Og=P*Fp1=GBr5odMF z(Pe@MhW%*KXno+5Lv$H*OHpay6S;*+a84OG-C%4#bA8(W=_SbYy1(0CyD?QEG2~!Q zuln;A(Z}n_aNDa~UayWvj}JO#+k`su4npv&FQ3Nj)%Xi=nQ&y0k>l} z`%5&xfQx>}hcfnGU50*Za5B`g0tFT|@O!Ue;TeEk67y$!j#22f;p++>c}+oEsB)fb zs){{32h2X`&x8fG+Bq(bMq9^w*&cM7W5fu#e>WNnig3>SH6d7-XFNd$%i|WnT5c|< zi9#rh6oq8g9Yd+boy9KK^V4uh%0cdT6#f43ZOl<6s_lGZowGW->V!+T^(ovD@;(kS zD>C2rm-`ab-48ZcqQ?q##uoe}V~egy;o?#W7k9z3oSonc8oST7XgMymXX%|!F9XQL zjN_fZkDBQGzGTDg6#;qSbp1*3yxi8Wo#L*cZq!3y74SJYeT%6&#B5%m!kjqJ6 zVO3xX6fV2Dqm-d2{V9q9>P`0ckZ8pis$pVo!?7ek$!IQWj9Ci)a2`t<_0fVPv5%aR z6vE#W%>`YDto7SsqCvxFJ>PqoaadJ8Sw$bXGnsobn|gim{x7)}wH3zqy}!S-F-B2s z_zCknEKb|+xvX;p6?6hqrGYBO<`;kcFSR9cC<-H$XS*6>-y%O ze^)u;tGgUr*74di9x5R>Rb-AYk0#tRRrpz$P7WRO1syMWaT5_w>P)XZY{KX?*)ki1 zTAHFBJVGaK)0>tR90bXn+WptoK8JDXA}<-VYrdDlD!ZK(^c8@HrAbGOi_Z4(3Hpx~ zI-;ceLd-EB(uJCarUsgnZ>0lF1Xe4TSgpOxmj{!nXHk^W@yD!K8q)z4Ze@2DKx^X@ zjvay?o-05ab$m{IXuRTA=urFQd%sm`U7n%L_KRoC4x54)s)AReqFZIt<&+^Rv!$A* z?)9M0-)kGr(l>?fT&7CQ=qorkneu|8c*bueW^kL=eB<##SIi^7>-t+M@&rNUNhFKS zscIXe-JXCX*H%bNeV*@ldT)-DE%+3_^;2)} z(<`!2Gdv5`UUAoheC^H&=ia0z&r9vMYARFsgBtyk%#*9SdD&kS3U^D##!OzkI;)a* z-ScEmdN*umjyuun_ubcaX>t2{%PTL?i@WV-*yZTa{OWXsMCsmg=!%<2@&7~GTgGL* zZd=2ch=Qn~NUKP9Hz*-Ur*wBC-CzNNfOMBgcXucy-Q6JF-SEs?_da_)=bSI^^L|;s zwQklO|10MlW6Uw_!yOq@x3@0NIxKFC8x=kQ$ety+q!m4u1@;&?W$@u zjyzZpk~U^#(YFSEa3_^$OjW`#mZuOkh<{X8!76j?0;xlONpVtEHZg2(pVITqjy^cW z?_2I%&q15OP|cAdGn}1x|7$3Bu7fZTk4Q)7jp>%&LQxAFJID0=8!RjZ*7iGYxH+We zE*X6(>3t-Uv6Wx72L~PcZByR6zNOJ%3$UIzvd)E?)kt#d1x8aT_l@z2NK<^V_O>lc z=-k!hi`DfmVulO(F7C@Q{kZ-#DNi@GTX%lmQc4G;H>$dgOySsrIY!`f(1W zhS{*SmwGIaz#<{(eKp#?$(yIO_q*$DduQq5&F__KAD;ni4{=lt2@+Hx{EQO)l))Xe&c^U{w~a_s>@j9;=Bz z<_@Z~H)k~Kyo#dx^g;?~8R)yhiF#^3erXo3K%=JH-(3qOwS|}-(A`PS*X00-644EO z5=xPNMYGaI1r@`?e#FsexPQOO`OrU7mSk3Sh*`b4Ii5s~0}UQVKoB`Pg0PQrNT%*v z!gam}5SEr%U4GUTz`4a?@5zsR_SV`$08&1H`WrpeCzeJtb9Fl=*2?{lJN3tVwS|PtYoTHeH2-{&&zsi= z5#s&xwb_7Yh#TRbuN@@`FM9pkU;FPLF3A1>+yD6g{{Mf}b}RzaKd-bW{;%#5-WnhO zgrF7+Tkp=xhO+m^2%DjB*0PAask+ksyOjI0AsqQM)lmXcA!JBhPTeO;la&Zy@=-kk z>@iBrN4M$^_K8Z}pDy8Hyb5?;ncsshTC0+sfye10eD#g^=2Uf(6af)zu)Su&)lgBa z^d-&Rc#0{=0J=+67MZ3t65OgIICWMe*;7D@D4oO?d8zAq9ve^%;7$x4KADM0ctlo|u=a>Qs@u;S7zwJ2U5}*TcKwnPcI9 zyYef79;5o?QrsVp{gT$md2hN#guU@xg~5Hpox!c1Ph+~$gzz*Vwy8L=SyEJ}FD#pU zMv6haqP&zR_7ju+mC3jzA#+6Q(~$rc`ZC@joa!0kjH?^?;^H#} zhx|Ep>E%L)2}_PrBj6ax_deY-PFLy)#NNe{h26Wu4Z)`IQ08TPd%)#k{#3c^9oo_g z;0;24J5`ogBrj^3Qe-@?GoD)IsnEtAjz1rKy%v zL16o?xP`?Zmh1*HhvARRJA*_K2ZzbW2%`if$QDc$`jaq=Gr7CM!@T7 z|8~PewM3IZx~GR?^C5G`Yhg<|q;(Z0L=5TBZ=LcD8m#TdK-+l&h;8c2tsL>peCQ#K z`=(`t&Pj|N*IV*4=fE4-*aW6W=pJ%F>07iSIVLXt_dgVFzLwj1! z?}QW=roeMo`G1i+{sNK&HU%0zu&rcszzSR4VD+n!XpYAlx&YkbYlw)s!HDe=~!A6;=h z)jBFv9Xpz4fdM_hxL!i}|qER5H_YWT8J z68+-b;OppEwbk-7ztw>h;YmDrsxCkugQ#+0n))+01Oltr5lamELz9m^_5hWjOtp*A z?dZp{xfK|TS0%1(9q$^Xh~r3x77&vgM+J|{Q&_GXNzX5a(W<}b>RiX>HWe1b9#y6{ zn`N8dfwWU;k`L%4sWJCHTr|o)?wahk(nUweXF4qdX_3}^0`JMHeXv3Zc z{LAXfboq3uJ`z94w_I-2Ua$#eo?F~iW_r80Jtt&@(+A+jcU2To9`_3|7z&5VN(x?Q z=vy4cYAy`FKA+aOvw@x{^qBAgo)}CRgeIRMo9)15^|p7xS9W4F7}X6ujN^9YgFpV{ z)5z1kP`$agmQ%o$m>OMEQ1YwUKf8wMt?dt3x;JTc07@9$nxhah9G+aOLo;75dFBhC@P*E(y_QY!(Ko{y)gqIbWQIj4D_g7t z$2rd|xc%w-<#z4Q1;^{1lS8wqZ7cWXF&9$X z>>%FlTVQeUp{~%taACvKE1WfzR?Xn#OfXBaz#CQ2As;&yX* zF>LOkdL}I2l9T!Yl~A_{6_|Rik+(EjSb6%kxX_>29oht>;4Bn{zkos zo{_b=BWYXGZvy=DHTBG}x>W#)!*02=0oyuFs{Hm4!OgyW(ZlDf z0@}9dnlmvL(H0}a1f!v@{xh}nUl?swnnIZk{2$ej@|L1pL;Y?S$ z;hPhP_m7&xIZ9w_EIpZio3v9yZzro<44XGh2%PGpG}Jhbx~q!OuY_A{Z8oHTthogZ zgsyos?k>(+wNuz}xq{F7Tm@3OqG&komyLpCP0}0uYgF5vI zqrODO!bdcI_AUf*;!2guwq&tz5T(gfKT;~dNy)fNt5W2lNuTM{YC-+lR3(>+)TETC{B}27S@K&DWYv=yOG} zByA=nf-2|>2whN8Ml5`319R2$F9nc5H>@`wBuJ5;E=9J)=|J{wXtTg!orTW=S0^yvknu-WPtmKq`|&#O z>6^u|5@;vx2Kd zILWw}8}^g*a0AY%@Xyq2s>!@ai<5WLU*(WeNXoT7E`|4#8EJ%&2ZVExX?%uMvdOc~#Ae(@geixRW`6tHi*M>!#X7h#lz`V1mI5RXC{dAMGww(Qw z52n0HCA45qv>CCoSsA?sF($;eKO0RC*gPRZ-5*C!&7ndI1{z4|fuOhGcQGn(6lm74}z_KYXL+fSqz>6{ROHa>Aqwdg1AWvN6drS8--ZZ zsS%;f%F4=cHYmxG^b}6L07(!DupILgZ<-2?b_pN!ZEM?ZP=RXiqi-gz)5%H1LR%M{ zq>)%AH9pWC#%T{%STHpMKn?au778}``S~_Wn(MK$HKkhX#yBk7Vz&4Mbh?jkYIyEs zZuUed(ALj#hu&8i-%R~IO6LL2Gz^BrWJR^8dWvvp1Fdspt{Se%-5ER-0<0%g=3CpD zO=Z{}lQy+Bh4HwfKNStj!YnTOW|m4rk-rS;q@ZMc=n>gerTJ9(s7P;9qE@$!*x63! z1P%KYD2O5=q8J)Nwj2)LH#unn%_QqcE2atf;Ls%a__W7Yox(IXo?TA8`87>@0R)fwxaw?_jrz3kS z%kHak^uHch&qydpYRp&X+J|KXAIOF3VbFpoxLJeSDM^ZKxX8_{ij;oV?uAjRWI*9KPM+kyKMZ@bR`fynfU%}12)7D_URcL^U+aJ$= zdJsr2`zp)K^mS_DOJU2r0&9wNt|N{BACA@MzlVGHi%k1ydgk95bkS-5dXb}6A@Ha^ z3zJ&EF<2;|CR3sz$62E}4jS-fwsMT17T&+Vz23P1vRT+JS1O#GS`SrM%IUSckw7~7 z0|Y267OFx-v=*W3paR-`x0og;zdsxEIi1{5Y?s(c?3$O~_s^M75-yioBSaLFG4KL{ zv^y`~{chI@GE{dzI|>A|?E<$B3Le)pZ^uNwk6xY`<9@LNQu{3*vOGPjT#jXql{I+p zfJla-O+%>3#z`IZ_N=_a<2N^En@cJUWalp%MTdz;Ql4W4yfe6VWKgv7m1mw(;rJ;% z{?M{4Y1v~3|DO7r&60Zqb*-bGpfO3KDup}Xj)teISQ>$evGMHeN)yO<(&ba* zl;`6g2Uj`HeWzxH##Rb7lV$o38B-*l{a$9Ynr{&YQ>Z!a*TGWdKzJ$57w5zg*b$31 z7H#U^=r`xpUL=1JeK*$9;z3{e;IDyC`N1jLQB$bY)awpLWdEfBx(z|G<*uQ?TNO?u z1l-QNI12t$(({Zowra~mh0&w7tmLm7f5ULf$ma%gqzpeWDb3)l?1t2CUMli+F*g94 zvh0^4e&6Flo~7&k0f=V9|3FHCH&fb`JQ~A4GuqnN0HRCe_940sKO5z|4BCReO7zBl zBO+_zp>VSKRq! zikdYo0k7K^*K`ITX0sX4UmLq}KeFwO!?~N>nvk6M1He*pP4ky^EpzRvc>;Q|0fama zr{m3sn>wxQq9gdXZ^<|+KWF(%-AmS`V;q?)3PFY$QLc&da8@<%TnRKipZ&~GK<4m_ zzv&AUbYLA;6w7&Lyk%u_Q!(!DH zC{B33+$?h&;v z55opo1YQZ`Ib7h;#G=cPSN?9D&jj@eQ>MMD^7g1JjOdl_!CnAdCIx7_DKT$1iO0Tf z&fy*|czcZ+r?M|Y4H>{rPVrG%+vksh)3b+K@Pj$lcZb%W4;=_pIep^K|F~;+wx?9q zZ!LOoviEm>;sWoPkUc%j62dXme#e8Kl|YyP=+A) z%?-L}cn1=l{zKdI|3^81cMXzjDaY*G_)ox=H!TJD_&i%{TWvVl4RvklU7K7+;EX|4 zTVHwjZ^EqV{qSK9$+Ooy4eMwjNYXjJt@yB1YrmjzZ)uFTV^?*eDD@S_=7OneAxr%1eg56F+~>$_ENHqQGn__SI_(}5e7_JC zy|cczEWhze(zhbj|6ekLADqn-(M)>hE1_#6`LV47CKO(TGG4`gW>p*nj~=y7=*Ati z8b_ezE@TgvY~CBnQC*llegY@Cu3rI&wj@aN)x^pvF7bh>Oho@jczC&jSvEdf*pX1yoJS^*Km0+5?MYO4#-0{jih za;1U3#B5uBL?WBRHj>wb1K5xSnB6bZE1y|KaBE11SS~Q*zbsw}301nVjH+ zp3Vg>JuWU)IwS@cd&?M;8#!<)HG?96V7#)q!$e_#05G!JcTjFX{3DUNMghT<=4|)@ zUKcn(872)BOx1iY(X+?&4o?zk_8b5|jyOtH-niUB-h%`j^3*7wo02sgm)C zIvj?Z10C0Fhh7Uq+Z==@H|)(Pr6fcyp(Y0)mQ0sP zIu(#4SBohw-HG%1_`Pf+UFUzL;@R|eSwO7S1d4&9&Ciic=O7nE#qCBnTeqmc)94=v z?9trvn{XX3^!wW@4;Q;)A$KnQP2b`Rq9xZ00v{j%u1dsB11e}bRuu>h2d+u=x8eZi z7K%lUkOYFHtCuPalBT8cLRMfXf2-CRJtKOyHC5>A#2n**O%S)V2#crhd`sS3* zaGjf20P`Uq-`$O=Hkw*9icRKiV*t_4=~)4mcz5{|k46zI}f7O}Fi7ndMOE9>6*E+NFC(>@n z{nrM}C)a8&*pF7K)W*KsNVU|TaznjCr8m2)6otF;5Z@y^_FAXJd>TNixNmZGr@v}Z zj4l69s#P29^+RV~V(L3P3a2dnHtGBjHN6g}!M6_2X<*WDQ#FxG%o3+RJKT_#h{#G$ ze_h!*p$I0p^Xpk@8kx6?)h5!Elfsmn4MFRFDG_s`Q&Si8`t*>lGZ4e8*PqMv>{j#6 z!#Qe;wFx{TBBG2?O2O<_y_P^mQd#{j1sYnl5-#{6?U}VmHcU$4W|j_ewVbOgcJ$V_ z9ZF3*Ix-dBrppBG*bTbCS(sC;-FiOgx0=lGphr$O?ZXNr;Q>L^a`F zkd$*t*@N;3_i_jm2rDk}qNd_X7xChiA`_ZjC~3Z9NADNqw|oEFtFOCZbt zU$nW1{Df%h2j|0EY>rolJU38i6v!~4=I7<_)ghE7Nf|iXl=6RsNA{7-{a*42S5Z?{ zouH#V%C4uk`|_K)LulP8=ZrCr7BL?a*^Gb#NKfKV{7l84IK8X+BG){mi0W5WWS`M! z0U8ph{fVAGk3hiOrA~Sv^@8rAE;o#lp&YMhxjWDt-z5(qZK!2K022r_!2|xT=HO!$Bq2jGK||DT)tfdOkuiT{w%sT8bR+EcfOx!_aEYE(I1Dk3AjG3+k?! z6UjllmIsxNkIY7)m|F+W7i%8M*i2Z=WINwsloC|RWeXgvy=vFU$3a8$dww`IT!{@b zqr{A)Ym1#RH#Om+P_495%GSw(h(IvaxIaggAUxw?B!?E2I{3})E5QZaJ;0jalXQ)l zl0Asq*)EjrX!3v`Ut+*mGlH5kn~NJUA|>LuksOOEI4PZK!t^F4Tq_)NidAHbopJho z{;tOMHArj2D{WB^MT0w=1+*EM_c_XSe5maz^%NRn03o2a{_&tyK5LJ^_H=g85A-6D z9L`sK7rPRjj%B_)-eHA_N)Y$zw0iIt+=`Zhrmd}C%=peyYe%`S8BK}>o zfl#Yq`kkTS_oT~v1F5%f?yr9O{91j~Ze>RZ&p;3vw`7CcJFcc?G+vq%{i4Xl$L!}) zAforOk@X{C!DIfjmhBTFL}?MIWR$9mV|8EQlt0E49`ZLEvES>z)N_v>%AFr*vy3V> zr;Loh8P*=(w#u3dZPzMwJrU%y0EGaLvqxyCe3aQ{OE4*TH7SsAVZk5dYMv1C&cZpL zrB?jDgYy6!Yom!XpMpjy;l<0+$@4TqlbkDod2#1AMMxl06ob~LfXKE4HeBB|T8HDZ zXwQf?@-lXmL%;HNBrytS~1V+2eYgQR{kHPx|;#7 z@i1lNmg=9c`LBPtV=hDY>i_yr#QO;a5z)s#U)vV?Q~3JN*UqH>{?32A_W%A-OvHCS z-g7Vb<*l%{JT5WM4b@|7B4LRV*U%Ys+mA$(4~L(+htWo~eeJ=Z>x{hPv0aa>6T^r# zX*MeQ?jN1F6K^7(<%|>*+)`<2#65L$$cNigg~8q3i$$xwyWx_RZ#z{1+@tvfQv3gU zz9__lY{yF_Xlku6ZAsOra~a%(y2z)q1EM7slXZ!%&P)4;yjkiMUw!0Fq)N2)Kydr3 z#LuMM{g7a!z#vIxKT6IrJzvu!zi)3Wc!i{+OXPhOvk%%lS>yc znQ_?8pMBe|_?whrD-*&47?pxa1oi*!W-;{)9?sN-SDBvvD#hGRwmq5(_uRH?&IL@tdzg zyG+$feR}69drGWXnV5?snDwr9#c|!#?CAZp24bXdZyM9(n?oy0E$E$h9Kc33G@iG} zf)-+rWaAE~t)mcggz8!*!&yJsedX<5hn-(f!`h=i<>U}Rt5JbO52LwP+YD5w9!kMY z(3ke*HAz}fnJz$^_TKG(EY}O`-!14*8{B_puPTgGXi@jn1q-3y;=u4I&c=rVj8(W$CbJ(yA*c^Rwy<7`8h# zYh)9W;5bXA-cB{}hm@CH zK?7e=u^Atn%(6pBjRAepVA->~9VN87LEUP?+8LR)UiR9Nl#sA6T|AFVLbT+a&_hCQ z7Z1L~1lLk^Q^oQxk-<%YkWQ+uRLUl&6kZ2m)4wuZ>#>c$K(QolP@;3(nysekk z3$67K?H_N=R2N)>SnQ6Wv9S)^3zCGqh+Y<}ilYr&)H_Q*TqmntMFBg7&EyY~`W!jz zjKQqz0z$yHS`%}bn3*1kiLNE)Ycn!1EbOLA78y>V+?et#Z2d}(fpmOFv3oOK8pIp^ zQwwOOip5{Py&3%79xL?z#lL?YY+{2y(w655a0a9VT!t^t3C&4WP(k(IbbmfkSy_4T zwy4mxIzTg^Diq^Hsi43;l@KQ?DuhCX08Woqd8=87K^gQqL3ZY;%0npd?)|5jYm4Od`jyHNhhmzy4nAEV8p*&JZD%7y~p?cy{l1k#M89@d?yIM@Ems# zH`qVk@c(`@{C~J)ym?nMr$cY3*^*4wQA0+(UU*5cNe?@MWLVwj!kqcvL`8GfnM~kZ8eu{)> zc|nXP(&Sw0A@~v~wj>wsztSmkY?8k}`)JNka z?bCicS(k~-=<8ZFA0L_ELB&wbFXo(T#y0hl!0OUpw*^O3-lUPyNS|LUaSZivsLt&; z^AZLSpf9@APIVo-@UG%b9Uh(@b0xp2zA5vV?-o+VKvwL=X$7=BPBUU8fAV+k8YCsb z)QiuXcDiZbq>S0jTTuF16l+!+DC{xE;sk_tn-ebBlvSjf`tMoTvl5I4$e0qcI3Vrn zcWJ(xqM`^Zh9pk2u>`~ceFd+twfmu_DHK10sv7x|aj@}sftr}aFW6xupO!}_Kfq-| zSyCI1Ge2F!&6KA8S*b?0_cu5A-lMqRZBCJ+H|-EVE;bQLKJ$v@{@`5Lq=?C!P*BbM zE>nT5MC}%@P`KSj2qRJcO6)AW08xI~bK8EjE8A*uyuh5~exYkpG;Rn7nmxTsU5ZHD_+5_mf?A zw1J`!_~W$i#PVf}%;z)F2qY=Xv)i6U^zwv1BQl&Qy8lQJ%}_DvHYvZqn+(ooo3qZe za@1h&dPP)Ea!LCE1~)?Vq-+%UDgsCMf)wvZRT{r&=?3RB`+D z$5Ik3SegWQ-NdE{)W~#~-;@)utEblc5hdx>)&g`;=e33|>2kJYZGEJYaw`E^23_4%T5422IAkTPS<;_C zl$D_>NvKj|=vFZ&0K*71b7(KHW%&uXT@s3_VchP|Xc_s->Y<8y2N*1Q)WG;jS18^` zJZ*bnYUF{Ld@Hgh$fn>)>%JK#GVKqI6rzo>T8LST2{=4vj>SXTGF|>z@vtqD&FQ(m zr&A2OZBX3+rKQOzUB}y6yY*k+%B_Fj(fE6iZP$ODMnq3nf}8w*8bDoudKq71tNha1 z{7dlQMM8KAL_IQSo8Q5cbcHintte1bms?@D{N;V1_eZ;0v5LFoG;$nB4x!t$ez6j0We0C=SsQMH>{e-sRdkur^X`&p>PGdJMio~*M{jrc zlW+-|1!|NhXD4bmPf(L&RqVBO;;y7)IZfcOCWv$>gS04e`C>N`?0658zR5{kd$J}* zW*`y&+;UaoZrrV8z37r6ySF44jd#{s6{eR)ZUOFB_TZuTi|G_ejxPFoS2EebD5As} zxb={>W{<5)%x-^6b{=yd6+G-LS{;t;_8of6YequfrHy$?t40SUTuqGTtu}~RO5NZd zIr$;z!pzKk6OHio@W2?A+C%Tlc5FOOE5-ctkv>D3k6!nStZ9Fw*7po{{`e?OB$u;0 z&5!(;*Z8`-L_|ZRC~E|ZGfhn}i6uZ~p<`5E&6RMXG3!U0!qmn}$<{01o^wPMnO?v0|l61BuyywogvU}9>D@kt)AB8Y6UXskU?Uu1cF=z4L=O?-w&(ShM2SpQvf&||T1&|pAPUq{i(iUEJrKs7<@-&%l@Z!cbQ9}uDwvoYcI zJs@80s}@ahRSC^sSV{KHx~teU8)|}r641~zNKl&M7xF$(3FX%KM->&?n`pQ#p=pLN ziBL?8_3URS`Hfx;lIMBuLw94;ROkQ4ZmMto(%dxYKVDI>hyT02Z>iab)6#mrQ`{?u z8*Ds;peltM5F7?BvE|MwXbQ}zJuZOii<6Xd(bausGIeDbVaSV*4<8L;W7a!o2G{OA zaQV1pZ4g;#NZ#lZ{zNja%H}j19nAZ5I``6jn6%@$bvA+?hLjXY*we2eN{gf<(Lw6F zhl;wj)*WeekZyk?0RI@d79H1L^bV`l>Wa3;kHC>#tYBFoWF!+@m6+&?Z^4vU5E3PI z)xBIBEs-a8jlZ7+?SpBNI>wcEXC1S4CR(_iw4^Igk%&birIXCL{Rw!k*UcVZ*sM%q z7+@(NKGam^i;?w0;q-^&Wm)i`W_2JNFdke8*Rax8mR#qwPZl6&WMXDcSI@j__mIMp z;rYJ#3Y_jUis=m8&WHT0k^~}=Ds(;ekKX3fQ>0$m+L%!B^uzIbbFhX4`yJ#4>@3JP z^do5HJ2C3Ym8`i&ZJ$`wocSDrOz;JEv=t_;lF0UC(y25it-MbR2S++q7V_PzPhj_v z_+hu4&1dH2PJ5fjaWR<>#?0t6QTm$=H+S-nV@g2D2Toeq|BmsB$Pz3juyBa{@~g17bHbTTzve>~0j zfw^1?I6gEex98O|#^H+4)+`OMYSd>+#NK#JE|T4)J2s!%E($U@vV@>vcj zDV=e?<$6ZRT_~K+o;BPR1r7roVm^@>{o!wrsghpBI>Eg7!U~K~3Df`Ck1Zm(pEhd2 z1F9(=V^+h4L2+EnO|y|Q0#&sZCsoOgz-*?W_xqZdn>(HR%e^!@)%MpOG#I7 zaJWAEzrmBu7b&*sv(1tdT(%8eVaBvijYnmF73=BOJ=mF86kv^k^&Xv2u8PLQB=y#t z@2N(+VZa-F#qlqJXyzx(!;6&=<;AYJM7JaoYyw=n15|39q2|_p?~J>8+wn7PAax8q zXo;qc?_IrmV;@uRS~?a{XvrdN!m!&(KMKhg9RJ9~xY@43tjF7L--_6qyH}-Iz%||O zw@1&~YcOrWjpT58K#d_3&;a4ye7l&@$oDJK_M2PJIrhmTceNJN)GPgEI9@e1J;sS9 zQ#S~`=@D9tHd0(1+MAy{{p*uWO1q=vz;4#`Qpm!vd|UYJ5fW|ujE`&VSOi7FAS&%5(oU2Px3 zDFz&8qgla^<+I6$QIW;b8e8ie)rttMXl_EgH`4JCAc@H4x@N^$>vVd>%Z@wNn#tbl z6j$rp!^kXP5y@>E30HuFeRWO+h28GsE5B%p>Tqfm7C4Adj-8{bHfs0vCfBf;>~or- z!Zq~$_2qqJ`BCFHItot5C&Ss%L)*p!F8OqO7gU{$Nc z)g_reQRV)uG20IrLfotAvLiRLRX${@tajzZw>RY#CZ@7ixyQ>8bfE6v;>BnM4;#j{ zv5YUwdZw-9@4sxy=gO1z<-d}r9(BmG8@Szwp#omGrwV${|CJL>eV{^=hY)0E!C{tT);)BSm44zdf7TlR|1CZ%Iqnt2#e-HYQvP5tpUxb6KF3 z`r6@q_kq*O^=Q`XGP%ZrXOF05udDZ-qI#5-DOM>n8?1d#@3%MS6R~0-4IrFb3go8< z7jGJqwU?5W)oG=2$6*z9rw$

4BqzoSXVu-tIJgkgQA_2#flCm#ke)9&x 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

dkej4w-z3H=$_O@x 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 diff --git a/docs/install.md b/docs/install.md index 8c1f845..714c196 100644 --- a/docs/install.md +++ b/docs/install.md @@ -7,7 +7,8 @@ This guide explains how to install Harbor Scanner Adapter for Sysdig Secure. * Kubernetes >= 1.14 * Harbor >= 1.10 * Helm >= 3 -* A Sysdig Secure API Token +* A valid Sysdig Secure API Token +* A valid Sysdig URL ### Obtaining the Sysdig Secure API Token @@ -16,6 +17,108 @@ settings. Is just below the Get Started sidebar item. ![Getting Secure API Token](images/getting_secure_api_token.png) +### Obtaining the Sysdig Secure API Token +Your URL is listed in the address bar of your browser. If you login to `https://secure.sysdig.com` then that is your URL. +If you login to `https://app.au1.sysdig.com` for the AP region, then this is the URL you use. + +### Example values.yaml configuration. + +```yaml +# Default values for harbor-scanner-sysdig-secure. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +replicaCount: 1 + +image: + repository: miles3719/harbor-scanner-sysdig-secure + pullPolicy: IfNotPresent + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +podAnnotations: {} + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: + +rbac: + create: true + +podSecurityContext: {} +# fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true +# runAsUser: 1000 + +service: + type: ClusterIP + port: 5000 + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m +# memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +# Custom entrypoint for the harbor plugin +customEntryPoint: [] + +sysdig: + secure: + + # **required** + # API Token to access Sysdig Secure. + # If neither this value nor `sysdig.secure.existingSecureAPITokenSecret` are configured, the + # user will be required to provide the deployment the `SECURE_API_TOKEN` environment variables. + apiToken: bs456348-45a6-4b5f-c57d-35572b981a3b + + # Alternatively, specify the name of a Kubernetes secret containing an 'sysdig_secure_api_token' entry + existingSecureAPITokenSecret: "" + + # Sysdig backend URL (SaaS Regions API endpoints are listed here: https://docs.sysdig.com/en/docs/administration/saas-regions-and-ip-ranges/) + url: https://app.au1.sysdig.com + verifySSL: true + +proxy: + httpProxy: + httpsProxy: + # Comma-separated list of domain extensions proxy should not be used for. + # Include in noProxy the internal IP of the kubeapi server, + # and you probably need to add your registry if it is inside the cluster + noProxy: + +CliScanning: + enabled: true + +asyncMode: + enabled: true +``` + ## Deploying on Kubernetes using the Helm Chart The fastest way to deploy the scanner adapter is using the Helm Chart we @@ -23,13 +126,13 @@ provide. Be aware that you need to provide the Sysdig Secure API token when you type the `helm install` command. ``` -$ helm repo add sysdiglabs https://sysdiglabs.github.io/charts -"sysdiglabs" has been added to your repositories +$ helm repo add aaronm-sysdig https://aaronm-sysdig.github.io/charts +"aaronm-sysdig" has been added to your repositories $ kubectl create namespace harbor-scanner-sysdig-secure namespace/harbor-scanner-sysdig-secure created -$ helm -n harbor-scanner-sysdig-secure install harbor-scanner-sysdig-secure --set sysdig.secure.apiToken=XXX sysdiglabs/harbor-scanner-sysdig-secure +$ helm -n harbor-scanner-sysdig-secure install harbor-scanner-sysdig-secure --set sysdig.secure.apiToken=XXX aaronm-sysdig/harbor-scanner-sysdig-secure NAME: harbor-scanner-sysdig-secure LAST DEPLOYED: Tue Jun 9 13:38:12 2020 NAMESPACE: harbor-scanner-sysdig-secure @@ -46,22 +149,7 @@ kubectl --namespace harbor-scanner-sysdig-secure port-forward $POD_NAME 8080:80 And that's it. The new scanner adapter is deployed. Now is time to tell Harbor to use it, and you can find [how to configure Harbor to use Sysdig Secure Scanner Adapter](#configuring-harbor-to-use-sysdig-secure-scanner-adapter) a few lines below. -### Using Backend Scanning instead of Inline Scanning - -This mode is not recommended and it is supported only for legacy purposes. - -You will need to disable inline scan by setting `inlineScanning.enabled: false` in the values.yaml: - -```yaml -sysdig: - secure: - apiToken: XXX - -inlineScanning: - enabled: false -``` - -You already know [how to get the Sysdig Secure API Token](#obtaining-the-sysdig-secure-api-token). +You already know [how to get the Sysdig Secure API Token](#obtaining-the-sysdig-secure-api-token) and the Secure URL ## Configuring Harbor to use Sysdig Secure Scanner Adapter diff --git a/go.mod b/go.mod index aaa705d..e290e66 100644 --- a/go.mod +++ b/go.mod @@ -1,17 +1,75 @@ module github.com/sysdiglabs/harbor-scanner-sysdig-secure -go 1.16 +go 1.22.0 + +toolchain go1.22.1 require ( - github.com/golang/mock v1.4.3 - github.com/gorilla/handlers v1.4.2 - github.com/gorilla/mux v1.7.4 + github.com/golang/mock v1.6.0 + github.com/gorilla/handlers v1.5.2 + github.com/gorilla/mux v1.8.1 github.com/onsi/ginkgo v1.16.5 - github.com/onsi/gomega v1.10.1 - github.com/sirupsen/logrus v1.5.0 + github.com/onsi/gomega v1.33.1 + github.com/sirupsen/logrus v1.9.3 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.7.0 - k8s.io/api v0.19.13 - k8s.io/apimachinery v0.19.13 - k8s.io/client-go v0.19.13 + github.com/spf13/viper v1.18.2 + k8s.io/api v0.30.0 + k8s.io/apimachinery v0.30.0 + k8s.io/client-go v0.30.0 +) + +require ( + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/emicklei/go-restful/v3 v3.12.0 // indirect + github.com/evanphx/json-patch v5.9.0+incompatible // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/nxadm/tail v1.4.11 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect + golang.org/x/net v0.25.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect + golang.org/x/sys v0.20.0 // indirect + golang.org/x/term v0.20.0 // indirect + golang.org/x/text v0.15.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f // indirect + k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 4a2ad93..0305688 100644 --- a/go.sum +++ b/go.sum @@ -1,519 +1,251 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.51.0 h1:PvKAVQWCtlGUSlZkGW3QLelKaWq7KYv/MW1EboG8bfM= -cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.6 h1:5YWtOnckcudzIw8lPPBcWOnmIFWMtHci1ZWAZulMSx0= -github.com/Azure/go-autorest/autorest v0.9.6/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.2 h1:O1X4oexUxnZCaEUGsvMnr8ZGj8HI37tNezwY4npRqA0= -github.com/Azure/go-autorest/autorest/adal v0.8.2/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= -github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk= +github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= -github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= -github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= -github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= -github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= -github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= -github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg= -github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= -github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= +github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= +github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/ginkgo/v2 v2.17.2 h1:7eMhcy3GimbsA3hEnVKdw/PQM9XN9krpKVXsZdph0/g= +github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.5.0 h1:1N5EYkVAPEywqZRJd7cwnRtCb6xJx7NH3T3WUTF980Q= -github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= -github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= -github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= +golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6 h1:pE8b58s1HRDMi8RDc79m0HISf9D4TzseP40cEA6IGfs= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091 h1:DMyOG0U+gKfu8JZzg2UQe9MeaC1X+xQWlAKcRnjxjCw= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw= +golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -k8s.io/api v0.19.13 h1:QemsSLlTqf1zsGMvtEuJ6C0SQxtkGLYro6Zwo6Gy+po= -k8s.io/api v0.19.13/go.mod h1:xNpkpfCFYnVjbmKqIInsBPqUROkHefMc42rUA92XkdU= -k8s.io/apimachinery v0.19.13 h1:7XK494E/orAwJAhk4wvnHl42eMa/jQddM7TjFO7zQaI= -k8s.io/apimachinery v0.19.13/go.mod h1:RMyblyny2ZcDQ/oVE+lC31u7XTHUaSXEK2IhgtwGxfc= -k8s.io/client-go v0.19.13 h1:oGsxnY3xr0JVzYCg/6hAylPvGqgwQfhj6VcC3oTCS54= -k8s.io/client-go v0.19.13/go.mod h1:6owYejoEA0HQiiuVfsf+uJwcdqLe2eUgYC/UzIMeeTE= -k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= -k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= -k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= -k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg= -k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= -sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA= +k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE= +k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA= +k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ= +k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f h1:0LQagt0gDpKqvIkAMPaRGcXawNMouPECM1+F9BVxEaM= +k8s.io/kube-openapi v0.0.0-20240430033511-f0e62f92d13f/go.mod h1:S9tOR0FxgyusSNR+MboCuiDpVWkAifZvaYI1Q2ubgro= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak= +k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/pkg/harbor/model.go b/pkg/harbor/model.go index 218a748..a0121df 100644 --- a/pkg/harbor/model.go +++ b/pkg/harbor/model.go @@ -7,7 +7,7 @@ const ( OCIImageManifestMimeType = "application/vnd.oci.image.manifest.v1+json" DockerDistributionManifestMimeType = "application/vnd.docker.distribution.manifest.v2+json" ScanResponseMimeType = "application/vnd.scanner.adapter.scan.response+json; version=1.0" - ScanReportMimeType = "application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0" + ScanReportMimeType = "application/vnd.security.vulnerability.report; version=1.1" ScanAdapterErrorMimeType = "application/vnd.scanner.adapter.error+json; version=1.0" ) @@ -78,11 +78,35 @@ const ( ) type VulnerabilityItem struct { - ID string `json:"id,omitempty"` - Package string `json:"package,omitempty"` - Version string `json:"version,omitempty"` - FixVersion string `json:"fix_version,omitempty"` - Severity Severity `json:"severity,omitempty"` - Description string `json:"description,omitempty"` - Links []string `json:"links,omitempty"` + ID string `json:"id,omitempty"` + Package string `json:"package,omitempty"` + Version string `json:"version,omitempty"` + FixVersion string `json:"fix_version,omitempty"` + Severity Severity `json:"severity,omitempty"` + Description string `json:"description,omitempty"` + Links []string `json:"links,omitempty"` + CVSS CVSSData `json:"preferred_cvss"` + VendorAttributes CVSS `json:"vendor_attributes"` +} + +type CVSS struct { + CvssKey NVDKey `json:"CVSS"` +} + +type NVDKey struct { + NVD CVSSDataVendor `json:"Base_Score"` +} + +type CVSSData struct { + ScoreV3 float32 `json:"score_v3"` + ScoreV2 float32 `json:"score_v2"` + VectorV3 string `json:"vector_v3"` + VectorV2 string `json:"vector_v2"` +} + +type CVSSDataVendor struct { + ScoreV3 float32 `json:"V3Score"` + ScoreV2 float32 `json:"V2Score"` + VectorV3 string `json:"V3Vector"` + VectorV2 string `json:"V2Vector"` } diff --git a/pkg/http/api/v1/handler.go b/pkg/http/api/v1/handler.go index ac38f70..c15915b 100644 --- a/pkg/http/api/v1/handler.go +++ b/pkg/http/api/v1/handler.go @@ -2,6 +2,7 @@ package v1 import ( "encoding/json" + "errors" "fmt" "io" "net/http" @@ -46,7 +47,7 @@ func NewAPIHandler(adapter scanner.Adapter, logger Logger) http.Handler { return handlers.LoggingHandler(logger.Writer(), router) } -func health(res http.ResponseWriter, req *http.Request) { +func health(res http.ResponseWriter, _ *http.Request) { res.WriteHeader(http.StatusOK) } @@ -57,12 +58,16 @@ func (h *requestHandler) metadata(res http.ResponseWriter, req *http.Request) { res.Header().Set("Content-Type", harbor.ScanAdapterErrorMimeType) res.WriteHeader(http.StatusInternalServerError) - json.NewEncoder(res).Encode(errorResponseFromError(err)) + if err := json.NewEncoder(res).Encode(errorResponseFromError(err)); err != nil { + return + } return } res.Header().Set("Content-Type", harbor.ScannerAdapterMetadataMimeType) - json.NewEncoder(res).Encode(metadata) + if err := json.NewEncoder(res).Encode(metadata); err != nil { + return + } } func (h *requestHandler) scan(res http.ResponseWriter, req *http.Request) { @@ -72,9 +77,9 @@ func (h *requestHandler) scan(res http.ResponseWriter, req *http.Request) { h.logRequestError(req, err) res.Header().Set("Content-Type", harbor.ScanAdapterErrorMimeType) res.WriteHeader(http.StatusBadRequest) - json.NewEncoder(res).Encode( - errorResponseFromError( - fmt.Errorf("Error parsing scan request: %s", err.Error()))) + if err := json.NewEncoder(res).Encode(errorResponseFromError(fmt.Errorf("error parsing scan request: %s", err.Error()))); err != nil { + return + } return } @@ -83,13 +88,17 @@ func (h *requestHandler) scan(res http.ResponseWriter, req *http.Request) { h.logRequestError(req, err) res.Header().Set("Content-Type", harbor.ScanAdapterErrorMimeType) res.WriteHeader(http.StatusInternalServerError) - json.NewEncoder(res).Encode(errorResponseFromError(err)) + if err := json.NewEncoder(res).Encode(errorResponseFromError(err)); err != nil { + return + } return } res.Header().Set("Content-Type", harbor.ScanResponseMimeType) res.WriteHeader(http.StatusAccepted) - json.NewEncoder(res).Encode(scanResponse) + if err := json.NewEncoder(res).Encode(scanResponse); err != nil { + return + } } func (h *requestHandler) getReport(res http.ResponseWriter, req *http.Request) { @@ -98,11 +107,11 @@ func (h *requestHandler) getReport(res http.ResponseWriter, req *http.Request) { vulnerabilityReport, err := h.adapter.GetVulnerabilityReport(harbor.ScanRequestID(vars["scan_request_id"])) if err != nil { h.logRequestError(req, err) - switch err { - case scanner.ErrScanRequestIDNotFound: + switch { + case errors.Is(err, scanner.ErrScanRequestIDNotFound): res.WriteHeader(http.StatusNotFound) _ = json.NewEncoder(res).Encode(errorResponseFromError(err)) - case scanner.ErrVulnerabilityReportNotReady: + case errors.Is(err, scanner.ErrVulnerabilityReportNotReady): res.Header().Set("Refresh-After", fmt.Sprintf("%d", DefaultRefreshTimeInSeconds)) res.Header().Set("Location", req.URL.String()) res.WriteHeader(http.StatusFound) @@ -115,6 +124,14 @@ func (h *requestHandler) getReport(res http.ResponseWriter, req *http.Request) { } res.Header().Set("Content-Type", harbor.ScanReportMimeType) + jsonData, err := json.Marshal(vulnerabilityReport) + if err != nil { + fmt.Println("Error marshalling to JSON:", err) + return + } + + fmt.Printf("%s\n", jsonData) + _ = json.NewEncoder(res).Encode(vulnerabilityReport) } diff --git a/pkg/http/api/v1/handler_test.go b/pkg/http/api/v1/handler_test.go index 09d3a2f..fb2d878 100644 --- a/pkg/http/api/v1/handler_test.go +++ b/pkg/http/api/v1/handler_test.go @@ -158,7 +158,7 @@ var _ = Describe("Harbor Scanner Sysdig Secure API Adapter", func() { var result harbor.ErrorResponse json.NewDecoder(response.Body).Decode(&result) - Expect(result).To(Equal(harborErrorResponseFor("Error parsing scan request: invalid character 'i' looking for beginning of value"))) + Expect(result).To(Equal(harborErrorResponseFor("error parsing scan request: invalid character 'i' looking for beginning of value"))) }) }) @@ -210,7 +210,7 @@ var _ = Describe("Harbor Scanner Sysdig Secure API Adapter", func() { response := doGetRequest(handler, reqPath) - Expect(response.Header.Get("Content-Type")).To(Equal("application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0")) + Expect(response.Header.Get("Content-Type")).To(Equal("application/vnd.security.vulnerability.report; version=1.1")) }) It("returns a valid scanner.vuln.report.harbor as JSON", func() { @@ -320,7 +320,7 @@ func sysdigSecureScannerAdapterMetadata() harbor.ScannerAdapterMetadata { "application/vnd.docker.distribution.manifest.v2+json", }, ProducesMimeTypes: []string{ - "application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.0", + "application/vnd.scanner.adapter.vuln.report.harbor+json; version=1.1", }, }, }, diff --git a/pkg/scanner/async_adapter.go b/pkg/scanner/async_adapter.go index 1395f7d..5ebc9c3 100644 --- a/pkg/scanner/async_adapter.go +++ b/pkg/scanner/async_adapter.go @@ -2,6 +2,7 @@ package scanner import ( "context" + "errors" "sync" "time" @@ -94,7 +95,7 @@ func (a *AsyncAdapter) awaitReportAvailability(scanID harbor.ScanRequestID) { case <-ticker.C: a.log.Infof("Checking status of report '%s'", scanID) report, err := a.wrapped.GetVulnerabilityReport(scanID) - if err != ErrVulnerabilityReportNotReady { + if !errors.Is(err, ErrVulnerabilityReportNotReady) { ticker.Stop() a.repliesChan <- &asyncReportReply{scanID: scanID, report: report, err: err} return diff --git a/pkg/scanner/backend_adapter.go b/pkg/scanner/backend_adapter.go index 9803f34..f13e3ec 100644 --- a/pkg/scanner/backend_adapter.go +++ b/pkg/scanner/backend_adapter.go @@ -3,10 +3,9 @@ package scanner import ( "encoding/base64" "fmt" - "strings" - "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/harbor" "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure" + "strings" ) var ( @@ -24,12 +23,15 @@ type backendAdapter struct { BaseAdapter } +/* func NewBackendAdapter(client secure.Client) Adapter { return &backendAdapter{ BaseAdapter: BaseAdapter{secureClient: client}, } } +*/ +/* func (b *backendAdapter) Scan(req harbor.ScanRequest) (harbor.ScanResponse, error) { if err := b.setupCredentials(req); err != nil { return harbor.ScanResponse{}, err @@ -42,7 +44,9 @@ func (b *backendAdapter) Scan(req harbor.ScanRequest) (harbor.ScanResponse, erro return b.CreateScanResponse(req.Artifact.Repository, response.ImageDigest), nil } +*/ +/* func (b *backendAdapter) setupCredentials(req harbor.ScanRequest) error { registry := getRegistryFrom(req) user, password := getUserAndPasswordFrom(req.Registry.Authorization) @@ -58,6 +62,7 @@ func (b *backendAdapter) setupCredentials(req harbor.ScanRequest) error { } return nil } +*/ func getRegistryFrom(req harbor.ScanRequest) string { return strings.ReplaceAll(strings.ReplaceAll(req.Registry.URL, "https://", ""), "http://", "") diff --git a/pkg/scanner/backend_adapter_test.go b/pkg/scanner/backend_adapter_test.go index e667e82..844348f 100644 --- a/pkg/scanner/backend_adapter_test.go +++ b/pkg/scanner/backend_adapter_test.go @@ -2,15 +2,10 @@ package scanner import ( "errors" - "time" - - "github.com/golang/mock/gomock" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - + "fmt" "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/harbor" "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure" - "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure/mocks" + "os" ) const ( @@ -22,119 +17,120 @@ const ( var ( errSecure = errors.New("an error from Sysdig Secure") - createdAt = time.Now() + createdAt = generatedAt ) -var _ = Describe("BackendAdapter", func() { - var ( - controller *gomock.Controller - client *mocks.MockClient - adapter Adapter - ) - - BeforeEach(func() { - controller = gomock.NewController(GinkgoT()) - client = mocks.NewMockClient(controller) - adapter = NewBackendAdapter(client) - }) - - AfterEach(func() { - controller.Finish() - }) - - Context("when scanning an image", func() { - It("sends the repository and tag to Sysdig Secure", func() { - client.EXPECT().AddRegistry("harbor.sysdig-demo.zone", user, password).Return(nil) - - secureResponse := secure.ScanResponse{ImageDigest: imageDigest} - client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent:9.7.0", false).Return(secureResponse, nil) - - result, _ := adapter.Scan(scanRequest()) +/* + var _ = Describe("BackendAdapter", func() { + var ( + controller *gomock.Controller + client *mocks.MockClient + adapter Adapter + ) + + BeforeEach(func() { + controller = gomock.NewController(GinkgoT()) + client = mocks.NewMockClient(controller) + adapter = NewBackendAdapter(client) + }) - Expect(result).To(Equal(harbor.ScanResponse{ID: scanID})) + AfterEach(func() { + controller.Finish() }) - Context("and it does not send tag", func() { - It("sends the repository only to Sysdig Secure", func() { + Context("when scanning an image", func() { + It("sends the repository and tag to Sysdig Secure", func() { client.EXPECT().AddRegistry("harbor.sysdig-demo.zone", user, password).Return(nil) secureResponse := secure.ScanResponse{ImageDigest: imageDigest} - client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent@an image digest", false).Return(secureResponse, nil) + client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent:9.7.0", false).Return(secureResponse, nil) - result, _ := adapter.Scan(scanRequestWithoutTag()) + result, _ := adapter.Scan(scanRequest()) Expect(result).To(Equal(harbor.ScanResponse{ID: scanID})) }) - }) - Context("when registry already exists in Secure", func() { - It("updates registry with new credentials and queues the image", func() { - client.EXPECT().AddRegistry("harbor.sysdig-demo.zone", user, password).Return(secure.ErrRegistryAlreadyExists) - client.EXPECT().UpdateRegistry("harbor.sysdig-demo.zone", user, password) - secureResponse := secure.ScanResponse{ImageDigest: imageDigest} - client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent:9.7.0", false).Return(secureResponse, nil) + Context("and it does not send tag", func() { + It("sends the repository only to Sysdig Secure", func() { + client.EXPECT().AddRegistry("harbor.sysdig-demo.zone", user, password).Return(nil) - result, _ := adapter.Scan(scanRequest()) + secureResponse := secure.ScanResponse{ImageDigest: imageDigest} + client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent@an image digest", false).Return(secureResponse, nil) - Expect(result).To(Equal(harbor.ScanResponse{ID: scanID})) + result, _ := adapter.Scan(scanRequestWithoutTag()) + + Expect(result).To(Equal(harbor.ScanResponse{ID: scanID})) + }) }) - }) - Context("when Secure fails to add the image to the scanning queue", func() { - It("returns the error", func() { - client.EXPECT().AddRegistry("harbor.sysdig-demo.zone", user, password).Return(nil) - client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent:9.7.0", false).Return(secure.ScanResponse{}, errSecure) + Context("when registry already exists in Secure", func() { + It("updates registry with new credentials and queues the image", func() { + client.EXPECT().AddRegistry("harbor.sysdig-demo.zone", user, password).Return(secure.ErrRegistryAlreadyExists) + client.EXPECT().UpdateRegistry("harbor.sysdig-demo.zone", user, password) + secureResponse := secure.ScanResponse{ImageDigest: imageDigest} + client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent:9.7.0", false).Return(secureResponse, nil) - _, err := adapter.Scan(scanRequest()) + result, _ := adapter.Scan(scanRequest()) - Expect(err).To(MatchError(errSecure)) + Expect(result).To(Equal(harbor.ScanResponse{ID: scanID})) + }) }) - }) - }) - Context("when getting the vulnerability report for an image", func() { - It("queries Secure for the vulnerability list", func() { - client.EXPECT().GetVulnerabilities(imageDigest).Return(secureVulnerabilityReport(), nil) - client.EXPECT().GetImage(imageDigest).Return(scanResponse(), nil) - client.EXPECT().GetVulnerabilityDescription("CVE-2019-9948", "CVE-2019-9946").Return(vulnerabilitiesDescription(), nil) + Context("when Secure fails to add the image to the scanning queue", func() { + It("returns the error", func() { + client.EXPECT().AddRegistry("harbor.sysdig-demo.zone", user, password).Return(nil) + client.EXPECT().AddImage("harbor.sysdig-demo.zone/sysdig/agent:9.7.0", false).Return(secure.ScanResponse{}, errSecure) - result, _ := adapter.GetVulnerabilityReport(scanID) + _, err := adapter.Scan(scanRequest()) - Expect(result).To(Equal(vulnerabilityReport())) + Expect(err).To(MatchError(errSecure)) + }) + }) }) - Context("when Secure returns an error", func() { - Context("when Secure cannot find the image scanned", func() { - It("returns a ScanRequestID Not Found Error", func() { - client.EXPECT().GetVulnerabilities(imageDigest).Return(secure.VulnerabilityReport{}, secure.ErrImageNotFound) + Context("when getting the vulnerability report for an image", func() { + It("queries Secure for the vulnerability list", func() { + client.EXPECT().GetVulnerabilities(imageDigest).Return(secureVulnerabilityReport(), nil) + client.EXPECT().GetImage(imageDigest).Return(scanResponse(), nil) + client.EXPECT().GetVulnerabilityDescription("CVE-2019-9948", "CVE-2019-9946").Return(vulnerabilitiesDescription(), nil) - _, err := adapter.GetVulnerabilityReport(scanID) + result, _ := adapter.GetVulnerabilityReport(scanID) - Expect(err).To(MatchError(ErrScanRequestIDNotFound)) - }) + Expect(result).To(Equal(vulnerabilityReport())) }) - Context("when Secure is still scanning the image", func() { - It("returns a VulnerabilityReport is not Ready Error", func() { - client.EXPECT().GetVulnerabilities(imageDigest).Return(secure.VulnerabilityReport{}, secure.ErrVulnerabilityReportNotReady) + Context("when Secure returns an error", func() { + Context("when Secure cannot find the image scanned", func() { + It("returns a ScanRequestID Not Found Error", func() { + client.EXPECT().GetVulnerabilities(imageDigest).Return(secure.VulnerabilityReport{}, secure.ErrImageNotFound) - _, err := adapter.GetVulnerabilityReport(scanID) + _, err := adapter.GetVulnerabilityReport(scanID) - Expect(err).To(MatchError(ErrVulnerabilityReportNotReady)) + Expect(err).To(MatchError(ErrScanRequestIDNotFound)) + }) }) - }) - It("returns the error", func() { - client.EXPECT().GetVulnerabilities(imageDigest).Return(secure.VulnerabilityReport{}, errSecure) + Context("when Secure is still scanning the image", func() { + It("returns a VulnerabilityReport is not Ready Error", func() { + client.EXPECT().GetVulnerabilities(imageDigest).Return(secure.VulnerabilityReport{}, secure.ErrVulnerabilityReportNotReady) + + _, err := adapter.GetVulnerabilityReport(scanID) - _, err := adapter.GetVulnerabilityReport(scanID) + Expect(err).To(MatchError(ErrVulnerabilityReportNotReady)) + }) + }) + + It("returns the error", func() { + client.EXPECT().GetVulnerabilities(imageDigest).Return(secure.VulnerabilityReport{}, errSecure) + + _, err := adapter.GetVulnerabilityReport(scanID) - Expect(err).To(MatchError(errSecure)) + Expect(err).To(MatchError(errSecure)) + }) }) }) }) -}) - +*/ func scanRequest() harbor.ScanRequest { return harbor.ScanRequest{ Registry: &harbor.Registry{ @@ -165,14 +161,12 @@ func scanRequestWithoutTag() harbor.ScanRequest { } } -func scanResponse() secure.ScanResponse { - return secure.ScanResponse{ - ImageDetail: []*secure.ImageDetail{ +func scanResponse() secure.V2VulnerabilityReport { + return secure.V2VulnerabilityReport{ + Data: []secure.V2VulnerabilityData{ { - CreatedAt: createdAt, - Repository: "sysdig/agent", - Digest: imageDigest, - Tag: "9.7.0", + CreatedAt: createdAt, + MainAssetName: fmt.Sprintf("sysdig/agent:%s@%s", "9.7", imageDigest), }, }, } @@ -190,6 +184,21 @@ func secureVulnerabilityReport() secure.VulnerabilityReport { Fix: "None", Severity: "Critical", URL: "https://nvd.nist.gov/vuln/detail/CVE-2019-9948", + NVDData: []*secure.NVDData{ + { + ID: "NVD-1234", + CVSSV2: &secure.CVSS{ + BaseScore: 7.5, + ExploitabilityScore: 8.6, + ImpactScore: 6.4, + }, + CVSSV3: &secure.CVSS{ + BaseScore: 9.8, + ExploitabilityScore: 10.0, + ImpactScore: 8.9, + }, + }, + }, }, { Vuln: "CVE-2019-9946", @@ -198,6 +207,21 @@ func secureVulnerabilityReport() secure.VulnerabilityReport { Fix: "None", Severity: "High", URL: "https://nvd.nist.gov/vuln/detail/CVE-2019-9946", + NVDData: []*secure.NVDData{ + { + ID: "NVD-1234", + CVSSV2: &secure.CVSS{ + BaseScore: 7.5, + ExploitabilityScore: 8.6, + ImpactScore: 6.4, + }, + CVSSV3: &secure.CVSS{ + BaseScore: 9.8, + ExploitabilityScore: 10.0, + ImpactScore: 8.9, + }, + }, + }, }, }, } @@ -219,12 +243,7 @@ func vulnerabilityReport() harbor.VulnerabilityReport { Vendor: "Sysdig", Version: secure.BackendVersion, }, - Artifact: &harbor.Artifact{ - Repository: "sysdig/agent", - Digest: imageDigest, - Tag: "9.7.0", - MimeType: harbor.DockerDistributionManifestMimeType, - }, + Artifact: nil, Vulnerabilities: []harbor.VulnerabilityItem{ { ID: "CVE-2019-9948", @@ -232,9 +251,27 @@ func vulnerabilityReport() harbor.VulnerabilityReport { Version: "2.7.16", FixVersion: "", Severity: harbor.CRITICAL, - Description: "Description for CVE-2019-9948", + Description: "Disclosure Date: '', Exploitable: 'false' ", Links: []string{ + fmt.Sprintf("%s/secure/#/vulnerabilities/results//overview", os.Getenv("SECURE_URL")), "https://nvd.nist.gov/vuln/detail/CVE-2019-9948", + "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9948", + }, + CVSS: harbor.CVSSData{ + ScoreV3: 9.8, + ScoreV2: 7.5, + VectorV3: "", + VectorV2: "", + }, + VendorAttributes: harbor.CVSS{ + CvssKey: harbor.NVDKey{ + NVD: harbor.CVSSDataVendor{ + ScoreV3: 9.8, + VectorV3: "", + ScoreV2: 7.5, + VectorV2: "", + }, + }, }, }, { @@ -243,9 +280,27 @@ func vulnerabilityReport() harbor.VulnerabilityReport { Version: "2.7.16", FixVersion: "", Severity: harbor.HIGH, - Description: "Description for CVE-2019-9946", + Description: "Disclosure Date: '', Exploitable: 'false' ", Links: []string{ + fmt.Sprintf("%s/secure/#/vulnerabilities/results//overview", os.Getenv("SECURE_URL")), "https://nvd.nist.gov/vuln/detail/CVE-2019-9946", + "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-9946", + }, + CVSS: harbor.CVSSData{ + ScoreV3: 9.8, + ScoreV2: 7.5, + VectorV3: "", + VectorV2: "", + }, + VendorAttributes: harbor.CVSS{ + CvssKey: harbor.NVDKey{ + NVD: harbor.CVSSDataVendor{ + ScoreV3: 9.8, + VectorV3: "", + ScoreV2: 7.5, + VectorV2: "", + }, + }, }, }, }, diff --git a/pkg/scanner/base_adapter.go b/pkg/scanner/base_adapter.go index 813b06e..4523357 100644 --- a/pkg/scanner/base_adapter.go +++ b/pkg/scanner/base_adapter.go @@ -2,12 +2,17 @@ package scanner import ( "encoding/base64" + "encoding/json" "fmt" + "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/harbor" + "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure" + "os" "strings" "time" +) - "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/harbor" - "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure" +var ( + generatedAt = time.Now() ) type BaseAdapter struct { @@ -15,6 +20,7 @@ type BaseAdapter struct { scanner *harbor.Scanner scannerAdapterMetadata *harbor.ScannerAdapterMetadata + logger Logger } func (b *BaseAdapter) getScanner() *harbor.Scanner { @@ -87,8 +93,9 @@ func (b *BaseAdapter) DecodeScanResponseID(scanResponseID harbor.ScanRequestID) func (b *BaseAdapter) ToHarborVulnerabilityReport(repository string, shaDigest string, vulnerabilityReport *secure.VulnerabilityReport) (harbor.VulnerabilityReport, error) { result := harbor.VulnerabilityReport{ - Scanner: b.getScanner(), - Severity: harbor.UNKNOWN, + Scanner: b.getScanner(), + Severity: harbor.UNKNOWN, + GeneratedAt: generatedAt, } vulnerabilitiesDescription, _ := b.getVulnerabilitiesDescriptionFrom(vulnerabilityReport.Vulnerabilities) @@ -100,16 +107,27 @@ func (b *BaseAdapter) ToHarborVulnerabilityReport(repository string, shaDigest s if severities[result.Severity] < severities[vulnerabilityItem.Severity] { result.Severity = vulnerabilityItem.Severity } + vulnJSON, _ := json.MarshalIndent(vulnerabilityItem, "", " ") + // Echoing out the payload we are sending to Harbor + b.logger.Debugf("ToHarborVulnerabilityReport:: %s\n", string(vulnJSON)) } scanResponse, _ := b.secureClient.GetImage(shaDigest) - for _, imageDetail := range scanResponse.ImageDetail { - if imageDetail.Repository == repository { + + for _, imageDetail := range scanResponse.Data { + parts := strings.Split(imageDetail.MainAssetName, "@") + repoWithTag := parts[0] + hash := parts[1] + firstSlash := strings.Index(repoWithTag, "/") + lastColon := strings.LastIndex(repoWithTag, ":") + repo := repoWithTag[firstSlash+1 : lastColon] + tag := repoWithTag[lastColon+1:] + if repo == repository { result.GeneratedAt = imageDetail.CreatedAt result.Artifact = &harbor.Artifact{ - Repository: imageDetail.Repository, - Digest: imageDetail.Digest, - Tag: imageDetail.Tag, + Repository: repo, + Digest: hash, + Tag: tag, MimeType: harbor.DockerDistributionManifestMimeType, } return result, nil @@ -120,12 +138,16 @@ func (b *BaseAdapter) ToHarborVulnerabilityReport(repository string, shaDigest s } func (b *BaseAdapter) getVulnerabilitiesDescriptionFrom(vulnerabilities []*secure.Vulnerability) (map[string]string, error) { - ids := make([]string, 0, len(vulnerabilities)) - for _, vulnerability := range vulnerabilities { - ids = append(ids, vulnerability.Vuln) - } + result := make(map[string]string) - return b.secureClient.GetVulnerabilityDescription(ids...) + for idx, vulnerability := range vulnerabilities { + b.logger.Debugf("getVulnerabilitiesDescriptionFrom:: Processing %d/%d", idx, len(vulnerabilities)-1) + vulnerabilities[idx].URL = fmt.Sprintf("%s/secure/#/vulnerabilities/results/%s/overview", os.Getenv("SECURE_URL"), vulnerability.ResultId) + result[vulnerability.Vuln] = fmt.Sprintf("Disclosure Date: '%s', Exploitable: '%v' ", vulnerability.DisclosureDate, vulnerability.Exploitable) + b.logger.Debugf("getVulnerabilitiesDescriptionFrom:: %s, URL: '%s'", result[vulnerability.Vuln], vulnerabilities[idx].URL) + } + b.logger.Debugf("getVulnerabilitiesDescriptionFrom:: Finished getting descriptions") + return result, nil } func toHarborVulnerabilityItem(vulnerability *secure.Vulnerability, descriptions map[string]string) harbor.VulnerabilityItem { @@ -136,7 +158,23 @@ func toHarborVulnerabilityItem(vulnerability *secure.Vulnerability, descriptions Version: vulnerability.PackageVersion, FixVersion: fixVersionFor(vulnerability), Severity: harbor.Severity(vulnerability.Severity), - Links: []string{vulnerability.URL}, + Links: []string{vulnerability.URL, fmt.Sprintf("https://nvd.nist.gov/vuln/detail/%s", vulnerability.Vuln), fmt.Sprintf("https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s", vulnerability.Vuln)}, + CVSS: harbor.CVSSData{ + ScoreV3: vulnerability.NVDData[0].CVSSV3.BaseScore, + VectorV3: "", + ScoreV2: vulnerability.NVDData[0].CVSSV2.BaseScore, + VectorV2: "", + }, + VendorAttributes: harbor.CVSS{ + CvssKey: harbor.NVDKey{ + NVD: harbor.CVSSDataVendor{ + ScoreV3: vulnerability.NVDData[0].CVSSV3.BaseScore, + VectorV3: "", + ScoreV2: vulnerability.NVDData[0].CVSSV2.BaseScore, + VectorV2: "", + }, + }, + }, } } diff --git a/pkg/scanner/base_adapter_test.go b/pkg/scanner/base_adapter_test.go index fe6acbf..0c6d03d 100644 --- a/pkg/scanner/base_adapter_test.go +++ b/pkg/scanner/base_adapter_test.go @@ -2,13 +2,6 @@ package scanner import ( "time" - - "github.com/golang/mock/gomock" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" - - "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure" - "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure/mocks" ) var ( @@ -16,6 +9,7 @@ var ( lastSyncFormatted = "2019-11-15T23:54:05Z" ) +/* var _ = Describe("BaseAdapter", func() { var ( controller *gomock.Controller @@ -89,3 +83,4 @@ func feeds() []secure.Feed { }, } } +*/ diff --git a/pkg/scanner/inline_adapter.go b/pkg/scanner/inline_adapter.go index 28d7362..c2510ae 100644 --- a/pkg/scanner/inline_adapter.go +++ b/pkg/scanner/inline_adapter.go @@ -6,7 +6,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "os" batchv1 "k8s.io/api/batch/v1" @@ -19,7 +18,7 @@ import ( "github.com/sysdiglabs/harbor-scanner-sysdig-secure/pkg/secure" ) -const jobDefaultTTL = 3600 +const jobDefaultTTL = 86400 var ErrInlineScanError = errors.New("error executing the inline scanner") @@ -54,7 +53,7 @@ type Logger interface { func NewInlineAdapter(secureClient secure.Client, k8sClient kubernetes.Interface, secureURL, namespace, secret, extraParams string, verifySSL bool, logger Logger) Adapter { return &inlineAdapter{ - BaseAdapter: BaseAdapter{secureClient: secureClient}, + BaseAdapter: BaseAdapter{secureClient: secureClient, logger: logger}, k8sClient: k8sClient, secureURL: secureURL, namespace: namespace, @@ -98,11 +97,10 @@ func (i *inlineAdapter) createJobFrom(req harbor.ScanRequest) error { func (i *inlineAdapter) buildJob(name string, req harbor.ScanRequest) *batchv1.Job { user, password := getUserAndPasswordFrom(req.Registry.Authorization) - userPassword := fmt.Sprintf("%s:%s", user, password) var envVars = []corev1.EnvVar{ { - Name: "SYSDIG_API_TOKEN", + Name: "SECURE_API_TOKEN", //Renamed for CLI scanner ValueFrom: &corev1.EnvVarSource{ SecretKeyRef: &corev1.SecretKeySelector{ LocalObjectReference: corev1.LocalObjectReference{ @@ -121,19 +119,29 @@ func (i *inlineAdapter) buildJob(name string, req harbor.ScanRequest) *batchv1.J envVars = appendLocalEnvVar(envVars, "no_proxy") envVars = appendLocalEnvVar(envVars, "NO_PROXY") - cmdString := fmt.Sprintf("/sysdig-inline-scan.sh --sysdig-url %s -d %s --registry-skip-tls --registry-auth-basic '%s' --format=JSON ", i.secureURL, req.Artifact.Digest, userPassword) - - // Add --sysdig-skip-tls only if insecure + //Pass in registry credential variables for CLI scanner to use the robot account that is created for us. + envVars = append(envVars, corev1.EnvVar{ + Name: "REGISTRY_USER", + Value: user, + ValueFrom: nil, + }, corev1.EnvVar{ + Name: "REGISTRY_PASSWORD", + Value: password, + ValueFrom: nil, + }) + envVars = appendLocalEnvVar(envVars, "NO_PROXY") + cmdString := fmt.Sprintf("/home/nonroot/sysdig-cli-scanner -a %s --skiptlsverify --output-json=output.json ", i.secureURL) + // Add skiptlsverify if insecure if !i.verifySSL { - cmdString += "--sysdig-skip-tls " + cmdString += "--skiptlsverify " } if i.extraParams != "" { cmdString += fmt.Sprintf("%s ", i.extraParams) } - cmdString += getImageFrom(req) - cmdString += "; RC=$?; if [[ $RC -eq 1 ]]; then (exit 0); else (exit $RC); fi" + cmdString += fmt.Sprintf("pull://%s@%s", getImageFrom(req), req.Artifact.Digest) + cmdString += "; RC=$?; if [ $RC -eq 1 ]; then exit 0; else exit $RC; fi" var backoffLimit int32 = 0 return &batchv1.Job{ ObjectMeta: metav1.ObjectMeta{ @@ -148,8 +156,8 @@ func (i *inlineAdapter) buildJob(name string, req harbor.ScanRequest) *batchv1.J Containers: []corev1.Container{ { Name: "scanner", - Image: "quay.io/sysdig/secure-inline-scan:2", - Command: []string{"/bin/sh"}, + Image: os.Getenv("CLI_SCANNER_IMAGE"), // Using my image but for production we would host it + Command: []string{"/busybox/sh"}, Args: []string{ "-c", cmdString, @@ -176,8 +184,7 @@ func appendLocalEnvVar(envVars []corev1.EnvVar, key string) []corev1.EnvVar { func jobName(repository string, shaDigest string) string { return fmt.Sprintf( - "inline-scan-%x", - md5.Sum([]byte(fmt.Sprintf("%s|%s", repository, shaDigest)))) + "cli-scanner-%x", md5.Sum([]byte(fmt.Sprintf("%s|%s", repository, shaDigest)))) } func (i *inlineAdapter) GetVulnerabilityReport(scanResponseID harbor.ScanRequestID) (harbor.VulnerabilityReport, error) { @@ -200,12 +207,12 @@ func (i *inlineAdapter) GetVulnerabilityReport(scanResponseID harbor.ScanRequest i.logger.Infof("Scan for %s/%s finished, collecting results from job %s", repository, shaDigest, name) podResults, err := i.collectPodResults(job) if err != nil { - i.logger.Errorf("Error collecting inline scanner results for %s/%s:\n%s", repository, shaDigest, err) + i.logger.Errorf("Error collecting inline scanner results for %s/%s:%s", repository, shaDigest, err) return harbor.VulnerabilityReport{}, ErrInlineScanError } if podResults.ExitCode != 0 && podResults.ExitCode != 1 { - i.logger.Errorf("Error executing inline scanner for %s/%s:\n%s", repository, shaDigest, string(podResults.LogBytes)) + i.logger.Errorf("Error executing inline scanner for %s/%s:%s", repository, shaDigest, string(podResults.LogBytes)) return harbor.VulnerabilityReport{}, ErrInlineScanError } @@ -256,9 +263,13 @@ func (i *inlineAdapter) collectPodResults(job *batchv1.Job) (*podResults, error) return nil, err } - defer podLogs.Close() + defer func(podLogs io.ReadCloser) { + if err := podLogs.Close(); err != nil { + return + } + }(podLogs) - logBytes, err := ioutil.ReadAll(podLogs) + logBytes, err := io.ReadAll(podLogs) if err != nil { return nil, err } diff --git a/pkg/scanner/inline_adapter_test.go b/pkg/scanner/inline_adapter_test.go index d601f32..f1a9db0 100644 --- a/pkg/scanner/inline_adapter_test.go +++ b/pkg/scanner/inline_adapter_test.go @@ -26,7 +26,7 @@ const ( secureURL = "https://secure.sysdig.com" namespace = "a-namespace" secret = "a-secret" - resourceName = "inline-scan-1e668f7cc4c27e915cfed9793808357e" + resourceName = "cli-scanner-1e668f7cc4c27e915cfed9793808357e" ) type envItem struct { @@ -115,7 +115,7 @@ var _ = Describe("InlineAdapter", func() { Expect(result.Spec.Template.Spec.Containers[0].Env).To(ContainElement(corev1.EnvVar{Name: "NO_PROXY", Value: "NO_PROXY-value"})) }) - It("adds --sysdig-skip-tls in insecure", func() { + It("adds --skiptlsverify in insecure", func() { adapter = NewInlineAdapter(client, k8sClient, secureURL, namespace, secret, "", false, log.StandardLogger()) @@ -123,7 +123,7 @@ var _ = Describe("InlineAdapter", func() { result, _ := k8sClient.BatchV1().Jobs(namespace).Get(context.Background(), resourceName, metav1.GetOptions{}) - Expect(result.Spec.Template.Spec.Containers[0].Args).To(ContainElement(ContainSubstring("--sysdig-skip-tls"))) + Expect(result.Spec.Template.Spec.Containers[0].Args).To(ContainElement(ContainSubstring("--skiptlsverify"))) }) It("adds extra parameters", func() { @@ -180,7 +180,7 @@ var _ = Describe("InlineAdapter", func() { It("queries Secure for the vulnerability list", func() { client.EXPECT().GetVulnerabilities(imageDigest).Return(secureVulnerabilityReport(), nil) client.EXPECT().GetImage(imageDigest).Return(scanResponse(), nil) - client.EXPECT().GetVulnerabilityDescription("CVE-2019-9948", "CVE-2019-9946").Return(vulnerabilitiesDescription(), nil) + //client.EXPECT().GetVulnerabilityDescription("CVE-2019-9948", "CVE-2019-9946").Return(vulnerabilitiesDescription(), nil) result, _ := adapter.GetVulnerabilityReport(scanID) @@ -202,7 +202,7 @@ var _ = Describe("InlineAdapter", func() { }) func job() *batchv1.Job { - jobTTL := int32(3600) + jobTTL := int32(86400) backoffLimit := int32(0) return &batchv1.Job{ ObjectMeta: metav1.ObjectMeta{ @@ -218,15 +218,15 @@ func job() *batchv1.Job { Containers: []corev1.Container{ { Name: "scanner", - Image: "quay.io/sysdig/secure-inline-scan:2", - Command: []string{"/bin/sh"}, + Image: os.Getenv("CLI_SCANNER_IMAGE"), + Command: []string{"/busybox/sh"}, Args: []string{ "-c", - "/sysdig-inline-scan.sh --sysdig-url https://secure.sysdig.com -d an image digest --registry-skip-tls --registry-auth-basic 'robot$9f6711d1-834d-11ea-867f-76103d08dca8:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1OTAwMDk5OTksImlhdCI6MTU4NzQxNzk5OSwiaXNzIjoiaGFyYm9yLXRva2VuLWRlZmF1bHRJc3N1ZXIiLCJpZCI6OSwicGlkIjoyLCJhY2Nlc3MiOlt7IlJlc291cmNlIjoiL3Byb2plY3QvMi9yZXBvc2l0b3J5IiwiQWN0aW9uIjoic2Nhbm5lci1wdWxsIiwiRWZmZWN0IjoiIn1dfQ.A3_aTzvxqSTvl26pQKa97ay15zRPC9K55NE0WbEyOsY3m0KFz-HuSDatncWLSYvOlcGVdysKlF3JXYWIjQ7tEI4V76WA9UMoi-fr9vEEdWLF5C1uWZJOz_S72sQ3G1BzsLp3HyWe9ZN5EBK9mhXzYNv2rONYrr0UJeBmNnMf2mU3sH71OO_G6JvRl5fwFSLSYx8nQs82PhfVhx50wRuWl_zyeCCDy_ytLzjRBvZwKuI9iVIxgM1pRfKG15NWMHfl0lcYnjm7f1_WFGKtVddkLOTICK0_FPtef1L8A16ozo_2NA32WD9PstdcTuD37XbZ6AFXUAZFoZLfCEW97mtIZBY2uYMwDQtc6Nme4o3Ya-MnBEIAs9Vi9d5a4pkf7Two-xjI-9ESgVz79YqL-_OnecQPNJ9yAFtJuxQ7StfsCIZx84hh5VdcZmW9jlezRHh4hTAjsNmrOBFTAjPyaXk98Se3Fj0Ev3bChod63og4frE7_fE7HnoBKVPHRAdBhJ2yrAiPymfij_kD4ke1Vb0AxmGGOwRP2K3TZNqEdKcq89lU6lHYV2UfrWchuF3u4ieNEC1BGu1_m_c55f0YZH1FAq6evCyA0JnFuXzO4cCxC7WHzXXRGSC9Lm3LF7cbaZAgFj5d34gbgUQmJst8nPlpW-KtwRL-pHC6mipunCBv9bU' --format=JSON harbor.sysdig-demo.zone/sysdig/agent:9.7.0; RC=$?; if [[ $RC -eq 1 ]]; then (exit 0); else (exit $RC); fi", + "/home/nonroot/sysdig-cli-scanner -a https://secure.sysdig.com --skiptlsverify --output-json=output.json pull://harbor.sysdig-demo.zone/sysdig/agent:9.7.0@an image digest; RC=$?; if [ $RC -eq 1 ]; then exit 0; else exit $RC; fi", }, Env: []corev1.EnvVar{ { - Name: "SYSDIG_API_TOKEN", + Name: "SECURE_API_TOKEN", ValueFrom: &corev1.EnvVarSource{ SecretKeyRef: &corev1.SecretKeySelector{ LocalObjectReference: corev1.LocalObjectReference{ @@ -236,6 +236,15 @@ func job() *batchv1.Job { }, }, }, + { + Name: "REGISTRY_USER", + Value: user, + ValueFrom: nil, + }, { + Name: "REGISTRY_PASSWORD", + Value: password, + ValueFrom: nil, + }, }, }, }, diff --git a/pkg/scanner/mocks/adapter.go b/pkg/scanner/mocks/adapter.go index 65edad1..bff15a8 100644 --- a/pkg/scanner/mocks/adapter.go +++ b/pkg/scanner/mocks/adapter.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: adapter.go +// Source: pkg/scanner/adapter.go // Package mocks is a generated GoMock package. package mocks diff --git a/pkg/scanner/scanner_suite_test.go b/pkg/scanner/scanner_suite_test.go index d3b79a6..28d7db3 100644 --- a/pkg/scanner/scanner_suite_test.go +++ b/pkg/scanner/scanner_suite_test.go @@ -1,6 +1,7 @@ package scanner import ( + "github.com/onsi/gomega/format" "testing" . "github.com/onsi/ginkgo" @@ -8,6 +9,7 @@ import ( ) func TestScanner(t *testing.T) { + format.MaxLength = 9999 RegisterFailHandler(Fail) RunSpecs(t, "Scanner Suite") } diff --git a/pkg/secure/client.go b/pkg/secure/client.go index 90a532b..8a14fb7 100644 --- a/pkg/secure/client.go +++ b/pkg/secure/client.go @@ -6,12 +6,15 @@ import ( "errors" "fmt" "io" + "math" "net/http" + "net/url" "strings" + "time" ) const ( - BackendVersion = "3.x" + BackendVersion = "SaaS" ) var ( @@ -22,18 +25,19 @@ var ( //go:generate mockgen -source=$GOFILE -destination=./mocks/${GOFILE} -package=mocks type Client interface { - AddImage(image string, force bool) (ScanResponse, error) - GetImage(shaDigest string) (ScanResponse, error) + //AddImage(image string, force bool) (ScanResponse, error) + GetImage(shaDigest string) (V2VulnerabilityReport, error) GetVulnerabilities(shaDigest string) (VulnerabilityReport, error) GetFeeds() ([]Feed, error) - AddRegistry(registry string, user string, password string) error - UpdateRegistry(registry string, user string, password string) error - DeleteRegistry(registry string) error + //AddRegistry(registry string, user string, password string) error + //UpdateRegistry(registry string, user string, password string) error + //DeleteRegistry(registry string) error - GetVulnerabilityDescription(vulnerabilityIDs ...string) (map[string]string, error) + //GetVulnerabilityDescription(vulnerabilityIDs ...string) (map[string]string, error) + //GetVulnerabilityDescriptionV2(resultId string, VulnId string) (*UrlVuln, error) } func NewClient(apiToken string, secureURL string, verifySSL bool) Client { @@ -57,6 +61,7 @@ type client struct { client http.Client } +/* func (s *client) AddImage(image string, force bool) (ScanResponse, error) { var emptyResult ScanResponse @@ -82,34 +87,49 @@ func (s *client) AddImage(image string, force bool) (ScanResponse, error) { } return result[0], nil } +*/ func (s *client) doRequest(method string, url string, payload []byte) (*http.Response, []byte, error) { var emptyBody []byte + baseDelay := 1 * time.Second - request, err := http.NewRequest( - method, - fmt.Sprintf("%s%s", s.secureURL, url), - strings.NewReader(string(payload))) - if err != nil { - return nil, emptyBody, err - } + for attempt := 0; attempt < 7; attempt++ { + request, err := http.NewRequest(method, fmt.Sprintf("%s%s", s.secureURL, url), strings.NewReader(string(payload))) + if err != nil { + return nil, emptyBody, err + } - request.Header.Add("Content-Type", "application/json") - request.Header.Add("Authorization", "Bearer "+s.apiToken) + request.Header.Add("Content-Type", "application/json") + request.Header.Add("Authorization", "Bearer "+s.apiToken) - response, err := s.client.Do(request) - if err != nil { - return nil, emptyBody, err - } - - body, err := io.ReadAll(response.Body) - defer response.Body.Close() + response, err := s.client.Do(request) + if err != nil { + return nil, emptyBody, err + } + if response.Body != nil { + body, err := io.ReadAll(response.Body) + closeErr := response.Body.Close() + if err != nil { + return nil, nil, err + } + if closeErr != nil { + return nil, nil, closeErr + } + + if response.StatusCode != http.StatusTooManyRequests { + return response, body, nil + } + } else { + return nil, emptyBody, fmt.Errorf("response body is nil") + } + fmt.Printf("doRequest:: Got '%d'\n", response.StatusCode) + backoff := time.Duration(int64(math.Pow(2, float64(attempt)))) * baseDelay - if err != nil { - return nil, emptyBody, err + time.Sleep(backoff) + fmt.Printf("doRequest sleeping for '%d'\n", backoff) } - - return response, body, nil + fmt.Printf("Out of retries, exiting...\n") + return nil, emptyBody, fmt.Errorf("too many requests, all retries failed") } func (s *client) checkErrorInSecureAPI(response *http.Response, body []byte) error { @@ -124,27 +144,115 @@ func (s *client) checkErrorInSecureAPI(response *http.Response, body []byte) err return errors.New(secureError.Message) } -type imageScanResultResponse struct { - Results []*imageScanResult `json:"results"` +type V2VulnerabilityScanResult struct { + Page V2PageDetail `json:"page"` + Data []V2ScanDataItem `json:"data"` } -type imageScanResult struct { - AnalysisStatus string `json:"analysisStatus"` - AnalyzedAt int `json:"analyzedAt"` - CreatedAt int `json:"createdAt"` - ImageDigest string `json:"imageDigest"` - ImageId string `json:"imageId"` - FullTag string `json:"fullTag"` +type V2PageDetail struct { + Total int `json:"total"` +} + +type V2ScanDataItem struct { + ResultID string `json:"resultId"` + ImageID string `json:"imageId"` + PolicyEvaluationsResult string `json:"policyEvaluationsResult"` +} + +type V1BetaScanResult struct { + Result V1BetaImageScanResult `json:"result"` +} + +type V1BetaImageScanResult struct { + Type string `json:"type"` + Metadata V1BetaMetadata `json:"metadata"` + ExploitsCount int `json:"exploitsCount"` + RiskSpotlightEnabled bool `json:"riskSpotlightEnabled"` + Packages []V1BetaPackage `json:"packages"` +} + +type V1BetaMetadata struct { + PullString string `json:"pullString"` + ImageID string `json:"imageId"` + Digest string `json:"digest"` + BaseOs string `json:"baseOs"` + Size int `json:"size"` + OS string `json:"os"` + Architecture string `json:"architecture"` + Labels map[string]string `json:"labels"` + LayersCount int `json:"layersCount"` + CreatedAt time.Time `json:"createdAt"` +} + +type V1BetaPackage struct { + Type string `json:"type"` + Name string `json:"name"` + Version string `json:"version"` + Path string `json:"path"` + SuggestedFix string `json:"suggestedFix"` + InUse bool `json:"inUse"` + Vulns []V1BetaVulns `json:"vulns"` +} + +type V1BetaVulns struct { + Name string `json:"name"` + Severity V1BetaSeverityInfo `json:"severity"` + CvssScore V1BetaCvss `json:"cvssScore"` + DisclosureDate string `json:"disclosureDate"` + Exploitable bool `json:"exploitable"` + PublishDateByVendor map[string]string `json:"publishDateByVendor"` + FixedInVersion string `json:"fixedInVersion,omitempty"` + SolutionDate string `json:"solutionDate,omitempty"` +} + +type V1BetaSeverityInfo struct { + Value string `json:"value"` + SourceName string `json:"sourceName"` +} + +type V1BetaCvss struct { + Value V1BetaCvssValue `json:"value"` + SourceName string `json:"sourceName"` +} + +type V1BetaCvssValue struct { + Version string `json:"version"` + Score float32 `json:"score"` + Vector string `json:"vector"` +} + +func (s *client) retrieveFullVulnerabilityReport(resultID string) (*V1BetaScanResult, error) { + var result V1BetaScanResult + response, body, err := s.doRequest(http.MethodGet, fmt.Sprintf("/secure/vulnerability/v1beta1/results/%s", resultID), nil) + if err != nil { + return nil, err + } + + if err := s.checkErrorInSecureAPI(response, body); err != nil { + return nil, err + } + + if err := json.Unmarshal(body, &result); err != nil { + return nil, err + } + + return &result, nil } func (s *client) GetVulnerabilities(shaDigest string) (VulnerabilityReport, error) { - var checkScanResultResponse imageScanResultResponse + var checkScanResultResponse V2VulnerabilityScanResult + var result VulnerabilityReport - response, body, err := s.doRequest( - http.MethodGet, - fmt.Sprintf("/api/scanning/v1/results?filter=%s&limit=%d", shaDigest, 1), - nil) + baseUrl := "/secure/vulnerability/v1beta1/pipeline-results" + queryParams := url.Values{} + queryParams.Set("filter", fmt.Sprintf("freeText in (\"%s\")", shaDigest)) + queryParams.Set("limit", "1") + + fullUrl := fmt.Sprintf("%s?%s", baseUrl, queryParams.Encode()) + + response, body, err := s.doRequest(http.MethodGet, fullUrl, nil) + if err != nil { return result, err } @@ -156,25 +264,73 @@ func (s *client) GetVulnerabilities(shaDigest string) (VulnerabilityReport, erro return result, err } - if len(checkScanResultResponse.Results) == 0 { - return result, ErrImageNotFound - } else if img := checkScanResultResponse.Results[0]; img.AnalysisStatus != "analyzed" { - return result, ErrVulnerabilityReportNotReady + statusMap := map[string]bool{ + "passed": true, + "failed": true, } - response, body, err = s.doRequest( - http.MethodGet, - fmt.Sprintf("/api/scanning/v1/images/%s/vulnDirect/all?includeVulnExceptions=%t", shaDigest, false), - nil) - if err != nil { - return result, err + if checkScanResultResponse.Page.Total == 0 { + return result, ErrImageNotFound + } else if _, img := statusMap[checkScanResultResponse.Data[0].PolicyEvaluationsResult]; !img { + return result, ErrVulnerabilityReportNotReady } - if err = s.checkErrorInSecureAPI(response, body); err != nil { - return result, err - } - if err = json.Unmarshal(body, &result); err != nil { - return result, err + resultId := checkScanResultResponse.Data[0].ResultID + var V1BetaScanResult *V1BetaScanResult + V1BetaScanResult, err = s.retrieveFullVulnerabilityReport(resultId) + // Convert data into the v1 legacy format as best as possible + result = VulnerabilityReport{ + ImageDigest: checkScanResultResponse.Data[0].ImageID, + VulnerabilityType: "all", + Vulnerabilities: []*Vulnerability{}, + } + + for _, packageRow := range V1BetaScanResult.Result.Packages { + for _, vulnRow := range packageRow.Vulns { + var cvssV2ValueFloat float32 + var cvssV3ValueFloat float32 + if strings.HasPrefix(vulnRow.CvssScore.Value.Version, "3") { + cvssV3ValueFloat = vulnRow.CvssScore.Value.Score + } else if strings.HasPrefix(vulnRow.CvssScore.Value.Version, "2") { + cvssV2ValueFloat = vulnRow.CvssScore.Value.Score + } + cvssV3 := CVSS{ + BaseScore: cvssV3ValueFloat, + ExploitabilityScore: 0, + ImpactScore: 0, + } + cvssV2 := CVSS{ + BaseScore: cvssV2ValueFloat, + ExploitabilityScore: 0, + ImpactScore: 0, + } + nvd := NVDData{ + ID: vulnRow.Name, + CVSSV2: &cvssV2, + CVSSV3: &cvssV3, + } + + vuln := Vulnerability{ + Feed: "vulnerabilities", + FeedGroup: "", + Fix: packageRow.SuggestedFix, + NVDData: []*NVDData{&nvd}, + Package: fmt.Sprintf("%s-%s", packageRow.Name, packageRow.Version), + PackageCPE: "None", + PackageName: packageRow.Name, + PackagePath: "", + PackageType: packageRow.Type, + PackageVersion: packageRow.Version, + ResultId: resultId, + Severity: vulnRow.Severity.Value, + URL: "", + Vuln: vulnRow.Name, + Exploitable: vulnRow.Exploitable, + DisclosureDate: vulnRow.DisclosureDate, + //VulnId: "", + } + result.Vulnerabilities = append(result.Vulnerabilities, &vuln) + } } return result, nil @@ -188,6 +344,7 @@ type registryRequest struct { Verify bool `json:"registry_verify"` } +/* func (s *client) AddRegistry(registry string, user string, password string) error { request := registryRequest{ Registry: registry, @@ -215,7 +372,9 @@ func (s *client) AddRegistry(registry string, user string, password string) erro return nil } +*/ +/* func (s *client) UpdateRegistry(registry string, user string, password string) error { request := registryRequest{ Registry: registry, @@ -238,7 +397,9 @@ func (s *client) UpdateRegistry(registry string, user string, password string) e } return nil } +*/ +/* func (s *client) DeleteRegistry(registry string) error { response, body, err := s.doRequest( http.MethodDelete, @@ -254,18 +415,43 @@ func (s *client) DeleteRegistry(registry string) error { return nil } +*/ -func (s *client) GetImage(shaDigest string) (ScanResponse, error) { - var emptyResult ScanResponse +type V2PageDetails struct { + Returned int `json:"returned"` + Matched int `json:"matched"` + Next string `json:"next"` +} - response, body, err := s.doRequest( - http.MethodGet, - fmt.Sprintf("/api/scanning/v1/anchore/images/%s", shaDigest), - nil) +type V2VulnerabilityData struct { + //ID string `json:"id"` + CreatedAt time.Time `json:"createdAt"` + //ImageID string `json:"imageId"` + MainAssetName string `json:"mainAssetName"` + //VulnsBySev []int `json:"vulnsBySev"` + //ExploitCount int `json:"exploitCount"` + //PolicyEvaluationsResult string `json:"policyEvaluationsResult"` + //HasAcceptedRisk bool `json:"hasAcceptedRisk"` +} + +type V2VulnerabilityReport struct { + //Page V2PageDetails `json:"page"` + Data []V2VulnerabilityData `json:"data"` +} + +func (s *client) GetImage(shaDigest string) (V2VulnerabilityReport, error) { + var emptyResult V2VulnerabilityReport + + baseUrl := "/secure/vulnerability/v1beta1/pipeline-results" + queryParams := url.Values{} + queryParams.Set("limit", "1") + queryParams.Set("filter", fmt.Sprintf("freeText in (\"%s\")", shaDigest)) + fullUrl := fmt.Sprintf("%s?%s", baseUrl, queryParams.Encode()) + + response, body, err := s.doRequest(http.MethodGet, fullUrl, nil) if err != nil { return emptyResult, err } - if err = s.checkErrorInSecureAPI(response, body); err != nil { if err.Error() == "image not found in DB" { return emptyResult, ErrImageNotFound @@ -273,12 +459,12 @@ func (s *client) GetImage(shaDigest string) (ScanResponse, error) { return emptyResult, err } - var result []ScanResponse + var result V2VulnerabilityReport if err = json.Unmarshal(body, &result); err != nil { return emptyResult, err } - return result[0], nil + return result, nil } func (s *client) GetFeeds() ([]Feed, error) { @@ -312,6 +498,56 @@ type vulnerabilityResponse struct { Vulnerabilities []vulnerabilityDescription `json:"vulnerabilities"` } +type VulnerabilityDetail struct { + Vuln VulnDetail `json:"vuln"` +} + +type VulnDetail struct { + CvssScore CvssScoreDetail `json:"cvssScore"` + Description string `json:"description"` +} + +type CvssScoreDetail struct { + Reporter URLDetail `json:"reporter"` +} + +type URLDetail struct { + URL string `json:"url"` +} + +type UrlVuln struct { + URL string + Description string +} + +/* +func (s *client) GetVulnerabilityDescriptionV2(resultId string, VulnId string) (*UrlVuln, error) { + result := UrlVuln{} + + response, body, err := s.doRequest( + http.MethodGet, + fmt.Sprintf("/api/scanning/scanresults/v2/results/%s/vulnPkgs/%s", resultId, VulnId), + nil) + if err != nil { + return &result, err + } + + if err = s.checkErrorInSecureAPI(response, body); err != nil { + return &result, err + } + + var res VulnerabilityDetail + if err = json.Unmarshal(body, &res); err != nil { + return &result, err + } + + result.Description = res.Vuln.Description + result.URL = res.Vuln.CvssScore.Reporter.URL + + return &result, nil +} +*/ +/* func (s *client) GetVulnerabilityDescription(vulnerabilitiesIDs ...string) (map[string]string, error) { result := make(map[string]string) @@ -338,3 +574,4 @@ func (s *client) GetVulnerabilityDescription(vulnerabilitiesIDs ...string) (map[ return result, nil } +*/ diff --git a/pkg/secure/client_test.go b/pkg/secure/client_test.go index 96ce344..8d74318 100644 --- a/pkg/secure/client_test.go +++ b/pkg/secure/client_test.go @@ -22,29 +22,29 @@ var _ = Describe("Sysdig Secure Client", func() { BeforeEach(func() { client = secure.NewClient(os.Getenv("SECURE_API_TOKEN"), os.Getenv("SECURE_URL"), true) }) + /* + Context("when adding an image to scanning queue", func() { + It("adds image to scanning queue", func() { + response, _ := client.AddImage("quay.io/sysdig/agent:10.6.0", false) + + Expect(response).NotTo(Equal(secure.ScanResponse{})) + Expect(response.ImageContent).NotTo(BeNil()) + Expect(response.ImageContent.Metadata).NotTo(BeNil()) + Expect(len(response.ImageDetail)).To(BeNumerically(">", 0)) + }) - Context("when adding an image to scanning queue", func() { - It("adds image to scanning queue", func() { - response, _ := client.AddImage("quay.io/sysdig/agent:10.6.0", false) - - Expect(response).NotTo(Equal(secure.ScanResponse{})) - Expect(response.ImageContent).NotTo(BeNil()) - Expect(response.ImageContent.Metadata).NotTo(BeNil()) - Expect(len(response.ImageDetail)).To(BeNumerically(">", 0)) - }) + Context("when an error happens", func() { + It("returns the error", func() { + _, err := client.AddImage("sysdiglabs/non-existent", false) - Context("when an error happens", func() { - It("returns the error", func() { - _, err := client.AddImage("sysdiglabs/non-existent", false) - - Expect(err).To(MatchError("cannot fetch image digest/manifest from registry")) + Expect(err).To(MatchError("cannot fetch image digest/manifest from registry")) + }) }) }) - }) - + */ Context("when retrieving vulnerabilities for an image", func() { It("gets the report for a SHA", func() { - response, _ := client.GetVulnerabilities("sha256:1e331e745ddf2b295d93f04c1477489fce34bf9ac26f4ab964f14e9dbe4e2dc4") + response, _ := client.GetVulnerabilities("sha256:a97a153152fcd6410bdf4fb64f5622ecf97a753f07dcc89dab14509d059736cf") Expect(response).NotTo(Equal(secure.VulnerabilityReport{})) Expect(len(response.Vulnerabilities)).To(BeNumerically(">", 0)) @@ -56,87 +56,91 @@ var _ = Describe("Sysdig Secure Client", func() { Expect(err).To(MatchError(secure.ErrImageNotFound)) }) + /* + It("returns a ReportNotReadyErr if the image is being analyzed", func() { + response, _ := client.AddImage("quay.io/sysdig/agent:10.7.0", true) - It("returns a ReportNotReadyErr if the image is being analyzed", func() { - response, _ := client.AddImage("quay.io/sysdig/agent:10.7.0", true) + _, err := client.GetVulnerabilities(response.ImageDigest) - _, err := client.GetVulnerabilities(response.ImageDigest) - - Expect(err).To(MatchError(secure.ErrVulnerabilityReportNotReady)) - }) + Expect(err).To(MatchError(secure.ErrVulnerabilityReportNotReady)) + }) + }) + */ }) - }) + /* + Context("when adding registry credentials", func() { + It("registers the credentials in Secure", func() { + err := client.AddRegistry("foo.sysdig-demo.zone", user, password) + defer client.DeleteRegistry("foo.sysdig-demo.zone") - Context("when adding registry credentials", func() { - It("registers the credentials in Secure", func() { - err := client.AddRegistry("foo.sysdig-demo.zone", user, password) - defer client.DeleteRegistry("foo.sysdig-demo.zone") + Expect(err).To(Succeed()) + }) - Expect(err).To(Succeed()) - }) + Context("when adding twice a registry", func() { + It("returns an ErrRegistryAlreadyExists", func() { + client.AddRegistry("foo.sysdig-demo.zone", user, password) + defer client.DeleteRegistry("foo.sysdig-demo.zone") - Context("when adding twice a registry", func() { - It("returns an ErrRegistryAlreadyExists", func() { - client.AddRegistry("foo.sysdig-demo.zone", user, password) - defer client.DeleteRegistry("foo.sysdig-demo.zone") + err := client.AddRegistry("foo.sysdig-demo.zone", user, password) - err := client.AddRegistry("foo.sysdig-demo.zone", user, password) - - Expect(err).To(MatchError(secure.ErrRegistryAlreadyExists)) + Expect(err).To(MatchError(secure.ErrRegistryAlreadyExists)) + }) + }) }) - }) - }) + Context("when updating registry credentials", func() { + It("updates an existing registry", func() { + client.AddRegistry("foo.sysdig-demo.zone", user, password) + defer client.DeleteRegistry("foo.sysdig-demo.zone") - Context("when updating registry credentials", func() { - It("updates an existing registry", func() { - client.AddRegistry("foo.sysdig-demo.zone", user, password) - defer client.DeleteRegistry("foo.sysdig-demo.zone") + err := client.UpdateRegistry("foo.sysdig-demo.zone", "otherUser", "otherPassword") - err := client.UpdateRegistry("foo.sysdig-demo.zone", "otherUser", "otherPassword") + Expect(err).To(Succeed()) + }) - Expect(err).To(Succeed()) - }) - - Context("when registry does not exist", func() { - It("returns the error", func() { - err := client.UpdateRegistry("foo.sysdig-demo.zone", user, password) + Context("when registry does not exist", func() { + It("returns the error", func() { + err := client.UpdateRegistry("foo.sysdig-demo.zone", user, password) - Expect(err).To(MatchError(HavePrefix("unknown error (status 404): "))) + Expect(err).To(MatchError(HavePrefix("unknown error (status 404): "))) + }) + }) }) - }) - }) - - Context("when getting an image information", func() { - It("returns the image information", func() { - image, _ := client.GetImage("sha256:1e331e745ddf2b295d93f04c1477489fce34bf9ac26f4ab964f14e9dbe4e2dc4") - - Expect(image).NotTo(Equal(secure.ScanResponse{})) - }) + */ - Context("when image does not exist", func() { - It("returns ErrImageNotFound", func() { - _, err := client.GetImage("sha256:non-existent") + Context("when getting an image information", func() { + It("returns the image information", func() { + image, _ := client.GetImage("sha256:a97a153152fcd6410bdf4fb64f5622ecf97a753f07dcc89dab14509d059736cf") - Expect(err).To(MatchError(secure.ErrImageNotFound)) + Expect(image).NotTo(Equal(secure.V2VulnerabilityData{})) }) + /* + Context("when image does not exist", func() { + It("returns ErrImageNotFound", func() { + _, err := client.GetImage("sha256:non-existent") + + Expect(err).To(MatchError(secure.ErrImageNotFound)) + }) + */ }) - }) - Context("when getting the feeds", func() { - It("returns the feed list", func() { - image, _ := client.GetFeeds() + }) + /* + Context("when getting the feeds", func() { + It("returns the feed list", func() { + image, _ := client.GetFeeds() - Expect(image).NotTo(Equal([]secure.Feed{})) + Expect(image).NotTo(Equal([]secure.Feed{})) + }) }) - }) - Context("when retrieving vulnerabilities description", func() { - It("returns a map with the id as key", func() { - descriptions, _ := client.GetVulnerabilityDescription("CVE-2016-2779", "VULNDB-229217") + Context("when retrieving vulnerabilities description", func() { + It("returns a map with the id as key", func() { + descriptions, _ := client.GetVulnerabilityDescription("CVE-2016-2779", "VULNDB-229217") - Expect(descriptions).To(HaveKeyWithValue("CVE-2016-2779", "runuser in util-linux allows local users to escape to the parent session via a crafted TIOCSTI ioctl call, which pushes characters to the terminal's input buffer.")) + Expect(descriptions).To(HaveKeyWithValue("CVE-2016-2779", "runuser in util-linux allows local users to escape to the parent session via a crafted TIOCSTI ioctl call, which pushes characters to the terminal's input buffer.")) - Expect(descriptions).To(HaveKeyWithValue("VULNDB-229217", "pip PyPI (Python Packaging Index) contains a flaw that allows traversing outside of a restricted path. The issue is due to the PipXmlrpcTransport._download_http_url() function in _internal/download.py not properly sanitizing input, specifically path traversal style attacks (e.g. '../') supplied via the HTTP Content-Disposition header when downloading a remote package. With a specially crafted server, a remote attacker can write to arbitrary files.")) + Expect(descriptions).To(HaveKeyWithValue("VULNDB-229217", "pip PyPI (Python Packaging Index) contains a flaw that allows traversing outside of a restricted path. The issue is due to the PipXmlrpcTransport._download_http_url() function in _internal/download.py not properly sanitizing input, specifically path traversal style attacks (e.g. '../') supplied via the HTTP Content-Disposition header when downloading a remote package. With a specially crafted server, a remote attacker can write to arbitrary files.")) + }) }) - }) + */ }) diff --git a/pkg/secure/mocks/client.go b/pkg/secure/mocks/client.go index 2b9f4b8..26565a2 100644 --- a/pkg/secure/mocks/client.go +++ b/pkg/secure/mocks/client.go @@ -93,10 +93,10 @@ func (mr *MockClientMockRecorder) GetFeeds() *gomock.Call { } // GetImage mocks base method. -func (m *MockClient) GetImage(shaDigest string) (secure.ScanResponse, error) { +func (m *MockClient) GetImage(shaDigest string) (secure.V2VulnerabilityReport, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "GetImage", shaDigest) - ret0, _ := ret[0].(secure.ScanResponse) + ret0, _ := ret[0].(secure.V2VulnerabilityReport) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -141,6 +141,21 @@ func (mr *MockClientMockRecorder) GetVulnerabilityDescription(vulnerabilityIDs . return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVulnerabilityDescription", reflect.TypeOf((*MockClient)(nil).GetVulnerabilityDescription), vulnerabilityIDs...) } +// GetVulnerabilityDescriptionV2 mocks base method. +func (m *MockClient) GetVulnerabilityDescriptionV2(resultId, VulnId string) (*secure.UrlVuln, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetVulnerabilityDescriptionV2", resultId, VulnId) + ret0, _ := ret[0].(*secure.UrlVuln) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetVulnerabilityDescriptionV2 indicates an expected call of GetVulnerabilityDescriptionV2. +func (mr *MockClientMockRecorder) GetVulnerabilityDescriptionV2(resultId, VulnId interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVulnerabilityDescriptionV2", reflect.TypeOf((*MockClient)(nil).GetVulnerabilityDescriptionV2), resultId, VulnId) +} + // UpdateRegistry mocks base method. func (m *MockClient) UpdateRegistry(registry, user, password string) error { m.ctrl.T.Helper() diff --git a/pkg/secure/model.go b/pkg/secure/model.go index 0b4af99..29bc919 100644 --- a/pkg/secure/model.go +++ b/pkg/secure/model.go @@ -56,6 +56,7 @@ type VulnerabilityReport struct { } type Vulnerability struct { + Exploitable bool `json:"exploitable"` Feed string `json:"feed"` FeedGroup string `json:"feed_group"` Fix string `json:"fix"` @@ -66,9 +67,12 @@ type Vulnerability struct { PackagePath string `json:"package_path"` PackageType string `json:"package_type"` PackageVersion string `json:"package_version"` + ResultId string // Not serialised (Notice the S not Z, we use 'proper' english :) Severity string `json:"severity"` URL string `json:"url"` Vuln string `json:"vuln"` + DisclosureDate string `json:"disclosureDate"` + //VulnId string // Not serialised either, used for description querying } type NVDData struct {