From d5847e2d2b68a1eb41d43be170cd4ddff9003cff Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:06:17 +0100 Subject: [PATCH] [feature] Application creation + management via API + settings panel (#3906) * [feature] Application creation + management via API + settings panel * fix docs links * add errnorows test * use known application as shorter * add comment about side effects --- docs/api/authentication.md | 22 +- docs/api/swagger.yaml | 187 ++++++++++++++- .../user-settings-applications-details.png | Bin 0 -> 250896 bytes .../public/user-settings-applications-new.png | Bin 0 -> 164598 bytes docs/swagger.go | 118 ++++++--- docs/user_guide/settings.md | 67 ++++++ internal/api/client/apps/appcreate.go | 73 ++++-- internal/api/client/apps/appdelete.go | 98 ++++++++ internal/api/client/apps/appget.go | 98 ++++++++ internal/api/client/apps/apps.go | 10 +- internal/api/client/apps/appsget.go | 146 +++++++++++ internal/api/client/tokens/tokensget.go | 6 +- internal/api/model/application.go | 3 + internal/api/util/scopes.go | 3 + internal/db/application.go | 11 +- internal/db/bundb/admin.go | 11 + internal/db/bundb/application.go | 154 ++++++++++-- internal/db/bundb/application_test.go | 32 ++- .../20250310144102_application_management.go | 105 ++++++++ internal/db/bundb/status.go | 3 +- internal/gtsmodel/token.go | 2 +- internal/processing/account/delete.go | 32 ++- .../processing/application/application.go | 38 +++ .../{app.go => application/create.go} | 48 +++- internal/processing/application/delete.go | 70 ++++++ internal/processing/application/get.go | 104 ++++++++ internal/processing/processor.go | 7 + internal/typeutils/internaltofrontend.go | 24 +- internal/typeutils/internaltofrontend_test.go | 150 ++++++++++++ .../components/authorization/index.tsx | 12 +- .../components/authorization/login.tsx | 2 +- .../settings/components/highlightedcode.tsx | 44 ++++ web/source/settings/components/status.tsx | 2 +- .../settings/components/user-logout-card.tsx | 2 +- web/source/settings/index.tsx | 2 +- .../lib/query/admin/custom-emoji/index.ts | 6 +- .../query/admin/domain-permissions/export.ts | 2 +- web/source/settings/lib/query/gts-api.ts | 3 +- .../lib/query/{oauth => login}/index.ts | 39 ++- .../settings/lib/query/user/applications.ts | 146 +++++++++++ web/source/settings/lib/types/application.ts | 71 ++++++ web/source/settings/lib/types/oauth.ts | 49 ++++ web/source/settings/lib/types/scopes.ts | 139 +++++++++++ .../settings/lib/util/formvalidators.ts | 71 +++++- web/source/settings/lib/util/index.ts | 2 +- .../settings/redux/{oauth.ts => login.ts} | 52 ++-- web/source/settings/redux/store.ts | 10 +- web/source/settings/style.css | 56 +++++ .../views/admin/debug/apurl/index.tsx | 29 +-- .../views/user/applications/callback.tsx | 121 ++++++++++ .../views/user/applications/common.tsx | 85 +++++++ .../views/user/applications/detail.tsx | 226 ++++++++++++++++++ .../views/user/applications/index.tsx | 44 ++++ .../settings/views/user/applications/new.tsx | 150 ++++++++++++ .../views/user/applications/search.tsx | 190 +++++++++++++++ web/source/settings/views/user/menu.tsx | 17 ++ web/source/settings/views/user/migration.tsx | 4 +- .../settings/views/user/posts/index.tsx | 2 +- web/source/settings/views/user/profile.tsx | 2 +- web/source/settings/views/user/router.tsx | 59 +++-- web/source/yarn.lock | 27 ++- 61 files changed, 3036 insertions(+), 252 deletions(-) create mode 100644 docs/overrides/public/user-settings-applications-details.png create mode 100644 docs/overrides/public/user-settings-applications-new.png create mode 100644 internal/api/client/apps/appdelete.go create mode 100644 internal/api/client/apps/appget.go create mode 100644 internal/api/client/apps/appsget.go create mode 100644 internal/db/bundb/migrations/20250310144102_application_management.go create mode 100644 internal/processing/application/application.go rename internal/processing/{app.go => application/create.go} (68%) create mode 100644 internal/processing/application/delete.go create mode 100644 internal/processing/application/get.go create mode 100644 web/source/settings/components/highlightedcode.tsx rename web/source/settings/lib/query/{oauth => login}/index.ts (87%) create mode 100644 web/source/settings/lib/query/user/applications.ts create mode 100644 web/source/settings/lib/types/application.ts create mode 100644 web/source/settings/lib/types/oauth.ts create mode 100644 web/source/settings/lib/types/scopes.ts rename web/source/settings/redux/{oauth.ts => login.ts} (59%) create mode 100644 web/source/settings/views/user/applications/callback.tsx create mode 100644 web/source/settings/views/user/applications/common.tsx create mode 100644 web/source/settings/views/user/applications/detail.tsx create mode 100644 web/source/settings/views/user/applications/index.tsx create mode 100644 web/source/settings/views/user/applications/new.tsx create mode 100644 web/source/settings/views/user/applications/search.tsx diff --git a/docs/api/authentication.md b/docs/api/authentication.md index b9fccf98b..2fb5bea5f 100644 --- a/docs/api/authentication.md +++ b/docs/api/authentication.md @@ -2,6 +2,9 @@ Using the client API requires authentication. This page documents the general flow for retrieving an authentication token with examples for doing this on the CLI using `curl`. +!!! tip + If you want to get an API access token via the settings panel instead, without having to use the command line, see the [Application documentation](https://docs.gotosocial.org/en/latest/user_guide/settings/#applications). + ## Create a new application We need to register a new application, which we can then use to request an OAuth token. This is done by making a `POST` request to the `/api/v1/apps` endpoint. Replace `your_app_name` in the command below with the name you want to use for your application: @@ -19,18 +22,15 @@ curl \ The string `urn:ietf:wg:oauth:2.0:oob` is an indication of what is known as out-of-band authentication - a technique used in multi-factor authentication to reduce the number of ways that a bad actor can intrude on the authentication process. In this instance, it allows us to view and manually copy the tokens created to use further in this process. -Note that `scopes` can be any space-separated combination of: - -- `read` -- `write` -- `admin` +!!! tip "Scopes" + It is always good practice to grant your application the lowest tier permissions it needs to do its job. e.g. If your application won't be making posts, use `scope=read` or even a subscope of that. + + In this spirit, "read" is used in the example above, which means that the application will be restricted to only being able to do "read" actions. + + For a list of available scopes, see [the swagger docs](https://docs.gotosocial.org/en/latest/api/swagger/). !!! warning - GoToSocial does not currently support scoped authorization tokens, so any token you obtain in this process will be able to perform all actions on your behalf, including admin actions if your account has admin permissions. Nevertheless, it is always good practice to grant your application the lowest tier permissions it needs to do its job. e.g. If your application won't be making posts, use scope=read. - - In this spirit, "read" is used in the example above, which means that in the future when scoped tokens are supported, the application will be restricted to only being able to do "read" actions. - - You can read more about additional planned OAuth security features [right here](https://github.com/superseriousbusiness/gotosocial/issues/2232). + GoToSocial did not support scoped authorization tokens before version 0.19.0, so if you are using a version of GoToSocial below that, then any token you obtain in this process will be able to perform all actions on your behalf, including admin actions if your account has admin permissions. A successful call returns a response with a `client_id` and `client_secret`, which we are going need to use in the rest of the process. It looks something like this: @@ -126,7 +126,6 @@ See this example: ```bash curl \ - -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ 'https://example.org/api/v1/accounts/verify_credentials' ``` @@ -140,7 +139,6 @@ For example, you can issue another `GET` request to the API using the same acces ```bash curl \ - -H 'Content-Type: application/json' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ 'https://example.org/api/v1/notifications' ``` diff --git a/docs/api/swagger.yaml b/docs/api/swagger.yaml index 6d9ca2f95..ce415784a 100644 --- a/docs/api/swagger.yaml +++ b/docs/api/swagger.yaml @@ -828,6 +828,11 @@ definitions: description: Client secret associated with this application. type: string x-go-name: ClientSecret + created_at: + description: When the application was created. (ISO 8601 Datetime) + example: "2021-07-30T09:20:25+00:00" + type: string + x-go-name: CreatedAt id: description: The ID of the application. example: 01FBVD42CQ3ZEEVMW180SBX03B @@ -3649,6 +3654,54 @@ info: contact: email: admin@gotosocial.org name: GoToSocial Authors + description: |- + This document describes the GoToSocial HTTP API. + + For information on how to authenticate with the API using an OAuth access token, see the documentation here: https://docs.gotosocial.org/en/latest/api/authentication/. + + Available scopes are: + + admin: grants admin access to everything + admin:read: grants admin read access to everything + admin:read:accounts: grants admin read access to accounts + admin:read:domain_allows: grants admin read access to domain_allows + admin:read:domain_blocks: grants admin read access to domain_blocks + admin:read:reports: grants admin read access to reports + admin:write: grants admin write access to everything + admin:write:accounts: grants write read access to accounts + admin:write:domain_allows: grants admin write access to domain_allows + admin:write:domain_blocks: grants write read access to domain_blocks + admin:write:reports: grants admin write access to reports + profile: grants read access to verify_credentials + push: grants read/write access to push + read: grants read access to everything + read:accounts: grants read access to accounts + read:applications: grants read access to user-managed applications + read:blocks: grants read access to blocks + read:bookmarks: grants read access to bookmarks + read:favourites: grants read access to accounts + read:filters: grants read access to filters + read:follows: grants read access to follows + read:lists: grants read access to lists + read:mutes: grants read access to mutes + read:notifications: grants read access to notifications + read:search: grants read access to search + read:statuses: grants read access to statuses + write: grants write access to everything + write:accounts: grants write access to accounts + write:applications: grants write access to user-managed applications + write:blocks: grants write access to blocks + write:bookmarks: grants write access to bookmarks + write:conversations: grants write access to conversations + write:favourites: grants write access to favourites + write:filters: grants write access to filters + write:follows: grants write access to follows + write:lists: grants write access to lists + write:media: grants write access to media + write:mutes: grants write access to mutes + write:notifications: grants write access to notifications + write:reports: grants write access to reports + write:statuses: grants write access to statuses license: name: AGPL3 url: https://www.gnu.org/licenses/agpl-3.0.en.html @@ -7484,6 +7537,63 @@ paths: tags: - announcements /api/v1/apps: + get: + description: |- + The next and previous queries can be parsed from the returned Link header. + + Example: + + ``` + ; rel="next", ; rel="prev" + ```` + operationId: appsGet + parameters: + - description: Return only items *OLDER* than the given max item ID. The item with the specified ID will not be included in the response. + in: query + name: max_id + type: string + - description: Return only items *newer* than the given since item ID. The item with the specified ID will not be included in the response. + in: query + name: since_id + type: string + - description: Return only items *immediately newer* than the given since item ID. The item with the specified ID will not be included in the response. + in: query + name: min_id + type: string + - default: 20 + description: Number of items to return. + in: query + name: limit + type: integer + produces: + - application/json + responses: + "200": + description: "" + headers: + Link: + description: Links to the next and previous queries. + type: string + schema: + items: + $ref: '#/definitions/application' + type: array + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - read:applications + summary: Get an array of applications that are managed by the requester. + tags: + - apps post: consumes: - application/json @@ -7493,8 +7603,10 @@ paths: The registered application can be used to obtain an application token. This can then be used to register a new account, or (through user auth) obtain an access token. - The parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. - The parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. + If the application was registered with a Bearer token passed in the Authorization header, the created application will be managed by the authenticated user (must have scope write:applications). + + Parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. + Parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. operationId: appCreate parameters: - description: The name of the application. @@ -7548,6 +7660,69 @@ paths: summary: Register a new application on this instance. tags: - apps + /api/v1/apps/{id}: + delete: + operationId: appDelete + parameters: + - description: The id of the application to delete. + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: The deleted application. + schema: + $ref: '#/definitions/application' + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - write:applications + summary: Delete a single application managed by the requester. + tags: + - apps + get: + operationId: appGet + parameters: + - description: The id of the requested application. + in: path + name: id + required: true + type: string + produces: + - application/json + responses: + "200": + description: The requested application. + schema: + $ref: '#/definitions/application' + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - read:applications + summary: Get a single application managed by the requester. + tags: + - apps /api/v1/blocks: get: description: |- @@ -11705,15 +11880,15 @@ paths: ```` operationId: tokensInfoGet parameters: - - description: Return only items *OLDER* than the given max status ID. The item with the specified ID will not be included in the response. + - description: Return only items *OLDER* than the given max item ID. The item with the specified ID will not be included in the response. in: query name: max_id type: string - - description: Return only items *newer* than the given since status ID. The item with the specified ID will not be included in the response. + - description: Return only items *newer* than the given since item ID. The item with the specified ID will not be included in the response. in: query name: since_id type: string - - description: Return only items *immediately newer* than the given since status ID. The item with the specified ID will not be included in the response. + - description: Return only items *immediately newer* than the given since item ID. The item with the specified ID will not be included in the response. in: query name: min_id type: string @@ -12927,6 +13102,7 @@ securityDefinitions: push: grants read/write access to push read: grants read access to everything read:accounts: grants read access to accounts + read:applications: grants read access to user-managed applications read:blocks: grants read access to blocks read:bookmarks: grants read access to bookmarks read:favourites: grants read access to accounts @@ -12939,6 +13115,7 @@ securityDefinitions: read:statuses: grants read access to statuses write: grants write access to everything write:accounts: grants write access to accounts + write:applications: grants write access to user-managed applications write:blocks: grants write access to blocks write:bookmarks: grants write access to bookmarks write:conversations: grants write access to conversations diff --git a/docs/overrides/public/user-settings-applications-details.png b/docs/overrides/public/user-settings-applications-details.png new file mode 100644 index 0000000000000000000000000000000000000000..a9143333160dfc13e601458afcc4ae5af650a450 GIT binary patch literal 250896 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≪c44GI{SV~C^MfO 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

WuYa)m}0hFas zYl3`spJ40NQ@qkjb@l*UCRn&5yLW#eKH+hX?`eHAJdNeFFpF!BL14qbfqc{H3=I&na z^fNk3wo|R8H6kph^AT9-j)^3mZZ_J3XUTP1*&NksPH7JTR-KQd^DFy-Wd&QrDGlk;-*t_|W#Zf(>Sc@ipMGAt04fjnD3#IDMU)EM??)!<}Ei<+S~YQ z8U{DUj=aT|Obzardb< zirjF@oA0`?e)D;u7T1jhEixCsK5hOB3(MhaNz&h1#y=S8-pjZ1drow4oLKWo7CLyg zo<`rJJheArqtp0$%*z5Qt5~Q~zaD<&0h3DQw}T_oCu{Kqa_; zvsX8`y^(`1Vl}QgG>jkT)t`5vgSa=(G>KJsvK<$ER0N(rcIH?a^HRaCW!HuscM8&e zX14!4;bH&%XC|wft_#e|C0trmL8af>EUK%SU8gtZYFW<3T3aY|VH_kEfF5v8QK)(_ z{tI%h`Ee~=*1!Xa?8iC0yg1j@N*gE6ss&=^)82{Tcaio@gDcBQ&BQ2=BqT^&uw}`` z=&^#z<&F3Hy%CuZ<)2Zptx~qlCv3P$r`u1+X^D4pZoTU+HhZ?=Sw13q0@K7x_m^{F{ciVs0mO5Q?U#G+W0*l8yEX3+`2( z??#lm&q?g(<__g5kFp8490(EHiP~>%kxx6tcF%k)Y(O0mIh6{zM-GnX0>TK3A>*yg zx1&(pRc}_WVJdQ_sT_`d?w-UU#x>UL=o6sci5-78TR4m!*oGHCMoA@u*-~r3fo2bp z?f5q0YR_IR$IaV`ml?{je8$xth2SK?Xj_`%2H%f>5U8(aYb9uIHk?$kbkj|tI`aV) zc(Po#kI^1Igo`|<42hXCquL@JgeyVY!N8Y~n;dFoOEiWM$4!GITW?iMYb+1vqS0~@2wBuHU+KO)s!Ev&-A zDHzWc0p9j4wV{o0>w78LmCOgH=k6{wg1qYE=IbT7fw+G)l=+v%Z&hDLLu(||S@_A{ z>-OeUV~=wz=TONhN0JBX?%g;FlFo!_S3#(c9j=r^Y501iF}aGF?fXf4w8*E(O|08a z5-$pQ3q!$|eBkxs$3wdcst68*na1EeImP%m%-i8^^d2of%bd8V^cmzAO~|X_JzP;i zZ|b<#Szmd8zCOA$>RpLTZe9#tG&ipjgp_O^%bsK9zM0XOJ-I?qS@%s7+l_TUE0+sQ zsH)*)U`!;>rv=`5^p^sDPhq_m1B`@GM)(x~%>i*tnjD*CA2K~NFg28CB#5yk+J=4? z+Z*i1tyMRBm6sHYuCWLMwbxq3dV;?i%#YogzHHIf`8blEx4mK-;J{rSl^nx|N%(TDa-RlyLF9%tca>J5q{yaF;hMDGO zxKe3P{d z8Z+A{-6<2v8*q+^iK0M7TCvC7Q2J9eFW%b*!fHznx$OSeInesDL5IYM0TfJ7KZ2s+H!4m)5{<*yvec) zg7DRM`B5v#WT+68;@u+J6UOd!87|q=U5&7gbjtNM1}69g-phCMG;*EC?!@ovwW6DG za?nW61v&@}2KKiTqZ>GHEr%lNB8CYwEc|%&v5IxR#ID%r*}b#caZN1ujyczVNnaY0 zS#+Qz0DysQEEU+x0k!vss(3r)bn>^xeGwFO+U%f|ZQ$kbs&Q|M-NnjuBp777Mk ztp6f0C3TLUr8Hq8rF$1sQ5sw^^WpghD7|u0Bs}wh8SR*&Han*p3$d$%__c^#6dgOd zD%prW+E!cwZW=$)4O4_&tC!57&hHMzcOwM>UdM0|Y)Iy#bWAL_04ke^snrX;$S8y& zM*x&@KT__48Ft2k-V}2Z z>$Q}d?$d*dj zTK?}6kbgFjPd%Q;1%F+oOv8$P`Et_$U|IDcJ zMIaFavx8tcZdbZ3@ZF-iq@MEp`u&WG&w$;W6$f+9gq)oQSQNdY+v=Pu(&`Gh5l>gG zOrn7e8Mm)>cSfgYL)Ek_Yzgrr!jo{Q|HN`uILiCu& zxL<`pCMzT#VgRaA9y8TiF$dbQ%q|_2daO8U7o5J0g0_(}I->l|j*gl#C?f$hX-*ez)zY zkzvJhd%F8k_m6HZX1qSf38W1~V7FB>2xXB@Tk2_Fj3Q248@(aVR<%SS(E#f#G_b?d zqkb9%Ypf)y(jO1>wLqSxF7KX^SCk94HW0a;AA>@2s4W<59Gr`V;>IUfJm+-XmKqy0!r(QH$ zf>iH(sKcVSGM<=MaZ_p!%qf*`H;m%{3Qi-fZSM!2G5HeD9Wa6?e{E`Y>x^|2(b#JelgL$)NqG&_du$9wr^jWEf~GNL;rsWsBLBA6 z&%&9{um!J~Vsi z3qayxt~!F@0FQNV#qA(R10vymEtA!|+8%gH$90?1wNN=P|7L2@HXLOyw+~)v&TaC- ztu<0fQ0MoYEcVc|YDyd!7Y=7;2mM8RVBUat#cR_xS`x}qX~HYAk8~w z!L#Qldu$VKgs^>%i+)d1MN9a2n=KRWsal#hu!^H_5P40oe#MKAvPNDUXxL)35#fqN zKO9^l=1?Kp&NCOUC|{v7B*-AJ8B}sO!4HT!Qk^;@ zU3OTQBVJ#`#9!5M$(0x|n=Rdx7UPwvD=;zY@o#dyWD|IDt=;$51n$RRJ*CWokq)nM?(00zAA-$&fA-k)mw%z6U%5&f?>Uy z>XPr4wD;G7V0mTOEFA;a+Pa5Cco*AVFklIcrs@(7xHf(I>neV!L(buhZ&I*6SlLUe z-vUAn-nc1`l($i?`id&K)jGI+9{GiigV`M&s{(r+pqPlvSI+U5PKl{7+y3UcQ6zu+ zepUt9W2-)*yPN3h*xCU-Ku&UcyT}nfZZM~`Y5OHRbqoeUEw&|!g)US)FV#P|1v5w} z>3&XbtvV7A1MPz1H~lTIa9uL-yUGjRs;e2>}Vt#`J;HAEjm`8uL^d|oAXGFn|52%WdU_{tWxG9?+jZpV#>bka zl8rHnV*$MzPa-Lm&7~OFx(Veq5n_5Guds$q#rmMdbi&rG{=1kYNR1n71Nv1I zIxAcEI=hXxgLlrUKBuZ{Dj$nM*J`TGn97y@A>AGtkJq2U&ec{`&+wRY5}rp^_! z*h(X&q&{tWnj7ed2t=z)bbj#S8WXF&$=Yv{`eeHqs5QQJOyE#FN06jFcCc(KxZ&Lp z(Js_i#->hS$?Qa%%hIhrt0`ak98n1fEC=7Q(hV?{S?8)Nyy&>F5~6~BIv)#NlcGvDSECpD z@%&rg*|lL_Nfvd(tfv*9y)%6#rX97s!bSf@x?yP;35oxoKayy2drfY~VzqGWGSmE# zS~9mFrfCvZ8@0HPJb)jkE3VZO`=pJ=Gm2`^3$8ZXMzlrnkoPAmArq1JC%^kJf;O_- zPuAmJ?avRhjMROs9PMX#=-k-EK)w5^s45py@~fl2qU#bYXDase1Z?M&>jz|<-B<(a zaL!hn#>WOtWK*D3>5E@?WSm`TyF4^#CrfNkBR=a>Y@Wc6QN>g&y#o3%2<2og?_`@YtLZ#bQPO&&2@FfEWXVaXe@!mN->ld4f4MtrNxsCP zQ$68J9h#UMN7hk;zBCkq2^xsAQWlcizN+w99rTve^I~SEvr%If)i-=Iz}IYbgzIRG zQ-tg*q179R$W_?0RxOq+#P-~ZK?Ri*8|v~kh1>GpIqukenJT6&p$Tl)@t*1Vi_lXs z_{T!z3^jpOYI5OZH}kf_#xs)kB<0^XmqAnZD0%vhkHmDIM<~7_@Orw_jm4Bs9xu9k zFX+iH+N}ebTFn;2Glsw8+_eKp1m06Veg;zD)aoCHX_%}H332uawG>UQy1+>gi~)f?R*(4E)b ztufUyRp#RvS@ylJ8xs$~aVa#w`45er^;Jz+@#`XNJ0ArZ@48-s6fCz4(*#!9FFCw4 z=uNGq@c&qqPE|z8JaR~)z*OczuI}|-egT2s`?Dj-moF*j_E7sQ{3CT#65r(>#PilQVdlWVPy zs}#`cikW2l)|I2nj_0o9_@dqaW6Wx%(l7T$fAB}@&P0E+!No`lb;OVU5>im4RTc~r`G+VgfHhkE(pbUXvT(mE6)M!@MwzkXk z)ijv-?RmFG5UW=h-NvHePE9eC2K`9gn%EoLr*7v?Ix{~(kdI7LR7>J+(nNl_F&1A$ z$cjbtK*|i*ho5lgvEWagZ1UdAG@}%DE!$d%sKWdmj}g4FNv1pQ{hBk&ysQMhb{| zXAM?ts#eo5;4%PCUx&ebVMsYdfhObg9imq^3s8$WSA4|ma3DEK+R6zJlP6;96jFbY z_Jcmxs&j^7H^U(EU&&HZp4J6Y`HEtou| z<)J$vxH9Odq=c<89)fzMpSzlW!fj0)t{B%M#`)gV6*LkAa)h8y*DH!vBgz=v4PQV^ z7G+G^Ita7gGqI*#bV=z?WfY^gw+_*VjOaRfdcyJPZ_G&-7n(XKp7Qv7?(7M=kO^75 zTcCX9cBO0Gno;fEm5B^~AAe~MG8m#lcLX3lT>+r@{p%=C2$HQr&0(%P!+WlPb_h8G zN3e}%m+f#u*Z8;i9wWD?=6c~Mf9LCUCd7=bAmhMZ+nT7eDx0{ZpB=Tf^R)6mO&6;F z4m|!sQ<>Qc4U_M-Fq7f-D!utedx|X4NbpCzE$#Em8LQbwGDz!J;;R`>DXz(&Tg`rq`ddu%Hhu4%}N(;LkMEfmkkq zzpOqaA3u78WI8k<;spF;yZ0Lt@u=P!xD6u2SW^-bQ8h^P{u0m#Hn>n52I0(>N%pp!;6IsgymyWc&1vh;ZC3?3_^!{2(l*| zR^Aj;1H^TZ`_d8CGjKFp`P-T7j5eRy(}C*ml^xSL-|Y-Rw;5K_q|DsscSz(E1(0Tk z*2y|X#X-+f^}z^8X-Xsm4eWO1hsx%x3kn1K9t`VG$AU~MvTW542GajHA(;OT*#1Ie z)qlx2{L9AFlKbGx5@60hsz}d&D0t^FuJD#3(~R(-EGa)GPY}V`Q0=^y(*5LI0>6r& z@{>(@Ms=`=bw*P&-+%{X%r9oH{%m0KaD|S<;dv~~7~Z+S3|&MHduIF)60)S(%CP2j zn`J#>#dU!3t*cBJT_401eQfVLkfL1TTwk`3xCdO4$a%*Ev!J9gnubWrjo!puxT_Cx zxDovkGP~zViFmd;O79&u5yHenw6Zl6>5>;LWl9lvmk87^AU-9jv%bD`e)Ramz;y0+ z63hl2P1HgghN+&2kcTO7Fc^$dFtv~#M3jCN;g6#& ztdW0=t?%!91!pamg7n*4rW#!L;9#@~j`;f0dZ0W2uU!${WAE$=Pc=3+c8Dhg@A&2m z+X6RR&+sz6S7aTAa@b(8nhGiW(BZ!NRP&_q=vPL0y}>SB__vp~*Xva^t4fN$jo?fB zzhlzBypoP49^Y(phRV!~%nH7rttV9nOfcWJvM$voqzN};ntXGS>V(lVE~Ge$M=3nR z;-Ezh6f@E50ruzf%$5C-2YS3;M5yLS$ELw%G>Y1mys~H{5A5db!vb4jBHEexRvM2} zME;WTy5F59;^5-kT;g2+)9iWp!oj|aKe?zkk}@J5=BV_lr#V%nr*a~r8f`Au<0@Ch z+f<3sQw^2uF)$mILr#X3*g>oVY3;f83bgEFz`69Lrj| zmYAp|Cl$G>$s4qP4J>^N=i|IUZ!ni1&a)_9YM6UlYCS)oE@}L^y|J`bCl?e*{@D`> zQuw?*^oCIl6}69%lp0Fersx-`n5ro1p`NGOH&3~bc^cDFOlhFC3~&^TvgA_Wm;2YV zeS(P?6BfY!ozLAkVLIsI)9%zv1=;XQ(hi*3WEc^Xe15C(CfSwrb&E5>1ArWTW9A@YjWreG_+qVr%eL9I*X&2ql=&Qw zs57=sgLP#FZSdJIKxEFXU=;Z|Izflh{d6Oo&S%xTdn>Xy_ib88utu6R$4x35aGnD; zQo=BDr785L`7MW8OXfZ@ZI#YA)E+dU)Sw5X7&FJVe*HvI`283ze17739Wc(f2$3^< zYVa9G=&#RJC}xHKmyg|K!xRo1p2#lLi`w4|WhxiU9C&wl$9s<RdGxgeO_r7bS`tCK+}-3y7sp%axIw)q^N1IV8YC0+nI!2q3e#hIija)#n1*7 z8u5&@GWx2gYxkYdC`)h}XO6VrD*r+hJ_zr_O}()2dt>$6&%8ZEo3NTCcujYBqeZCD z7B^oIin6+XX?cHlO@@|W`je?TzdUs$2M=)x~MQfCI^ekx@+GSg)ie<4f)6>Gaq`m~3{q zF*Wka7e)pJ<~iq`m)To#uOen%sMgV{l%1qooG54Fm9(DRUm$eQuuxk~`%V)Cccw{5 zi+&Vx%axQI5qmEk1ESnPB@Q87QK`!8MpcSCt!gz8dIeMD9vRb1C38iYTq?Z$ijsTp zeLS!}{hr^fgRA$RFl2BooN@Ci~R1r_k3$yIVlxJ-fuREF!5fTYuw)tj`r?W2zqCZA! zZm^`%m_e*e^V)}z2mlbl*pTOQ-yz{CPjunMU5Q%_g#r0>Fh4lCxHX^Yt3#+!j$ME7 z1%o@|BP`}?5$~d`V@kDTJYDH^56i+`_B~S|X9>LRR%uqrRJ4-L`0-Sa9A9JOd& z({c}$H~itw5k-V8m7*AP4b0~ylWHam^eh*|oGfmc(j)1$8_Z@M%0y1J)sv~E&3qYs zc{QpxJ-s(M@?+5eE6eXUK^qy8CrpdWU%p)NyXRxf0)}8(DG3i=Wc?n&hw>7QA7j*q*V(FeGRZjT1<*|?O@M>{H&Xqptg1IB( zJtfMGXF?LCa5Q97FO=E4^qONW0QAbTGiNoKAF(`ZUVm!nVBV;zY^s*0D`3~!5z8{L zM-$9LE@T%Hn`Y~Kv~52%ACj-NhJ)*C3Ai=LB|+%@m%G;&$9ME1kIs4dwdm{&a!Nx> z7HGyFJA8svLhO~B;DaLiy-+eoTjU#mPE41IAnG2?cWc`Q=8ci?Q-F#-8}Lk0TBsVBST*f^>H9UN!*S*^a5ZF2#ve@qk{0=?qygQJ-pvl z=B?8Wmi#9SkyGY{sKl6~8Kvf2o>!DgS_!4}EnbE9hhTMjuR>N1G}x!+N7Tn%_#79t z)7pPX90oEE%g(mM7HFY1158}|@Mk`siP5%IeZle_O+df0bTlqHJh3WA{9+R0FElGQ zPfi{+$E}M3^v?M2-(oZfGrvohh%Y(u2r}RXmctBcr5gwYBrKGiM)LoSaDSuS#W#nl zPN4y{6@&$>jK@j0VK0lD0+Uqj?Kn+6b1WDkcb2+(?M=Qc0b4lvKPQQ5_quQUQdCmZ zLOC}Q`R~j4ccq(B#fd+x!{vPrSS|@!%J6c(*?gk=*!_k=s{;7SP6hqfV+d4d%zwe( z|Cg;BMSx#lVkxmfbDrI3t4w%^`aT=&p>5h(25l5FVX$qpE*&Ozi9aX z{ZHs~N$AHWg#U)||DuYH>hND%@fUm%CFvj9{~5|(Q4Tcxqm=Q?{_OdZTR;GQP=SZ} zf5-XwL7D#$CO$8Uf3%)B5j~+yB4+)={vH`~49L0Uzt`~oo%U`Ay26vNMmQAaU>oRg z8)6?SJx`L-yvft##}1=oTEpZwcxkIKIs9b_SU9l-u2NAKSsrOK;p?)d{DYd+*L2Jh ztZ)bvmM1d<>*%(|hRxL)%$WaL>8x$zI!9io+eiIuFR^WDZ8_7uwb4}aKil%G;8~-C zu(L+t+#{2|gemWoE^agRKQn%enu^oe zEQuoVz9v}ZH;zde7(&#pYkuthZjD~*zrFQqoi#I!^F3q8g`qqxRpX2&HCzFb(B?M~pxO}%Ddfzf&%V*gx=oIj{+#Sb-;PS9K72+}#(R_bL3 zZ?T~$axvq7kDVx!3d3P8&e0KoI{f<-)F2?YzLxp3tA$g3kVbr3L3-hSs}6_ zH`kX0KQ_50?A)6;OVf>J@Jzao>ZY=>iC}vHf6s)3A|sQKamVltp@l!LS+JcT>84wM z89F4-d`dhHvCD}wbzXQ^M0m2SBvvR&9jf_42He7bjk4z4g~J_A^|1(Yr>?*dFG&_9 zp&TCasIu!;owLPYK|dN<>PEjn(s4EHDO_nYX8CoJKO>(~QL;cTl?l|hjAxxzfs*MU zolPFje;+TR8j%?dCde^Y7b}b<_Baso<(%;S7ZZ3Fj&J6m(L^X7KjCrDXpO4}S6d86 zx96c48dMwhu96jD9_Q-PRhJ!dBRh|rxP;`!1OIw}#>pJQ&Mcy6(2jt2+a1<=sbKf9 zJchPb2qQysQSNo~Gk9$)YHQ@M_rx=8q|h!pKOqLNCE3yu9G(^xqm^QQx9d*Y&^Fcw z9TFNY|Ba6B3l*-MCOHo)Iz*n0eK(^4B{vDQDH4@zKE^Z@@Xx~xRUr9+5RjsasqPCC z1-XlDS%z*^#dct5NyInvc{#hv)V^}W1xdLv(ZsqP%2krB1EcZR8kEQiP131{%H7P& z1ys}+fBNIe0$6l_75u_@APKb7v{1#{6{}%ajK$cIp;ixuZ4Sy5sOum?v`X#2na%yi zrKoz-FioSBX{hu~ptVlq^rbqsl#pM@tPq~vIEz_PJOYG23Kaa6_paD zF4?!wm6lt{65U;3u6MD=E%5X)icppnt|zt-WhEfWi-5&!5m`$JOj7=JJd~1#j}Y@jfH{=?V_b$qxNA$seF#p4xWD5ayrcT)euzos#5tr&k{kN+VM5r3ep zKAsrUF&e#Masat4-*jUi6beON%d^BYE-o+Yn==bF9@4C)G?&!CNBE>HfvOA|*X%TCS~`}n#2 zd+qep@E2~jfqqpe9~?+Q+1*tj;p)typ-yGuBCGoU;85n(I}S;!-zC#hDBtb|AyQz- zGfkR$Ptd~XKyt_6peQ)AM7#b%JSV1oeVUaK{b0I1xmvdv6*-FqD~4y&s|m%T~T28(uUmTj&EhE3a&X3@>GpbJWHKpKnA{vWauwl?2G5pU;rzS3(1se&YqR zoHH?Ww@tV$M*F_A6ftMQDQ>?vo&RCQ_rw<_>P_0N1@dGw2*|Nh61LlqhA2*@Xd1HZ zk|qw^rEw&|>r!`~H)O0Lq(zZjQg`6ICWjBD9-hXfX;lj_*A{%x zXjuW|-^Qg$3*+;Kt6Sf#9en1g;$$|jpLa7!Q`eD=MaB;w`zW=(m#IUsIEgzMt`F1f z#>>U_=;cVhV3y&=yn*$dgS*+AJn_rTz zm{oBe778`kEK**`vg2vDyKLEN^B3kQUF1RK%d? znWGSkEr#aS5Lp+|p@b-^w%!X?hVnT;_4ika86vwL*C#b{`J(lGq0Ta&HaLAtL|2rQ zX9%iPJ?`M*y_PusN4lu1HfGN5|L8Rr#J4aF7?ZJ%+t!SPxA|>^u;jI7O|nm6^LA>B zaH{fOmbc|!1@doOlvl=UG$-d9OsPi41LKODMNPhQ04u;uv_dCD;|z--!qeFcBVSUC z7raDYiONx?>9Qvu{#>6bdShlS974htl=mxbj9)0`cbn47WhglDe$D7LK6ki}N02HM zW18!88CN7Y!8b0Bmz)kltFsh1tT&y0=9gkhA&aHpxJ{4tKF>kX8W}?I6Pf0nG`SM~&J-TdYV4!sg|350*=3A(rM^I^E1ipcz?}*fNeO3u)jNLg?zUcx`b44?UMcLSB z!Jo&+Y|8pop{`iE3Nu=T5e+jIk-FMu9^NH1jvCLoYh4%82?5NvO5=U77Pw4?wY@xw znlBtW+(L6J&X8-J=}9q7VmN)szYMkrEsjA8Dkf`KGn=^%f=pJU>uQw76smHY+NPTE-DB zj(I^3*+bR6B}*2|9rZtgITXxL>;Ffw*9^9k|)tK!m<&pDcFi{B?V>T#OJr0!SqTh^Q1%Ik$emTh8rYYKL~64e@_eRt zB=B{vH@<4+{~6D zOH@RW1JoPFn4>4M z30H>N;q!N+|GvKNaFZatVm!>0Pd779pL5zQHoAoRIB09I-U zW_kiYCcd$d@r>zC5VU5r)$ZWHN9Ci?ctpm&y<#8h3F+9nxIzNlg79b6BY8SU&T9!5 z`K_7Z&JqqBRm(lL_oEyH?of$OBSoVEw+AOQ+3RU&za`#U)Xw}ux!%2+T03dS5PLnv zB;X_gVKP6!#ZsC02Q=Clvy+Uq<-{w{2RF1kYHzL4^gQmK=H-Cq(Ju@dW z>_O$wr$zA(^LXEDQi4F|=aQbzrjSyoYk9!Il4MAW5I(((!2Vx;B))tTr;s*6SZi zJ-MA1-*}f3dCHONH`>LJLhJ5tMPgu8g2dlIE?m`AX#CpK>?sGkeA6>ECHMLLZv#Av zVw4rmme#Po3OpnU*}ofnBy?4~`uylqW(oj^vb7T!PnX*VIxt;d9!-S#?KhP^XS6s? zrIl57n%TSo7j+-QcM3U{DOGo3`h|SR2a=e!++C|vx%p;K{%OnRW_eX zosNUk5smY*o?J=M`MkB`vW)%yAd1?hgTlThd5!+guc_+{$42>sUls=B}&Os*|sg3cl{* zauUeZH1E5`w0GKXXa0IlQ|5}?E4A0YoXB}ej`WGiK0Pu5C4HN`C3~*EB>#z<@7F!* z_sRTYwn69E1n41ZQ*tj7_p2jc08i_d2}MlI=b>^R!K>{hoSQK1I%57rl8m&eDtQKa zDYC8c4VwoSV$jg{m2ITNwy6*vO0-Dd#c@@W>DSjVT)~IQig<}v+EKT6PND868hIMt ztmsCH{?wRLL6Il6x;Hz&v9z6{+b^APHPY2vjK5tFkrS1MjrDQsu*RwjmNms)HTD`Y>U8LoYj#FB`bWd@V-a<1xay3=0Iy|qqh(NI_-S7%QMC`VTpSAX^ z)bsUt`{fBG-sX|2*yDzz!$|)uL;AjKvs9zJC>=iBUjKm*FsRI)KomJ#&co_ox`feR zng|vgM@v+>Z@eQE|LWmvzsy$C!^Ropm2LiTy29_ipV%gAzW(;YZ__woG!=6XcPp~V z<)6P1MS7LSsd=mvZA~eElm3jh?Zw`slp)b}E_lKRx>kI@5+@;}8l9g~U?LgBP-JcF zFF*!z*g!nd?SzYp-(pu)0&598y3-P#M8vEw{RX*x!*0%e0Jwfe$yzYpw)_us%zOa9?cz!&klzW zX%%y(cjy6TAQeiC zh;uFJWDmE6oHwtPZMY_Ap1ydt0X10XFI?WQf52G@zyexb#fmh0n6TmlKU`$t7YlPI z^yk^R^~({6PbA(}DVfG$Y)?#OYB-XMT7UCI%3H{`n9L-3SnKy0 zEf8Q4g)v;o8^eivzY@mPa$MXc6-p&0EY{->#b3TytYlI4bB6}HryFhndzuEYO*Bm( zOJgzE9q@TT@AvB{pu@3y%JCT{HP&uL;pYwZbGhL6H2pla(4Iim0q_rHb8@#il1V_b zL^liCTMVTHJu%~RhyFapS5`?8ia7UheQpV$GgbX!8g5ypw;BdO+^b>O@imjyyvZ1; ztUP|WOxR5y@$MBUjOWl@e};m{Kqy?FaksWXN##zCNm9*`6R3NM2z0qNY~%8PAWT1H z)-Z`fLl4`J5!3{`-S-%m<`p=;4awrJrxesPFb~gs_F70&(U}J<3L@e{_al_Bj3;sU zv1Hk)nZD*ZZ#GZtB`y~d1LK5h3LYk*QxeD8_j)6%$O)q&VV+?`}7p8K&j>Qcs#MRmC?zs{_rwJ7C)eJ zX7H&=pilMX;PE9WEGo`wlkfV|c$A>nyK$hv?sJ0FQ1R=_W4nTfd~FOjzFkaGl8|z> zR7+x(-#EH}&DZu7o9=CG^{xpyi=}pGb?~?YiDJ0PLYh`)`%mi~rH1l#(TMrf0-wz7 z2Qgxm?b<$@%MnHj*xi^aOP*9P?*jSlsGaX}rnIc2C9$rF^Sn!O+VNPmpeuk=DrlrC zDdp~wmpo+Ld|}OBD%V8#IB9R|k7N4j#<_&?@(%%Y%F8=pfYV;ZuC!Ixr*DU&O;H6~ zUPlntK+5d0nb7J91>@{UAPUkNSVk>V=^FdG&F8BG__Z4dQ&pmZBBrV=G$|J(!f$QF zc($wg{gYOMp8M;ZW1ApDn47vj$?iOI$KzOF<%Yw~&i)2~RzFIBE`K&FtLuR=W!iO_ z@5tk=uY))$mYjRi;{=1U?TrO&<~#9FS7TRp;}mUmx069(KgD+ifuHmu?Vmy?VvsuA z4L05Lbqv$QjlY#(aeEa#@qRN|OKOx-<(~FkES0r1f)Uy^&(1N!FBm8MA+|`v@q!~^ zC5qvhk1isp*&BYhexm!vu8)Vm4D<+X#MX}E1j8{F4({&wkV;Jj?_0Y>&(>Ep2JYm= z*EAwWpWwdxMZ|G3%zDBiMR!vTbsFIrW{dOGNR!Fu2z%4ra+(}05I0Uo``d#gBWcu@o8R^xw^roX737h9(TT zHCt~CS4({y6-}@h1VFxc=|!`+_pF7|_W%fe@j4L5%5$vNjGvhXep=$pN0^y4t4 zMby0*`?ke~mW`2X!C8G%Z}`4ty_e406l1DWQ)R&tO~W+$$48C}(6GNBBDRvG$`z#$#|_6u2r>fNAuG^Y`7!`5WMa89aa#>ZxrtItZJ+FCGd!ZR}Q*k z!}z&NIJmdMeBI2x&WR|M99McJb|t#O=A=8&qZZfnsB64F?LvXGPzf9}nsWFfW2@mO zSVcUB7is5(Q-mAvN24Qb#&E%knn^Z&M1p>2+XoEBsLuz9&~o0r^(RUq?UfH)EcZ5g zuyO<{D6FFVqA6P1cG+XQ{IfXDelnA+*a>#mPv;3w9|UXdrxW|{cM?I(MfIpYH(JGaIc^`yYPuHHq!B;qgD_R2HnK7;K z{RvLV7>Y8Uw(de=XNs3mM&D&3@q!k}wSkEJTm?c+fpcuTcy3qR?ub1m@6qn;{#Ajh z@cN&{)Hdl3!|fsBA0~5MOQMu6a2w80DD*W#{tsnu85T$PeG4WeK=1?zF2Nmwdz0YM zxVyW%LkD+vcXxLP?(XjH(mA+OTI|;E66JcDR zhH~R#X=-?LSe(Wp5i_$c4CuFI4(;F;#U)5Az(>Ax_;7}?&+!@x14-V_a^Zp&L87n7 z$z50?WvCD=nS4K{x;=vUm22{B45hfdrDqDMP)rJ*Ov{=-R_sQVgTF7Ij<1@P5;M?h zCmG-lFajRbcF`b^0=dQ?l2q5GIol1%_%_D6TEw*b$3V$y`>xOOM$oi9B;f~-;$yZn zDGUeFD2Uj=5~uU)fe84=NRjk=1*5QpTJcQnJR{}majN3E8>D?+>xnVe%$hmwPfMGx z1toh|4rm{h-_f${>uVO$e%$B`8j^!NR6yW7xC(GrDi(lE`mru#XMdDpze zCvWx@eFPvc{2PAV)mQx1wy@Gr=;^gtpU(K7K)?tJA0d$j>}IHR9;0Jt>fcEM?q)ZZ zj?EhKU5%G?MR$)u=*ufI!GpnLc9+>l3(J-CgQplX4N+mjgN%`pqfpbrA zR863_UA4Mbx3A^t@o5a^VCmw$th}MPgTtJbccGQDtt`o>-+n`2i0-*eh9h7s;Rm#p zFYHc?XRx*M`IcG$;=>MRlJCp0szdP)6tdKU#SDlaWCe=w^H+&wX+w)piPu*>I?(#i z#6p&dyvBUnaFAAOlN}{St=$cvFwCQz93GmQgd|Kx*J{IWJ(gmce!(|$LioLGS#fdO zq>}V}6nlJQ9A)tHcIPsSA4ng!V5~19$_HK{EALr?pkSxaGLj3kBlM%e*=x? zf={LGc-MCbTwk(&@^Z2a)^S0><#z@RwV*+}^F2Yn>CgY!+ZiLoGoChjXS@>qJkQj= z+J?v{dS2frB479H$YEoS11X4z!ts8I1AhSMcYbrjzV}LecB<675t4kJc)7?iTMkIJ zy1(g(HYUH#EqKEKJiSP~Vp4r1GT>r62<`GU^*l6Q1$vPe6_ugGq%o6u?@Hj;(8umR zxNM(`klMvuKW&}X>Alz-*?Fz$^fFA7WUaj}k#_gq1(+&N>gkPZus_dTX%? zsO#^NjWfI78Bd>MbX$FzePO4rC*62%en~a|odAZ?`g~d9f2kP3o+%?LLG!<-NM74n z4AJJ0yOd0j{>27f9xYTHX`$rxox+YO{O;u>zr|%id)72OoPW}sM^*H!j1c*grTx3y z;pJ*WK)N!*bwA%%$+7RWcsySk1x}hRMb{}2txMrst=d>GT#sE|2e;|8OonkOX(YX; z2fvV@W2w*eTmB6Va}wKszAnvE7;xN0T%FLOILjrtEdm9lJ3Ib?8lcxSP1_kd#>FuZ z!q33oz%{?vP;Gm)Mm7AP-3C=t+-wIE3q#Q7DJ}T@u6vwf?sUAVt3G&@J=5B010`sK z*3K{CFYgHCuB-D?(Be!8!3BHQ+;8uN7s_e_pSylxrPC(O%iRdV=>0L(_XhNmb0W=& zvVEVGL^9=bJP)apv_*}k@H8Q~1MtgvARBt5Wri&93!5qvN;$p_i)7EiD(C9U4Z}X@ zKp2~yG~3Ccmzvuz6tvOHE&u~{MIW>GJ@UIE{sC|_lUlKnniCXbFB;0wE}dxRpualV zB6#`|#0pD%b2Br5xq%K;8pj_9+Q(elloyW7b?BWlK)3<$O6u97;v0tEIqz>>Jl{V+ICezwce0c>B0ggpWiBAFRp)b?CC?qjMPLncR(` z0H?~$!c0S)I(m8C?QAynv)NS4zRj2;CkH*B`%x z(=G?0k3Bxo{AxkpWTwXxTtj76dtLYqCEiyd6oc+`3VOA-cJR38^cRR9TyL^E2qh+q zaL_+*^1^#b9mB@igIOu_X+H1BhvP+ACVEay{J7C1z%YQFJ#@D;4I>CtC+K+qgQZAy zQ5q>*s;tsziNM`px!V|zfMsZ#JO`Y&X=qz0IN@({0EBSqV_Y7Y3mmCT_)xc>{K6c@ zx0Z}FYn<1d$+lfmmKsL#K9~~?sPhN;JZBO* z#%K+(a7eC$fppfyl!)t&W|<^;v`n5Pz`1?v24B?gr2_(n8<8RAqu+3*3fx zj);~1C3lI8mbjh+HL>nFx;a*K@fFsXuC*f-bUihr=fnErAlL_=Uf!b8cpFT!9t~2n zn&}4*ci<>x8V%~tiCd(A^>?Ex>MV33>z6;rcYmpG7QC|D0UH>{C#9V*i%mo^GRf!q zJqHJ+0gaTdieuBFr2=Sm%h{l(X+$IamNk%$Qflt0m>hFPCbMtN7yMeBFp_YJWm1xI zhv6y@jer`%e?2CkCS#K`WS@Pnean?bGGBQVkm2oVN6Erc+J-K;H)u0R#iaivQ;8N7 zjr~y1&0b9Kwe!l5pUQ#f43C@5DUPqIs{5t86bMmwPi!g>)T*Hp4%lt?HrTDX*?XM; zY6xI9WmbYZf43<3o>#U3L6$sSQ{O#*jCNT+QH&xHblc~OFd6re%AG%t-G#Su5M~&< z=m?CHzGSm6jjU>41ux^(lg1Vdxzy>11@pWQSD(~4Dn+X;dl>r&{dF*^CRVJqIm4Ck ziP7%Vh8)Bbhk4O#?=VuZ{WOVPlJoqtv6nwP?sFw4t zZieRx$rQ_smf9DH6!y6l-BaNIJ$aJdQS?P%M!njirY7VdoSr$>LIP<5*LS%DYQS3_ z+bT~mdh<_swVUMp41Mv2_l-G3_|@pQ#MfJAJCh z1~tN~(|)VDVWS}pr3tqOFqSEsrK?l8k~G)9K2OMR0Oj}njI8*nD>8c-ggF2apDQn!$P{OiQ`ez2&KjbO9$I#oX37qB<X0J(J%SCHQ zj5(U0Px^ze92D>RwTY#^t{W@lw1-sJ)G#;>Q%qQjQ~uKsdM%R@oB~VsPctrW=>$Y! zcPkq81($EhX+jw}-z&Y|aM=1H6td_!qZL*3^y#8;GgTkTE4$GV5EQRkt7`hiV}?dY zbM%;0RaJGYyj@Li;ETyUjl8;7=!s6(n!GK$u1xF<@B&8nW{eRzJZ0lY?_)9xX>xaA zW5Q^YE$$_0*N1;dzD(j0|$5uXWCpVX2yHeF4nT zqaoKFs0-rKKv)FxG6KPE1gf&KYT{3l!HGpj%sX&!h@?URmy(4?btZW7?ivRxH-_zT zr>}c8L2WIOipnTeQ~4A-1)YQ32xEgT7sggNa(nQxnhj;NH3o3@KvvWMiP=55_l0Wg zC*8EdO%3yuczu-&4P}aKOfXe}kP@t-h7)AKlz+S$ykdV^V?NFtTfl5ME>eUsVQByB zyVEk=1vxYGV4UN_*<%`bLEI~9J_bX*->uPZcz7+#Udi<3x@U;8lRr8>TJdWW%`2`x z+RnD8j^c5KL4?1W53#q9K9FW~keCE0%w#=Kn&~N;*t=t~T8HwMq)_9qf13hfok&bs zw!?}m{9g7mwsvR~N*)0rEGsUtS&_bdFJ|;7Lo~a%y}iT`8;>=jMd@-zS9#(g^7+N2VS|FiFFZ%Ag0Rr2QLx_CE2axxX~m&=RD3LNI4?4_$C_M^6X$PkPGJLc&3@5$pcvWkUjsr{$YOav<$7U z4$Nhp)Km;K2<5wf@?Ec9X)>V-x9lO$uI4-q)?0;q-C~1-LUsfb(u>v+a>_EtG0z-VPs(Yl z=c27$441>b%^q2q6WzY|ukE($lP!*KPjhA^H?GM?yP^>)>XekL@-Q;0dgTGP;$BoK ziOFIWfSA}3dH@gOPY@VuAlYc#;qW zq??}M`R1Y>?V9OMlu*8uaok2z1NuKQ4T4%)o(V0Yaxr7K z+fzaFc!q;YvVD{yJ01YQwkV~(uwE#7DYZKq8UHv3;gUoYVUW|n=vY=oMNjqgCuSO5 zX$(1ZMEQyg#RW_&ds;6EN6JH zgwk#AukFa~dEJ8#TkO!W&$s>ndWiKm9ki?*11?5Fom50y-FCii7=<;MGFnoKDSaqh^ z+I=+E<1&Qa-Bh&U9?+oWEyW;_*Y2O43GbK(^U~AL_e!*0BfAv&L)km+n}kl7;12Rx z6)P#H9Y%7pj;^7sK@64d*|v{Bw1H_4e{*T2Kxu-L(6v}jLMe?CN(6J>X~+oha_^x9 zUt_FcpgG&{$ej4r?eOhAN4ivX^aA;sEJs*n zh2rdYDW5Eh1#l%rEN!JFzSj91H8x5@JO!#=aqr|NHxVr>l7x~2TCo{dHcQ?~O>>L4Z1t=@WRI_w96nSBl4Y|n@#j;vDxK)l+s#j;MQFND z)eC6GRA}@zW@+ppg4*~EaGXulX&Lfx&W>gUiB~H(!xv!gl*vp5KEX}R6?i@^qckE6 z!8bOH7kMCGtz_eV7VM9XOXE+t%Js@t{y`HKKVyB2@cMjhlVfPeimU)lGCY;FDS)`C2%lzdEp6G5K!;2?FDm8K4KvdJPtFlCw z=N08YB@^(XSgL9|A%4OBoc(gddvsiMk{K7A;{yzO4~rUc&hIuUkXJZ|&-hD2`56~X zJHCRmuvVz?=0Y>CXjmIR19mdCX;t>3eBaVP)Xl&$Wf!uiTKDEwnRi7g!^lbpJlIue zawX3$y4XqJOf{5~G+LA9IN0cKh60rWq3bU|&2q_3p)F`@yv*OaL6$ zEOK~px?4p10%}lrV1w0}EdU=Vnm`ub8g3|ud821M-zWGr{{omfHSyJj2Qi)P(J9hN%hD5bE@eQEc;!WE{IG-eSS!Q7A`_a5`#KY0>#M4N%;ja0# z0Gf9B+qVYoqyABLfUZ|Ang(JJ#Xu4HxF#%PU2a0DIr5J3y5(T8#!?4L=AOK(>8ffQ z`(t!CYP~-;yqJHpKO8*M6b&x(Z9G8{lm}e6_zwZq(0P&;okXX=tYeSjMEW#&_ew^c zeS}f>_XYqXTLwiIMHglvZ+ANn32kxb^v)hk*ptq*6IvU8nu5r9xbX(G zcMs#E+xWc5D~&Gp`CaHS!dsY)sz^BPwrsyAru!)AYv()O;Xn82iHrnVuTk)#sgj)-t-Q0_C5$>HI(oZjuodHAM!cFgc@_%9LoI+<`kzjWBpsN zL@VN~MP9KROifMWJ6=pdPaKklla9^VjaDwr_89jAYDW$(a#Cm2^UF?4fh~!mw42M1 zdqkQwRD)@2yq$|Ae?<2uN4bWyZf$+>wTK?6 z#`;#c-z(DFv9OPRD%*}qES4L1tzWgLN7GFBJg8sJycfmS#TAE-h+H4=ID@1ki`xJU zz9}NSK|_pP6}lu2?9R3YI5RW{-Ya>@5=!`8yyTHMbb;4;+6X?*=}bJ<)N@LPauqLK zEzH1V_7_JO82X*wb~z76T zYgGnvY3z|-p&a9{7%C6YMR+4e>4jK7K}>|>QH!2i^w>s7hn!ZZmeUNEYueBZADF5- z-5#bf7oCm1AY?rKSsH$MMoWT9aI`7@HWuv*=@a%=dEsY?6m`p(m%o_R6>Ri*U-*eLkadwuz` zNJ}kLpPpt(D0VqyQNB0%NhZQcSVV;>>u}u1)F-hY_x)1lC2GCahL5{n?1!M<8=I_^ zP&eNKc)7q#ttg1wwT!hc?9P}VNTH5G;iue;i{R-UOyorFYRWyPAnhPur*ROnr%X%e2+=z zm@{x$FlTVtv@1}3$2DIUZMn+YUUx8xBU7Z~335kLv=y?)hg4mx--3PVFmIk$a<4RN z5~Eg+u_E7E1^@n|4W~>rZA>o9TtliS?dr8&oIF)t*K~VBx`Ubaw>jrW%q3s8cbpm1 zvldKA25yj~07y$1goCWQOE3Jb>{hdmro} ze{tCMyn3U=H{vCh^T*08S$q$)-x4Hi!FfWiR}1s;7I6uam5bGGIgu~@x-;HwKaEk5 z3z~Z$Gxh_&uQY3&3Qs>A+*_KoNbBrlQP4UBf7XPgGq9!8)rfgO+xafl-vXy8B8@kD z8?khYiMbi$5K^T{PWU;ioS5siu)AU$V`U8~P(2L!a2E`&&R6_#Q-^H}A>hXTHeOqJ zgqEWqzWNwdq7IaUKffVbFS~vSWm;)thruLR9OV@Cv~jxy{a-h2QSVou!=~5QCKg5v zw7j-d*VQ-(sOZ8@VA-pPAILCRE4zgpW$~W&D> z%L7{G;d}SmBJVb?LUJQFBw0Y<74@0$u0w@|M&G!ymdMln!UadMlUMrR@9j3>HFNE%cn6?(8S z0#}|QQ}0x(Xkx*F)`i>Ig|GW_ybJ=*4?_LF!Fbt{#GY42lWF%e*-B^^jCvr`kkF+p z%2;KtOBSm#C@Uxhq{)-N3@dqA-C;09q>mL&S?_H>5iB)|#hzN9D=`E_-r1j`D_b=0&MAm*kEV{3r*fF0c-XJSBbUVM zK4gE?*N+pi^W$!<7#y5S(kj0|2CNzPH@znkw*Qi$tghCFZQKVc6I)ZSD6zU&s0~~h z-6UV%{d@*+i!KVJk{$;EUg;2K-Usc1Lf*j$Z*NFnJmtN*dQHY1@ubj}!oUzGkUBAW zzauMwYm+=7-Mja;T7<2CfDY=_8t)jqPE_8JZ6v4<-mG$WExj|4t9KLMBHNsWL5>+Y!#7{D1QRoOfDx>znVJvWGt&9WD6F?0;F(4~GMdhZa#N^wKIZWx)Z?Kc;Ylmp_wXJBRSkh?pU|; zjte}FlaLaJ!N?7~IWBtBzv#%#En0_(02w>aILRNvk>2|KI{f&%CB)|zhwICijvpb! zqOy6APeSP51iSd7Cqo^+=H26nyOD)QX*tU~AH0x!jESo8&MLaMk2n}K8cye)Sm(Yu zP3Kmuk~W#l8&ecC6_(m+g_ij3!+M6#<8{Ml1s_>fO`38b| zPcV{sF1f}UkU&hAxl)nrh7uC|&9?`_nxWXP?avBft4?B`B12~)oU^exWu6XK3z*X1 z?UO&AYP1I$Wuk1iXKQ)13^i&z?trL=@@;R7&Aum`cltYfxPBLTFFfqqm%}y!TgqCk zlxlA@uQq^L?ixKk)YtDr*6defp;|i-APpdv4Jk-Q=>$Wja!1^Fm?jvTZhYMEvBABs zBV0vyBa@-y{P$&|yo&piD^KXVp7YWcMx1 zJ8qoN5pbzpkau2{Piy6rfNg&--;GGCGao}$S}6Z?No#cB+8^!j^8-srbs*eO+o9{` z21VuI#o^`!zMD@|CMr{QB$)GGMaKsddB~dD<-qIwnbp@qQgwu%=R|p+b8eP*p=Ah> z>eOUDx!mZdjB8CUA03_{c#*=8hcqr}gc>Hh9a`Gbp4gMU?|cT>GP!M>)g zRPwNqypN&V9%8$(q3H+u3KwpPU$U~eIqS*NPW^bj^3l3?ll)!Ci5WKx-H5{VH@)?< zAbA$6NzscPNVp;T@)4}}&7KCHpEEX=;}x=k$8dg85;9vRk8Qr9)D&*|`*?_fQ~$Q@ zU*)Wq3*YSj1w2m#Lj|(08~@%gGvK}4pByHH?07e+zgNw>=whP=i^`c8MSz*$+#*N3Iw~=cl*c#C4W-ApZG}(iBssd33AAt_Ew1 z`b#&cXO{5(-(mZYV1J8GboBkq|Fehz6AkVkX8nIV{OpKP|7XGIo*?P}EEpXQ7X6&@Zm>g-kLPw$3xPdE_?&D!Y2;_Um@d^7=bo>JiVzxm%P{eS=R{FoB3!BiuO>E$XD z3u;1oL9I~;4f%vQX1Bci>%kkLplYmCx>-!TqCavv4mw&TOpa8!;nV?8rR|xbAv3bC z;zV$N;#`1^Y|wTGRQ0M}35tb>+7BzP1P6e*?|K{_hyX@&7hlnCB?T*r6vy z8e3`7dBt-k;wkUke17vSI(E*>)%+TW{Gc~effgQ$mrNb|`Zu%H`P}AYS?G1~4j%#3 z?A=w2tC?v%(eVu;K_Dr;Fqsccu@({ zHK*dzFS$)c9%7~pYohn5@(LtHqU#^kSDRQ)qQbrDyX*MHrreo2IBn0_JaVYG=u9xu z`iXmTa^C0E@2eHwa&Jq|Yu?ZY)D$;OES}BpDGSbjD{`okZGUU5*JdCUb`L6WF_}zB z1h7;Il8x!Dl>UlfI4Pvx)EV6oj8oY9Zd94_XD{Mtl=tgcZl`F&E#w(Dps-SZI3|`< zParp=2W!3kdxYZHkW|>_dGm|KihXiWo2;LBVs%-@LR@X;r~$C*bt|CC!;rl5In$eP zU8`SJ(^gR~av`u~sy&?fZXR{H>5J7F#G6n`L{~Q16|9DN&&5#zJv zKG-@SuS=;3h%9{@ht0$%Rf92%Pe8WofXjCLR?il*u@Y6!`NZmVIy)%$IQ5DMGGev=Pyj z`#6l+2Pc%wxa-?hbbNpZ+=i?Jp zz^O=G{K1oI>?yxg9=_<|F-+G*%sf?dyrvRBSX7=z6iUf;<45xYJ76SArn-cnPnI~+Bhd$|7T zTf2zfAfA(7fc?_@1%;kPfvu?1G}Ur3D!TDMtp|fniZOmj z+F~(4wtp&WI(#Kb{Zw0JdC>n5xvx|0f_%b*K!yzDdE4he0S&h#jGDgAJCtbhjqY3D z$EX&w3iN}GmyIh(2T?d`pJ4CE)HhenS$ZfWNvAOtTGLN+{6`Ks{+!4f7wz?^B@LIxoTT>2-nAmSy zFzI))?K^&imIDUUFt;8nkbkRusJT7BV8MY<*}JFM8E+sf!II_{=|pJONM6ajAa;FNw|I_Tc8w+AFbL zU3n+7EXSvu7o0lVuZGHw{XUbM5%VbeqKjroP8>=5`%&d73&~Vh4=zKrIb+yy<`^hL zmn$+S%Yr`*ulzprMnrMOaOcsYu<7}z)`%Zin@cv`ZXlrWd4gG(D#nkVn;%<&(P!g zSn6GSwF05Toygz4V_)y0#7n*UjfPnw+SNz#ES_5wrpZdiSSV$CE`{axnWsVP@Z1uyY zwA+~y?YU)FIb@@DfWnzK6ZX3)5I>_*FKj<0^Sb7~imiSM6?X-yG@SMV_d6^)P$Ox3z&Fm= z_fjHSHO+%Vc|PwQPLlPkti1U(Ke`{>A!4l&gl=l4(c7)`&C2E9A$rwveRJQxoExud z6MPQ$0PcRRGRM~Ddu-&}YE7BeO+g!Pfaf86rIvjrkXc#MP5(CPkH&sEHT>&?7Q48r zd=psBh*Wsw~Q*K%VG_@q*I7>N~5iTLQpJn7` zmf$3hH7g)E+@9~t@&hR%xe@xqiwt46X63BMP?yBEzI^l<-8(BdgLVLY=-ccd0YA6r%-KJd^K37+qXlkKv(M}M% zeHRAg^5KYzi}pvw2U%b4kd~*V{mRkuj$cL$&LOmBpie+7acdgG0*)M7dNk}a*`nN& zDfac{W5w_~Z^cb@h6r zzPa9qZxz4KXC7?SlcvO!4Y1ogcJs+3J=d{VQ(p0L<<@w7DKG3#H5!xUvr()YByA55 z`>P1bZ7Vd>OU!uTx)v7iM;K1;B?ZW>&Hj9s3%v%6D78Qw-Oy97ao3A!M{E}dPw^Q4g z$ePKaS&bY1!7JWKT|9ZI_;}}%OkQ8Ao69DU|MPcw^cU)r@tRK@p7bH->D-%bykE6j z8|q4vhwICoCqJ6ilNHn?C|G7g?d3)1e4+?%StPYNBAvxy&C8cNWyyRhiAnme7GVFb z?rbSmS)FT3rVrH~?YlTLQpsqQ&&Uwhw1Yo;4EKQfQfNFVUBaW0UdKoV1qOUEa=X_f z+T!k0j_YJYPm7NR1dgK59d-7md-*pI<*Vvw1+1m=$ZO&bPJYkm_^^8_!GvIpvG-iB zXF*F{tM_qkJ=vw815H5V=!->si8wB#3QYBHNNtR^=d(ySEC zGJ7@~s+FE1+vz4mJElOXfT2RA7rq{d=bm6~)OYFD`SBKqFY}{*Pg9*W8ZL@U%;l`T z`hQ*lx$HY|26RKD3aP~#uo3=#LQxYa-ggjU6h|D0^X zc{CM4EfLZlc*G!LO>)fklU{P*Izyx7HXejGZfu<;ANfhBjii^gSyG)Ia)9N{imYlu zXN;&jzQK$tlP;_L7+}U8{RyKEFpyuhm>fA-Hj?ltj>W;n9j`;gx%OIyg)=^daq~=f z^x0_LTD+ zd?FPXup;VcW4#yRkDHL|bgMD1&% zLrA{8b(mDip`wnZRLmKfg_f{IG`bIPw15jCW0mi37?8klqO-F%B*CorL48+MboCab zN%h9_dN>;r;^J{LxjdV!r8$)JZEI#`hN3O1r_otYRlPkgl05+3 zFp=fw&rOVB9F`bzp6nPCCMpFlhiD!U{TEEU6*G|$c9HA5$>hgT~aI|4kN@ z|Fzy{a|4VnGX~`0X>GXuuQ?^D{*3!-Czkab?@W0-dr}Cm@{Dcy!g4z80FGRp)%NLN zf96$3=-+f29-OUyD}Vil!SdkB^rBt8*S!uqxVzbC38&4oT*a`pqBiN8z#M*xzUu07 zlV2o7QVW(yZH>Ha!(}a&dxwc?C_D}v5-i#iooAfSrV`LUB*l0d;*T_}6E}YL5>#W~ zTYwug$pid~n_v9&kIj`EOgq6)FM95V{zDK{tI=3-v}d~YJbn*}H4J8P45t!whR&q^ z&p*=&ipN;e0<+LkPsj#;N76-04t{m-AwBHAG{vJG`b)oCQ#H-&xZAjBg^2Ud)UnbV z!D(EF_kWr@TBZgOk3fkOrchqdSWWoBevX~Wr7FiwvK`>A-ON;sXkuHivA!pF z((*_$Veaahe#91@1CYi>XLwua`o~l845OyZ=Ksb=6Qwo7=NBa2G;$wOiw!f~;74_nJc$uBMH zgAe%3#<6^SJSxa%CE?vqGY3F@0e*Jd_eN1RV$_}Eu48%3S6%vS z`3@etU*Nj>Qsg3V48~9;n#>k+x4X5CFGAL^UF?~)J;2-@YS8tmEjsz_BdnPN_TV8Z zuLnU3E|RoX5BKq|Su(;ICLr$@lwO!A$RH+He~6_N7>ePv z+Ds5R-N3jee4m%`oBVc4Z^+NTP;a>d)>m6<%dN({uIj@%=3M{Kl?K<@(539BBO~md zBkfNF_1SjUWKQQN<2fG*uf67xUvGikdBQZ0;fF!fI~2%|`}D<~7yioKAGp95W00qT zFSEtPYgS(b)Ke2(XqU~OIMKN>z2ysI>z}0Cc5aI-Ph@!^w5^r>-|!LWa9ZWw3|P93 zlxEG@qjW7<_hM`$Z|_L?rxH7?%D=4dNY)hN(>+BN*poqQyA@R(z4q1!GQBx3pa@|O(>dd94Fv@d~zi&)a-9DO9KNd5K4Ef$Rxza-V zV9?uB$_9Wb3iW6xGgZ0jcgn=hJS*-*I^VT>{Z$*J%lK9byxRx?hDtRN$9kM05?I&g zc+OhU`|V19G(>BA0%DN2GL{{<7@;iuC=}dwymQ|_YZ}bOvrRx*Nq7tBTh#Jsn?|ZF z`^;~hZZLDK-}cgBc@-G@y*Hu{D2jV7+?ahaJs>V5?D6G*Jza1F?gKxEmP6&@%tSMDJX<~+IuUWn5_uQj=e?T4)v-S$f40!>_Idc-TWVy%B#WwMy}AUf=r8-RqtO7pniqD7oz*Ngx?Bo1}*Of8o+-(!~C; z%%exwqgVB^wAIR6=y09$NuP!Ywm~>AjXSo|d{uR^C>wN-=~?^&Tn3u7Th-W$_u8W&jNhBKIx;pY{ZUKD`0eoeYou}P z&H7=VF^VQUP3Qj$0Syev&mTXbl62wSmg?v_$$m2W|AM_U zIek0AH!JW`WXQjEGD-EI}ziQuB= zIom!df3**;Q;^ggHjP@S1~h>r7sl)G&t3?nC}cKY99C~hv)W(x1H7A<7W_T;`5jOG z&t{1^@}5-34-L(ej4;&zVB57KwGz4(RaFhKJtNi+zg4sZxs!G*$DfzC$jj>cq-BWa zy*aXtZVY#|wyd7*3ff$PGGn+LuwGy!3XBa|<%FSh*Oiyt)nIBaZM3`CPOjSOpV`+F z9Ryu7`#t+m3>fgN1e5DmpIzTw48!yWPxK)!K`>%ZA2xE$m-KgS--G?EESfNe&3S>Z z5l`i(vHq9+JmXNX{UG_50qEW47PniJ{q1@(59mQdr&SD83pa{5)D7A?P@tvA3GU`r1CbhS#4@K zoXh+cu%lFiKrjSK=41WsskZ_8%&(6Jt?xe2qLK7ODX?jEQuYjz~JJoI>uE zH#|Hv?=^y7$(#AclQO*xuT@S0KY+j*P37~ayinNj2^y?ur&%54>( zc?Uedyjd(gTxg9JLipsA3KQB#+sg?A4?Y;g2>nnm=PC-G zii-or>%TlNw<$A|a?<ox$>VwQe=-A zm;-B|{VZ*+7*9~gLkX2JU?sHg@6@fu(I0Z|h`;86i%nZtA0Yw4sY{LemqlIz%OndOtRLA9Z)H&A=Jkx|B!enNo{`c8G{*#p&os zI@gv-NpD>_uJyv;kGY$l+?D*PUDkSp4pF@9+xGI=@VFXo$i^y-O0$(^{J2L$#p&m# zEf_B@3jWEw_<^1N>V*M|#kKERo1VMeWa)X4Z?_?4?@bF+h&0oRjZ(%xWg?s|SH;(E zL7--nn0RFG$@)6{EHnMf9DtjxZ|Yrrw{09pOumF0=3>1G*rSja0L%wPv~`Fsa=0|8 zUqs!9ievL!cNH|DOjOavTE#1+7?Mo$~ zES9^LszgKrYQzy>BJulA=*;x;rGIR8Tg_`158WPphn$_oYYZuE{xpHxxcy=@l$Y7` zLitC+gw+sAulNHI+Ompz3d3ZWT?*+~VeOM8X7^)GMcYCc^T!9_A4!v>zmax>t$V4;hrYZ|~ zzExVhwf`f_O4%aDkUz#`+EWK6lyN-?^l+lQo0=emZw1i4HV}T(mei{s=s}ZpdyZSq zNSy5-&c8L5mXXUh)D~`T7Y|*I|2Y;$vABco-hjVrWPx0CJY)R$Hq|LaCn0fMqod9~ z*fACv+p#&ZyR9dfV;3kknmOx_V}$D1xiO4oASdO~)l1lJk4bgm^}IFp41D4*?xq>l zV*NORKa=eKwxe+-8+N>m z#a)X?@Svr0|45fMbYhKu_X5!~C5e#M6fwI94m(SD{l zO_FKx7igVGM$K~Gvnab}qF6{AGW)ZFaCKBuz?S!F=FWGkxfJ(?m$LjqiHq53kCxgh zeZVy^8_~0z3Rx)%)hlo(b)ojeX*-s0h`MCv0yKh^_KYUq!37-7g^uHh(CCk;=kj=ZzxQWExnOh$GIU& z{x+lH&W#pTWpRaZW9;tKJ0!=}5a z@tD%$M~sS2`K$=^MW0MjCg_UEeAU8fgDp7DJpE^6wWw;mqBiFTUO~Dvow()P52Y2%g|h2=4A4+}$m>yA2M(g1fuByE}usyASR%_?f-;yX||= z`Tnr@(Q8(BPxsV)S6y`#8{}s>f-dg2B>r2}kt_k;a%U)SiOJmY>EPim# zqvEx++xc;lqj)7Bw~uThuXCRV;}qFPSufU$y-)^ed#+Ot{6kbOp^z7w(}}Dud9=u* zcM8`&-M!33I+^p+^GTX|1Lvm-^UoF>Y=x2zOd>j^ssE2M;ZXGRQfDonziC7d2+XI7 zFDsz2O9~x{HM$1p&Zm1#&d4O5z;(Ux;%bgo6NM<{Lp0Hwl4%>Ef6kJU^3I)^=BqfL zyP575UX0Pdz0O}li&SnoC;Tl%oO{m9;dqb172bkdp}&zxT1XZ{gEdakx>_|E3o0&< z4k7art`Sa$(w_)z$r)Fwiu(D{df7#B+;V!_`qRbueDvcLvbID_59G%==XNRT=6a`R zh^~1~$$pv|raD`qENCy^SiVeznd+=VE*(KKSd^t+w&%nK5Ch_1Ki|~17>CDGe`j6Y z$8jQHOjTg!%d3M7@tn4%*-ViQ#CXMCeAgKa_8zKrq!f)hp`{GEy-ETW5Ds^hsXp~7{uoh!j1hG#N5viWDE zCZ~tmAM0wlNLiZ&*>y8KmOT>)J`-0qo60h`ri$^jAm=}qA){(8PV@YKqXBCk*Zoq) zR&|nm*@`>CGb=YUD@)ZVPj%#Q{?27h8XUXEGqPt}z>1v1xdwCo?g$NdYYnz%^2#Dn zJCk*G;oH=K(|f=2^sYGHbQ(oPNjRjGe63aRjv8}kx)HEuvTGku{z1rnCa*Jp?b#lz z_7LcB%__TzHxP`!s_$b)|IH0Qwzm@T>=T%W=28wZ%otcTr(TSsIIoA z`)6~%P4G2yVfjZMzw#>6E0fg)g}>|(yHixvSF0gRo%9d6aVE|;yA>atXfj$EE%t;93xXKE zEYFeW<(#dFUdaEk+mg2-346xVy`mPoCX2p-AIWVzA!o7N@x6BW>K=%%6WlII%I}I% z!JoiAneM~D)h7CKG0tx8@(Yn2evcOMzbJq>S5_JoE8tcpQou##K&jWa7R=%QuGC+= z5Eqk_r$re}kYM(*drz#4x`nhd#Y@xzx?}eF?I|w6?XS$m%brLwgamrqa0<$Um8r4G zN<|#5*MJk)@PNc>OoaW&1NZJsX&5Y+rGsRGaM1fWASLcsiH(+@9AqcI_R1 zm~=+op%Jq0vZ!0iM^_Uido7<`ty<#QAL3pAS{WHlc{FiN#RI3TKFvhkBu3D>98dzX zct>Tr*8K0=JUW`|B334lPQriDr8oOUsX~9eY*hd-GBZ_`gW7a9jP^6~es$nelXplg zauqG%e2nCUnO1d<~;M%;wb(7KTSz4i|o#EcnJAK>#dl!OTa7O3*pj5npRTh#zXX}8bi-;@d(Ax*MXRe&XET} z3N4&^Q+-@h3o5!@B~3QQw&qr)oi$5_ik2bvQ8q_X+r7djQ;OO%H3a9Aq3!oqiJv9x z!IC&w9r&28{v=TJK&- zo5_e{snDaz%A7D51yB|li4$&AqXcf$!Tr95+M=9f=T{X;^dTt z0cZPpi)1Ki>3)I}M6`T~$;rX|8vBiT`yw2}Ch^6hpCSQ2Dtw1B&OKSu1E*xns%pTi< zKL`fHdNVf)5-uL#wc9u2D$j6hw(lY3HV}r4`R2^;Xs@K}r{>@LHCF5X?4`gP;LH5! zs3qpB=Q$Cl=V-s!S?>upsbDsf@HQaWp z8!C^XD_Z%aaIbddD{r;kaI@)%kH4;65R^iXr>ramQYkV_*D^BF=n7ov-IdcH{cZG0 zfEYrIE?@xEM!G=$HHpM9r$*o-NdqdKGs*e-?GXDDOYqmt?@Y8O@=d8%>#?P}LO997 z+uPp~=%*?3?jRCO6A>KNk#{n8Ud21*uwTmmWC6~lpD$S*kZ4T@u7<=g?TjhowmUI1 zKS$DME_nhUK6x=YP@KhAm+P`V^o6(T6;&SPy>GcSIXgwpf%a@4!K6&3Ip76W8z~Wh|8{bXBz?ML|9u4O2f&bu(1(#CPfotO%{H? zP8Q9nPI^sDcYY4_xHMGr9gx=35oc>f7%_SGR1tIeosLwcjA#V2D<24x7MCm@$_MMy z<@wA`5)(~fn8Qfl2R|GhPL#)HV=HVsIWDL2E{vXIEnQs(#6HUeZP&);0Gi`17 zy;0~D%0?SmY`Ob0xnbcR-L4D51HIjgEF|fgJG3Hbl2n+9qrNO;e^p^Q5`5qcvpLY!{8{G%*SUez_6FtEN`L_n^^$h3i=pWcNPsZ!>` zGT~v^Rw%-)nflrO+(7x;S^7s0U~6)LJKr>&yPGJV?nbhUhC;&Aoz>9QO*gZi2eGBs zB?9F(sKfLSM(UXWYtwa<u7DcMdCT6YRl=i)7ZR<7yA)TuuJmaH4pi)~> zF^W&%4d3!4Z>HoMAK$GJ9`E=aLj1-Ah^dmEjp|@T(g#^C>*ZAq}eu1LJ_k+}etRmtQJt-+&7InvP9n!~_{fd3zACIUxELrPLp zA;}K~M+(twb_!!eamc(Rf7pTr0}kK>n-WQvxAmK|m4(Spz?#l)q8t2(<9~WfYwW!^!C!W7nCauPai=Q?GTq)bz{lJN6^4lhA``V4^HVFy!*7I=?oU(Mvse96Mf)^N@Zkm? zt*C~|2-vi7x8Xl)3TJcjXlfF*&C*a3RTC-7TNz9pK|fE#jmT3Ce+Ot9DhPXy9L_im zuJ1_%u6%X$Sh+tPE~Cw`D>eve34tp}fmSg|X4InA=eM9?MZwlL4?KWLl#r4UQZ0d$ zW}{U`9$DPETe5Hz3HZ2lQAp8oIwdy==x6g?SgqzviqXi5Sy2W$4NAkU7j~~P=S`AO z`12E&GLuZ-gH})=Qk&FLYVdfhbACQ{bZLo#RJ3yB*|yMR5#hV*L!c3i-IF%jI=5@L zo5%M~7i)7h<^)Tvi)<(o!%5R`Vp&=&h6cb(BOk-5n8E}`NQ&e3uOO#bB{)Puwo*^% zAN1NJ0D0RLc2>{o?3pQH5EW!*k!aRx8aSkIoCRI|^PiCKhaDdM$ z_G<3+m-!}?VI`ph^{g*l#ndeJ^{#PP;qJmwS^mVi0L-({sr#028(Tt1r`?Blyl`8> z(6U6uoszu^!^|H$L&aQfsV;o3#DjMOgZ%PC1<#mLW-Ns6d?F2}OL2Zv|{vniEX+YUzHjutJX zNIxG-#}ISf!FImXyun9WH{|W75xaRDN}FIEFu3{{oqvRAl4w<;FNhq6SD-B=M2nUl$aW8G$5u~O4izB$Q9p;#cV1q6mPE4=`(%MeS+PW---e^A4nGRFdWPL;Yuu+y z4~Jq(4NB-BJvYoZ?P}heMf#WGCcj6Iwup7y)fgahwYMlIRB}=(p z@K_<+r>tg?T%w3Jb|?nix%8lhSTi$J|6o(;680baiHk8~H54qRMfq4%vxu=qk(w3x z0_Em3)8F%Ejj`}8(Vn!6=Jmxdf8Ak1%#X_7{pkqs-D=7gvgrV|5OWwc;B7zGLNO#T z@c7C>k+fA>ryC9U%f(h5n3%1u$ZTxoF=nK%mS>q~<_3%9NNp)iDX*lip+#gYmOak0 zW5qwB;ZH=9{7%Mc%3kM|K>jV{$cQ?XX?xYRSbipyv_WG?TrR&@@47m&#d?C@Sc znzF+!nXtAK?;I4ZY7dB?2Gt>4J$)L8dyVJ~g=33)PBXyP;Oq03N`G)Qv}+?P_8K?a zl=cG!l@0Km5yj~mwS6fxDU2GWJdw0bGA38mznXC-p)OZ}A2! zxneG#CjFQ_K>+QxPIc$G#zo|u zmk79QnM4bvba$mxL$I*l)%Ebz7LP^Nf=*y>Zixm;DJ#;)uf1%38=f2}&phqMy<@W) zTc@&&JS@c;Nz|!M6vqmEiDZs{Mk5R@(@VE9V#RXWI7Nt2y{+TcQt zoO}r8y}Wd;GF4Dmy~it9j4YZ+NY?Dj0|KkrO1@-gm~%+!#Dp^C9hGEnp*}I*b%u6{ zBx>q1?ia)nuh|AhV?gej=wK(&3j9TLC<~wjpRRFx?edSJJkM9QtR>lJbd(?CsZuCE_WrH#$Wq*E9 z2%8!~vPa}&z$lh9&84gCDXwkd{-bEduh?jkg))Yz^TX_kg0;OZ`fnFM&;OV%_rjIE z$jSbVJj?I|7CH1cv;=vGvDe(>((6xOk&qP_7?|rc;tu8>%SH~Yazm>KsikUQa4^;E^DKK~q)z){tBwI8-Sl65oTJ(!E!UJdLD_Yff`cQjGBVIF>uxBC4Xla9eCC>QvS<)Z3ogec8 z(g2ba^wp`RNo$98W(JbaC|?~zGM-!O%({cyvl{&QUt<|crbE4nxpHs8A^x2rYq~>6 z0PEM7SD6Dw14$pxg9|c_6Y~)x5@TNX&h-xoUC2Z+_GSqx<_kr%DvIYQScU=G9 zykMg#1U|*{eQ5y{_4)3a9WSJ_E|KdquhaG$l-)vUQs+^H^ZuXnh3nYUc|YD(AMAx5 z0BW_mxx>{Z;qnA~CiQ-$m9JQ{8{yp*z#%VJ^&=p*S_i!0M!9&iE5kQN${{wy!-WE} zlpe7Vnw>x_^c5t1vom2Hs9r#HvVWlsc`GOGmyK`t0O^4Ah^PG;>4?n%LS5KmycI?x zBh*^k*Z$$DwSpJqvn`9@VNY<%?+!5=J9-P7jLKJO=gZ7DZAQwPfR9&_$30nys()xm zZwGeJD{PT5{y8W+5p1ll(Zmb2QBSNyM_czjPWK9ZBQ4(;bR-ZfgMY|j#4tgb1b+JI zc`j4RXiU*QZ$xaUM>wKmi@)CH)brIjK#yQAQ<(D{i6DmfaI*$wxk*mG_qi4V7J9qB z4r6ad5aD+$Iq_nMpkunXuVs2w%^W@s|mYjBaZ7AY;nRwWSeG$G!^ zW;diJw-P~|9{v`udm%$+JembAO4ff@Bz)pLx*;VtLh0ZQk-sgd(xU$T0En}KaKCSP zN7@oW{p|w?_QJrQVS|-({Ma&ft>||vh(_vKGRr8H19LiCIcM6ZU_MmS{=5xW{~;Pn zoOZTPORoOMT%vl%VyFS5o#H=zVN;^2wq?kCHPxnT0FYYR= zuobQzX3jAW1z^-A=8BqIFYunbp8#GH{MzlU@lA;xtL;4lo1VDyvZo%J>cNx+yzG@e z)Rp|y+KFbeHvAKixdk^@!XX);i=2jH8DLMJS*A;-?Hi5$ZPQGQ0yW0sKvZ);Al+*liX97@mn@!cPsw0LY0=+za@&3QK*ytc@;))d{4`^PA|FIR`X0-@ z=ke&*Dme__@{uY=V+R~=xzDksm2!*QP{nahe#UOEGBszx(^q71fV+>bV#tPxY`=#N1mh zSoX?{q&Qf3xq*5wWazH+-a8{GbNvr%?>_hE+&rN>h+AOS3%a|R!;Yi?q#W081(-)2 zlz-rI(Y`6ChWh?i6#g6^>69OKyFnD7tVr}><|JXR?e#V0ucT-Pzweihe3QF3$%eMB zF0Ka|Ee{7K<40lRrH-6KHC+g-jwYp?&gx_KuT?02XK}XmNb;PuCetr|V9kLLgXE5b z{YAJ^|NOGaT9cTVJd2su-RQNYBV^3IKs&e#1I^g#Rr4^#WUs@gBr*8*tZx_(er0vo zfoh+48#~3vbd-xN1lKw46CC@@MuqsdgB{{7nB#}nX6L_U>Bf8z+B7PTV^x&=i0oNa zZL!T}Lke|hr}s=7W&ktW)Mv+cW(wc>52E`KF|c|>89(xmM?QJRtI~kl2Bw`at5^z zwz(!EFl`c4t(q+@*^boa>dw&UYJaK%U9aG3zxhs__BH|V4f-e`yEoR#KV6SAl+U+c z&D{Uh&JBOlhUXRRN9u6vmN+SUkRix>#L|jLdK#Zk7O)L+iBF4Kh?Pb(0=`^KAz=#? z2@+1v>WVl>Ge9s*&&Vu`f~~Gs?t{TwLxCc1&!tgV+`PAvEZ;W5Z*e2uJ&D`1=8+2=V9j_`KJUjttpX=AiWFEBc~k6c5;CvN^`LdmV4 zq41X8Uq%z*gW3YKPhSaevA?`EF=P9Kj}JexOxK&!1#6=0fK^QF&X*3y41W;QX58L* z;iHrUK6A7yUrJyG5%l|whkBcw$-(zHoptV^nN2+G)eE6Sr@Ef#%fG7XJk&ee$Y*i* zRw$CasM!^EIx@#JSU;&aAoxMrlf6Yy2<3*HYkKiUGDaK1+QvpW&D)vlk)imGekz2a z<$koS_IguAdNNvo7LlNeZxZ!+9^BP%m(#IzyfjoIHGk_)sw14!)-)*G9wVxKu?bjUN(+Is+M(^;t?1#RWP|MdOf9QfD*t^Hpi{u%; z@KHAI&EEE$o)MU>S+ zb8<2p&hzq&jHKymur${bUn@)63nJlvZ%(j$B=Z=nvUS)&oLDCqE*hWZXxL_Z;<=ZM z#l!{C6W^_WxP5iPa0ya>p+7Zwq|cE~JH0f@GU?yHZS&A*7B?BIZhAZ{`yd|j(A?-l z%MTrCpjy!mca{6pV|vsEFB;iAM7ik~UUfF9m-M5~)9vBsNnE;|hv$K%flazxpChR1 zMdezj)srcV07s5(LZe?OgVU?V&H0>?^FApjMGpydkunHb5&c$fll2Fceh9nYG{>C00!>2;R}PE%F5Dum$}c0Rp9j(t(Sw{xQpKCF;FwJY5ALk#8WV?JI zI2|%){O$9I&=eO;yB&%^% z=Y4}VzyLwT{?B~kwW6)}7X*nQElTcxg-b_H;T!7fNiZrM33!eQDwDX$Ia(SCE9vX>{#-od|s4#maCw zyA|BF`lP6eC4%MsnSp&4lU!1jyab0!YTpJgvzckeRcNj@a_8y`_3p7&=M=F&Yb9ZY z!A<)_yn78f<$qzP^lO$eb_pb;vA1Akw9ubpW0aDY3(Z7x9&T>)+Ukl;LezM1vn6k$ zT2ybNu9C76BtK}vIXY@CT}sObhtS~xKoKgc*{& zJfWW_9*%+iCe%Alcam#u1cDPAo8O(2x8Tmq^comU?o#C<`9^CeJ5AIC+;h&9R7yBy zMosvmls%g!x9buxLlWT6LM)p)c>o5XD_i@`zSm=3mW4jM3Bt+A|}gkU~*VPB+u%1-A!UCK#v}3ZnvEIk?#__T7z4 zKB}vP*>{cS4i#djmoS9u+p=fp`b+$mLz$hiPe>s zNaMF8>uEdSa*ZCtssY(-(w1TojzhNzk8=x}xhU>}HQ*(0*5ebjC5C9KjRH@WG?Z^SdLxaWLlPus9j35? zWPP%#kvl<7zr|bNdM%}n#tzZz%m6MJN==^)yHkU9J3+g#&nb`V_CNG~-KfT&jht3- zJK7$ZmfxU-W&Hc?`FwLss!hsjOpP|lxtzLtPlZPn-zTwyjZ&GdOcmqYwA6l2Lu-Oy zqx%eoJ)+o0^lX! zB-!l?tcGBbj<{!QB~+A~JSEgr@-o9d=ez?@;KI4q7(Y-rsTBqF?=#2}%W%6dR zHpMaPb%2eac7>4W-WK-od#uXm6E8I9a&xag>b9!?*o}+XXJMI+5fZ*inS+Yx;s1~5^?aGDf zpqD1Z{<*r{>MVf2D=iVAlHDas_;c0V5Bne=%IZ{*i-NXqsRX3Nh+2Kfl07y_ER5v@wwoAGKd>*&$b|iG)Xrg0~{snDzG{ zW8cKWm#DXjSh+_pUxAEP4Q6?9nFNi_tNo!a=PAxF6s%iOH}%kn?Cc()$E;=-_cZ^P z2I)K6S{ZwvitOHLs>slt)UT8jxcE?36M?QlG?l+HT>ykM@F^v@*VTZU?ql*7gv<;?Hz z$wCgLB290+W;#u9`;uJQGr_x#F65SP?LURNd_T*OR~Tr|OwwFh_9y#QlxRo?p69@j zH`)ApZWtP)9~@h!jXxBiyU+kWDG}vUl+9k893hmO2TMMsTjTpW=`F~lj_QYP z(5SB^Yz3l%$9WwQEmudJuy_IpXwxYz>EpoNNm9YC)w{|J*kygb!tWB7*Mw zTBmbGVQJ#>F1y;38gOMD>GuaV$^W^$`n0|8afeblbST84HZ}cE7NGJ0(^N8$yWS1! zss{LY)&r?FLxtIP{_0rF!@fR%gc;c2LcsANn$X<9l1=krVTvs1J$W|u9_eOK98z$f_dudq& z{o}^(4v(e(bd`J(1oL0Rk!kA{I-Q?u^>yCEAF?+hKcF$iq`dz)Ip1{j4TmK0+`O&yoS0``SLH?9J!U*yW*(TlKiStOU&O!#b|ailS;XCq~Sb| z>^dTMq>LxF;RQDfSxVwBXKBz$rJuC?@;b-BK7tL|iAa-=2!26Njwz3a1Oi*p^L5zo z1*TA`E$a58%&RQ4Du}5pijJ;8&Bjdlac!!eSU49X$Xq`hL@W|`8d^vG*z&t=7vC6t z868URtuG2unNceFu(TGEYpc6y&oo+sUv;rK-*~#l`QP^fv&WUKuAscMsq&u4kFTDJ zVpS-D6DvVkW2}PhUIsOKOi4{`tR_hhfxsI2&9iIj=v+KoWHW#NMQ9Ux?k5gaZPsOy zWozb}^~@Li>bJjSQlolWTJdMrKcVCqOc#y}4MTzjA7}6>eC$&5ePNW;53vI}Ltvim zXnV((I*7g8>uG8a>_BJg?Mhmryte#^iaSAS(yw~)9c}*PMq+&hE$R1|hj`Avdb=() zQQ>t=l8%8BtnXhH%BfWFrDp;MVepn6@T}{iz%Ivsak1Ho`v*ms&z2Ax1~=uzfBK$x z)h<(Qjk;lBGkjL2n*uwb>{+=<)*;KSiRt0nCMG>0AzRk!WTq58RcGpEG4O#irmV;| zR`CXLMGfGzI#X@Un^@w%GE?nho$5pY98*9PZ*%iCbd_=ab?(vg@04qZnV6g3@>;G|#p*@#EuWW#8-*cIG5ZhPYfNi*JioR1QBN z&zLLqQeZ98n)GN|by^n?u&P+r&sy0^&g<=33qov1J2NA23|)P2r0ZH~fTBI~U%CM# z7E@xMMa*hXPh@*NQ=M{t#zN(2FhNaa6H4LA=D80td!Z}WpCBZcCOB2`J-d!Qo=j|U zoDPQsN&T!TprC}J(^u0)0ui=PH6BM?l93mquDGJPl97Y&y>#C1j3Jb9^Kuj4cPP4E zRU_nrBlK-7p<={3L45*MMH5P(&Pe(L5oQNFIldGvl(bv*-?jusZx3zFsW)>5kk^GF z4CU@<=7u(Pp;Q1C2A3uQj%J?9ZnQOnkuqej+_Exz_At7_x;hcATE|;vT{WVDgui3s z#!xa{n`^4f5+0&q3(2cMrwaVsXb~b%H;E(g)4B*cgUzu*H4ep+)y!CHjtvfg)?m!5 z>2;67``F?4@5lZ9qCvcQ#NJecW5}m~Y>w~owbj|6UyOI6*9{+?I=dp(0!Dg@bP4%qZmX2f@pT6G@WT%%jBWo-ZG1dFDI9v1G}_HO8$^YlwVyn(YfG^6B+j# z%a{$kt$uJ=M2CRjSI9ZOv zLmPq;>S-E{D2MOom(I1=6-D!)>ZYX7>H1(iTUqCLrm*&r5Ct7q?DsT|M;Hx!#xIuN zGl~gf;VfTwj)Zc(cyYM3Qrc|<@5m4-N^kne^L?Xw6*(0fe=?Q}|N0-_1tg|)-D-~g zUE`@sVCeKo0UE}lbs-lJjU2+ZZ+FHR%P#ft+cKMMm2i}tXj~(RiHI_C?wl=tVxX7f z_D05OvR20ife3HaE1`)D(QxpS*1Zm#V39*^ZXK&@<6EEq9}30t(y3~Fa~r)VL5)(R z3{j`NQiX$!Jg*_xfB=hXtNDaCT9lT|U&6RMa)3smg60cD&{<)43IptTmRK|XXVPP5 z6SKu1VCzjFqL*N0VJy{amw`gpk8~{-KlDYVYoD-xKbM;SXs{)cbLfXvt)c`rzbUCN zucp>Fd#rJ^rx3boF_xJuSkJ!PS3fyuJVm64Htb*=5(26(fOn7?KyHO+*A(bAnBK;f zHON99t_G)bxl35AJePcbifG~h_Ndfl;f9Cc0jqQak}E%QU=xjT2TL%LoTMLULhrF` zug&Sv2!od;(<;60uq1$b&@PfLCD^utRj;WPKp}DZsd<*%u+Se0 zrr()ze3=dZ-BG>xk4&PbwaxUK7R`ILtA4`YEWQbBM~hyb8)f=AXH}Z4pr5OYbxWHs z67DsN2{V&5A^-O-s4B6$o7=>ieBtk3GF+6=L2v$lAAtS8 zdz?xBx5ibxU#Jf9PzU^s9&Fgp!`3!ih5c8;ruXEi#k3iEtu;I!%?%RE-`*u8(LXfN zb)6dg`$T?U!g-trlr1LA##87OFpT_wbofeAD|Eu?s>%M}4g?kK&Y8cu=*Nrv?GC6G z-K_$2x!!8Si2nVNz0{{IsFfi#(`!6l$*pItXrgYAQ`D7kUUl9+IO-!A6zw|A{rBPj zI0I_mhX&>VXz+~wp;&ymvQYUEM4$WqS)wG@r~t*-t0hfaVV_f2isKijV%*V#*5 zImMK>u{dGJKNZ$WyP0d5^rmdPlw0jW3%Lx%PmoK8T-fRRE(~Mczx&O!8B*G>D!KUIN0H53IPkqsOboesDOLp;@HCQvKGWAARXASd&FU`}g% z9bRzeXQ<8G@6s8;Q=f90ac}fmPuM~64NzJgE`K~T)LfA|=<<;z4?U=D$+c2Dc~&1K^Y}y;V3>*)DZja<{o!n=VdNSgqEFqHlVS zOsVbTLB?lA{OG%e8@zypsB|QXcrc^Y_eE zcQZXIOqI^}U0Jcbd>zLmq0TAejpK1~+=)S{xnyJJgWuc5X!( zIJ>8-gJreL>s|NZ>6%7&zGk{hSR{RMMxwdl)l&asGrDpA76)_)Z1 zdaM+$FzTy_?icz}!HnnHo#(giW&MYuo%E;|Y}! zWIR7`tXs7yp5v5ILqh+2m(}BV9tD{l)^j09;MALo*5lxdW?)nt3a4n zu)KGWQ47q>nlSlkS+vM=Wh~*3>}_&@d%XCwr8xB3?E~QX-kz)50nSW%*QW7??VqjqTl8S2q?m1`W$l%_R1@cRZ*&~kK6XQq zc{Ve~rixF1U2#g5;$y^yvK)?F7`HIY@H{3>;3j9%Y?2vspzh}t)%&%dgb8OG{K#O| zaLA%rUmLEP*Oxt?&D?=G$nksKc02Jg<^1|HeJloD{zV$3L=H%AUUarH-j}`!LfU$+ zg}=T~QZWm+#3lvlx(Hqy&gD#FPgyt()nY`jeWtcP9;KUyS2DBK^VY#N-UiOLw}-pP z7X#zxSO5i2{XP$Gug^e_&wDIvPxOo%pdsWs4#lPCSL7&|0JS-4%*~r?!teolzki6C z4-^uMWYQ#sH`PaD1jt)utfZKW;PIm3K7{Phirx(WapBO?%*K0$ZyUr3;kkt&FGJ4v zk>OUJ0a=~=mH%98Goy_pIwF2d)y`@5g;#4nKVAjyTPNmHojHuDP^@2gmO7ofa+qP< zLhcb`WDLHJ9o+JusUy<$6xit-sk6!k4vX)^cseEMdrnyAWCd^6<>=8VGH;ySA&39G zq0*zA(PwB=NDNd7{6!eWNfU}nT{Sbx~CY|?CE`ek?HRXIK(bSK}J1IjlP zCBmJ_Q$P$y)xkHwV~wXZBjTAi#KXyp6t}dUGoA5*rAQQ3>K1v8v(}#cYP~CGHiQ1r z^T8`Tme|&(A=XvN+i>gwB;l=XYQf-egqNzF*|$gQhxHfQ-=cg#PX>-sMKatvl$`9@ z+E}IKxBL&{jmln*U-~>)@=UNjXl7W1*Y0+f4p{LP8uXu%h|RUvP|SBUU1UD>y>^VH zw?k)1Z{W+0uJC2!WmM+^Ew(iWNp$%`o zoP_m7c~_Afn5lS^;E423 zn4*{U+GR#6Z69skbrk<9bD%xqZ)ZO{iSMK14e~7uUao({dRqy1IiIqJ?sC4`O=HDb zK|T=;!y&Dfj_iHE)?KjS81Fz6Sje3w$(t@TA<<*iEN|dsSvo~CK72hxzLirS54f02 z^-Rgjf2t+~R~mi|BYzp2C#j}c{r#bDBS&ZbnuEeg7+M>27>WOK7U%md`@8e?6=_Z0 z>urLkSw~=0C!b_F!mq#+F>3Hmgb~t2=9v3txGM!U@>X!5?RJyhkFva0Q|sr+5i^N_ zCLnWxoKz{gLblshPl+||k~eKExd&_BxQV{ttV9`B9GI7xURi&vd4r`Qd#e{26})ev z*~y3{pfQu+mj`oW^6J1bWdBKfZFB;rQ0@E(kZO8LmgNGKP4P3s2I_EeIsvD^iqRss z+0`8P`OUhpLpeka^sM=N82BanKF+>aar@}-w&g0l97+Wdm`OssL8NdRMBL|L{9C;ZauR}s10^w`b%5yQh576Lb zW(>?(_h2#Y&Zw`$VLZ*7s&6jL(OFArYBR7SSsR?`cZFY#)kVVWy_~!D9NU~5_T9b! zKe)wG%sUc{!t~c#y(rR=887tR&w`x|h|k|SBT{^L#|~$eo!#D(Qsy{$!zfpoH>{&W zr=84vpk0ckG`NXja|rMz**eFXJW~u+fOm0VDc*o9e=Vi?g)kLV3`fm88UY`rKhBpL zPZwh+kB6NTdP&m2Z|i271K)Ojx3oVaFX+~6jYF8Rje05(70vUu_r50;k1OeTcsprW zpyoO@;~p)J8g+ICEhhxYE3~}8cw4#!7N!p%pP|Iyn!-Zr}MRNJhI|QA&-l=v%be6Z`3oLlN{&2d$<(pA`g91gC z6Yg}sIN(>lBk~E-kzX1ae$0hat1A&_)a(voWrdPuy3!fSp*x|gEs2X?-NVr>5rlDj z>`du5#mIApEyIb?bChA>5$tRFO^x!aEjdCtXSMQp8$$>e`2|XEq5H&SObad8^iEr) zxKIW*lZQ?pEFIpbOfYm2{db%XdEB8V29*0Z7)}vLc`L0jHLvq3N(?n z)+w25QuyN*G{^DF4$;^I9J=93kkrbe6Plle)~i-Sf~ zdgY`vfvIVKqqYdmN4XkfTLy)oS|=>lAceTNW_EMhO!GY@Qxd$?NaKzA0}{Oz;Na`S zlon>u&l>d~aar%$M)Ar=Hxd#rCMZ80ORCdd6S>HO6x zq^ofXi-5Fke;^|#V?fF3Z-(fx3R?ax%p@cS8qm9Xq;WoW#T3@W-&&(_mQzhcChU3G zZhS|m>Me9r`z>+pP``raMTpuXC@=CUI?}$v@!@mLh#b zfsQpCrlk?;=D4cXfWB}NPuM=IOZ{%$+CaI${){hio0aDK_o6t8y+%`nzvs%wO5`9G z3Jc9}oSqCrkH8}Eyj5UmUk$}5TfxQDwCBFjR^3HpTntEF zq4YPgKBmh}lMj}}Kq|A7l@D2zcXxk5(lq2vUrjLAL&yo=qOm%wqJwgx5 z{=&wo$GmG4q&+D51VB*V<=KNbaaMy&0^q`UB>$x_n2_mD&RCVp%G}8>GnePJ&y6HW z{(q=?%cwY>@LM+o3m)7dxZB_!f_rfHfx+DeNrDA;XCS!i;2PW^xVyW%U4H*_&b{ZZ zHD7wxNLN>Pt*W=4z4!VE|F>q3Y=eNvMgzqmpOvuYa-yxzeqmRy2Y;BAqsKvZ^u?25>)04PMC`HpCO?`@_*u?Bss&02=M?! z(CNRGh9dswPKSqLU1uYE5reJ&iQ~saxXYaDh~-ioK>GIT-=~9Sz8qC-S+Txv*y8Fy zpFTu>JLW}oLVo_(qJg6RwR^p$+dKz5VY+sMK_fCkq_`g;v+711Ntt#Yjt^fY`htfh z`Sk28`dR~)$G76s?Y360D`E#G9Q=&iKo(s)eLMX-)oid&_ z;0JquX;GXC@y`;rhP!>>whzIt;N^y3ord_fhcwMxnD` z&y9!iZ?zX%3`pAF?}^wpHsw-@Z5HxNOO1M~AlH7rcM$#NF_U|;sH@f z*gJu-b39-Cdu%RE?tk8IKqY`e3xoy6eM(U_hdRG)S=HTFap# zAtGnYI5gq(Rgk1@mIFMBWD5L1F7y(|(CkVQAV|8qTk((CNPs@9VLO*loZ;vd1h?0(|}}+(ap=eAc%#qg2EH#f&XZt``Ckt=`Z#?Yp@{|EAI= zk~Lkf=)~~*lMd~L*q2a38aff`5Qa_uxX>n7ggcY7sR}PArDxJ0)S{AxJg-5%in0qz zc$%@5r>Vej<_8lLEdc1JCwNty^+q@Vp?2fEq2H^1qFAA<0Uv`!@OxoNn7rWueQD$5 zfXEN*e$xHPDwurt<(=#aqCEkP&NpSBIQrVa(mYhtvl_){>`@ONDiy8Qs8a)jg&kka za-dZDsJT?O`HgcRTgo6~1D(ymE_ncz3h%+tlDX+UXiV%uG zwVtzWmU0V!c!3PlqX$Fxi!kSdA4tZc>(r@xu!%H9!ykA0U^3`%5MQU&6<^B@;D~7S zh9k%NmayBDA!Sl8yp4mE>wJoh`yr0TYL2(Yb?;;Z?uRG_>EZcskpSNk8Ld8|Cfenh zAhb^sX-UXzVye^#FVAR5lx*AC1R7r^)6t$u-mo&3VX!;w>&BuPRU$q*;xc~X%b+z| zZJW$n{9#oDj!+Kz9Kh;Y<`Y)liNGFwaaVJuxat}$YEy4&$O&SkXWcUUzA>3k%*ueT z{k#=5(!3Fn>_MqCT=;ME;%TH9q=U%V6d9REX}7;tE|lFO3hHftBD`5%Ld^06Cn=pN zkL%)VA3<~kM+guJ#m8OxIxt?Ac)Ct?cO!U?nrodkT;8(6;fVhhSUEg4Qab}r0q*xe z)~n4E$&?++_LHd)+Wur09f#eQp~iduK0N4}9roCoXvOY#3yZ-ewp3&^3)M<{uY^;v zhv_AuKG=uVvyrVmJ&!9g;$2a6K6&&t4-1n|H(gBCbgXqlf6kG6Ej7aX+<^9wR)tX| zwBoaK3_9$;6AM8AhW2C6*4xTJ#Z4W}3Zbu6Fn=-L0^_)}r*|&yC(ABj{^U8&;P_>} zQWct!DZ0~(pMAXL4bnus8dlpAS7kU~z2FpN1x+KJfvpd@AAU4D*`zeSO7wXS4`*GM zDBhRUqnIb2!liR^!p4xut1Jp&oO)NTV(EMZVk65jH-By#`TUO0_Oc zJdPD3S-;Xwsx3SXZidaDSx?6k9g7AAx%FfH1lP5r3csT9DQL}k`y?=_^vrB>KO`hn>Y$}du-T`Hd=-xx&geZSDboYEZCTXYtqk;O zprp=FHpxQ3%Al5 zbU=;FzZ!W21K6?Q-!iT-$}M4pEr={s>EXe9c2C{!mzPfX<9-rH@NB5Xla zO@S6B_ow9BNg7_Dw|9IuunS~?deuAb8WQ|nNNB67L_g9Q`D)R&;>pkRr&)s{Hsx-Q zG5k)6R;S!nsNU`U_QT%@BXl9smaBIXv1Id`n+5@|gAltYLYkUCE=`fsf&XcR3Uj+8BTs@7^J<)6Hvlw@%TV8zGT2>qj z>q#L{rO})Af|urp_dolps8wl#mXES z##D3m-G=)g*%f-3jFFI%5)^KhE=Ly>&ZYu@!1$48K2Ek~xhgIB^e6%1V5~mhR%D3@ zaT-ulXz8)su?}tHx%WFNeet>~Y>R}l{bPDXF+^$|&BN5zMzzJcv)@IzKj~NN9LhMs zR0_VhdTT`FB0}-s8=i40^R~6<=w#)UQIM^rlF+c0?iVtV;)K$Zh+H^4){5zd>%Cdg zhI7TrP#XiizeIbB8Zj?Io|DI%eaYFhZr`FJX>Tv?YrgEn%Qm`apwQlJraq=8t0QK` z`C&MSzHB`)()D5{1J^f5{o_TJzWV4>)ruVNyc^q}AA@2@f?z?M+mqC$e1lp4SnA2mvg#iZS-6DpGBP7< zEp#TO_3-7iXKo5EzTiH@W?*D+E7?hI$!h!rE1pbErs}QS@1e7@$p7k?CL)HcO5UpW z2K9)B6uDD}SqHEqX2lH)&!gzAsB%N?Hx%SNa+@aKuj3t-W^U&h5~fMo6G*!i*XSt* zP3E;_jdS~?;wCI>AOT|GQVzSWAF%P<-L)Bp&c{5`4rjb!WA|nxkv6NlMQ{r?Ayck5uZ8+H%5s^^`A~u_)n@5fm~^}H-4V8rFJalVH?t+%W=Y^%$O?AvDi6 zS))?Ro+ zO?srbBaXYCM~HOqodkfOT3=xxrmWo}V+}+y>|ZZ@ghUL!jvfg@@66!COW}``k(tQ0 z!KY0zY7=zkzFB2cIq@_kcI7Z=+R3?I4fd{<>H(L%Csp;|vujmz|g<^4a$JjtuLvKOrSMcH;9-OH54UwgRuT4(jMMJc|E!=ZS}}D*wKXi(#PHkPY4Mruh06VSSA=f5nM85} zU(9DAATo??j}CHjrmW`l@%eulo=F`*AEA#X5_TEoO7ZKu zJoNs}Uog|TjnO6*^t!0k=@jhs-SaG<~9|1W>D7~a85+7n`vgSK#Z!B)>pd2)Dj zLBGHAns!bLWIwciVvzv6A!KG{#7y|d{)dG^Qog9($d^uvvAdU*lvaY0PQwYF@+h6L+riDZa zX8`9%826U7h@5^+O21GCyj^7hgS@-|aJW`I&zE=-e8?4I3;vhhcdvomrKu8gcyv#m zLaW%2jCMy}Dm3E}f_uFsLE}&>y~O`WM7fq|R+{K8^U`>J5>lh+58Iey)AVLy0nV|@ ztq-5Yt+{xGC+~|)NaafP=?kw+*{~<-6qfiX0mmnZ1JAVzfip%!aC38>;4iWSbfI6txbZ^ zbPzDfWen_NW${4f7P4@66Y-*$J=2-7z2u*c*V8(BnK;FvM%CnI%-w))mu-6Wo>R}6 z#zv}|^89Xx%>qg=Ivxt}x)7(mc=TG9?ob}?i_-sXEvD8FCTUKQUy6+%J^J5|7Y+P> zY=e-jWZFc9NMjaX7aE&GE7{xL;9xiYZ~DaycenD(`2d()%!H%@ST|S-5s!ZYnt5Cs zfq{V*4`+U^VjvG9q#F#%g={iK>s^iavKX1{S7RZ@e|Ay}&KCHY$De(r;pVnZ%Khx84gVvDz<^8K|I|#u`Q&Lm{DxI-?sX@Ym5vWpNyMd zsy6yMxOVVUgAIP8Tu{w4MOlNJnx>OF}C+|=KEUKHX)q)cC08{f`_Y-aVp zP1uv1H83POF`MCth;V4D(}x(S*FS!C&XQ3yp~0s~z{4xT@#4z3{xFsSmPxf>v79Tz zRHDEK%tj%^g%c)X{C zKY*?Fk2ys%zbkG^;!cl#u0h9gMuT!}S*&q67|LoWZ>$AlNl1FcbG__lecq?DRCfWV zv76fAkBJIf@xo(unHAl;?1d|Nh)>u+`hZfK)Qsp@aY6RdSEAfc$g}TDC6PJ>e{pMr z09}pC)PT!nyK!|T-<+n*j|oh~nP>87bJFEWQx0ix$dylz@>g}Guy zabU9{wzXcbb3bp_2pfSS&4%A2Ae1|8qFGVxu+)dogPRtrMDXe2nqs1zEE1ylB!p7J zYxPwHLM}pq@RgRIfpDRZ3_QhSp%Rpqn6M=D%1q`YQrG zDbEd3gTORJJ=GR2JA_=^Ov2a$QAi!k~#$sSn>BNt)4` z?q*~5j*^u-{LP781(o$DGq>Pq{iv~EX}En{%lPyZc8cAH-SI%+!8M!UFc~0ngM4LH zuFx|$O5$@w>>YhD)Kq!vJboTywxoQqd+jumsU8N44;w10VycycHAX|p*ZP7L8{Cq? zcPy4%-JL3gdaIAp|Gg(Q%6Dlqh8Fw9^NnHo;+*PbMG4h*tGD1tg+6Sq;0O#U{?eUG zelhHXKku|}w~PMvYdizpv5)Q}1Sns9Ia6FF`tApjJ0|-L0t^Y|MPgi7K)R+zQ9j>{!Y%JHo{V z^r3!Hm!ZnBKu6m3tx4^Ob^~5_$BD z8WZ?2tMGY9GH0Z!NDQAp9SApV$F(foMZ+})%GV%e7hQRgkp(R+K_HO&j&ul(&{U`{ z+g*RDF5FYQNGde5pax*|?g{O8--DW`hDhg1=dss%u0%V!2l(kO?o}Ndyj}uYvA8wB|cyRQU&jo7w=%Ry|9eqGXsCnRmLpP~{S*?f~%1S?}~tI2wp z=sR@oU+c2cPaZFC?=3aYZfOh+GJ_%Df9h)I5tnhL;O!+kDaH|TnmHEUP}QKi(kATt zz{h+nN|4E2mrP&3-3Hs5CzpNszG$9^j#iS>eiEj7wM6gNEpNqQFZ!?;S840o!|uOH zw-zw5%+Ifj%8rO^Qqj?ycaYT{D}AebT{d0*lw?<$lf0TV3Ob0zRn%O{#FO~y_;OF@ zQK%&ockbSLeGwa*nby~f)tSs4|A;LPHP1F>TI;i!3{Jft2L5h{>6P4jk=0wWIt|e_ z9P5+o+z1{FitBx(`qMB2)b|gL(lY^MhNGVrcBSJq;M1;&q*?#~9FImdAo5Uo{>9fn zaYyCqCT8OBC#j2&Y*9bSy_R9myCte5qa5?rpoXldxy6Qloa*E?N~j(>|1D8+H{w*O z9brwytKxS||82GD)!jRDwTq{8X|{mgvyO1(1rCkGMb1_iEBmJ)M>+w*g(f`6qLvtW z4I4NkZcSKul^f^Jd41`Jp(PAbEhT;Gmw-9K7<=WvNl*)$%ia9iXyzvO_jNeje=_92 z=VHdGdIQBtw$tsf{LWto=yXcUdCF(_R=b{=TX<_)i9zGL`OhkTI1tg4t|JDKvNWEM z7ORb8$P+Gu@6$wizn&|jO-MrK-;*Q!dAC*qQa20s^!8NA!!K+CXawRO(rAQE*%{it zGAhP@J@43d$Nq6Te#Q50djjOw>QFDY_Y`m@wXb z?Yd2Q-uJTx8iqZU^Qk7^_=xdeXD zugZ;5hb@BXN+z=o*G^idpL$w%fU}SjeVL)c>tP0c!yA+*Yh}~@d3(5#`N8seZ03|S zu}YYg1FjktR&;B?`<75^YnFT}4OFVMuN)b-X|zHfetb19SILR*kLcNSTPJy8u1jT0 zl4Ef1RLwqjBd;O3Ye9sjvckC}j~_JC;BM~zyDlvYd+^3q`nNMJnlXLk=8l5g49`e; z3QevO+~5WWQzTIUXnnWB>pATi;1Kbek(RHKw|ZeQ_q?{S?NMoxh&#PN$b*XcC0m}jPsHf5DB?jBU#cGX+hd^{w5fR$WKo1%MV%E6v z7}0ofR2|WakOQMLNTSZFB^6d&OJqbdw@pzu=0iVuqtlNsXy6ax-my#8yggO^^Fqt( z{};W#RrU>^a3FPuQ`?{Y_%*k)Pp{?v0t8w;d?H)(sOwF^dH*Rp=J`d4G7&zffu!d0 z#a|xDIlbav{lP&Epg3RLOeP!Zb7hCiXfeXZ4btDw&YYVV`nzLoV-q-?iA*Y}`vznV zXCIJtI)^^OpV+mNWp{XO1MWY)cvLe87L>_T=lbBcF5cuvv=NCrQ;XsAvV%uMGj5u% zTK1}O99i;C7-KGPsk)!2_okLEN>*@R`I5h%kLU#X0tf2?-uzToydx!|-Yfe;G~71c zA~RcOwh!xgmHi9I%I~>__E@Y2h1FI5I9F0^JMVW#^YZ}LjTd-u&-3|)Kg+I7Eux<+ z=#7?p261d7J-GiKc&T)Xr|w7%67adj&Ydas^qAr$D&FozgF)989*K{^gu5x4)_=N3&)Iiot3nT+K_KqiY5>)zHc`b}23?%u%nbjdK2VM?U^OJK z{b{qh{3)7l6sSCd@6C}H6nOTglv-}U@afIbnG&(xFCO;6msLmYv}q{8-8;%%{85$4 z2P1ww|98U*a##E<`El~}O!K87uk^1ibmuz(uM3i~`^b^Ryr49|c|KqB<$3QJ@rg#w z8P3VQd>@d*$vVbUgjOsOqHq3^;dYGbTi;#&r|V?qE_F3mC^gpa*sv<0gYqp%#c6|( zcIeL+ZOZ=<8+eBO9|Mv9LGaJVzx*!^!hdk{|9*LPN&Nl4aryVRvjczscsJzuzcKl5 zNSHAH)4l)i_dW+=<#=HsTFoqnnv-EMF7(uNsNOTYuF_$#)j0#j+>jD&fd}pCcr-x& zP3^_7J0k51YcJdiT_l6%*zg8UolQungT*ZmkH!h#j8r)Hm*JRLt4(ipy!4mr{Os}mOp}gm%{#NeWh;yPg2EcOLJ_!s5}76 zH>o4*VIwxZ4Mt&~v4aLzg@Ic0&=6PA5>m1lsX2KBR7Tu#8$HhE=A_3cEZz7Kh$pQ7 zqj}Y4Md*mo0T1<&mzfblGU~!pvCjBUJ2V;|ayb)=X(|Jv|L_ncfPM!8|`ne}D+#)<}Rr!NIGz-m_Z z_?K#c#&TKeLkXPbEqc4)z$$0p?TelV}H@p{_gy z;!_1tWo6|Bvi!Iup4hZs4dmqaCSyLQb?Qp%^=ZsbE;5G04(dERil9*AibHC-syUoS zcwb(b4Sv8*(5{vi(NYS8yI27ZCwU^u3%=!#Zw~tkxF6OuFlo(1v6R=jS{aX?HE^B} zKeThq$o$Y$d}-#nZcgk=s>Nz!{QoyQ;SU{Ox5lnd9%fTQ(rwfSEH?Ft%{)#=p#!mF z?8LOaVObeksuppVU*#X9s01A>#y{KXio7jkR&S&pE5p{c1#3oGkQb@9&i)G?PhU9q zQnOiH5`H!y*5hUwk|_eF{;tiSLHg0GQ8z8ItKfSP+9&YUZ4Oi zQkreu->ChYS1)OFpjyAIt@ay-U3s{RLZ~X6()wK1T4AD@lXpx1XxJ=yrAc>!7X1w~ z?O7;z`lvjkL>0f_?Uu@6+TRp+T~tw{3EyS*t*a%nM!H>@^(}nr^wS%S*RaJ!BJj!F z$_UGyTY$rUmQwTG`1TR^ieU9`$q$3Z^Tp}JvaG4}lEc=lrb+Y1v$D5(I(sis@DQ0b z@pNW{eoZhrqUN|?GuPQ#BID_u+$1z6IOpH=-if(Q%G?|a-TdXaz4FXVYf6V7X6~hk z#dB@Z3gP_lZa+4yotVZtUi_U9l_V+-sU=-9MmEQ7W)of%QdR?7Cre0+x=Wryme-Q7K=4&n zT-_0&6zgw(3EEks+`xZ9qFo)a%?JSnfbp6ob#9s76m8IVicxAF#;+E|o->-jCX4g%2 zT@v4SF^c$!SL8MUUskpjZCs!9dCs%u5mS@` zC3+a!08d?s+mR1xwYV(bq9mrP0a_(Q;ut2~i(j(?Qg6(Z&eoN6;kb}vvDs43rfL?J z?kkX_m_f%UzdVYySjiD4mhMl@4yU3^J66&Fy))%IU`^(S*3EG=W>jHhh97NyXBKoCkuVwB| zWkCuI=xv_48QmvOfskY~<(m89c;&tIF0;WmQ0|J??P11_59X!!F5RypCe{2ng@Hri zjN526oIewY&x7?$CtigP_$66O62D=-Yiw&&;yZoP9VWElZKAEMxd!y3#?aMuksF&e8gihd1aYVtavCYD z@u9G*2ghx&dW(7&Dkw~2WP{uF%ojcyXcbsRw$rX|yrMb5750qvaA~J(!ha-e%VNLl z1b}H+AjdUiWgCYUz2URQ3Ovq(-#+uQFb0r!*N&80_j)Ei1J~SXKXv&hmrx3W#&V4& z0exe_QkO5)6-0LwS1B_bfoK0s{sgo&ykROS+AOu!(C9RXCdBaPJFKw5FYz@?vV*Bw zbZiz0ub|Zw@UJHfjv`@#*DbD0QO-ytn*fdyVZx?$&J3-nJ&Y%@R?aFk?qi<^^J5PZ zSuf8jmW8?XL>R-?*{=8@B`m9IkH#81B>5SNvkF?B3J{#LaQ79th;+ zO+N?Q1=uhMB<^PG9P4JWaUJ9AN_m}_k2|+;4=)uDM4i8|@s>rzXMFuvd}3SAUM|T9 zG%6WtyLY$uMOR*pvWx!dYONayIOL*yj)rbDpk;&tRO?4u6u=F_iDfh;Y`Wu)z__>9 zqzU;KOTep^2x~*E)6^{%6D%Ws+U=ouGG1M=<{-RuT+_)5uZ`bQ-wfO^FZH3b;y!09 z`TIZ1>FA|i-#dOBKUr^BQ^vmeE={{J{oa(e#KD}{HJ5K$FLzmjh?h5&47KEwiTFbL zRYSiw`chAr-(Eg7Tqi}PmH(^x`Cb9^--z69QV`IA@V;lrd*R~J?M0do(!k~)x`DR; zDRGr*5^2a0;JcUiE&)CF`DPRKCLAo47w1YN0w|*XxPZ0Wc0cf{?mX=!7SM#=eCw2g?})Qy>O-R_fLsA7bwmBMD;EwJZ0qp(kypA-7E3f3U)($uKtD% zm3vQBs$pAe6o1tLVawvwRcBm`%+pvivX-!SZ{Rpk#vW(aP%=A$*1EQaLVJ89R(MRW38 z6}kvaz9baM7*M-zR@UC_Z7UeJ^At7Z_LmBjY-s=Gm4@Z>sw%CA>(EusBo6whcXDqs z+7Eej1oB(8KVc0HQG~D>dEti`!bt8&#>|l?OE0Rm3KzU zEhZBzs*L-Lr`7rwL;ucrxhTNk2292(G*mG}TsB^1brnbZ_Hs-zuBvh()2~hNUr_-u zuAE+WG}`V+J#Lv0N${)Rs;|-lni{{M8@;&TZ0;{Ngjg85g=SMyX$Mf2x_kP+AGvDv zW=kLfgY-s|EL{124=c~@&Z4}N%yVY%3oeU?ESEO*{NlNp@OIMl%?;}i2AW{K!a2^j zI}~a;_&Qvi@)a>J13xA^3MecwAWxb2P_v4Pi6SAqMGNYq{H54S`GjGn=~!IvP&BEA zqm)jKd3RWY%-)Mkt)2e#oientL!m9Z|50-!3LH93dD^Qi`3G_E+aH89@!!<_eqkes zk>@t~mj~l&{T*p(MElp+$?n~nOY+9ArCk!a#Y)N>U#uNNfVgqJ;JX)vDJ4xqZ~xOj;B^mRNnaQlFD~gSg|#Osh#hS#3dNZG32gQm-qx(e8W69|2EBFm|qb z(r&=h#9RKOx-)yM>r#4vjaJo;byom;(NJo$0U}408mD#AObp&>_r|Eryt4=+*aD>V zz}V);NVkl@zP^Ld$p7u~#D-*`g$*U5J?6=uR(W_9~R|m2?24hY_okcv;i_}X14k+ z0Txps*-xjiNl%1{C-NtQ13_w*KDNl@4xifm*S_aD=erl4MTA~g?);E?j6h?93I3oN zku_Ff`A~f;h>_gU)sHH7SI#;ISILVoQLRElQe%oFR2QJJw|u|9HCg8E0t14c8d$*F z)qJPSybnKv?M4fnffhtE1wMc_%zoj!*ipC)XpPT=@o-hxjL$kFu;zb*$46s3ue_x=bytE?$jceMwGhfq8bP&8bZMUO)2w_6BD z+KNs5xQPqE1fGHtlDxdQaT9+>M5nZ~us_wg*O`wGYjRZ-Q%QU?V5Ox(eCTul$iUWv2Y3q{$uEpsnJv{4YM9HF^%@1ece6a8BT`P;^fmCOw!D! zjtR%weGg%xr&Xh-i$-8K_9WI#5E<*d&zRLRfXuQm#rXK)YE6kT&P8E>TEq7s!ex3@ zVV?px>jbXN&lA`fgv}UjJ_3+Mlnmo=H3TB}IJIC4U+*JV2CLz8iQp_VbNBL!QCZ1H zGRueOKcgrmmi$4E?szjxDN&#bR`!7p(L>a(qfX0P+DMsBJa`<$2~NB-->QUO$TCQ7 ztx^#PE~J))hVwz_1KjL_eJ(H!rt#;i9BE(}>ecOL;v1gS#R3+lm1&+nes9_0w!-NQ zaX(*LwnWW8x_UfcjUdNKnKJ%GE5HU9M5$zN zeir#@a=0FNuJ@9{4#;p4&8+_XkAB?dJ?PWpgd%C&NY=A}#e7Am$R=6B8M7IC@Pu20 z41X+Cbng765A|5s(0u>zgn|tE))pECo`Z2>GFqr=oi|6eBw-x7gT=uuHRU(dqO7CN z9$8rWy*I>;k!Gokf{%(VZN1+ySm07g3l;SG6p6(lf`Z!od%UK0!UqDTeDQPx3K?EM zioi_pI*b^*NJ&#o?Pen3W$oMXw5uao)sXMl@9yv)cs$V`e=)2~XDrqJ;^&R~r)ev9 z_jBvvke^s23mixgZl;0lo|q+0?2}TrBp%A4xtWjYz;60YprMbgUwVTxxS(k2`LP^V z(*=Q|{4I_KG93v@F;Xtf)!hA^cK>`-^swC4 zA6Hhq)=a1r8^Z6@{lS{o@XeM{T>p8YeplMZv@_q24k0R2PBEldVa=;0CcV3rIk_!l zkN~pcIDBn>c9z~mSlQXOL>%D*B0#(_CE{G|QX?XGHDGTHw2wNI&D z`h743#hun6aUa|*I6h+>8*gNKPA8^KfzD-UlL40pWdRaQ&1cp5V=-*0%QIm%f;`pt zQdlLbiNzU&vSFw)@C~@3l9nC`bLP0_i>=-LWXTIHP83V3WnL8!{O(}?->+kEeobk6 z_BU2DO+HW2e4A$?un##!Z!F&+nsQceC|~#|-97y)ju(fXMK@KnETt;5sZ#V8{}w`D zX>~PMdGJ^L#3mj^QYFq#nD1#bCf1_=+Fz;TWytjXk!R+cPorY;#L#1P-+mEUIp_08 zczjtjcCmwB@`YBag+_x<=>*Y4&%P6ABPyrAWGErlo^sj!p-|KcmWnL>gWed58LFCD zSDb?TclIx{^SCkNAqPrHzz4=5Hxk(n8~i{5A!%RumT7VCzs%4AG(FChBYt9;ka&Ryzd5~9a# z#XI)%X}iYlfC~tB1EI-58F3wciOPA5b6CRt`Ih)xk^8GPmc)wV5v8v|VP_zX{NW*q z40LyU4K9VPU^IZin5Ew*rU9q5Uc5`Ehu7zu;h()Z<5lYf)^B>#6Y9pdEmdyKIRwMC zD-;^|&!;f7eF3SgDjk;()<&q#cnlW+WuLM_%aK3EYnrFmZ_iZTi~1H@n;QDcb%owX zWIjTxiOwZ980dvnigN*RibMZ9TI>|)=jkz$*c}XRYcNU#x=8iy-$VW;XFruP9U;lxo!6x zgH*F2;QX$MtB?A<78jh9q%otN3OwyGul~mtfa`IU#bKi`y4~`DX_ou@RmxiEyQ(xs zoc8our2^e6-JNCl;%@brkcj9`vz9sQ?}Cxcp*cF#ZROm#$XTd zx0D5JK}Ov!)32dc9-JwOz2`#B`j)v?p`+~WO$~iJ@+!L?Y~pD2q}`i3{v4xTf@hAQ z44P~vzVkP4uz$}lcXN9dcH!{%1o^Y=SD>AutmQm~r}JHbxNgTiHfF+{p1JKf1V7eD z%g((xP&U2%wS?w7mJz$L0gY7n2dn!WO=zxo^@mgK@c)uN2{4nXMC-bPe=Ep;p=E%L zxBbG+8oa*`Zu=ROn6H3&{9;wHAi8X7P(JH3(-qHH!g;?(8eKA^n%$bV-yOp5$AU`b zNVQG`q9>Bg-FVz3zkl&`b|*i=|25P`K|Wn6&(F})^+i#Ug~nVQA*RZ?QenFx{(i^V zT8X?O-{ftq5tOmnLf+uWs)$g5?I^DN08c(SdCYfe@HDCFl9}Z<-!q6q_-QlgnIxRn zeP<>uL>oH+l9ey^#%^u%KCTcET!a;fi?RNVP##Ln9TXFk}X+dnDG< zXJXW5XBa>7y!9N$Gc3IMz0juVMiLmY?LEpQ?(ff_gVt~rUTz#}N|QuIei9};IB~%W zo@`7eE%9%C9(H3t!{*UpaO%kezI7ym{U7V=Hkaep_*1_Glu(jBbx5Qh*`!o&I=X-0 zV23jZ5*RsNP7U^d9m#LyC|IK7^UmdcF|_^F{h+o0gOmPPYi~Uc=}^M7hFjVdJ}?kW z^_}uJjrSiDQ1EM)&>l6hI9nC+cYHU`YO1UsQC)yCZ(S0#b3C=tSngyAtzDuCt&qmp z)2?)o)gwu3UtigGMJ#w7d-NkWoIOp|jY^H3h7R(VaX&(t?ybU&Zjp8UUIPi3s@7M= zT+7^3ZnA?yg7N_62Xjr79`%Z*r@K`dUnhGJiE(B%>FqtjRFlPOB7tYm=Eq~9L{IP* z-}5J^iKacoeYyFR{~jGoH@z>teMKJP=C(%g;a@6CunchLtnw3XIu_{iXl|yR@$B!$ zGb!*t%lyv%h_ZIpH9QklMS-(p=VEe_tPuMoBCh+9BXw{;cA}sM6B||g>{f!MFod@I!2%nb@ZSv8&mf2f)4;9%;6%T&Xur9fN$@=mVR#Caob{?C?3%gk4WOQH)*xkB z`4aumK|WZ#H+P}T*sH8msJawBLh6pW{76cJQwkeall3hx!KT7g#Cz#zH5tMh!R z<>?N_`TRA|PGi?=0pF7+=q573Uh?kN9BBa%O9OWH+rPcqN%E#$Lvv)FY-gU^piE-Y zQFc}kDozDBO9410IPO3XA`jJu8)gVPvRSjWOpwx^YKO&duLDgE7gtD>&}WR+Ew3}M zT;K5c{KuI$N9FCo>#4nXt15~_T!tTm0~rw6X}zp24}O^O?!x%u4v|DjB#id>xR}9Z zv*Okon$X~*cux~BqZzBkrcHgjRUZqf;v9{Ng8>%WEZvkfn9(6~_A1${N`t4yQTdi< z*MAi`F80i~{-SfSqTrfYWI0LVWz_1Ks3>>zkvffZXv7!Wii_Pv8taBPuZ9^ZMzM@P zMWRh;&+*X*fHo4fa1ci!_}3QTG|2{uZHcpLrwElwk2`Sx-p}Tth>=t_Dy!Em%GqeG z$qU=61|9eEMdr*UdzgGL-{Ht9wGYIG6MDAZe_S|2pIDzL;osRDbM6vFQD>dLWe%rU z$C?`<58#$^zUZ=>t~=aR*`C=qj~gT32L9v)TbFox8)t2fKK!zXBM9JgWglQ}EZA*o zu5(hj+R0hC+ukPD?_j#nA1$#|QCVmcm}L;r=kad}&iGLo{SYBT^VCci|Ml!B#ZJ;$ zpCmPo^tL{_nYAG_uu(!m*QSj5WQd@vcxyxb@CDweZ6$H9ln>`@w4(1lTUBiYp~ZXC zR5j+rwi?QnLvOmkz9KyM)5ZdZEfIy=hR>|gkB}UCHf;5JADD)gNrV4xz#GkRPN_9o zz-PYPs8lo%~>QgZvP@Q z6dzl!1jg_+tDn_xx4>}_M7L7eWN0IFTWA7*gP*mpLvQ zVbDFxRfn?GQ@li=qLyEeh(0Ky-)z#p?~B)oUx@|M3U8hXGi)Yj1S1bxAyMylE-pTo z?*WitUYiU{%-)qOJC3+B)|y`IOJcJw-E8y6Zt#FmEjDastv^!Sf|8{-HYIa?2H2hX z;TvHVC%B86+l2#e3;5($HD(c1v?_hGtMxJt6rMhAN+xeADg7C2K{p+erBiaa*{8#) za1TK#!X+&6o8ZXLYVg*YP;o}pC4I*ya~+Oh=(j$-r+H`E@Ws(13WMdoEMDia>*@&b zh`UQaeuo5|^<439WNwXg?i_^_jF7R1SnYg{$RU|O#Y!u>y7o`^vD(wYr31jYXWu5f z*@1zJ>Yibq`2`Cj62;MGPhCl;hspQLH-n>SZ2VDk#(KSAsI8Ly>Xw5wm=Ef^lN=m) zG}mO~Zp7UGxJk;Y!d+;fk%@q^ms~i)bkITFayVT^kL~ zj#GJ}8poSf!d+Ytwtko>1HGLcASLh6KMBY3dXiGS(VdK{MbCfp!>m~z z7pc|Y7@q0QeAZUpNXh=|Tk2G*fxQGYV%=$TxM;Vlx7Ea41ZGPJT@d~k5YZ(X8O0<$ z7JKPMyr{l9nk0jvTSqTHJs1y1^r4Ov{q{Yrv)F64KTcLrR&sXU1Vp1!s|8Jyk(FZw zYDNV@+DP*Xgq}b7RsgBvQ-JM10|Rnl8T)S)beCA~$Y?^#;D~Ew<`))p=NlqeH9$$M zG*6U!{XD`}%|aBIshe#dy9xj-E$%z{v}BEmE`Oy;#q8{&rO1=U@vq^^vc`JWS+7rK z0;2aYs3)ErW-FI_E~>66NA4$LAO8`@uv7%ZE2?VqI8!PWYzxVg$h`N*Hz~QW2SG0A zR4i?G8xlSvnB& z?%4Ff8_SG50=q(Jteth`LI>-{w1v}LhaHIO0b_8Z}@|K-{)Tq z9hp(@V~XZ5m(`}+ebcZ6Tw@u zs&Jf@N{C}$b94odw8y@WF2HMwlaZ26Mmr5CDd3kLqDQ4RZOSX@&VmljD#-T*8@qh`Mfk{+HbX^(%Vz;n1`@Xm)JS=!A&Il z#n?GHh>X_>rFDN7%hh%-DE!Qy^39iWcjsK<($meaiI1R@4yJr(4DVVO|B-nWFOCrm zpW>*^xwLGUWV)%cpke|_3v@3oZEAvwa`}w)1bi7a=Y*EpE$L3(4Ecw~T5VFhWl`Xs zvN8t~%T}+B&XCmWt1~up-v*=`NzeSVTGZkPtHSNE`zdf*21Bt9XN=3w&Zc*tJJA;Q zyE)ZGHCm+x3Y4X^Ptr_Vh*BZ~mXL?vXtb%^OFmD)Q{i*lK>fhAYxJK(m8AbJC;xO8 z>dCW|GJ3LDef#juV3sk)-2G~tykR`n?CEWk)tOaH%{9%$8=6yIo64;4lmLok?DJVH zo(w$I?wpdsH~>e2ys7nJXZ?I4U6=W#JGK8)E3;#5%ui|Eo0FDyHbIEkJetYjcttw9 zM?naJ1~ZvuMW}jn%kNu3OdPT}!}*1UzW&7UZpVeYhXHv;+hmlBB2V>fsNStB8gD7Q z6-+^f7V2$N!CX*BMkUyn3kWufREvpJr`H?5N^mLnXkxJPJig5e8~ghUoyXF0Z~#b# z4;@FSj8)t@A%@XJJmXP3box6GSZbyO)kIju`=jDjijen_WhzXWA|FV7i!r8PHpZ;A_uUQV zk!$kvTrEQ+Ch5Refr zqS!_WH%|Pu6q?y$KZxPm&#$0gPo|Hgig9u6#u`$%SRCj#^M8e|vI!2^n*Y9O2&=7a zi23$$lF!K}3QhzC)0S~EnW2WqNOm5uCU~J09Hcz%ofeOKRSqz@XYT~&%dD;^6O$4+*~+&)PmamY&MSX?qhN@dFWJ7v4E`)JD&j50 z5D-w9T`~WQv(efyy{lji zrS3Z*O`Vbe0`&qhskq3Qc>*GjFbN%(UcA^$hTX;Yw3&tRr5#1uQ;_IL#mzc##wp)0 zIxg?&uDX9cPvU%!Kx)~dL(?q$y}dNu87~Vl1$!J@ap81H;i!=L;nx?K>dV60o;6L0 zt+k7C_BanOVU9Bh?wCCu^X=`i$t?en!*4bt7 zE~fPpE&d(1eS-d=J6v&P*jIL?V69lI8{!AA{c=ixN{T|i*QxGRb5ZjXUEIz=FYQSx zvwI8gJaVP&RU*>R?+1lXrJT}-GuaS9pKLyd-`>h~)65GLz;?fbnY7ByllpVH4G1>% z0)}08DWU=#&N!P>SR55vo|(%ncT{Yh+caX$mu2y*cVQNw;^7#9KT^%W6BPZJ9#kU|#6X>CK9oytw+2@N3vy);~HDX=D-%z$y+&VKx8jRb=9K|@S>7;qG(zr0f5 zQUQ2eB0nYb2PEWMR! z_y;U7>VVa_ieS&ejka8fnqcluq^&-D{)xB*Xm7u2cD6T} z8Zp;MR|1RJ8pZmU|3wF{rRD-%M2M!7&<&rOwI3M`H1dR{U_XaKa0ahrx)cGJ7jWP+ zTT&^o$hMjdbxY37od}%T!?iW#Yt^y|Jaxhrl2Fj%JPr3eRK2ZPE+#b%iq^R|(O(^3 zGoP;c7h>N~1o{46Ph(%)=iyDyHF((wUz1|i+uN0Jl7;kRvpG=MmNiXdK=R_k^*Tbo zJ@iKN*M%tT`)Vzm^?$(({0tllD<`HRLsJGoFjv?o0$ily?>%F>y^eEOJuF9E7cn*; zH`^^w?5g_CjV6_@6X`Fh%&ncfRCmQZ{Y1h&`hhuUSa|84B{jEE#$npXpZR_a&#G%N zfnzurS8GkMXz;tB+XD7nA@z48S97ud;PeK`_x|jrN*TZaTC+1De1ioKC)|kyT-;a% z_o_*vS4z!ALG6<*BBe9S5qmM)JhCj~h0&USaQ+_6DR6uBv6=RD4<~w{0_`n$j{IbV z5q@1^!FtG!e95^PM)&qDAbM_z|6~%@RugdYTx9lLvfoAPzod=}I?X~dt&Mr?>nFYhy9XKFZ z#5l`_Ce}jH9l;{V^NtPvAbuO!A}xIOVNYmQkHVp_Q*gi1EaHPlZu@y~A64f;bjU?9 zf`FF+^k}XdYJGT}gZ^_YaJ4Fxy)LI?nNR3y1+4q)Lm|xT^i5{DX)hqoa^;O`HrTtn zsNj9K*ay`t7SDKnt)!5v`?#w&EM~GLir@VRKEi`7a$M9;tkyoy>ciWWENj0l-8msv z%3oaI!?=BT)5Fv4Y&=H_lcwfOki;HKR_A;jy+|r0cwe8QV%DR_8gr0H} zVv<4muJuEFGV6nD4X@0#Hclt%bs=(wLx>;8oK@(g4&G{>+P|yF5Kmv?>iFxL*izz< zcp-0tm_8ZbLsWA2ycnQn#O2n;@b!+Ljb#$w4E$2XVp@iwd_q5P0n&6_ekq(|;F39o zLYErPUi^9Ph`o%C0m+ggjs&K&F|}hJM7Lx_YI}05 zv;S6|0rOpZRpkx0VpXYsMWBDk27~eX9a3FOhcn3LT?UwBCQ&#ZX25>|4~w^nL0;h- zUo2ONw<6{HeG;>$1_kLBS1z-zj4syV)h5j7<3Ts)23ssThhTb8J&=y^7t^R|_4`%_ zRzB(a#t=!C#`w;09@guGOZoGVuzfQEv=cG2^{lH7YJgq@@!=S>NhPPjeQaV+Y{J0&9#aYm-!EQzxV_#^ z=U?dGw|w_bm6lW}%w1e>TeXHlxdS;>Z9numba#e5%HCXWNDnZd?z^B*>eEM368LJa z#tCmz8bjod9S!{GYfXEi?#9Q^ZZze zS6kIe@1*Z?Bp*bMOZDR|Jft6K>p~!1e3QRk#|(vV0WNAeAlS4-(jH(RGThV z!QAK!?U(5aWUAGIM1#;0n2e09OU7TssFLw=s}iNOl;$+BezLbus|?}WSJw;MJM_Ew zV#(>ZodrM8PvtN6VMwFVp6M|BV4p)W`<42z%P1HAwT~@TKf=|EME7XZZJIRV${@Yp$Nw7HTsNL)*@${9>DU zMfQi2CK_=9flb1!%dp5yiVuLLc0-mmL8n^1S3)w4CoBD4^mX3hYd5Nn?3Mm}J;$2# zsJrJ|)c3$hEYx#Ng5N9ZeEOL4S-b?&y>!%3TXk)ZUTuAS?+C1lN&^AN#Pb!4V!Nfl zV2z?eUEzTu&-+AT%)>_)5aa=FL&Gt#{FE&g$;mOg3RLs(p%NnFCVK zc2`93T$Dj0;EFB$K@Ci?4WgwD>JWX4mwXHmj!n+VjrZVsMktkDdCFo}ogOx#CpuUkJ#>ge&^N3E@l@l+-X66rlouJDaUwMQ{#()K67?GgkpBNhHD_rHM}f3XK4Uz(x+)9CM)c*K7~9shM21tHNE z)&Km@pVQ<7|BomSx$FOAX^Xzq&k|AOIh$^|j3%!)r8b-NFv!z^!!mLQ> zF*YkGgk~J_A@4)-u4Gq_=%|qma9=@e#YSIEHSE`y>1~^Xx$WPNd-?6WsoQuKid2@MSu(5r+UX^$PKcmf zEO{pCaAw=QxEt+3v#5u0l)*W8rs380+Yd^dJ?h%IZCLE zDWe_Tjl0}RKc>{&)NK}SYQZv)_RILsEeX7ag&Iyh&VOHoMHcYwTrLPt_j0Sc2Q}tt ze<5A(k(F%77E+D|KwbZZ+3^)%}|0g_e*uX8-Y2N@>i_Bm!%ypCq_Y32!9wj?R5 z8$NaWO;%dcuGKXSnikJ+ha#)b$`l2|UwL;pJ-pvT*9n6JM|8HGkjh5tvA!j5Se@*s zj9@Ej!0Nw~FFl^1(~*x9kFw-UUV68$RZ|&T8P5QEp}3p;H@*3!Y%S7u!wmB<_` z!WvrfH?2=WjO@;frpGuk;bWPcTH%eREXHkJY6z*f;Wq|dYV}vK&JSr-sD6i)uJal{ z^NYfdzo)Wvnhk*`=qe&r)%@$>MD_j0NIb>OUf#e5`Z`_KFHash@}J1eLSWB08vmGU zhCcq8h8aV#r=Aw34q^${j?t_jUkMO<)_w^ehjB)vSI#!>+P=;D7B+Ns!;wkj-^!@X zm(o*x-D&yi#L7!q@MFyb%#fTbj>QhC2*n{6k4jaeWUp1%2(WA zGNd_5<0HvALHP#`PlGfI={Mgg8@P1hM36jxKz5Bs z4#>6gRv}!BKQdgcrFRAoaSIS}Y;zBK1zkIz>^HwQJa~VTRjwheC^fZpJ0MjsY6_k? zo^l17C2J(S`)$5o1uI&*;+sQE#wgB|K;O9W`^6ode&H@Z9#y0r*1QQwzndnIS^_LZ zW5(e_3sc=)XYI86EAsKko}A`wMP6pGp+H&_ffXEl7i^d`J++hHOZpp*?0SE`bKZ-o zBG%5%WFrgT4hjt29T$V`t$eG;6FI@;+iXpilgE= zBn!c#JutSDs7cTp|Hd93o%V@`$E1k?UbYX(CRs$S>JxKKikjSI2qu5i3e~aueNl9; z^Sx48HcX+5ERKCszx<5BFWF$5Y-%?TA0r`qe3s1KWQT`4Zf_6xn+-1h1ZeCmyH~)T z#~0d_?&y!F&^33_S3le#8phf4C5s1*xhboCLvHTI^sFQrJ-Zxm@~p4!ci$A{3;cF^ z6A<_Y=2=(OYHcYwobFwn&jp%=z!MT3Qgat<4ekVaYrUe#A^WN?6O{8cvm0|8?b_FF zX+GGLM{^Q%uP=6?Engw+?;@iw?J>AAy)7WWAKXQwU&ue)+~N{Mc|S6a0!rmqak}`@ zEwR}a(hUg%5Cy*wa*BMe1b(b!D_|3dR-UoDL!K-VEdFd<<%eJ|x;#qx z)j0ifh6g*m`Abe{7Iqu@KA}ym{s--m$xo74YR{0z2jyFs=~}K*5U;*@Egb9J#YOZh z2Pwm^Or(oZ=L8$$^LeWFdR794EcM<2$6fnJNsBS-s18b6gZ6K8bh{PaL9(nydJr=C ziCg%MKh+h3FNL&jXch(<<4-q-uhK4z$G*{fuge8MAGSv8CCg$#@=r1rcHT!}E^K)5*g5Ac<5r5R+<1=1 zCMhKs8C{p~0-Rk0In<};TzTL`6KgNq4hv6Lglq9UY7QGWZXMNRz3*CzYGR4o@>&2n z+psswLo1)rrl!muZCh1DfmoB{n**!)M+W_Sc5WHZacW&_8`v4L0{z>QehXFY?_CYy z;vwR}X+1|~O@W{+*q)HLgM1cTIFTq=tl2m#ha_XIdOaR1zv@_`W*lHj_`2_Tz@>1R zVykVCLrXwWRUxz&aLz()mUOcX_#UxMf|P5o3Lex`tjF2gdE( z%<=r=Ajo5!f<-!`pWv@IPO|DIr{-$?rPC}pn>g-Qy3i%BfZV3#w3f>Ro33<<$e}BX zj-M*Xy?HgDn`}&79LY?+axkQV(%zQ_rd}J2M3^Ym#nk2!LCb0{o)b5FOPJPrdxjyX znzG%0_xudCH_^`a;a+*(kVJYlUKfL=MP$97^3pr}d{IWjE4PwtwSNBi7B3d(bkMvf z<@AqAYmkSVKoJJ~h~wajdbG#raevAaketf?!p&&7>`ak){rg?ml_L8@#8noj)&M}s zhu5u8A{Ihird}^dOIxVa(A%v8`r`;0KghueS2WEyvNT~heMtEb898A5NcALSx%SPm z8jT+VS*F+uL_TKO^fOVSU~KG2^%=I*0s4DSNrLFIU40^cUNE2tWNO;553yYWzLq=( zpLru7(0%3?rnqCB=qAH~!>t(lO6K-$HOEKuf&y+E3i=l_Q6kF5YkA{_)(A$F!@I_D zoeE;geXw!&$dOp&V^m1ovxLMbKSFzimD4s*+*lSNWMz=8$wd!PaYKTJYOzK zZ5bI$)kX9{k3vh5(_3f8MRS;W6LD8FZ{ZhwcZPrZ`o<678JJ43;v>Bs<$_D|V|Hkb zhD46Sa*nibttt6cpma<3Ay>J@^lEUBl4kWOV7DphIGsLN9#8m+i9 z6?a*Qr)xJH+m=K-eFmwC(-cYE=r&T)5|C?;<{|2VT8Q)!00usIb#kYt0q&YwfRx#@+NxiTt-Kk9~@>jDH(J2}Z3zM8WzB z!pLMW6cqQsol<42Z@-h$h2(b&T#*%-e0|@vmeOa!zbzW%8s4OV&(mO*MWn|Wt%%8g z0w*^mXPz*0GkHp`3sXW3d}idb%)YA8m4rh}Fy&jZ0PF_n045{YI`>oSTtrH02P^x< zLSqcM;PqYINr<`LdJvv?Fd63J{5m|u%|F${vvW|*nW$tiL6%D-NfWhn9_8IJH>o{AqsHVGHe!ILNkcO-@@?dwpq#lo-S)}eo zjO7ED0rkVlg5r=d0x4sJ{nD75mY4bLFd|Mwa#!v%`Y*X=TxdS@kCT~3(*a;t-JTg zI8^^?+g_<2xDzetgf@S`EK|WKSHQXTqsq6@9x>qt(yyR4aBxjizofFqb%XdSn>lc2 zg&>$}@2bXVS>|hdS`=Uc^vEg{FxyNt^Cn}zs0{jLp?A4U+ltxR?Ha1}aJ13e z;%Mr=6l=`mndF#k#+VaR;Z0u;4rTOHf=yDTk&8*Ba<|nd97uA@d2`tL14nluv;>jE z?ZcmfvudhZm`*o$hn7~w*LVB~=`zlZ2Ctbj8yx6Be;I(7n@4B=TUoY=dY^HbIyHeB zLD6zA7!Pz8H(D;+zER1ZqOd0*e=7Di_PjY$MJw|>`7pfudn;~k1x2CA z(yhbOpFK|k6ls}tZb$uPKb9KO_Xq}JwN->V3h7{mJWtm>vs=Vs ze=8egSK&>0_j;o^M2mRpn^*u1HD~Z}>9Yq|5g%Q|`^{d;9Y=eO$ooSVD=91c$1%wq zz=HKJgPRtp>s9u57xr)HEbd?)iy<^NRImW1VlhNLhn;Sr&xDg*Z0hZFQ8X>OU1`Ej zIfz5Pg!PmZ(H?d6%?jF6QQ${-?ULdjXAVS5CS6LKBSFN4UF<%!b8jo@H(*-)o)|tF z!$2Ev0IEqFx2^*(OC3HBaNulib)Xo!ZI^Jh@Np*i z*if6l&J3nrtkwq7QA4V?rF z+FO9CSXPX=V>mn&O>EE(sy!N2!`%xzhm4UDvcCW#rQ&BMwkD$x%*Z!xM3$ayE`jkn zWNKOP+&iYdG&WqA$gKJzSEkC{E_y;s{*nR&-K@+S;%9@bQtxhtAqE5(A zDUmRO^9ysiD_npzZUyVv$V_dk?9-;ZB$jgQ;QctDR)1r#gaz$56Vt*FYJfK1u!};Q zATfBgwbZ%^ji5Gr>Ikjm0wu=fcmk+;cG0($z~XRnwWPQ3(gfz`C+6X>hI}b{Gaayw zYaGmUS~PID>xZ(`dd1^`;FA$kHI2`&HF087jH!()_&DqNo%D=&TCx3O|B1(tAx+-W z(u`M9R7e6B$|>)V@7qr_Gj-{fQRpZyNR&!?V;=($^i;tDa~882Gt@rgtE&N>*G(&g zZyZNX-ovb#9Nra0cDDs}dA{X>dF?)^e^u|S6*yS4NDCjSlS{v(E$P1K?|8Y`uHFHT z&Iimo@MAuha4&QvmJX&jO0fPL_)Ef9C=$<>I6` zw!jQ@bp0|38gN6)6SGeqJ^X@KGKz9Ewep=`dY8&u%r#Im%NzPdS(77EG0^-#gkOwe zq^96CcIi29$9!2w<()AmX`gqLZ+)SbDd#7U&3tlV{m6W+SGCKe@jAODa7?>Rtjh$u zP76<5vo0%r)(3tp|Fzc7D-VA^lU&kP%_}~g6T>|!YrMSD&C=7!X0}I`Os0=y+V+6N zBsvUGM*RIpdrykzVggvH+?+hGj^{$8uO&m{M!^d>vaIJQ?KCND2o6?_pk!^WdwXAxOG z2=v@Lqbpt|@yYeQFj56?^@;D zqZK>)PJTD#*461O=;=_RF~id0)QTi$-9lby)8e8~*9w-L@tUG!de&?S_4x#5DN!Y~ z6wYKsn|PX(^jD^$RKr4=w<p#X_bzYzkt#tEVJEtz8}xAC%aiwA zLObIP1Ae9E@B+%-5*X}GDo5Uwh}S@CANqc?vPH%P+ryiDWjv_fu1I3ga^X=d z+8ig5g^W*Std+slUq8Q(G9hy7$7xrx$EzdL9t53TuWrJm90@VJkR4#XxG?YLZ6u%A z@4Phf-q3Yb>6ottrE#yx#BwlUJee-LtY(mpcaKM_@)>OnQ1s72}1b6mCX zWI%v*BVX!z7D}Aw>EB(DEOfjeZ#POAPPZVldqBZo(uCdZt0GoWE?Ij(3vXTTO@G-i zS>~fr+V87%dh(!A)-g&?&|YC>D)G3FC@AM{9`3*reDBN=agRh&i#X zG5am|OXjxmLY981Ah8c6$%iRNCk8i^2Zf>{GMq?&DVDI{s;^NUo}ZS13qg+Soa(so zl(g|Fzc$g6wd;m)K%I@z>zuE7LD`>yFBDW#XM43Gr6^8)9P7mOLQ(a+^BiO&#UQ$c zD7aah@2Wdm^~UHU>LLCPxWJ&AhpI`h#}S^~%@a<@#I}RW7aovfGUjHDsmX6_)Jf#X z0OHkqUMkDn?5?B_%_YTns>2Eh7A`M^qD)yw*ZVZ9lAEuBhR2$HxUE_5;*G!8Uh@NP zVJo6}%A3(?l~l|RS>9C0UfAYb8eC}nfcVcJrZ4Dm1kW+E;giP@my^m_ zOlF%xQf>e}!zq5iaCRF0ez&^e(Vm4r;Txg_ujbGJS1nGRl+&Br^+ELI+phD1i%+^} zC7x8aHr(t(+mf?AUMK4{?%>cB1J0mDNW2v|#Tys>c2-D>ocqm$rlyCw8F6Yoxv zdd%9jD-B9!#$>vF2Bqc|8P4-0Ak#ZD-P^vNHw>KV!oaN(w8MmZERRh#+XlnM@?>O) z*Dg7W*EO;#x~cIp3~{IGD+$SMY+{#*+WXOmEZ?CEl!bi^Wu?~p+{;>?_CT+VWuB6C zeo}hl3+{%O6}vn=Pj^zqI5qX(U>4B%$eABQl{K~vg_~%*hZ%kXv6jFpcd=QFoIq5^+W4D33!Kt-gpNH4`e#M({?>(AZlqk176=(J^4%qun zH#g>%sVk{G6=-|ok#!TYDWBNRm(}aG#plS1z3~CQ_oB6>bZT_Oj2RA zEy)pID2n{yMaBxlyEl-&nEZ0Ce>~4g1xK{GuvGV!&S*8*mS%J^P znGX8QV7ws|!F;ye&~T*oso#*uW%5X1p_Zfl8i=6zebwyQPUO9{kv4d>9OD!Zn!P1g zpNgULl#0sqTRy7r*hFdd;cZS+1wg{dhn_Bg%hxGV1ABSw!Ias$-ewt z-|@GLf?uwZvRmfR9`lyry%HlK;q5Pf>omUChpcKfUB0eQ){=FZMQ&aa3Ln-jw~^o7 za@(rehepu}ZZf4Ko|RxIhedzSyc3v;ZHV?FZ@7iM@P)@C1SPViKGSq{QDFTQa1SfQrnd*gri_Ln2-v8lES-W;znT?S=O=Sg zGzc_JQBg+<_BKu-WAGq{1&A7@c*Pvfozr|@#S;O|5lY%R>tQ;{4UPTDVg3Cx7yFx6 z`ewi|YU8^L;ROwsSd7tUUH!=7KF`#E}=>0a5*$XDm+&fsS1I;!UB6WlNiO%m|7tS;;SeV@mII7eesmKL^ zNkD_JwHw?kkK_j&N2M8L=hi-5&BKF7a;gZEUJmYKAf*A|5@F1fWSkH>cJx`5YRq@Cf3qXEYaQ=iCL!Vk+X>3g} zA2XPoNxH(V4>au&swTu!q+W&oFPZ5oB~fgFvlN|o&S1@#4$7=zxY5uR+niBa;}g*= zhc_45>%Mgh_GcNAfgL!ScN6q*g0}z{?xb2es$eSID`2JpLNCOIW`ZN9dc(qnhK_fR zU%!PxiS6llgqsVJMr|lLE1DjN`91x1oj>65fZ9gkYP$({2=pU|jqyUn#(-CSm7?t6@PcVjbJ+|Rzi!uEzs2ZX0U%i%2OzK()whGZUbGL{k&;}nh$jypN#NA39_IT z1tDQhQvEAS@3riQ&$B?6q#DYysEtms|u4sjStY!?A0Y-a!+jB*G2p9 z>s7TKDnb{tkfP3MohtmxJpVnu6I}!}U;o(ae;R~zg@3esuk(%zGHmCuIxMLCUrv{m z`5S-y>*oKw?R<{;S@z$}wZ0mqt>%W`Xr6+%k-$U%sH6_?noA` zCNk(rVZ4_szmC64S?G^Xx+oP0|5PI?n~+xq4=6^t=cF-ow;+K=}D z^)a~hwE6A&NEYghD`E?hkDPhzKAQI7V%H#}tgDu9)=TKmi1<+by#dqkc;||I2es;X zQ#!|`z`GEB6VL<&v-mM#MTZKG7V}#E4O6btdH86*|G5w@#rwGcy!R#U5v2$!4o}!V(Oun6)I&o!COhS8mB(hg*un86Ai9};X^Z{Y zDQLqH+!;CMkH)+g{i7I5*dX0#3Ai(-dhgJv==0U4ISgnYxUL0Y3VVj;I(G z_S+6$Yhuxzox(vaY|-v0`e7+5^QW68FU$UeVbdM}2f&_L5hRc+g> zOWX{|+a4LsKn5qKBOFzE9b>Z<{%E0#Wgtg1GzJ2sk`RQkJhk{HfpiAAZJJ=$%Yc06 ztr;Ussvu8lCD{56G@U2`IoU{3)4&sJr zR(?>;`@Ek8{j24vOJp>Jjt8WbQk19%dO7NI95Y=xQkw&Xt9ab^+tCXZQ!>MzqLL0- zO+FP^5X(YVGW!B9?WDh2gokF=0BqMY1fNRqd@NonELWF7Cr}<3nh-G;Kp|aJQ5AX7 zM3Z7_xl%bB-dg)iB6Ba+aO|cnY`u251m`%zeA?ss9DhQfPL3Y&y1SPdc8z;4L|eZ+ zn*nek*IGYi-5zi>Qlp^B;d&r_dlz|icNDTw6xE)#p6S#UF{=&kuLY5tdXmjP2{3bYz82KfjUY55##&{SH?wT_0osM|Z*Psr4_oAEnR?p1{>lym$6ZDY2bc3S zo&Kmyp?Jw8HWzgV7F+KK@2=w+ezXM%WEmd}=F$-o$sXwXULxO++pc(~#ZTXsC05cJ zVJ-BmUuCiVy!gDsv9Hp4dlK29%~N>VVPy53*kcfv;AI>=`&;vn)skZ39A1yAkkbi| z(t=IV%i2hdFZI&op!DipL*$rO^K~Gidww0>LH#rMDlai{NprtP=7P=V^#N_)v?{(v zXY}K1_}GSbN$9X+jpj_xBgYdQcF`_T<0PD;Ii@c-R19QQgvLTI4@u^eX;_YuUpNT5 z1a%6a*|(g|L<5|oiH~{%QRj=ZU3YwL+Q4=@1$P_c?=RfacBa*)A(S`cChG7Bzmj~i z(&j}Q>>_p=Bs3rA*T!{YK)c0Z#BO_Zs&~Zs6J6}vjQ;C0UU^gbIki6!JSDq`w(E$K z9lOD#JOVB$m4)BxquptkF=r^28^Ukf1;^mujyPWg1cQVfJY7@(kUG*BpDQ~eQv)tS zHx-4wzPkZx8gd+4N)yZBY>ENpy0%|OQefwdtjL^f7zfP3 zgS&6OWVxdx99<|{nwR=aB|Pr>i0qgW$lI)D{47C0X6+rS*~2MOMza*WD14avI>Op1 zt>jLLU4;ZD?cuk0g+b!5%j*zpF%55qRBStq&l%&r1J@rYE!3hQ52&^CaJp ze00K&^6AJNU@wI5>N^9&*OVCXNs=pq>aiIi4$w*v@4uE#$Ae*;mBW=b+vn%L1EwKw z%1BFtz?J$yj;!;4cZX;Vu{~v}QPN~y3cMX`EX5^d|NN41gsDs$CD2hl{E-mmK>Xw0 z>*`cNXt{frX)#avOsV?Jg*qdehVY0lOR)-}V0P{$P5Z-LYhb)cRE~ynlUJr?8mTD; zVHOaSR`TKrwdZv9pq%l5>aH~%c}uy8wz(dW%~ZjSegc{0mb&rQdXxO$+GwAOKCwRE9wKCdzj3eA1|t^ z4>8&c<3wlXYBPP~GQ_8PcKBw$(#R}ZPcNvj2TZ@J6w#_@44}QlLt`4q&r1$M=@j?3j3bn$+}2r zG=*jd+P!|#G_iG=YtUGo{2t1F9uiYfE@mUV+GP#Un_>sm;h*ybnTpVvIP# z=#gU5{K3^79!K_~q$Q4~C>Cp1IIJL!>n@|heFa@b3FTX8dl=5`*&@x+=oU?Tibzf| zV{uBj22v#vf_#mG=nly`zQF;1qcct^Cu4A@e$nBj*2w1x!^`WbpF6&bzw{Ar(9EWX z=ddNd6@CbgOt7CqNDsUbRY2xvY6-2>keHWI7msfU$_R4Ydkg%iG2u>^1{{Z1qz2dI z7lcHIm5^Z6Z9sYq7J6j_ZLjtUn%y#BAMa3b%7=S=Y#-83y@psdoOzO!A~(vXrip4> zp*0+}QBu2fch5e3o)gY_9#Y*+A1kPA4Jch|Kt*Sb@&dPbd1BMzJD74z5&mfdp>ENY z$Ig|O>L)BAOTuDu`F?(HVSDO=Rym(0w(1>HdaWP@E;^*u6_hHYczLl_zG#6E_jG~} zYiyh>5f$Tfh*@g$E$W~nu3|7g>t{|m#BumHqdvtLUHb_Pq_c#w?sz283J-d%bX2+a ztHbT+?MstV?iav*DR68ge<83O*`;%7`tG3k<=G?m9?@%aPRRfSY8wf%OWR=;yFp~E z*JXN3PBt6)-jVK6ZFFVq^s(TSmr*aYBwGN+k6_Dci>laoVV}*lS>PJb=Fs~T;*%v_ zbP>|cwHN|deX{ejLt4XN!yYXAvtfFM^Ae&_(WX)R`t{4dP01z52xu|7I$AsMDzX^j znZ-cOVU84!uZcPTxf9x}U0q9sa+z>+0^L78NpF2!Gl&0`rW9@=HaW2P*&UEerjR*% zjp5wY0GC+Lk{%&m(Ab)u8h0YblN{=`InB=I6s{33r7ZMyqOcwB$^_>)Q{O<*sfRERz-(+3{I~2fo7;k=+(?!a9mVZEC44JD(LnAFD)4){2m; z4%^U9ye`XvVbM2tb{ccU%9oVD@Tg=fBdnzoKH~da=7gXk!{VZE;}vF@#n=1R&tcbT zeD;>Pob)&ani!`na*GOhEFkRe%LW*iG(wQfCrBM|@okN2eEpQTAJeLUSr$YbyzC|Y zJlee6WkFtZb!&iOagjIO#P1>Y({*OK^JxDfKL*x3b=?x?-2w#*CNM}Kk@C9+9hJ8WLEbYjeW?)inL-GmEV5jn;_I!z<3x zxubH4l5%79-Gy}*yoU`R&662sT2|{db7@2+yDOJaBFLu(=I~S#d4Yybi13AXwo2Gd z@0Q~$H7fJUzJ@xUr{%Y+%i(OJJ3?lCCfkdB32Ot2N?^fG%SnzZf`-bCr8!gs&WxUA zU+2UFg;`4+NdZm~5yOi@foZ31fs3H^i0Dgh?PBv5j3^Jo}zM zO&9R5qb+m4a->06&`V0v&G(O2{^BGyar~k2Dk3O=@h$3i48Zo`PPk0%_W*dL8@WUo z`Gj8y#S7bpt~rI2tPmFkuE#i(rTgvoaWyG{Fyf3#+@Eo*@RD-$^&BU~KL~5OjL+%? ztV$isyz4kMzo8lHJKy(DKu}5lEJ)Vyhi79`&7NB6`LjyC!XW#*p6&|IrI2d~-YuYJ zU`8M-HW?E^(>~O`O<76F&DtcSA|N!iZ(TpzW2NPv77gbF+Gb5Ovaknj* zM|eL7$k!;&%S~oD^-e&k3EB_LS-_b@z^C?gOnqa153&){YD5%r;%V0TzWG94uSn4U zoUKq6IaiOgbx46Wzvj-XwF=mN{aIYVO%TWU1yYuFH`8MW^;YNohxF4NFmLrJOja0y zxsvDTW-i}Ev*b|(EN<3QW}r@O^}TV`8OWMDz$c{kfI{+diQE5OxwvTG)XIU6`Xo11 zel>)kX?3#kwejSj-B07C-^R)Z2GXV>!o+lTX6oG$3!_%cfod-W-OpdJx&iN}p*+bj z8u$-In4`50gvNvpJ8QA*uOF`rWi``69VO~sTvIZ8=_hY%1T@RLZ z-nJFvou%2Hizm2|r%|RK)JM#B(wuu<-%m%R>uuc{<>uidC>O5+CR(7zyIn#x(V|Oq zzR&)DyuI~Tn@#sU45e7H0>!N@1xj%!ZpBNBl;Up1o#0yBNpXkbP~6?!-62STpn(wF z^3wZ$p6C1d3*PzRS}QA;&77HY?X%CGnLEs2{V7xA4)CK3yiz-V zSTHlghvV{|wS|yiRy|V1UhS-@yR>B_NQU)XU=!{~9uKCDqrXH)ul`yeUgPpD*IB_z z3NiFkm*2^?qcbHDOMBN0As>|3Hfxqp_fjDd;VLYvdUpAghI!OcIf$sSu-^-AE02wx z2H5Rs>9hprj_ArOd=W7v>ZH~-^DIU5-VJ;o;o_KA>|a{P|Du4ZaKVS_B+UZyRI6Xo zWWG@$DRFbVGbkUn^rdqg__pfxhjFc*NW$3|OvIpQJt2#xvWil*Aa0|Kcn{Kb`2F*q z^Q*E;O1R7?^^XHNY5pHx2q0b_9n^5BX>^t&U#v!QQHUO;rxE38eL~GIlasWn=l3mi z>6gIr+@{H|HF^O;p&cBL67tko4BQ~W7nhi}{6O)E@FOk_5WBkLF0gx;Yer%5B1=Xi ztDvuDl%(k4Sjo#C=PZvNn$&MV`?H@)JH&LLww~4en}A9}^c7$v#G-;m<=`uvLl70b zUHWawtIoq}c^wKn zt(dP93ji@8u~^7ovEjJ1`FZ z9dL*6?)TU9V^IPtE6s&T|I|iNa+j z(;gf~>)zwlI)4ifu1}@*>dPI}{%uPf00G2miq=hFbVofZ} z6B~2#Z!I$Zc3^!{?mAI(-KIBTt5(v8Z|q1oI5~99TfG(|?9U!qmUT!$o#hO_I*~jU zPTFXHvqz;{g_SCIRpnh2wJND8{LMS|LjW(ex2JI~axJtmDmA#prpAAk(-Ma~-2=C$ ztBXtTbMJB7HaC0f230F_o9_oYI#VaEF^YOJsOAb5u z=iN{Iy=mT2DupAqAG@&e{@mfrFnUasFlMzRwu+qr9Q?FIer7Dvfvk%$oInKjtUz=yV*8g?~fl z77ahU1zlfUW(x>s2c1Nzj3&^1p1QXO^dx{1^J7Od5!qh2x zCk->EGW15eVnR2)tMoM^SAHsCX*j_;! zsA_FCeFHYuGg<~)F~(IS2EEMbiMQn?bXXrV)2sXucd_HedB!=UcSE1(P=nF>sDEC$ zV8ru7$-$ams%Tc)N46Q!7PyKaTce1aEhwY&PQx-3ODbnEE6KH7=#VYy2>MNi$VrQf z4vyt}vCt}J`o)>zu6UNgTkPoIa8F>1^)~wAlT~pJ{ndN^CYJkbi_kalq_Okl>t_jC&rP`swtDqOwkvT^;g0p*6TsHLZxf zXyYSx2Q|(sgww|T>qbKw_plm_V^K=)?uw4Ghxyv$BXPz@XG~W0^-qWayH2AIxo3Nh z(?-yND<^#o2i8dR!Bvsa%v^ob!Nm{Z^Fp%UQ;GUq8?&?xW+p7B{QaRF1uc1*qe2$Q}Q+6#HwC|Pyda;u@d0g8XMKAh^vv{h7; zEMaECmMEgn48CtFHXX%JGDF&; z@Qn`+Ocy%BhHdPAed7x0giTBi%^}N4spQ+d6P{iU7Tgp%cWJ(L&z_rA(toA6ncDX% zUjLeRz!EC(-Np6o_AMSv_0asih~#cRO=X7lLyir^!gY1Qm@g%gCx?be&^Ybc)(2;c zfuhV=^pHSO?6N+Xb}O6K6k1)Nzw`RH1&Ghvg6F@>MhdsCL*7A!-ETAhxH%6j@ud0t zub+uY|HB+h{iBc|@li={yiZVNPT!qNp8GQ&cfRxWe$|E=s1IFl)T*`2=DcKjY-_@T z)6j%ifrDqI+j@>#I_PV9?AnQRD!d}*5WLSQ=n`GcL3#mZN5|qjR(U^z$nu#yA(;OQ59nVh-b0x4l&3mESJTaRR%^7<`#a=C z5jd2Z?V6yKhca_}$_ILU;VXdk&;*q}@3((*3&q6@rOVJQ)5Z@tlpY8U(8n=jX*TUINnanWOaL;8UgPsuB*8$M$To+${PM7uTfUt|5Otk{4}YQ0uwOz8M!F*%b&KLR zo!oj)nl<=xdOzZQ6hc~<;cBfTK)7NJslE*sar)bO0T)fAAqU3&H-B`0tlRsugf=%5 z5#uVIRBbh)z*AZ#rTpWaxvi`9MB1oqz`$ucUm5?n58#`NDYmKm;!oE zKKVMP9F@)ph(Wz_$qk3AP)BOA0rBRc)Oc~);@n2a?e3#=;Ekca`WLlsOVBN(kg^!< zqaJqqz8Ex!t+2y3rJVY@x#^PS`N-=g?EetV(}+TrK;IS=n+g3x#oes;7uArrp@Ymte(j!)MLy+>$W{!LQ1+P z>8tczjeU-L8nSdWP8%-_kYwY4lmV3PT#xga3>qE363VX=Sh}9 zW_XEf8n)S}jEKc`#LqULOe*jh_D=XtwK)r`Ec!XR@vgXhL2o8pFb)z+~yu)PB#^-Ka|CtG9;XM1`AUr^~z>pgmRP1s7)m~oXGS*Bi*AaJL5L4b98WYotnQJvSF`KuW3bWs$P!(&5VK_$04 z0NKseKV{_IZS7xm#Z#`BS5hi^>2jjoDo~fqMk3U2)kLg=;=%qKm@@qZv;LpNq|Qf6 zOes+z^9QfyExSK{2W=Ao^OOAYkiW>BwLXHxey(u~I`6fki!+Wdrc$ohJ6pkaTT`tw z_Ubrlz;;8`%zM4UeAV7nsdM>f34P#DT+jR43*j8O$(J2rEK9r&bMYWApSP(VNbDNW;wgRF<`L8&G zsETi0T`h2LKY#9o`Lp)q#^DhE1eirPhB(4~9ckO7Zd~-yN$n_urpydQr12 zeB-csbtG-YBxWo#i2uygS38*y1POw+FK`%&`HA9HDBknmld*Yae1TTzpTesMM&&zd zRCeO*Dn&esv9h|iH^eWGWMxi{B5NdY?_A8lq81-etSK6l((k54NeNt_IlqG>zv)&W zpH~h2n1Id}7+7(U``*f2EBSiyqNkzzjinqdCxn-uyuMx3&|Ncaq1pZHQ#1VW)i3SR zt-Yh!e#{bD#~%6@w}=2b8lkR>o@WlNZf5F#UDs0u{vNveM(w!=V6Y5cdpC17FPkV8 ze#NaRnM??-4KjMiO(X=N83j@Z(b7kGBy=+x@;x47i3XZGG&$excYSg#pxImNR-4#60 zZUog*vVa=uUkJaC{=n)?^xukvb|geJniFe$nC5Gw!--nIV7}e_;D1Ea3EXVx=(Ja1 zHpL2;j&StwKxRW*ccy{4j_;820&5_~EK~Qxm{*)A}3xE%DK0*0ARB%+tRVY_iD}(wOUyx%xrF@9;S)+yv zX4iR}#|(dM zanG8xkqy8RNm4Ye3~(Gjd_islH?W#1S^iX>ObXf@tei1XCWBB8EZfyPUJv3&r{B7| zVT~;G8;V+fFkXE%JIrUq^{Tr+vbQh@RHPV5-$mJ5q@+7h5kLpbl>tm%(DYy|m=Y~G z8J_PMkmt~b*&)r6|0x+W*I9G0Q46N8WZSfbTn2EHvul4cv-)b~nRW)OKC1&Rsu6yw z__mUnPF7sJvnZe1BTV>ZN!2u)lOI28X@XG)ZhNdyZ?Lr2Ibs5&J7A{z=u7FFAviB@ z(^)i?@peO<1BnBJNRs)JWEGJVCJ}`sJ`p=R5~dRSOH47TFIood%`(=;Yc1gWM-6s^ zfZ{ujUsrJ0DeRX6^w6vP5V!tH1R{_^3Dg=N0D51?c4v;w)}UV{|63kuNO35*TRO*pnNClMkCQdZZ`~uS@{|F*2YADj~|@1_Fb;9By4|lYdc$5vapfW-udlYl3)QHsefOG6^HKFo+Ut72au9d zb+ksTtyW0#zgsann^fli4E=8z^o@I_{=YwCzUOqR{(!Kca1D?+K z688V^Wo4yUFY#kIjjV=yXz&V^e<>Zk;Xf3~L#!|j39M^eGLdl}TP&|oStp;q%uUKS zPPD9YBtE%az3Ttmthzc-OQL6@S6fob6kBZ&Xb=8Mb7nxuWYN(v))|&&AHPl715`uN z-yDj5lti#6CUvX|sD30KO&aDFhrzIaYeju=BSv^8&5(*Ma2nk% zcwIPkF>d_UZ~9%) zeFk1*jgL?hqk~(*78@)JI`Zz zng7%WwyRCH9Qhmr2qOs9_4tgMb+`E_`QUgps=wVEK&$grWcWm0_Jsr0b~Btl*DlCu z;B+ZG9D}k>Rba;`A=R)%w-$ZdIr4~+jzPtz5pB<@Tw{Qx>ZxBX;gKE!tHzAQQ2mel z!5JjD$_sJeN!h+dZF}-9>r1-=!DYEIXtqM5wIP`W3)}a=WnUs|ysU_j_~%&6m#r`q zYdwxEet1KS!L!R3wT(AC&AMypp_8A4bc=f_SNpdt;%?j(i8o{uT!i-kR_NsFcwHkY z-LN$Z4Nh0q2v>S=us_SIuXMO}-aDx@9`={~u(^&ZvSOmwZmtvy4B zT#9Nw%_n%v^hVxp6DlY$-Kr*aA7vd223DEPoOp>scrWwNA>~$J=0u=p7!fx#Uq7i| zrMAG{{=uvL+UrdVoPcv;Sl#|>gO!D@X!_)tm|NO@@6laEevKK2ugqC-o#=^HrY}@V zB#KT0@9Q^-=1b@hPMH|s&uZrWA4eoA$+dZwP7eHQv2 zKwkHrC(`&yx{P5tp8(BRnXHt4Pb7X{X_~p+IWL+l_#nfR;bd4gnc6}_F&IU}Y#?br zaaYrb9@nc6+SpX2buii>nTiqgaL(3!7=G@t{mac<(AP^eqUliKRp7zA<5&~euieQ~ z4Rt-8w4U`bxai3DWfS=u9mFD&nKhSv^wq=!I>!DP67b5#ztFIAZUS~O_meApg4#17 zh(Ug9zRd8d4aa=8T6nB=p;`cZLQMBG$lji<|NiTd!p)w~JWeSIIjg#tCO4)lV3f+m z9o|k?TF8r#!jPH35uqN~zNxEslt8DVpLD|EWXAM6!DZ6y$JAtfGwKNgTXNf{An%vt zVl(3?MKt)G5wws>HqoBCV22(qwoSr~0IrdszTL0+XbYV7MPjSUG*z%t_JPimVPtI2 z-@?e-znqv;pHG~r{8>tO8A#$F?8M0K$*nm35#p$UL)g$0womkVN5IhS$2O8$w}5ER zAs!DyCp(9(0%iTnKXrTEC{Yy3CZk`y+WE^~uW}yY>Qy>Ms8Y2Xxlo_&N=@hu1H+!HluJI8cyQJJ zN!Xn59SJ*-H`if3Sz+Z$>osQh?9wP3Hi46QT<5`VG@CJd!6^$|nt;9%wVbsbp_-Vd zv%a_QuTbc%o%;=$d~+Ut+S%D#8#H}zIba^IO1?sv4tX$UlzA}SbfZ9`ht~2%r;qkJ zWxVD-5w@Z~GFVaKjVf8lR|<@pi-BARMgHU9eUtxw+ZYqMx1?`t*?v;G?-LRq%Wvh60G&Tpbr!?*I1YaBaxCPqgX@@@p$UC^i%6TV|81C-t{rDNpM}#4T_W-BBZX#zoO2Yllui*MQcea!~6GcPT z(v?NFSKXg$as&Fup@AL|BX2Y})lvz*J6WzStwJX6<%FIu#4YXKaZ>=77^r60GCnAs zZx?N1_k3?I5~)YNJ5|yBrpJV`VLopF&gSTvJM7dBkxrBx-~1*P=F+M#ZnjOhUb#Y~ z&_JTM1L_CO?mJRBLllie${2+`d1;Z*Jxx0XzXEXMj2RUR4UOH4q>P(g%SU319aOOJ z`u%0+6Za!Y+aliyVT2X=Elge42$Do0{ZYZ~WT&DOCXn#?VS$5F_@@vVn#)Yh>u=Fg zU3IILZJRIWvWtZ3=|t|fg3IANsIe=vQsjFT(Yo43kId3+@0_sXMRMHVWQR`!1irO^ z6Gxk*YDn0b&U#)=PnJ;Iq@q=u%Mv6mL-a@Bev_FT%sZK%h#s6WRL-AECTxZWO>N*j&lmal zVM_2;XB__MAdn)u%aZQSyFR@9F##gFXn*TM3?+@GbT*jB_-&c+DRS_wUdLbG_cjR` z^$BTw#}073p!hcQ!qoI#$Gs!_)i_utsm9!!t$dGC?lZVQP`jZ<6!E5jQ2U{U)X^K| ze$-9P_nt?&A#XQ`6>W$7H^e+IrK{( zPWs|CNysgCzTX_WJ`I-H$=m(6E+;;*W0rx>^~botJsNdx$fAhqXyIbk&fnq>w<@*% zDRl{`qQ`IhP=EARGI6>-w{k-ve@<#ZUu_F}5p9yz=|jx6BwZ1#zM)yi5hbzf_LHM|*$k`O2HTuA4RwjoTmF1sxI)&F~Te+7vQ3%QkaK&)NP1I1g&)TS9r6Csx2C6+J9$s~7;WN<(w{dP7 z62Etg{$ku7^h|xVmpQXjTRCTtRmb&KZ@!%CX$^9M4Z9x4Gd@h)Q!cO53;qeJ;?g>E zoplNn`)ls)dUVTeTWd+`{lV{}NN2XE^L!4eY+4@m22imcaZKyIeyGARr6e zI)3%Yh{?b>WRd(FOtTjfbX|ku{1>&yjQsq^R|TVr`ev>6501Y2{-Rryx0unQ5wm~m zFyzESGnRx!KsUgU)WBm4Y$Iqaq>tTM88o#OT*);K>9%divh3}B$ME=W=teea#E%Pc zc4Kr_5-G3jeyHqrU5-#<%41yssfI+a;Z|*fU9XQOo_pP&?Z(AOI*u;^dA%M^>yV%- zvC0Zk*8Gf&Kaetm@qF3~L)`Z*$WRek8HrzTHw@i2cT5bfZz0iUZpshghs8d-H%Bhk zd`sMSR3eo)+mGWo7{znZD>N;!+O~IbZ0jk#u{~x5<55@Eb8mDKMy`A#rEuixjuw`m6`j#O- zpbDq+yMG;X*Q)ReY_t&QDD`*@U6V-`w0^#xX(b$ey>VhTJEhBQu4Z!+`f-#b>!F;pse3e53?Ps&`5 zh*9ilDpnZ_=wemAec~CCP3i2w(V4h<3}aGqvupyn8K4clE4?Ek{&F63eApT?zpCCcS&BoaHjU$A#PrWfn(lD_B^x<>Z87X zc^be+TCOX;tWVE`&mhWsn-&&%O>YLb6u)&ACy&y;MxsID%80M+=GMf(I2(9PM2J%H zvvYNEWb_^FOz-Gth8`TTeoPl0T_&~8~?v@Uhg z!C!*fTM{n>iN}qUwlO&a1lSEW<^nT$ZBWz6^2|~UTx%dDZ?F+CKC_N97M1bQ<6@r( z-!xE||MyzigzRWEp`f%x3ovPa^zeJv^lG0sq=osOaI-6Jj+a z=&+%X(WMVoClqik_X8SkXx>;h*J5^e%5O!#&ruwiqO?vC35K008jNQ$pO#CU3_yQp zszcozR&x0^pY>GG=?VrZza-Rra??VtEq=b^uYa4;9wc7*m;S}qu~W*tu_peTRC1L` zLqp!^pB)1>m*Uf!=NLL)1Ph0Tx-3jp=b$cZett{1X7GHfU<82yXJ_}aoX%G^7Q!Z6 zn0oK>j#%M}dG=`~%BX-+QV{o^m#+5_S|j)p@Or7&*-cPsi2jLN+}yoX8O0;6B2+2i zzZj-y(q{Z<`Kbs>63Cc#Shquw=w#N~ifQ^;bpbIWohTeIoi@2XkARq=HN z<1OER99z7-!XEa0YnIT!fhs#(r}Tw^!rF7)8p{3KzVi&+G*u6E4Bt?FqFHSl5{C9bQty?$$5s+Kt<2&PY3Q?f*p_OD$|`65SJHhHN3h)tIzH~Xku z4)J5Z9?8b?@M_AT#m#4mVOO{KtF+Z|*mDMIznx;z_%XW*(cyA8{nR!7*vAXXca)+E z;`O}Q-2NPLBn)pG2mxwozXRF?FTst?m~#}fU3MUc?{bxDZHWvrdO$@>>;a=`cJc0F zQ&cYDa28LjhOE>^8|OXvyxF-+K%Zq-=R1psw`%G3U`|}Xti|^MVugi)EV`pmvAO;W z%pM_@Pl5=oL<1;8M03Q$&3sQU?2vg^pDR6++X`@JMY!)K6#UVPQN36Q`?rvi(9l;Cayu1ldYg5{UzZ%;g<1Fb3vvf%FtwYEMx4|z*I$1g zCTjZyG__%%VlvF2G3q4pBQ@ou5b;h?%3?Emc$6INWdEbe5+buKHqUw=_aL=nN4HCF zG2y`j{p$bwgQR32I17+oBx=fWn{gxAg1n&QLk<5BM{K=i;6=~c7VCLt(Z?cyOUlQ(!%xjt6c zEg4>JBD<>>Pf#ket6&=KkrF0aYUrwi+nzm#QL!iCa<0$(U~C5EA;}kBH%fWOn$;b6 zqs^aaOIzx|M6UjMd%>aS=5%6qMvu+(AWJT#_U9m>1)m(&kG^V1r>xFT@TnJw6h>Wx zSnQg@R{RjCo*&zhwrDeQ<80*xJshga;y3PxJ@lJ@r==8_;|7Y+MfyEeayVOz4y#JKua`!5T;eP;5}dRFc)l^7or z8tP%9>wi!9|5(!N(>I`7+J|Q(8}c<`#$-#3q263sX1!N36TT9(w1E`*x4+QSG-U6* zvGL^Y4@Yg(5!$Q`H;LR|N!Ro#M%tWXHE(xoyjuC;_rSk!2EVEIXr-Y@dg*g)<^8&f*o&NpG-s=SVl`v$FRpc9w z96aYU4%4cNpF{u7f0+5^Z{)-;qxHd|5NcYVFh<-<8B4 zA{M;NMZI_`)G~)36h}ArIzFeAMP+TZFg_I7qRR0`m%dV<295u5*FS?D;iL_Q!BxlNzH4{ZT6|&PrcwZ| zF?RP_&xq7ST)kCCf<*6Q-x;7XF2ZnMl9b_3!n9 z!%FUY#icK_HNNB~oISOIbahDseVIF6rH&AS@~?@WN_zisuN@rEje7apd_sI^eks;_ zgKNT9-&TbKaavp3zV74p&|9pu{}_#Id#=9_Qf^q7*m+u_c=Z(hUnZ%RYS+Z})rf94 zQRAGl@l}c01HGo_GzSjo04dk!I4X4znoY5R1@$T@ygg7$K~#UFpv~Rk49Kiq zlgZsNVSIK9orOKN0459u>K__gnZ7eV#c?j(0@y#!XHoB~Ja9&QGl$b2mcO?fXbSCJ z-#YH%S;&5lYj5QSFqSOb509w38x(W=Br6f!9S^2*+sjyD)@;kH8`*{JPqM1O{|qLe zteft3KUJ?KHfTlUm!$4dG7mc^Uhi6R2Ty&qpy4CX{R_x#&zGbx8B-` zf)_ar+>oU#HTK(n3;_|&=n9ewqqSvK=FA)1fO2NvgGTr)y(6RY;)lOqq^I1Ia0JU0 zWZ|o1%6+^IrfqMOaCxDa0llYBM$i4ABy*Ra8%aY&QA$s{?wv!T7Aosy*=<}d-erN5 zF`Fs%2$J@5S76pCVK&9h)#&-`bqjH?wZMCqwr9<9;6@F!G1fG_{9fc+U1p)pC(m z?u*38GD<~96g1@HEO49yZ>*3j|r5`%h8n6&jt!^600~f9HC8SNP^uQ*6`bwNdOtLcAFLy zUM_h)Q<8dhw6u%ak7G4)iKh>Nbr4iOSI_q;!5|>u+upS zxpVXFo`v->r_!CPfl}`|GZ}4ay1b1L-7lj2*Q{CXjdM_<6GhN{Fx-tnVj!<8F%~^H>XEtzkpuW*olP zz10W$N(-QelSTX6T61a!D?6CvY}q)7H5W)Ob4<~m z?+d?O?BLfsddv-8>z`N51g`~!H6gDTyl0MDhDoQX1#0Gmvbq>zTkDBjU#GgEhs+d# zg@u+%IAwNQyO)_e2^1zmJiZx@@KO6f(4(9D$^<`S*$t7nUS=Pw=W3)R2u7=eQzb>G zk`~nHNCG2?eLGLz9$ruo)ykL7 zTciFs_uW01Ly=oaG*2M=52m$APk3ubeGq|OUw;*i?~ktKH9kL^w1rcvs)_O_dT(?G z?g+BmBR8L~LuGE@+qGm>Q~2rcwB(Du^wt(eifg(t$RVHn0ar>Daqd~S&VM|kfc-zKz>mD^f)48it5WqP3=2#HhXAfuBS|qIJqk~Cr zrA^nJ(BmoJe13u>TXtV6#dRvZ0d0;H*R$C9>bKSQM=A2N;i6#|HVPxnLDd!zRvsI9 zCJgGa^SIu8LH<^{*f>h7(#;SFp2{0i~3@Yj4n7QhN!Bx0w`tT>Jqvh6& z(w`o)6^;ixn54Ch{MghC)xWaQD{tM!j<{^>h{J=GML&s0_%pdc8e91G7X91X;-(?jTbs|$p z3KG*deTmq-L^2PJ+D%tIsSq0S3BmIA^DGyn zhLmwXeFmPeX5|BN#ka zu~Sg;OtYn)pnegY@0MHYMLgW#8%_c(k{i9Bx+k!E#(G)4{&{On-QHQ5ZQgqHMCBrH zll!>%SACGYXU40QOwDKW%~a;?T}|vg*?7a!%wW5OH41kJ zX0(@6R@2Xd8!kGL{{%6sF|g@9Y4Ltxk>hMJu|1D|xodA$GmgO<}s|ioc9-a*x}1U#2z& zA4?JMy|dhvOmy;&BkAwo5;P%02l!h|Kj5Ry36AmtnTOk|G{c@Pz-QH(vHnIM|CFRg zP7Ixh&GC2qeaLP|25yPDtsTe+PWw9U#*iwSwSaw>Un%5@=jHOF-p4Ga50tWAn-9EC zyfl~7Yl{GCa67}g$*0huSz7Ju<74!c)3pw~`PC_aJA5n^+w)Y{=KvzFuxhI|>H&m^ z!gq5E5RRw5qwm}=NYO+b0=rN=POm8fFktq-UbV$>i~30RqaM0(4}~kfseEX|ZV`<{ zYKe#k3*G>hYg!Q(hO4HkTN%z|=hrqWOpvIUl+LcPjq|>ti{&U}R zWVE)Wknqg^BdPK&%)b_@OBlZYkMu}#yQABDv1m!k@eRKlFWF!o9@>o1>xedh%-P=F zIzSL#O7b!H?c0Nd{Tr}nG+L+YyfTFU`@cOY&pL0NoBF5YddIf{=YQi#T_LLSPo~>u z*n4LzJ6?d#pGQ@$e*brTh3b4~{nJU*IV!vRLqSvhe+~ck?CK%luJ%bylO7>KsLtGi7x>63;vSn@lLCXCY-m+23ea8vA8xopb^gtfpl^T%|F}!8cEpoD8RY(3h zx8i_bt->c2JG_MZgmKQT7=T(T?IbQ5;WhXSlb{72~zoD)R%OX4>?HpNye+QHmm|J+|k z?^R=X=w}Y0A`exzTPGX&wgW?zQ-_#JUtv+7OES1iLCm_HWyx%C3mQlsLcICBk#Moi z2)8CjH>jTjf;V59gSSkL5YyFnxa$C~@je^?gSzwb))mY0TM5WCuo&MC%xHRdYi?UR z(kvuP;dzUHxsoBB%t!7DF+JVJ619(iO}_5IcC|Viyu5RqCu3)_U&?mlF&5UUpoFr% zyf6icKD5weNUwaUSPgcmIY=Awsy~0JdBXrJ9p=8m$(!KDDL#smu%0~`P0o^SM6@he&R8ReOo;E^wHv*)Yf{^4!^Eb$MfCi+qsCM6xV4^{ zkQtH&PdTck;!Kd?Tn8s)u#nAOksl;A#1gk9(9MV%_opVWx-VD!*eiv+7qwxZn22C; z%h2fd;B=X`q4a4JJ+X80-;|Jqch8@T4#8~MJADDdjV6XZOj-s#_2f08|{ zjg8q@zOuhq(;y-x@V#+MXJOI~D9llG!WaPgm>GFXoxw~{*| zMkW9eHZ1y4cac<#pxMR)7wThODhdh(iZKEoE{Ug2O17Hf+_*sj%ep6p>l>T1O?|S` z+jw5L{Z8qIRE=gEx9whD+s|KnCVCCXR19ojTYLc`x4B&oxlvO+ z5)MSHcy|&Et13qRuC~E~i`)eDUO)6U3m3aid~KcX=^tjKVRu%<%~oIQ`wh|WhwPYL z|FEJr*us6mAjA-xC6d)jipSlIV3CZ@;9sW4a_0jF6eRb91oAa#4H;O=@5; z#Kfk{ao~=Ps~(J6M(#<%#XC2HP~&~5*Vw>;(@I?RVMg5iFi}P1o=McqDO>kYYmw)q*COJ#thb;Hu^lbw zxo;dRfWj0blD*%Yn z)#2lB%q%?XF987IiGRPdCZBo72=HSF0Pp(aj662>4Uveu59hnNOqeKKAn5{wa<3h& zKAM^2kE2+x#3Po0kcXt_E-**lqj$bn&q zqZK9yL8)14HMbCZBIHWeo^nj2Jl1?(2h+Z;*n+O~1{IoVmh(9>oHK-<2cIb_0#_X@ zXX(2gBRhDg*gm?FOldd7Y_OJ7$6edRNP5l|$_C;@p4D3FW?T=7-Z+oo4|Cheax-cC z;mK3_25lzB-dP@tm1>DNc_tF#D`1ASF!i+J%KP~K-6NBp#CJkg(%*I{fr1&bX9c2* z$urRm{kS`zL-OxkHAN7X5M6Co;?!K(;UPCiY&)-shiCs%dW>BE$=^eMZWJ08k+zKSez+{#29UY>^>fkF6Bqt?>>_-O7tFW*jpaJhm+PzPv zSVVRwn41-z4X1h{ezJKR!Cexisdsc)-W@@K_r14SBLC|oet(lD#gGK++R7~GquG~?(c6m;?``8IouNf z`WwqX8tEET`10Dd`f!z-C?|8;GRY8d+H0i3PkUuB$7vY2P|y>eroDX1rdIEnp{M}l z4~#!pFJ<;cT^uUyO9Bo|?)$Dj3 zg!do0P#%5Rfx*fnBaL@QbYAP~$ihsPa!X7zfA!UC{)Ue^?(!7cm)mwP$v-^=&s7p= zqp2di$J8&5E2=8xA?d@AIL|KkAo)%!<|$voYXLkc_~(+J z>DUK$cxPB^(d2KVfLj$l2%5;!(PA~BD?)lTSp{!k7dW_v>xy^CYi2J|l4ha07SJYY zEoxS1?V!U-61?WK3@wLb0br#G6jOPvU4Hk!=X0L~UZ}s?TGhHlENt*qQ!iSQk^kk3N+U+c{%b$r|Zs|AqPs>3#h-^MM9r%l!&$|M`* zad&})E&f?*YyFcg!R&l+t4F^0DE(fPJXzuGv+Gz3oJILSxz*#}i8Fs=3-2gOrK^&1iaI z#~*M_P^Yfv?;4x#IdkjUY1-2+t^`1ABvEW!ye^B70SibN47GNblK0idXkxnB z)41(7%6(6gL|GaOBG4PncJG;aypJ(8>7g`v!3B|)hX zdU&xR`Xr&$jOc}5GxtT7%>4JCyo!`=c$CZ^pU&`Hhrj*U2?AbPOJBO}Y6%Qf*d#Z# zAi4n{+j~-b)d0+6Y9o6Li$<$^?g1>5-!VB~KfmuiXoY{h>(k^JA=;9xQR07bNpmoD;$8b$HDHk|wyf0dZm^5T93gUY>sq)8|(- z^_5BSh0j*yocwVhW9~Zt>=S#? z-WqO!M4|jWqBonjeWRhYr>8IN8J@0Nq-Zj~KiH{#>eYmidKPA&W?VCUfStT=l**CP8YYnegma!>DQ3o1Q(6V)h?pcDijkf^Gnj$ zlcbwr63y^j{>6Sr8|w$>{?&~yg?G{|PYGYjXQ4bb2FPDF#9ay;rf6t!N?k8JvG~>C zG+2nOQG5CCoi({`cfsLh%Dr_fOhQ_5{c&AN^{F&@Ce8ESBftGe7c7T_oSMqp@PwT& z^8%qB8ww{J!jKaC#+r159IG<~+ZY9derqBNS!VKc`LMqa%LuDou=xq7g7-^x9WTxa zkaYG7m&PNC+Ge3=3p(L#9%!_P_#N`SB~+D8{VTP6=o0 zIBZs$+XA%1^5_%$g^RJV{@iGmlXO}rR}#xqYeuZ^Clqo8YU5^KF_O+oGHQRtsD2cY zbYfWL+>h!!`Kl28@$3-1Id{dpPUjyi7fm5V!MrJbQmtA|&jPNsezbG&UAOzh3A9Of ziM5#PEDIhSK{mI$EPF+%AG+dqe~hgXcP#9YmyEkjVUdh1ruOt(B9&9NCD{g~{}S1= z(piz^p`oqK6655T`Oth+$CrGADOroRqA>?cmJ4ctj5lw?`XHrXIt6~{|GbZ_3yA4`(Y&(hRM0RPF1u; zwBW*9Ec?ue&DkR58DCu}@b?@pH5Ys0rW$IGEc_ZI&eB(6oD2BQ>qr+i=bU+X9uesr ztq2Si>>JF9rIAH$;kwLACULfs+dKVOvCOMcE-*P5B|hZAMkf$dh_+i^y3{vIg(TB0 z;8s)Or!Ri}CH4(V^qNIJjncl8V3p*%>R>Can+r$Lk;-EFhvY z-+kH^t1RBysYA5i=OY%P03wB`G+X<5gPoS4X6>4tl6f;LyXs@t!7tr@9&E{}a5G1) zcDnL|q+62q7zeN~<~nU_%d%T-35%T`#qE6t@`BTnPDo8`%Wt!5U8wozJbFU5WWB?k zZIO|k)M>j7s}sv3#hEXz#ZLhF1ubgfz={QKP@pNB(dl|ow0YRK7w(yfuWIYD{# z&LEt7AYI3ibmw=BXaEh!K{WH@KY=XTOzvAcvo(4e0os-?EhG? zahj^F$nq|i2^>;Ut`1%z7s=1aE&;H;31MB|6i9f^9spvK;+F`H_RP{W01%Whwwvx{ zeGb}geo#FwP#^!yNRe2w34@{i%t-Mf21$;*Kt|Q)rTurxZ`<2_hMo&HcRti4U$WlH z=2}HY<^02%t>DDZ35@;)=dO7U%~rGg1N)&xzvb>Zi3ljk#Rofopgf_shXD`RV{q+( zMi8&LqwDWwo(?N45s^jEP?78ZaWxMtUasW|l95H?<^UOecg1*|z@-$N_H#tl9xgUv4$2@w`uSG0 zn1Z}LQ67`r|9X|nXn5o-YDGEb&ChAz)kTw`i?j1Cf9;X+UVG-fbQ=OY9Fe^?50T(# zk^T9DDlJ!7vZi}dHR-8)06HzYgn&Q#z|T6|*I56Yj?Q+a!shq@2bkX~%6&$iDz(E` zEBx7o@dSc0X-l)c9(@_foDo;RXjG#WU)++_xN?LMx3b)!+B5Z%9EJyVw}|EcC?M7&?1lT!#PD zQWpL=wX9j%_Mwe$EXsl6WB9e*xuMF`uo7-WG;0Pr|M*C=KC1U0?(cQwDKZK|*9W`6 z5f<8`;rDFIBkP}vJ{0ZxJ;R@>`CP{_2wBI?loNXg7MNhjaG~*tzUuIc_1XA_-b++}q5xxc`6U>cCr}YfZl`^`rUY$=NiC3rZxwMSKw7J^* zaBopy2d)gZx#NM^j%9a^i1b+5xl}D0tbASS(3o8~_4`(sK_O5&bqadSCA$f4<2@6y zw{Q&fwLFjnNBE>%RM~Do<_(;Qm`6-PD|*6ZxF{mQSTa*DP~6CxJHqymY%)_#a-~nd zDE}o=_)0QU?qPEu`T;U=B!W;80K@hXG*eLzGv%jC)u7Qk%~@uDp8EVwcV2m=-zBI` z+PTGMuUP@o%AC(u-M(Fs#QtOO z{yc1_Xwm)UZ}U__UMJ|ldX74zu*mu^C<0XY7@NO%@v63d!~b#d32lp9jav4-aRe_s zbXoi$DNlZ7JK#Bx_)COPnB(Q;!NVxE$gEvx;9u)}tHiaP8hOtf4g|Z0bY7mGr zFmTiqd3i_o6dSIhIj$M?zCjm0qzpCDg83e4PeK1wtoP5xUD_Dbfx>R2yx`}O?c&#V zagYa*LQ;PWS?oHlVSRKhH}W~{G8!&008-R+bf!kw$mNcBw+%Rz9n7n?OB|-5&3Ed9 zLLTkYyRHS-sz8Y#3C+4Vh6P{o%!zd}kktb4wbXC_9-DTn7x}!7PGn$N^huN(lil=< zkPhOwT>&`CtF$Hxv>*9VF!^T$W*yjRCeHc}rWI0=-62~_``kW;8`eLjkKn2BI&4Vq z*=@?}!=~Gzux=1$VXc651v zVY2#3x{?b8pfG(!uXD%u2-XTM?~SA{W5(DM{#JIuWg)B`EOjKZ6x2b*B^|(YI6^kp_Skx)cL-s}VqU^rX(rl`9#69aihlPJg^tdA; zGq@)~gCb1GwqZ4$95)_Y=d#@?r?S~0Ms&8!5#Yuvgpu~Os&Xcf8gYw#hhR0G`a4>7 zgN!V;-kR5l_r3|)=0i5gyM1>k);;adSu^c4xvn1#IT^mnjZ8If$ z(*?0@fIinb@jphN!3Na5!&5>nb&^|G?G&{$Zv$_B}2 z&8?&tM&Wsk^Jafxt>(Erk)FY6W^|V!hv7ud-U~=|Y6)DdHK~I9K{%$CAa)QKMZa=O zyTdJ$tG)M$g>4YLCM+SrP@D=>_@tr=rLxd!+o!dSsx^!kecA7~jXS5QE zeV?IaW-Cr&HcNebB-30Z$iF-YoKe)MRJ?kLyToN#P`ApZR`~My!9+qiwSy*G&QyxX z>FL|)D|gG+j|dRbmQ4=($?ftA#A9{FKS_=Fg-~=hWh5IeaydZR2w{f)XnMP2yZ+4rd=~Y;%@dH7CBkkH9VxGoPBUL+D`d4 zgz?@>F@YwRh;Y|gZDM0`_}w*g!4Gh4UYYdojuV+%D`L?^uN>kek%C{0j{ zb=%|=)Y+2PyguLcG#Y%=mRx0WnJ?)cn7AkjxjS%EE-25@D~¥mB!KIpRi?)bc^7 z)B%m(r>z!UKF=$Hv$9Ol%MDX1K+}AyBEVMnnwQQ>dHHNVCk~Q|PTW$2D*vrgpBlI0 z=UY5Tx%Cw1;S&A>_xfu$g2_ZNb}E*7Yu8Z--s`HMD?(c}XTFAZ>B(^Fc_(>&!vn|X zQP_u~9#1)cj_)aM&|5gvp0kZLQ&(-L##wVyk+I}=x;HL!N|YpBKr zvRhYpRYdb=F1N?ODH@lOXu47OX)#tO+-OZAw(4o`vh*gP_(;Z)*e%dQxUnU&A>@h< z{P8U%NG{aDrvI>XCeT4lMaa1wXCu7@WBfpxLTv7%k{PF_Wme)&_M;1VofX>8mP|Rv zut#!K3r~TBl&op&P#aG;G+SyPJ`4!do3oV1sAV} zb=TtHr0u=2&9@i-lgu&upgpjknM)6r|J%86knJiKB~g2Y@soI`bRrU8D@eg4{nA7? zd)iEI`z%)yz7i|DvP<6u``0(sf0?t=gs33APQgl&QW7N-`?Db_Ewi~#)se1&On8|A zax%L{QvIsi2ol2p{YOfNBLm`|km0M!_B?by@)CPNm9im`PoVdw@+e(tpKJ%vCu^^w zEW_R58p`Z}4^w|U9eC88&~o_SAZz8j@u0BJ3gw>b+;Xb8b2jWmReL|f`y+S6Bt>r_ zpkDFTRKIDuq+b%q>|SXtVqpB@(!#=UtLQM>wqf67Gw-aVu(=w=@F9BKR4O)%y~ahM z7{)Y-KT|@F-AX2+j6~U$Nq$GtJ%JM>tP4uAcIkw3hng|st0R^CKJX^gCGPWr{cSsE zWEod(2(c5Vf>*1-1=TN&fm#HVBsrbpNQbjRNV+^2upsmMhqA%1b!fsr@5V$$18M8j zbYL9`3*cF-HWdTE!aA zDy_hkuuZ&mTEfMSs*DmdYmVF~+x^-Mm(*MMpEh>(E7SC}=+I;SmV8_ccuX+|g%>>5)3((;o8P(ZAnrP>kG zUKwsO^`c|^LMHsH(fj?|R6M1mnlm5o0l7Q7(cbd?8Jr9Tvzcx%+jyz@E_;`X zwhftb4!=c7a5_E{j52cci)+v=3>J$8A~OH2S7*%a!A#jB@CZB64bE6FHL_7yM!8j$ z?(IJHJeQZqwCf~p&{|ttEeeM_-get8g^od?RqIT%B zwqUmJX_2*?Ktv4Xis}dy%DXsbV~8R(@@4<-y7enuL)91fd&Yjetyhr|MQPxesZP_R}_yt{mc9~y~`A8)80QVzbR)%vHc z3DY`^!j+IPr4?t^9_@WbPU65uVG-5-7UUs@ReMFt26%}{J9)Gt;Id@QFtjQ3btFNb zoYY9k*1x?HR|x%#GbYJ@vxdjHgg{6`)=AT-_SUf%SO>3ZN4;~EN%e69Yjf$*jZ|m^ z^!2$hnJrs(F|#NC^gs5tUx|-Z8BeS80(v z*Ljofquqez1VYC8Qh?VU<`9Vt@`R~YOo@IZvBXFo+JVcS@{`Qz4G&xF(TU5a`^_mM ziW8grNTIFAT>7q}EDFK)fajbUBLMudFqXF!rogbBd_rBnmmSv|%AidW`iy7%p8)A2 z7(6SI&p{p?S$ispo4NG1dA}}pG@Z^SIv+A#fuKklW?na>Q+p94M76|PqlIhSR++AU zo-GLO5kE-d`wUK}&zd+=AMKSxAX1);2maR6@H^`rKkMP{giC%m{vI=rwP)B=j04^VtS zy)9_6yfX$!^`PU$rLoa?eCNuk(;kR{y@o(mim(TkmJ5Rkz(o%f^|g3bvQ)QvUpJr! zZMd|)qvHFqv994^8WVrgQ!pQ~-$3PbbN90EICIAL5FbT6TlhU*c+cXNV)xI47^UOx zj#J*4wp;YoezM0g^&d29P>48oP#7ermJL~DBvlQU-NerDBthi{OOp__l^}0~P~>dT z#6ThFDuV~3!iV}FRPpCY`Ma#Xv-^43?S3oxwX8k;7@9VISmy^|4H#l`7PeMYXxa$E zy|oUwgdH6M}zB74j&&F^m4TXo%{y=ID%X| zrI-p~Un!SDTgk<(c@n=&o>LmF4-%ndsVhKI(NexXHjONk8h*S*P~!UB+v((ux%#_( ze!@%~_M*vB`bQ_k(p_`>z(~Y>AKfk;hM~j6hzAV&-_QPMo^i|2@M0H)HQqW(peg_n z5WFurViZgFbe1@O%tZX?O<}br=ahS@P@79>CV0Urx#k_S+-6=9D@4J2kQ=BuZ<1p| z%TrazOeO5}J~@KBhgiHf7$XU%=^B%v;bVd4l1qfKVo{dD*PAfwr(<_U3%Syalfgfd zV%(v0+Lws=Z#oPwgl&lLP$|7HapC}XoLnC7^8p<)2bni6a?G0*Eg3!u9rVR-elmN8 z7o|5wCvWAM-&`G^PDU_2_n;jKzUr?KQ&3VjWy`Mq&j0oTP-OD0`azcGDHT)Gc{^>u z_;|>G)3fzXT=_$2jtEKJtbaJZToyp)Wf;E*4b*ryULIoOwwxd=_WPH2^iPpL ziSbPJVbM}Q$@@Tad^iz9-`15>`HULLfS1A<>63wF1{j5b-S!mM&p`Tk>uKO#@1*vf zfw_%8L+*PkdH4`!S_7MwEXfW|u#2*Acc3gyjkx#+;{ao>aVu&b2FraW5~JGz#vI!0 z5SPjO%dm^uX^tY4?nP=Sm8PJQ7)8e(B&qLeKOZBh+q{lw82Rg~d|`vs6yswf+q)w# zL%KR2srY2QVr&gDnms}lCic*m3fmv=g-#Gogwbu(SZ^;ewPsLRG%q40s4kc3{Rc#| z=mT(_;Wk#bvTELlyES_(wP|k5-HR9iNyYVwgc0RCNX$5G@r4Qy(;6_-R8;U?^-+U+ z7I!>zfC8Cas$jiKk%eJ9<+$}4wOqsgZL$c!-c@k>CjBB+6Qf%ELb!s;&tcWT;f=2G zHdgpX+Nv{^y3RwUZV^q%FEXz6ME;dt!Z-nMc}VmSO{G48976V2aKaRmx`QxRYXwts zVS~zv6S1UyPu?A~C*P_GOa2JgUD>=A+y-XK1)vTsCjQy*yHNC@4(!@jM4YwiJE&2J zu0cEV-ZQwl650mA&eQ1%rsqJDKY+}(~x=N=c+=YjtOggOom4)LUCi6&@u@-u{XGBOsG1T*pyGXkapUB^T8 zdU4#wq~;7n>6zs+V23FCu``S4yA+Uz9*;_-R4_nsWDwqO0) zjir==7$;A@?f*BoA^BLf|A`{VZ-B4)^;N`E(yNga_7%1zB|xLi>?inBLNfFh^vMz4 zn_~P^QVV(i;(Ex}-VKEa@PD~Pr_B#8J0Ry|p(O3P0_x+}hobSz}4L$0==yap8PfG>yIuw(mGs{qz z>V2<-R3)9=n(43l5@YLDVT=EUCOr-P<6G1_ii&9r)REsQiAuqoY+u=u`Z~mCQbIAQX&9G7OstM4Ftv`Tl zc}Rlp~K!nKa(AZI?mak&YTc`bfckyen7dPNU}7Vo23nO|6>7AANM3QIbyc zo}_QM!+KtJJ?njGUe&*W*}S%guEQQ5l#t1nwvqW&&^2ECZRN|Zg3LDyI+6a)(X^1% z=92)5{#84iTo17=rR2VZd$Nm5fHze$<|oR!HI-$rB_rfB!Y@9m5}!3N89UtL_e?w- zPJ${Olq$(T9DY=df*~fl15v+h4X0Gf_OAEwYSf-x)UoqMy^Nm@qKUs zB$;w#y-{;s;V(0dcK7G7-7-dbR(Am|x}K>42azokaL!vXsW$qXMMAw0j<;Hu+Ra>A zS951VKHMD4%AE=#=ACfa?4q3X52+VSm0k^@o(HMqy=JF+&+12l6B5j(t9+RO#C>&In3z2}*bE?>y=! zS?iD}RRiu7??n0upS&|Yp}Cx7_egr|1Gt{IBSL%VjHNdUjfM3MYF$`kx{u?Nx}9)s z;&l#T*;p4&^M~J^!i0RF>pG}my{d-40D~U2k}rsrz_oBe`h`?#@Q!5{=~Yx-z*I6D z+F=}EA4q7Voq2Jd6a02|`Z|vjv|YeWN^vj{<+iaZO{@=-Y!5^ccu_`ewN4xJCaH4V zUF0sX^BCdk0G|`A4hH^eAYsYh&B=X7{P2dX&6$*%U3V*64V2|X2-F63jHM<3Y)|S) zp4vU+-`QO%&>2k!=1I=L79a-r`a&CJA+rcv8PK`Jl_0yMDLSlOz1%EeLtav68QAiA z5Yb8nx8ZY_DyNpu>ufA6-@lSQ$E6wlcpnEKF_C12rLmSIwJT37*TQ zP@sbBCDoPMPZ$ttq#|wuKzJ`Jmc7bR8M1CPS!FDTOO$3uvj&5&S8*Syr^32 zjI-IBkJ>i(HGq+00@Un%zGyp^Fh_U)pY%i_dF)boYdv~`bNJEkJnq%?s$X>a6 z|K(6_ZX^!a9(5td^xL_ve|_je)$ev) zY$~5@9%$*D+plOB>K})Gk3}pMrKEjI#E&p)&9C%9FKjGWMC3?Q?Hrnkt(je|Agg0g znbP<)ES>XX{+lY`0qXl*o2Vj~z zMoDpT0(59s*y{S+MK!Fc9=`@bj*hIlTW$csG>Hn2(%n;o#Bs-F=F`?t;r*rYqvIa)V`KXT^78drC8AiU0 zWi8@63VHUaqf@f)9xl(~9C6iX0A1cD3=xiU{T+*EE*MTLSb>>x+pgypL^aUUCw7$z zh*wYh%H)L`RX4R6@a_aAujLh$rd33mt(%7uckgV8$Kad2zdR;t`fY*1?!7E+lp3wY zdMo`9bhqI#A@fA3N4hp9Mf;G(*lg=4kU+;ix4OOwIy0%_1DWPk^naGEe_O)-9emIJ z;pNhaFT)81P2i5)CPS0i%M&z^ryt$&2TSJqqlRgHUtdbjNd5H^48X+7GC&CrBuQCl zuW11NR_cu6CN!wY#2%Zl%WZDT%@x}t@wq!V$a-%Q9mTXKFBN`bxFe-hcy*XnP+f_0Za+ZyH?b#L(+Q6Chp>eS2K@S z%XpKRB5AiNovx}=*%sPiK4QrbJG+B7t}pfRgZMBEUvFZDtSn_G3^d z!pzd$`mH8?`w0!r@)NR>$cXZfGriNJH5fSRVcpFKevrek(^m7=JrTluP=^2%3E<~MdnonlCFn?XyJZ>CBfm{v*Z8Se;{DR73AgUT<=z^yb z4`f&pJ3QQ}J`?)*GVXbtwp_bSGN<=ndpvIJ@g`Nu-UlBQjL=?e0h{tm z8y^{4bw;{rX>4E8pm{6sMAF#!9KZ3<9IBw?q^s;hVixRMDLclk%3#1}O!) z$EdJmkskgTVzM5pM%3C^&o1@Iz)iI6(!Q6*-Q1pWv|d#FGRh)4u;NGM#{F>3NzvqmV0i+EPrQr$RC$ABbez) z@v2im6TjQ3uaTHhttQpEDS>4adBIc&mEyFa)=?FqhsMLTiBVhm%g%YTfdmUD3+ib}Q1n^j#>t zu*V~NkpjJsd?4ui=#8vaif)pNa48Ff~wN&ABVGmUGx*F%7@P?FpLw_QD*+UY%vFPOB=JIR7s;kDLJ+P5@>elv0I4aLLNIJT>+21Vl;j+kFk4# ztJH{EF9GPts)c<9S1u*j3Y~SGFUAjr(~=p8XQIL`u`e{R1}Odqhaouh)4w?qG+OV0 z8zpqX&I{**VBx417}*{pvFAu7Panq{gTcMle>%N)M|}k=i=@KSGj{5i`EzR)UG?oa z;JXb7e|%6~AW_gn>yLbCH#V=oKEhfJdMXDiV%p5QRoqM+g06_@krSI zDemU1i06qz*IA*(m(3iurW01Kuxb>tKbVBn|7*UH-HHPGf~$mX6iDuNCAs_3=5w#%a83MV$bCEW=yVl-A02iI=YPWi}gJ*1+wJhLejuj|Ho z4Q9sIVD~emuGG3BQ=J~>i?@NKRTRve_~JfEUx1?;CTk?Y^yqB832b(N>~r(!i4ap6 ze-n6fX&3dI&Uk7_cOJu$%LMsS)Jz{)R(d@wubkubr^btjfjd|$qvhG~ww|OfK6cFH zn+S)m2F}}qCH4Cyml3TrNw?>@EO0=jR=p#g2&gdQ@c!O%;KzR;Y7C)ay_HXSG*_9Tm z-ADjT8Y2%Q3@*|o_gG7h$e8e;Z1I7H-mkFwH(VQK43xr#+?uLP+k4GNgC*QzJ8OZx zQU$g%Z>yVHQ7!z_U#QkH&XRxAZ8sL4=`E`6eP)K6U#<03mW zCXJ(^Qn%m60XJ58-Lj7P!*%D07b$^}=z-hQ<+QeE+H4>OUc^q>XF=0BzBkNjyv@Z+ z-!GOxPgS16@rvrN%2qG^1`k|CXcrUSC6K6ccXQ)}1A>-R6|Uju^RZUrFW?&3hg!W*qpB3cMcVIt-G)eXX|U~O;%f|9^G`r!F`N>bbvl^l%idadJ=v*1$O8uAdsJ;s4->#> z&cw^W{48PCJ3^N5)eZ}F9R>C%vHh-M0rx%Lx~uZF>gmj1`(wzVrz2hL;x+3liOCH) zAyb{HTUfw(53il?r)lYOOkOLA3ygYqyCdua*$Mm9U6!aAA$ssxwkCh`Y zUjpSgwcdWeWis?C@MzI}DHeEMe@EDF919U%N!kin;mjmtQ z^lVU{XRLe?vyS{*o6jy!{gVhgOulTj#Nf{bWSc}8k7-t(4=(;J&@?s8zLstaCbCKE zN}7LIB9WG!`^t1Qnb~0nyxN{?EfOF!#C;VL#A*Zdw)N=Tw`QwumMndp(p%BP-ugEk zY#`tIU8x_HtkNw9xU1Kf9)XWZFPNp=)cSHT(Z5ja{1N#V&*L=?Egna{eb(Xqor!5h{~`hvusr#%+hpRn*zw+Zlcvj$YFrnTJ>_w+uOYHAFYggJc(4 znpFU0PtNj8m6#LhQbOeq4_}J1BR$O4fUW#8$BsK$Ygs^WA|4*`qDeZU;Wq=kWw%ma zt6{zd6#`{ztpO$z8+Q$C2G=(|9$x(qoFBj16?`8{#|+C>Q;Lfgt;UtK{6UWUmd<7| z!-Z0bOR%f;$PzwMDp>-bI{>yvR21xOZ@KC}5NOCr|4CmasmltB%i#rYFi5-I<4q=$ zwEH?-pr}VlDC>A>=pcRF77?b{uPB62)oN2Kw-X-5S>SHtbhdPO&}Et6@p7z$LcCb% z*z-P?iKr6d8P}d|kH5QCXoN-$_wK4L11wzETid5`;Gc(F z$Vkh}FV0VTin6ndA|UPqKs;k&o{`k|$vfg{!>>Sad|?4t!={_Gqy0srLr|y(Lxh-} z$-dTp0>M6WsQf2_g%Pxt53?6Dfw-ESQK>>(pbP0eniS&l@5Ge)G(g)OKHk?NWtUvgoDqc|pk9^I<&9-V;5fx<%hw_PqHyrB1BFE5)XNH=d7N<2BkI3P`a zhnO0kCblxKk4gL*O^)e1!HJD(TspZFR2Pb4Hd_b?H^jJYm-u9sbPhp3&AE=w+@n1L z1G0+WJm~Voa7h{0oS|O|l;5CZVhO0^i{UKITIXZ3AaYmHEJ#FI3*W{qwM3JhFu#Kxi?}%!|3Yii$C2Rya+xee?h=ttwZ1lw zAKra9vO6&u<7cjxS{t6Nt7$nyN^qs=IA^X1=7u6HcLx=e(}!TIaq|*ZilGQst0bai;LG z-h&b5J6)6T!0$F5n0IUU=Ng+S#vC3F)Pd(y-2o%+MMz7l?!UM}C|ems@EaaYN35Xj zO9?M|i9wR4vkjo?w%ND*Ya@+0hn1>(hQa*MX>wF}2RkIqK5y^_Ea; zfOFW`$NG}St9JbRWkqi~{LQt-Nmw{CS{e3xU`dpbWxtPd6ZJ$Z+h zT9cCMz3(jiGh_a{qq!(&Tsex}#bL5AXUHsngU2hCP&IQ(8eLOYC>7L?qK4Xl2yjO| z4wM^Zs8Or2bx>d7BJ3->_wus(Roq84PQNZMYdjZB$`==zF*S|yh&pS1tDHr656NDM zm&iZS*J(rXT>kOnRF-{@Wrth|L89Mr{u*0hgG)(wtCHFx_Z5^ScKQ0FuA+rUuHKDXb%aU6|mlxA5Dd^_i9T&-8@%{VAQbU~$^Hb;dc=b9%sZ%bBGTbiv zMI0b{Cm%&ZI{6g13PTXwZhfynnZ6`LRk&FA;$Ujh(!j%0)w>de>Wa*^`O z!tJcXa&KSTY2}$){vz&uc&j)g3JEE6lVm&a^RzI#?d*WZks*x+2KWa`?Joe`+aA4J+H*W z?nlyxF0s<=mu+8wz_8!oR+Eja!c}1z1N&-+_uWiKH(X$CiloQr*j?$75-b`Z&a5&` z=0NW3a)f^{PLtnZ%!&Id)2wK3Q-2J`**YS0j@w&Q3YZc2zr&5Lpb%q1ew=7@eu4AN+vcSqjsKfmVO; zkYL}M9bB2)&yjK`^-z>zPuvU@xT*uTRc${C$+6fP<6Ex!qr*rvK5`eiX z>9-<2?yHGJOH)!IUX}qN=9NiU;xa(Uef-0k##scPzF0@Y(S^qxD?4UKU0BsWy{MI6EdvU^bL;WyUz7T+Mg~Gk&3Z=Vp zt8GPI=Bbzjz5^u1m%>;q6x?e_#zQrT1r@doix-sRawp*6j*G`JCsV=1BY4T3KcM#XLnoD|Gwt4lMxPFlixR^ z-=)c$Iz2ivTc{irB@D#t){R*su5QWe!7WV>>qpv+WH+IRsI!vV_cXSBSZH=`CNEp^ z_r(yF5V08~Ek;JPCou&T1(nL2C3xMn0&#O5NqV!k-+|uP9l8I#@3I^NZQV1#!yp}1 z#krs{9Z3bhT!Hk^%@}tVDf;Sr%<;|QxKWnyTxDtl`8rQj!0HpWocE;-pVt#LJDw#~ z>!IF^l*07^Nr>STe_4rc-m}wd&;+Y)tl0&#iMkms<(fMUhVU->+_toFC zdO2S<(R0kNR0AeQzNes=J7ew+PNuE zfAYL2@v4YDJfwuA$nNrO*TE^@J=#NEPhC+VgoLXMQ>P2)mu}?fZMi&whWn_Du$4B( z_Z@~k1cdm`Z4eDnN*Ebg%`q)@{4z7)BFwdjR2|h6R8~gdnzb@;|JxT3thB<4s)Z7Y z6gn{$Or`8+xyXJHKxEqi!e>`Jl68tA0CAwzJ%m0A$#(CMeEuPiFenR62(tXyFG%f8nwNm9)3B2$&8K|&oeQM72rdDN}(*?N%`W>>oazPwN2{9WT zBU4`$tlo{nG)K~ml@SW6GZb=e=n&lRiVa>K!9N@MrNM%!TvgctVaCt#H}n?hsxpO5 zd1dQDPtgDDk zrf|yW_8$Cd{v!?S7WH|IvmPZAG!ZNX5o_?6+P)JWIcUx^;bYBNDfF=Lr3vM#(BF#I z`ZP2dqHj_sRF*LdA!mSm+nvj-NyV=fbA5D$p3Z2Agwmi&=bOHP<+OC$=8VNmHCV(t zgK3Vhhso0}bWXC+9rColimJj@Vy0s5ynS-3n}=q&B`d@ANZI*tWsHt2Sj9wuq~!pO zpp^vK)P;^KJSR8*NVO~O4w~N4LSVByZ6b)=BT~HLqIa0CB? zF#)YM3bxjTfmG=xU(a5Ow2{y*So#g~#`4L41{EJQQ_Hb{wMCtOt>_b439A{km+~HY?fz>9+VI{$R}k!fKv@;whdnO~dax*IoUT&Tl>D?qF z%YUe4)I^s>7p;J;#sdt*U1@?Y6K}A%lfMbV6J^=)Z@CzSLKCt}=g>P|y05SRnD5as zskliE^mYX_ zrjK%X8hwM^J9_3yx4p-Iz?4qQ$94p#lVa>E2z^D)^>N;A&Ke_h1S)Q<55MPH zn;sYN3Q(MZHkTOg$)VKHDN(mg*Luod$>TNUeqF;A zDaX>2^Jb<=qUll4vcds-*it|2t!9rj%l5P}p_+<|p-kca*i063SA}|>)yC2ur$p1y zrntEPiN>qveSwD~JFDk*^U*gSGxz4_?6!igpaR$#b)>7>8i+{MDPvko4~ikX-|3N zz;DVP^1?O0DDx=&{V4PD&>%m`dq5*A2^@7M$jyoed=?VFNN@AptS*>r?k?mUQ0RNN|SHP%^iVYpVbQf!)>Y~YUB6eu6K4m0> zDV1H9XDZLId4{XO==bmsI~5|l4?(a~F$ZTJaT(n>JrjpgR$3m6(-VFd4&YN~`MCfX z_yvaJJ^S0Xu5?Wc>fDr1m&+}Iue{wm3GQ)fm3)0skq#{9&xp1yfpvG8-51uW%KHsT z_Ge3J6q?VW-k(mOk1H4`hyIi7g zce!&yp}uK(tivlq9b0f^zXo#pD|DNF{b0X^^j9CceEptkIu?=uH9f5pk(a7iYXipx zoJgr5Me=41qOt5Y4m&5=IM%{<6cM!C6;E)9engE2v(vF2eR}sflCIZTU{wAvh_+fL zv-AlI<$_`ye!tlkQ~&15ZOu|MmlDSb5y5PC`kQX_VCYW`wmd`0XHODl1Z08?dQv|C zEq*qfs>IRkM@z_QuGy{t)YTvUH%*lQnOM^gd+BTiT0v!p*B!}1J<-`qf09&$v8iFY zvV`Z&M0rnsDm6~N#>YL-;Hr1rh*E8Yz)?{>eHp{xydHV(EHO;#YzQ>45lgag2`XUw z>Y#^d+8$l3?T!#`Aamyu;NGq+qZ4dK_vRcu%FBHn*%aGTjx$o*Ei>1yBSvjjH^$Ul zEko<+CnXf2YKTH#wR4iB;>Fa4o+OQqHi*X!E#?4JlSbI?nY~!{I+I^a`GB$c<1plbLt^cV=dNnu;~`F2CB?+j6Yk4HNXD*Qoz3 zA=W3qpBhrcE@xtlcMD}p03306(C+ODl6nIti>Fe2Z+4^Zi@@2G=*{x1&*7_&@r&ih z0nrQ7{T6r~Triid7i;3^erez{p5byJq1r{90vmz`)(uAFYnMnCKenL@L)U?o4F4=8 zSyF-Hjk}@2XVeX>-ipD6X=Bmt_gO8W_-(W{uW1TH=mom8L=*!1N!Wn6uVwpUVz9oL zV;5g=#uK)T)ZNx}@%g|U*om8|(V{S1i{iqim{{QyznlLB?tbv*lo4^Au9sdRZ5!|T z3e_vdX?yTsb$WgsTAL2aDlQG`<9Nol((ix5t1 z(!oH-br70QYw#(qA${HT+(^dh?I(ICGtmHzg%UH%Uts_d3k5vn=1*5w9R0b>NCd2< zmb1T-n?S(UsH>LWchJJjiq$#;G>yF0&dd3B<&75tnU%et|Hu@WiF1KaZ|+@826_(6 zG|Gv&lx63m%JIOK+}u-vyjuW2^;`Y@@4P=Zk-d-BN}%?}5lBToZ@WJrHJx_}{~?L7 z>69d!bi|*d@VxBsWanb33{f=Zt{6vWx`Po8ez4zO;(x&h)X!*)!}z4ei5|xC@vJsr zBvmvTkqtX=PX|DBzYe`w7CAXuOe_rreFn=*aNIE0?~5@NsB+^hR76&$#mxs&+CV-# zuyItTjvW`EUQcKRY&(oXuk2UvLg2{f?Iz{C8>oqDobT zu%4wBC{LZnLYOVy_W3<($Gp*u(SS07v*i6Lf}d2A1cpc)5AukZ|Gvb26BVIlzsRKME9P^7 zB@sbVSOASQenrVzJ`L-_$!QA}@_$GIuE4{JsCMXJg#D`i)aNAbrcxkhlO2)oM%?!3 zzwdi5*$x;9rX`#y$>ET>t?~6#LiNYLThI4Ghf)aL6wv%5&HGnr07ehD{LyS+ZT4pc&0?)d?e-%1SX5?RoOa57W{q;sB;*bAPM4~`S z5|sb{hWGmU|5^|7EQKialWG%1wokhS6JQN=k4cUGqE>JFaWKG53eBor#`vaa#EHe% zj_X+_L9O;wdu5q2rWQ{g&3Zy`e6t~yv5KsPvw<%1&72o5WO2v5t&nBm`D&tQuVc^T zx}aPE3ijSwx-o0~$(X2`mC1YDSaaHG4e5pJ43au!zX|Q{wgfYi{$;0;XJ&yW)`U-9 zWFo6$WBB77>z8o?->qeA-<9<<3^PwH&Ra;@_Whzk5uc@qxdF5K$jn+;C^@Gj?F}F) zSYbJH8BSD=UY1n8w{6ZSIm&i&7twhyw{qh0g0Hx`-*?+kPQ7UxwT(bF6%Z$`B>dU_ ziK#;s_RJ9KwibCU>?d*k>Cb;;O0v1&K6ZrnJ{BY2wwZm}VkDHF;;C?Q{()Uuxeehs zu<`xk<@}9P;O(2?xVG8cd{ZKHIjLvWZhcyM3qYf&k(vwv9nf4L^Y$@59Nnf;yY?Z) z(oi8Ea-y71+EAQO@ZWL(aJ=Km=JxBDIm*YczjwqK?|@hFie9~vIo!?u);_%yzhdqO zzbj2;0tp1sGpll`jP`8|M92bY*3EeWU`4CRZ-f+SBft#Kqx05oC< z`Wo94mHQ`hz0Y!|hiu+3hO;SGE6o(*?djc3bk*N8B*vJT(;A3E`=G}F3auix!FMN- znw8;dMgxuqPsl#6HryMfuquu13^m~T7EbORxyi`e!*7$PYJ zPV+uKSR}d@(w${&sV3ye_WkLvC#sjgMkS@54i9dq=u^p*;Dy@BaH7jKg2l>BSpkRM zc-H9k2e%cPh7z-2CVjG13cu||nIf4DDKx*C(88OD4(19>>kJw_0ES3UT4sfoV_>Y) z?<}@g82*?Ey{p3u&N#%C@CmHTQGqPm9brhxr1>R=m#MRz6xQM}1`PYNC@819=gZzN zt{NQ6dXaFwyV+3{D|;dxwW&a-U3{EwrT~d^nN&+$CRa(qZwZe4lVml|p72$sQDN7N z>Ddr@yYf{K?!KeULDD|OD#?~1^K+8 zQWNGq{4XwDCHhSSAqHA?p(+|6w9?XG{Zu3u*o-m9rqvfdd${i z-!71H#Ue~=RO4IE95ZOUZMLNbUYTj-(>Q^D^g-1{9{l@0tEu_fX9EsBlxyjn21(e` zTaW7%>YXuur-<^WPLP0>zwQAhoan}wF7H)j+>}hf{eZeMu*57|r7jTO+?kEeemD~6 z5S1nafN%w-7Vk>cD^b`;9d3>V7r}J_WA;2bF^|($JFw)cYkh%fo?&$7_4N%?^#9C# z1LA*4{|0^-L!IeA4_0+>=U_Td;TO*IAgXDp56WDeh9)c2GG9#jz@=z(F(C*H>K%j{2D5tt zt#(B#V4OWVhYr~(zPfr-Yuf$^v_ppjM85^%Y(Otv%@G(RQ8y4U#P=rX>`o3q;>mvZ z{@qtG!@x&yAi6b#K7J)3V5l0jQpGARE-nU{c#WUNaD$Jtwla8Z>qE3M3kg!y)qf&Q zqS8I5Al9833Z1J+wG3Wn@0Vkf-YsVKnE%de4>kRo$>iT+tF?xl$V$-Ly(O^wuWl)%#wr$q>(7YCUh1Bt!FVb?;4Z#g*;5l>Db( zQ@xGqbLV8({VVj<)q!#c7ytLbmHk?3 zE5&n2N_=vfqjb14*di1A;fm(rd~-0y(_lu$a?o!(Kh4H=E591?t2_J2PLb!=1k*!q zXQ+M}=-Pwk>}5QJrUi=}n1~5PKLep89GAfCm#EH<+XX6S{g<^6X)IikFmO}v{T+SQ zJN)_7EAro7E`Oip)uUWnxchwL-d>0(@{#rJ>t+WCPSwbs=6y==D1pgXxkvIoXuBEp zY%JAbj`wDc-iw@`Rj39EXgGvl99VBzO;R!uR)3wR-efY86TA0v_gk7xt}K;l7R0Z; z)9H^Cc@7;7qsbUcBAsyLb>z7K`)(ccn=kLPY8|WPuZjQ0el65XbITayKP6rIur=1$ z@{{H9Nd&-Q$$756ax?(T1r2RA=g;YWN!&$6{nZaN*j{Z}y8FgtEj3wh)~g~zUMld7 z=$QF?){YGO!H){0am==HDRM5ZI41##NOEeXy$#L}lo|*=s~ENCMhf?v)$2V4S-7aU zZ3^-*bYFW!6hDTHY7iq4?mr}*3YhzCqEGUi&a*(#*}lZlnmUelV+bfbK1y9&5hH-L zdXo%T-&ghzW;?e~NdC6vS$SvDTuN3f|aG>GNnZK6GUxN!66*#Q$xrlK|h@8|ocYRv8X6+FI zR+$gY*0|Sm)1)7J0^t zPJ#`JJg4d5mz`*zW}9t@pSx0rEvhs84hFScBN#I}Bf2J>g}>mQG#=b6(#=n2^fs69 zsk}Sc$MbL#0&gV$UW@Y}%K9Lv&J8)8Eo1~&Rkg602~0$Ou}Qi!6)mUpvcDvzz`QTg z!ajp7x5t^Bf_Ax*r&;b&|8fNmAo^q5ls!`5Qyxr->3V4@Aj2W581_Vm{`>l7>*qOD zdoZ_FhaIXluj(;hA0khDma~54XlK%nOyL zomS@?UCsU3SGenD(zJiZnSixe$cH}R*ttxZWanHN*$XC4aik@T#juMy8TvV2WvqQI zT?@~Cc`ZGO-ZA=(oD172`4E;H{RcyFbclQ2{GP-_TR;7*DoxQt5&Fz4MD|ukAy@{{XnB0T`D0L8m6Z1VdpAgO zO1c>&NV6rSBPYl&DUgpjX|XzGf$+t6_}^ET7{)F#X5tM6QgKf-E0!IGsk7=%HzoiOwZL#z<8d>I~bs1oVyO z<6WKoUCQLbu266AU z%DLikE<&xMrb&UJ@|mr?sUwpfm*g!OLqKR`RP~M&b4gx1h`3+k=)oE=n3$8*u~vWq^~bscZ62G`gm5EhVRjt2nNy zo9|h#Eh4jtAU>>^p`w~_(otH7sK^===#>pUpJ?O&9+_Xk zagzN0Dg~8f9R*WKYvx!Ou2_$dvjmHS;{d#8f(c8y=d>aVbDe&wT#{}gZT7$i*(fj95>@mh_TuSCXQNrBSBDGOmnwJR7o|9 z=HGx=s)K99vH~oM)fD}15#BdGTY6nV!pc8j<)L85xv3Z5b@emFhm1oWbw=lef3ihv z=ZACXkEe-wE8-+oO=>T6qaYU-$^W?bEv@L6mmJ=elF5SnZp5XfA!#ftU?U8v_l}tC zF?LTr->e=dS;2=BQ)w6eoTBpDXvA7RQ0X%@9m&@Hdw0Df;oj#M>(tU%l8t)D8h?oI zF9Kqedb_4zyWky&d8JAA0vPiFsI`w4n4%J(n`$o1SP<4dx0JRjCQ9Dp#~ppv2Xhll zIlbNJHGMrIl3k*(+by7VT^jqlreZQ~ItB_I%dzCO1KzPNwhZ1LQ|k-aSjCEyIoDBx zrZeu5R%VI^)3F$@`Rb2sAQ_=tt!}c6ja%}Gbol*x^mY!1eI8RpaBsNmvjXtiCrS#B z>w2I4WXb#XJLY8e-eH#X_qUQ~h$5u-qvEJ}qT9QuVG^(VEF<_ta~#uoK_pPV{GaMS zu;O=agbuBc109iB5S{Is+y(Bb1V0DT%-hUF!a{DKv2d{1=WFakHdU^Lm`+>g8SIKP zXy_SgK;?JME8Tk3G&N4%1()in79%Q$yAhO|yIwBcF?YM0mmHmjE@A~$+rk&ImKowZ zCrnSTfo+h}l!WKU%?7@trt$T8zy~qKesxP+u#84ARy^sIgfPprtF%oz>0I)El0Mc? z#*(sYs1*jzn=$010`}5XYNrDD*vrkpVr%1E-07C-FbYE+!H zg`2SGDM>L*@EY>&;pp^IH)^s>%uOXaOqeUH63tI_Py1P_{C2j%DxYbQKcD&zo1~>x zl3H$F@9%XrRT8LJ$YS$uu>{TDZy-VQ{lWlWQ5g40hh+I28?PmydTRZTN<&xZrMbR4 zx~lo;_mNl2pX*UFu&CX2* zqq>2$XNiQl$czJn6#5p{>CF?cM~0ASpk;L{*yJROEj`5w$RB@$b_0gDMq(`hwj6iE zhzz6>oKx=Zv1ZQt>By^RHFu7EWavsWJFhFUH5A0FlR@DsQv5%YIa#;wJZg5;`fFX0 zT-6whiWlh969kQV&15#|SlN6jiiDcO2f?`_Jw99PAN^fMfBbKZ%CJd=adJhw@}x4b zYwaLW@#*RuX3!=>ek?2oxO*PM;w(k)Pc;4lv1gaC2HKiH-%LG0N~xC(H(h-r?_$oZ z-i5$=NkD>iaMIyir%Pb{~A=3N5iY@8;3(JjGpFA`RvO* z42LRqIpT)jE)()TEl)AiVQ8)1BIzT`7o-F8%oU-lv_b_n3yIdnS`}AIP_BO$y9AW; zdFZ&gd|02X{-dUb;o_XNx8Or(b}k*QQe(@UN+e_N1{vr;K?hf^k$HG-K}&t@Gv6=-Zjz2aeAj+*CfmCB3a>un1}$c1Hula( zb4A7sQCV@@2cSt(a3SJ_YhJ^2@yk7&VzC~RdQRTz&*p?hO0N!uO~Y4MHWvFLLC-E| z(S!|U8l9ZmjN?2~5iWyAQJ$u>3j|em5 zhKey0-Y?ANL^GfiYzqmBS5}w=_nyb5!KZShMQ$Q)p;`;57P2X$MqjPAni1#anD_5< z5Qcx_SO{J@gJNiiQqIbNyD*e^9Ho8-H&QEB7~h`58rnL;koeX`QoT(621nftvdnsv zcjqIE&|#m^Hw1oPSaQbu<~E>UZb?mL-Gy*`HjI}g?QL3*07Vu#|t(u-{3u}q4%Wc!eHBeCv&DhjDgNsbdnAO z#?+PE;rn%7<8{de6dqV*E}r5Vu?gqu57)wYTNBlX-rz4*GiwvZ49%s8#}DW`l#&J% zPt+7F@%lGkq8kaZB;ap$dV+&0R7|edNV3(KOjYO&#!g7E7#tZ58%l*CwT-4`b!U7T zu615#cNJ^SK`4gLDg#3U0uJ*CbYRA8XV3on0H+y>2YpeT*WlZt=fh~Fy2bdouhHEH zd^}9yZq>|zm&0{Y^KRuxw%+%6=0Ml$z1wsV=psTl0;&O1-u|5JDdx3}Ph`Bm7`p4f zgFTp22x{o%k}pj7HuXn(R5wk66A*@4zS7ye1}k%4KtV@%N-M`tS?Q_2x?-_zLGbx< zX3dT9?S=dn?r5Uj1C1IUUTv6mB>ov(N!zsJ-a~xu0^_~rIlOpqG}*Ia z!~e1;4_Z_rLAn~NZp7v{BF%1M{@UnEbn$L0;o!`hJr$+DB;YzETOKH4f=84BVzTX( zp(91J&z%1(^X?~dBVT=eeL3P(KmM)n;0tcIwsiV(zayCxh2EIzc({9-;JWVq8Q;Ac z&Yf_Oo1;TWS7>2$xTBN_vNhJwhAltE(cZ7yW9H;@bSKJE`?U_2U)|A|caLS49pSik zgL1P>l6K&-Fg)$XxPtqDw54vY#bB&YQx!X7jbfn+l5yvPO#Vw;2Q={^2zk%3u7}o! zLK@@FG8No`7A=!iWG5xJ9=0ZQguxOT@Pei;bx*@e8~C=)-8ez_jGO+nauuegjK)K# z*yR*_!~p2Zhrf|PA_D%w#@toZC-EXV{T`HiDO))E_l?}`x8D`C^sWxV2@U{y=;(uH z?wI?z4vBowQdb?WDS5O(m@7t3?)gc%+S`u%5GZr36<+T2>3Wxcu2yS4-9G&s?WHf@ z-e|s>8w-~!&8C%YVs;*{zm2y4%Cnk6H$&e1`VCR#o@>kv#F;VCc=Jo*Cg#EL@dnSm zo_*5;ixOzd2==lVb*1kdT=dKjmomHVy?B{*LCO!N-2?Q-7hP1D9R0q2IM5aP-wgnTAzm~JY_h$`LiMmh4z`3feg=Gd12l>c*f{4@ongBxc>R; zKWY9U0DFmlI}&o0HMNtCX~B$X1%HIt zURs*Rtf*5kV)R?4?1s9y0JhCC-}YY+lf6Kwo}VIC3N`7B!9afVKRdzJOAwq^%k#yH58KO8l<}~RQF*A&>v%xAv(iK_?3j3K=JethwF~}7pEts_CR>4kGT8|-)c+tW|J(?R zwQLmY?Jj1t0dTE!Tm!|{Y2XI4=sLOd-{T7r*Cq)&SW%jMky19&gsTsz>s-aYb-#Lq zesmBwcj6d5u zI>y9Tx-TZ30~JwO6Un%5`lpt58(?>YtfYG}NuLnZb6W-tv{@sP*Gyu|*XbcThu?sl z6#J(U$FQ0bVnWWo*E{{&j5e|oJqwY+v^e@a&55*p*hsQ(UjgA$bLCONa5sp^^5R~z zSoWd32b;TdI_o8EjwJfv@hya1wV`gNK-sR!$RwgHT!Ish>Q4oZK95o=D$jwvjy@*B zJL(vbnQGs*!mr3zizCS%qhLC&H$ah8)kH`8#)#hB(SzJCBj44c@=C)7j23pIT%j+e zASDy$)oir5erJGu|ICwAH~uG??52eV47QQ=K_aiDL1mlj_j&u)#Y2lM^8RTNPEOLv zHoWk!thItRy(hVNdI5g}SAYG;Hs|D64*moweg9In1RUnnr@@{4`LC?ZTH}A+;h1$6bYLX zXy_tK{e}ztang5~y;yH&M%w@uvX4oBCuO>p8#0>L>QsYfl}<(~bTO_qNalvM>L8_u zUwf+ObaJj0JqXdwB3^)9Qcr!|^S;>v-3yC&1257M*t;73DB0o9lDR@L*j76HacnWq zY=0M?k{sqQ_XSF}LIce<7A1*#Gl_$uHs4yK_t{TleBQLu?WZ9xxV@nf`)&Q;*7;!* zES{s}VtVh7JpW8DtP&wHAx=t7?9b7u;gW{2LIHnhNYa9uBy6&rq*O#8sTn#f@Gn~% zJs|d11zzdiC0YUAA&H%%;#`XmnfXq~*v%i@bM20fR#TbZt~NuhQ`@JDN@*Wn;f!DT z|6x@vINxkBE0UduXXJ9-C67}-C)sz&va>#sN)}~)pW}hMKuvo9vxS%&YbY#x;8|Z4 zl)gX*4F5yTigUjd{G&3sTKbz+623CSKU$gzJB*-tEML{+Kt{)A<7W_0{V`ZIPn}t3(qbbQdTN= zlj&Bhj+2!Vgl7VaL4S3v=`yhkG))7bB?E}kZG1eU(ZN16SO;u~i%-v3JK$>sKIj(e5EEsUdE&~6OSl#mi+jI|V|jPwQm zobX_FkW&S4Eei>KA$V@8xksYkIcKZL>wgTAk33%ma3zh4BeeJNr_1P%Q{S@OFafTl zn%N(7e7Q5m%*A2bN4F;|mmK&|<}hsQ-F|8#NsPBbwS(z_>Icgt=k;J>q% z)dnJSswNC0>oAViKlW{oAdDPrW;nVylQIW#lyVj>f5H1yAum)!k*;-&{z52U^5Hz! z5kJxQ&WX(mR6e7FKLvlcnT+O0WG3O|3T5V2seQ7eJc{MrdkT>)sd0xI&J<;;v;2WK zKG(AA8o#Mx{pWDvR_nE#QH*~zY|l@=h23$0ni2!tY6*g22BBmsW`=C~ z7X8&gwN(7qjlQU&@P~fo0ny_vCt7Qr(Mg^!5|h3b;jG$4-?yzJ5IUGW32UkSI43qA z<7Bg?cdM}z)Xq}Y=^I#~881#SFToz4_{Hw1moUigdOV9REpsZDB0pBc|9K>rQL0gr zh(hQGzh`u*I|9Ct_$7x=JTW*-JF+-a$EbV2_hyAG*FMto);M<(a|Zf zN$y2oNHkS%4AiEB2(!p8n*H3Jxez^*1T&9!bH+$VL6n+rG8DenKa-mO@8tD2Ma_^D zQ(1jGUQ4OOnB^C|*uCMhu=)oY1zHvNmC*@o9uLYX_R{D|9I>s^Oe;8MG;PAa#@JAb ze}>y|5zThg%(4(igDZsi^Nc?RPtQ&^s&N6HdDoG>3V6Ck*MST&FRfV@%?0|(&A22X z(S`~JlnLz6sBX6$xt$)<%ht462MUhSOvUog7)u+R<6(Xsx{p!F#p;Ye_X8JhP$B#uPa7tg&+6$`Yj&A36CRyzuDc z#U9Rp_-m65eZ3N5W{JN}o6RAgJzi7i+jw9?nrod*KW+D_Q|@sy>F;y1v@}L6Y`zFJ z6vCZXclF&$P%Cz=$p*se{ja3uS6_2xM_<;1lV-dn(BP+gF>J=7p@blR=Q-6h&O(Th zXCR}mGgkOqeWaH&tfI8Z<9{8pkF*n@Gj9DCT{hv z6KpmE0J&nIWu%YeCwpLV-JPh+S8>MTk#fb7ok#X`j8oE)zA(CgkoN{cKT=G#Bj2_G zJD6+@S8uiZV)CDdiD*`$Lj=c|v~~W9>EaSFs)gd#nAIC#DQZu*HwLOCeEUUc(KwDX$psF}R>#ld4Easkb&N+%>2 z!LD{`_(-Xz0dWF1JvNU%Msp6w?A1n3pm(E?Pnr4kVS*oZ6usD+V88cFk%2=i4Rg~w zd!r~sjr09DDR#1wT}4DW-7jGhKY!~8;Nwew6Di@w=&Ur+p|ecG1%GG^e|2Antk1qs z+}vjt4ktqC>U!TAmko^g?^(IKIondHHX=`A{Ps-^uPU{Bf`EoIPC+`QfB)sgGLH{k39}zyD{k zge7G@-HMO?1IdAD{)4D(boTq8E^}7$1R`9UM1NI~l4@zP{%9FZVFGR7?LRYb-sc&m zRa){H)&AzQ7{n8EjUsc!RQ4#Mo*GM@wF1mn)h`xFw%AN1B%WP7vCLfO=jKYq&jlm5jQpd`j;_dws0WO$ zC;!RS3jd#6t%J;DMg?4XTK6ODa_LKp@q!;&HCsWJ4U($@i&B*ajLo?z*gX5R4&wEa zM_H*Iur+J>VS;0b}l(n{8*hoAi7Rx0?2*o`boyZsyf#gI-KL#D|Nm5O?fP_N)+cr)D!qMFhU^VWwi zK*Pe(7rIxO%2aX4{-1&bPSIYb^Dhx8XXNuAwj!oznen;_BRxZCGuBa)<|y|Ivb6{E z&iITzJUpOS*=>b1drUX(>$9P^aKf4cug|cT@~N9$r1n;=bBze?8C4aN>SWQ>tQ93Y zQPzCJ_wes0!D;K9@`i+97K;|?LVFUihLnKco+i|_d>d9dDF>w=CsV~@a!s@B73%^n;B?-wEW5O$}N&#Q67 z>)ybv^6vy><^BSs%hvO8w-UV7{^;W z7br$~aid{ZIWBNh0Wq(f4D#aToRbe({BTA_^7&F(&cr2GPibqMq*vy&Fh|1_*{SXa z(!dBw_qrE4 zJF3zWc^kbB@Ay~M_>1OJ1sGM}DAo(T11B)Hy}{2?i(Mtph4zG)4U-uK6E$XL9h zV@xdb+MhC2ynWWp(ke!~*Cl(QQ;oUSICq!KQ_bnzTz}A&Bd1__yqv`4-M&fHWZ{q~ zYPm*E{k&Wq-(_sP!cM3pw4-A^&))FkW4z~LJ>w2amOhRJ7qA6<(hQLCla+I+VLfPh z7|Z%xia1|YO0yVjPu_T}I82Hc6QMuYkrEE1fTi4iHSIWyQay(=4JD%18Jr!ho4#RM zyB?z0NPa>n%M*-Hgkv8K@vuM4K)PZD?5OB`OwedqWZo-EK@zE0l!qdiEQ){uixWh7zm@!tdLizt3dQwIBa5(M-psZtn2LiF*i(@B zy7)hmhVmG!mc6}%^60|x)n#Z7K%H;r*H|C8=yp&gz7JZCn$fe?|CnE^}Ft7;+=(wHQqVdl`KJ*OO> z5HBz7bU2Q7E?O;hd~4$5t%#;9i;hbxyk1%B-x$S;lTIhKKFw*194=&%0a+BwTey-c z6V9iLB}t}gr%raY1Iw4TFP8n0p3w@xoqz6DWBR&sdItx`2~8sz)KE~MCD`O28Rl9{ zaWJi>Z(XRT0kT%HcIVd3jC#=2_yD6PpUHN9&I7EVi$<@kWndMwv)nL1j8NL6(ozAm)YFW55_CpQGHw%aN}JNLi*f#MO~uLp;7^|VnL z)P}{(!@`E)lRt?r7PUoZ6>ey4_2&~Z@(e6Wf50t+VgSFSB**FgOAGL>IZ&HQG*VE4 zOFU~(gVp|`Lo_c z`3v`fgqt2@Rgp`fJF4bABwJ3GHj8St? zF$2!SgC|TW85Cax9X_dGur;L$RkE%?RG<}$|b+5AHxg|*TbpfseN2v zFB<(a^FzhnzLh5*x#r(mj^LR8&^cUiyvrQSlnQyY$tMlGGWC2kJL97S8p^;HVy=)`Ep1#*OiI0g}lwdq@)dp=-eQld8k-9&k~U3v$X*362}^=|wYMn60?h=w1_h{O2Fq^K46CA4pt0wv*T!rUP9q`Yb97X~dJNh$O<{8Eo&v;)^@^4& z5LZ*?H34$;wKyW)4BM1U~@bLJYl!PEU>V-GXB%IE%P;B#NCQih%fHR$=Rpqo|YIbTNyK=XcK{Zbea}ezyVJ+MqZEe06A3bb8 z1^v0W=Wj6ty5|$vyYL7C2M^F9PkZxeRpq>&`H)S%)}9oLwuW)S_YKwsL2IP*DY(f) z5x|Ajii`!IQ8WKbt-vtltQAx=QChi1e&}IQ`=q~k_rV`Q*?gmedgXK?L;;!4`?11pzQqZ*N`qQnjP2cj!ii-s~N2^o{6}vK)v< zHd=(yNMkOiShbB_q0la(Nd0G2m!#fd?70E^E>N1 zYO4C*a*RQ(gF?BH!Ju$Z7j`1k#W&p-X6kJvswmCJ=vHhDNdO?TdFG1-bAr|$W-$** zv;PnAW=jFoVl6{aG+Zqlj{TF1{Y2M_Xzvk1sK3EtV4?d?R6+^fUGKxRyLqDU=6Nn}&EXPmw85Mme2r(T?^=Unq=&k#VYWWkDaEy1X;K zux8qA%6)nt{*{JZvENS#v}t3)jMWrw+yr1NF=uplbELVx2ip&Y27K2&8)Coc=v^wG zQ*+{qR*K2A0%cCnWP3&KO+siPN{Tkt6a(tvMhh2C?`h7za4F&-VM!)5lxxAkP>?TV z99yrMTM+c-ZVd>1LQ8u%eS^qGtiIf*pi11_m2hk0M7Lb*v$LlOu|ZRo!FX$LcBtxK z?Et3*XL`~*knq7VuTsxD)RLR6%JAII2n!3&1y9)Xp$XcRAvCTc=$YY`^YoJZc#!Uk zoSH4vRsHma*c*!;<$7s-Z_7D;qd3H9Xn_94gDx!9hH>&!rbQ`SZz_3C7{|uWE{2`H zi!WZHAKgW(B|u{%=-}CPfb9p_6A`VkRJGvyLF|Oa8 zdnh4O#+T=Qe5ptDm#=%!QP(Ue?#z+54wXl9&rIrk=2*KBFrn_^A`XciNF}7g!f`e_ z5k=DYEe=Fb)=9xmgnKg9`9Hkm@K<~u60WKV#q|LLmE#@WeGmiQT1W~cmo1##2vDJVUvS0!*aKn2@O#aRq4?JPx zQ7nntf*hAec^qIsUs9rmTu`QjEFZ2WZ~p1ir`gYf=CI*;EFzGs3PNz5DSo$s$#qA@ z2ky00=|BA?QMR6*)KfEgnH^nBznl-Ifm?$~najm{M9#P!5N>?U-*de$=J?HEz^7r~ zCNFcf8c#~Fy8)cO1Y{GD`-hCU1k&kq*U?x)`DX(JygegAc=T+y>~GO-*%UgyNhPhm z4%7Q03#-|Gj=0R1eY)D#m$GE}JyQP^65b3|yarVx&=C_8?-0Xki3pSWCYP;w+ghWr z(VAFl=^X9Zt5md#kXxd+1%1LV*@7r9g3a_u_4#I81RU?!}$KDeh3* zhvHD&-Q5cmEABc#XK)$LwDkL*z0bMZ&t4a~m}io#Bx@ya-sG2Mam&Kqdi~mTIsOf9 zeb|Xu>cEu9b&wOCxrR?)ZFf&-*LImEz^~jOtfepjMcYNU?H%!hb4_C1T9nh^!HD`Mp_WH z_40c&Md@!E6Q!wxW7EEz_azULH7=ej9o$jeBLkDSKirKPMz=N%acX@oe13KO7JhPE zJWqvHb6-I|MUTlHrU?_sYIIr4r`O-PFI)-}tIAw8i!ri`=n~d3I8nI|}p71h0jqEq_^guj-RWyX)R8x_w{*B)L{ zCAP+e%|i)r2S$x^p+R>2rxTG)^J(=PQRXEZ$*$1>hh`kku9eeUrUVB4Rp7&HFAvxU zkmom%wyaCP#%CAo4{3c5`)Tv>w;u`4cPpMvMOQl|N13M+mM(g6)Toyd)@6=`2!D3I zS8_dSPDyLOCati~0`QrUC>75^-Y=qB5N`#=z8VW_J4_Ya5UQs`Oz8z*1;6W=m@L@d zJiGgbsK*#fvQQtXWK8gqNcYEAaLpaJ56>+zJdPyHrg$w@`U;dNpTQG@$+^FXcioIU z`gvB7FxWgK*{$71EX|!Bw@N6biQ0V1#9q5_V$;Znjm}~1)(}JZQkY#BA}j(z>s}L#ByxQ9#A)1UYUW84zUBMlZipnu8FbK@7Dl}t{hZ7sOt`{FdRs;_m zWq{VIqEl|PvUGO3tSVd;zJ`=+IG?7l{{4&P200E~Vn?!M(cqeLa-Ei`#t-}X{dBKI z0wgSq9MQHgo+>&t9lVCAHI~PTnG)5nCEl`>W>seRss$=Z{1Ge!{EvHlMuSS28 z-Vd)D!~fRuCus~t{C`WuAy8WTR~@2->dPY<=jFgzOheOGwXd?ke=&3#&`$v4v*b{u*N?VQp*eWH{X1lnmy z%`-N`9GG7_X3-lM70}|6yNBPWYnq9*?h0XNRTUN)uZ5ubi(r0VaeHf%VkGjNr z9t?YVeivxWEhvnpDUeytVnH4&Js>piRln9>FCCSJ!%xloPU9Cz?KK}i}* z?aol6mv%g-jOhL51&tl`rVfg=5jFUr3NkM}EyZ-VId)59JL!^}zKq>TQ~a+tr5RPj z5jD{3eql}E*CW0rQ)_%EQ#wPl8Y?7@z;D7=hZI!oU+!$2-JqE^R?JBW;|Zk$&8;bs zJLT8rLGf3YB8p%8Cg%=fI^3t#9ymmXk z`AA>$m0^LvHj%SR~ zqySpFKIArzO##oN*YxAG345L|n|Penl36yp6&}YqPcsqJIpfHBDKXr7^txWm~}yTOZD6Qk#Scy z!VbMMKDjBEXaRy1?xSg$XDbbtWqmSv6I}U`O>SA1zc0y6a6+}(&8Uer*o}9jCX^Sc zFQZQMc*)nJs#bsBem^h0_vD-wv+j%XBlP5AfR56 z0MX8Iq%cip)f}DvL<`1&GB65crn}?0R!iFIZglqU{mkj$(cM@p{4I*CCGtTRR#B6k zYPgoX(fIH1hlRPr>Y&X|R+|?XnfJt2eAWi%6*aG~bacG}Y;(Y!sVw*ABE++$Yqyh` zO>OcQm(_;L=E6Ifzm;Y;CRaAEjvHpIpJAGU_2p8aTG+=-=1*7>Y?l1G^jSAfzJ7c^ zSGI9^twMNpblzxw=CF@~->N>bztrNOFwKUMRhO_)9ZzQQw8w4zn2+T>Y16C zF4IKPp+5aoj>#4F22aTV6HpSu4uip(EE_#qcK6Ea@NFak`M|`F1(ADw{ezA?;GbE3 z@x!q{FTB+=xSt65@E)$U-fS_$8b5INETmw#@fXYmPPXphk8Z_C zR`X6J3y$fn-;d9&_kSPl(PH8=A50c+y#68Ie|8jWOhUh;T*6DevOEN+2|n$&z&>a=>LEUf z%7;Z1_u6Lk75U&wmt8!oXgep$I$P?Q78jQu^j2@oo|X<4c1R-3_253s%j{%wY0Nhy z+BH6U?H2=CNdf)DfJI^toKW`H2=fvzjq~n~Z##_%n>Kb|#@rYh(r3E>YND#d0L@rGo#B<>ImMhC;vxq`gx&URatF zh7jXX%4|9;RoiCwN3D>%b8i&ScQeCH%J?syi>F>u&wTc7C~NB9pfOl4He-)G;6vcw zw}O|7Rtto%8z06{PZT#U8F1&jo|KzUnuFciR{&n^BfrZd9ixgG8@bsP=0Q^SsR8T3 zg$>y4WT2<2#Ur|``h`yS(n*)tbW=}rt+|_P%X+F7YzXg`eU$xdTDlom_oSNZJioAu zC%;Tw=@2}BdEE%sW(ga-a>g7+2yO}bQB2OU4Irkgy#6Bg09>W872*yo6uS+ZcBODe zEj~XnH`>%LGQ>2rD-WE9M=w+N6BnyA_)uh=o|&!%4cSzaYdTPcMw>t@ zJsW@U*0zLLH_$T@3;MJ5_;ycjD_Ad)N%duk=1Gm%Y4L&$ZWd3eOt%?UQd{}Fry5yF zuo@F-y&q!Iy>=Z()$La$*m_l`JZ6TU>EpFNu5*p*oT%maOng=Y@oLN59lr=|@jk0= zBG~+rH}p;GV)w+FE?F%RUM?a@3Y5%>Q;CP``#Fmy*K(Y~KWibSx zeLr^@FBbFQ8IoVJ>LARi61sGYnsrVzG=Z#`V!Aun?dJs<86wFpC5~$GQJfpS-7C`p z96fJk|uLyIOm-R;bntyH%rV-!}K8ZjaUWN2oa;D*w6*o{M4&Rw608UA)y_7y+(d5 zLKQQ?=R%&|FkrSKVb!0xEw95Q)c{_zHiN2;g9Kvs48B@6G6(2vBNnbsXF67EkS@Hw95V2ZHiqwiMuxJkC5l z;c;(ppdNmW8upYTjFh-O&Ls&f5gZb4qT0VYhgk1_OBdG>K{%768Zv&JyI^~Tekb%N z@BB3VKXLeg;}?L2n$iNB0jOV1p4#_pf-M&Buny*mq`xE+s{{4@OAEP(Hg``@Ib%&a zZkKxTZAK0PaNd6FK#n0seMut7al4KowCL@{A&spAR?3KB*`iOcjSg!oc#)Ry-b?k3 zR7@82q=m|5Cqio(ubagzir#R2HnMfQ8*$#Qm}}02)Q)a*XCyV>`1O_$8W9~WjhUU< zd)Sj8nV-YiwZ87$q(Z>F-QM~$(fV-rO(|}Xt2Z*msHxL6n1*G7(BX)Hs{(Bj_#5tV zlUWa)7kf(<3F`!*S$&ELP;(4}{+D=}!AdjaVn|YJmH>+Wq!tdp{aRInRfxNkqsxfE z_w%qp?j?(eZZWVCTEpOWznP11neU5^gyOF@Z5B+a5*_|j>6&8MkhOh7`h2<5{ll6p4RVNLOJ=2 z%qunHJuX9PMuD3+`<(<8`_K43vPrelST>8pvtB3x1@qQ4`9Z&pJ1(!UO)et3n>p3w4Ixg7kqBFjD?y5&F#v;nlKTG9K`D!=dupB_T z|8TJ=&ywB=^-i{@GmkOKty*Ax`V`rqi!qe{juF?SFEY%PC{{ORT>qOLRjT8IyBie* zBSs>VHT76J>=Yn3CcKNL`{6H!(5aZ0YWx-BCG{|;;Nk2MnLbSC;C8N4z^1Ua4$6J) z_?fiOQn+&yh+6IAO}nI+)m#)-UG7yJX!A>UG-6IAGnYjqMasw`VRyCw(_vNEAIHg` zJ3wEo;_V%Ghg_k9+k{WtuO-=d!DH+BOtNu8Kc41%K6OPw&?2DPRPGHK_AJ%fPvO~t z?HT$x-*$u{6K>~1$hNJZ;vFA`Fb;F(Ch z$UR*I``C-g5xu3fiqv{jI`96d0rMTiS<>jPGd8Ixl&H$U$c@D^KE;g4{;4ypUP;ft<52y9StO~@P-xCIu^Ib;%APg23K8*@rAFV^kKl zy>!@_bnqSBfHI+9iN?EKy?+zmU>~zzColQM(;Q=Egn`kI!R7+Px5PR*o)C85;*jfd zJAxcRV4-dZwp(_bnB*N{cRdPptiqKd@jM=tqfB1RW9&L227`E@9@b4jj!o-s6jOTN zYh!YBc=GjU2WmxRimU;APYi?6BB2CvdPt;>nq8clV(evfj)(|OLCOY-N%kbCny8O7 zxwF)U=#tHX4<%gX_upMkFYjM?@rxdRd_q3mUwlt|eP5Ddgn>I98d+=a6yj4`P88Tc z2$0ZZh(JACAJHvN*&dJmn9sUQb|U$~mw8BOV7|^#xNU%aWEa9)W%F9RfuG8)O> zvD6;x8xXHU%7U1+C^fjGD$(2@FgjGl79U-#+*#3xw{_CM-*5B(4237U&ky$t>YI+I=z3khn)ab*zq!XUtGMvNafhX#9)m#WROO< zZn-`i@pn~{hRLd}p&8IgIq_v_9l}`?hJ^33N?RK5-{vDfZcW2;?4b}iHDW52tG(S_ z&4x1I5_`Mx7VKwgf`fMxsB2Pt(S>Q;C}ex?ZMM>1&^DhZ0}@c3l)Dhpx*6 z@9%v1lt?_b?y+1IZIT8do>iaZn)%rbc5Z1rYo@%~9??Jo6%m|ba#Ul=chLdU%cPu> z%1q)%a?PB6hEV9aj2K=0?7!?`r>JM$eGt_4Cq3(huA^4!aX#o+7#W#FJC0p{I(B*N zEl0|~bk|vB7OllPi}k?N$#g?xPtBr)2E*JX0>aDZG7|4phk2~(TY07loj%uJwi|RMt-bYy-_g0LIT&=j^+HMO|?7SLE zSATIkAV_rmv%hfntv{$_%S|tv7jLe?m4zInC{Z#Yqv)iY_1OPg5a+(gNjQ~< z-g0D%-XImv z6-BOJ6^h*l{N&;IUiVFYjt+VCm0fZ8NsIR>lX*~rac|7AqFcnkvlHIfUMJVncCro_ z>F-MaCX1JaLNOGSg5H6aTWC~5b<`XAt`e=6B8;vC=fzKT6_bM=Rk6tbW6fy5g(%Ch zKE+R0sb?HNIzRC}Lqa+f0c?_*JW-ZT;|)w%6UhS!%THnFR@x{amujB0qQ>}#@2dK~ zTGjS?g3G;yPPH5K)p6q~qg4U!{WN7~XOTO<-rOgO9fqM6EMtJeD&IK?V@rK}tFh3~ zZ4ajcT!}ZS0zT|#D34|mmo)`R1i<|v=iA%S(JE)cAalhU)l^p@gTAt3m)9s?h(Q$( z5_NMKzszaUwwa9T5R12lioB7IXV11ab3dGqVoUo`CR01R%It43A9op-1| zmr2wPyR)GhkAw5!KBy7Q_?D>H6Z_47sL^CzY-5#6K0zti0;kaiR z9vlvTw}T0++?mY33C8Y^2UF#TI$$P<|D(Az$W!MP?snddT^ z17;uT!amlJZi~rLdK@z;8?kCK&GbV-^r!2@-D01PpM3%=%~LBdpgt9me!I$1ih88U zJP`NB6lVzDd0|S7PaY>JjgNl_Ww>fwdZeqp%!{(PIj#o8OIdp^oLVKh4|E=DI>M6m zJs zL6I~$_jGsqwn2dS;6}C6K4}FC@R^}9UnvD24Wv6ns4fyp`aoNCKXN5vPkcNxVq8^V z0FR!Y0Jf4&>F6siw?Z45zI9x=)kP$;iq!rpBtc5=zHFvEtutTvGJCS@(Ok+6e%k%m zb4)M)1YbXtT3mGrP9~jyzHrftZ=%|)D_x~06It8X9NEq@KNp0Xyx+R!px3eHI9az~ z2i@Ni9P6H=FKQIIrt!!1bi zqFgz%a*iYD)>`R*7V!vmD)DrT2;?JI`A+2$ku0o}K?S{NJK#2v@Yt7$4S`upn(QzH zd=`8mS5KvwjX%c>@PmTF&0-6BUe2`B9wDvU+sjcMVt3&2RoS3*qbFOgjEYX#rxs+%<6Hx_)h~31A%JjIIU7@hiZOAV} zF;AlOKVTfYq3ZUWH}Gzzl5M)*RoU&&Ibj@9jiH}N!0p8d!E9$EuG0}-A-Y-rCvK6i z3U-^dD_ZJBC0V(&^dekicu56wX1p07V)xRChK#qcfq%B|kLSB)`H-Adcqao@+I;=u zmT$U#Y%Q|^VyPM7>4~|%Nry@};{yE!V-$!gKCe17HOF zVV>i+527}W4T^-LPM*&}LLhQs5AN-YpxV7A3T_5`9LDh0VYIE!eozJtso6A~+Bm{a zqAwO^OOCc?9mvb0R@NmxpLIPXkIk>27D&G9vJ$-=E%7O_Y<_I*E4}9mX^E1(?MNBG z8$D37IpW0f!;>x<#j!Z-n%$2$=wVj zzvwnLnc-R`A@x@nO;78YlgK(3n(y2~ir*Ljp;BXRp?|Wg;|HiUP z*8cA->u6Q>y5bo*_0{Kox;TV-TVtTC3qGdB$n+e$5oD!1`q*)IN1e1$V4Z)(!~A6z zAMU)wUJ}FbgK&5VTbCz(Y>AAXDY9dB8o4w7068T}~sAzc#KDWbNbtFoGAt47&KlL#p{ zuDB;Vm^<&8w_@J<%{*Oc=&oE}W|qs!T+U&WUAmY#EKan+MD+j<3yfSn=Qu{#Y?g>K z2qUrozJAauq+(1ir}K^$1;T{)6*&JX<@Dc?D_dy_(wy5Yz&-O=>~=#hmo^K-JK72z z4c~ZqCvPM^aRDN~rN5z)T zYGjUW46LVJ~D*2VPfNx;iZr7W( z_|4)8$1>grcE^j;d+T3y>E0ICd`;4zrL#2=RrwXgy=arp@c&_=`c_B=Y6gOFlYjS~ z_ODJvMPA``o?`b-RN@j4!yk@-WEA&f>XTy^#u_=yZ^*YI-Z@Ov^8;IjD}KphQ*9Vs z13-zuy)-o{3eQtC6Lb@&Bc_TEjFe3^(|1x$W@RI{qs19t9zpD6;*UHn14&y$Xtsac zPaef`^z2SLg1-0H1#RvPrg&67nIq)8@)U`c3ff_eo+2{>!(9QWH6mC+1A3-Ibm|m`E%2SB4kxkQwQUD5jJbrHWHy>+FfD7kqc7@6KSKb-x7rKJZ zEt~`3n8E=s_sb8KU90HSBn)b8lH}__tL}nPRF7A;)LBlkyyEKp)Fo|D!RoRR1zMDU z&`j|;t*5Q34UB1GPL_&oD7?aaoZXr3f+rpgDAwcc1gxaG+fdPv`^ZYfZ{a_-5#$?W zW#MM-1o9|iD^91IveS81wI9&1G3zx}%gVjaZ7VFwO;CAkk5K>=u;lq1NNe(H)mA~_ z4fBd`Q-+|8y@u(b3G#2aqs@6{M~+se0(lW!ps z$hhNXXDq1-VqO!+@Q3qPe&9xC)LciiP(t)8dG~R;A>~xho6q|WF^jY%lMNp4p;Cj1 z&NVJ4rjl_>sz6>}AxL9@%l_ak%d*%`%xOf)+JSn7NN)S*7z+SpmuvLqEnkhnp#9E$ zb%4{jfbD@{`{80x(fG2(+&Yq8(N+wOZ*XNzc_Zb0YlNqly)9R5zF zxu+?h^u~uJUPThBxb~q<7bjMjFgR9J#sE|yIAcB5F1pD-pd1ZWn6YNXgp4advE`sl z%wJogy8lf^5vFjUSCrDhuHCrPuHiNX5vqZS9;>$SR1|DmOdWqUKtir>^}qUY zSJOeb$CqH%mi!`@M|>+>y~TCeNJI~oZDkg5=9=8juH1@-TPygB(fSd?4aq&yD1JEQ zuH6sU;rl_B9!cj;bb1F^iEN@#jdksbP~R*XJ-?99#uRG#5v}(W+VFzbgniVW9BtEU zc(1&-$*p{xhPFDUj^t?vKQ*wDH?a1Uf3*qB45#aBKmj&*W||L^82s9>$xCuZ{ji0W zsIffTx@gK~%Esi*dLK@fX6euJh#}9F>`I3?GnR0>w^p*a zttvLuaheh$N0mxH5Vw8*cr2T%^dA~lL*)H)6HeS=&VEc^DL|ts!$RWmG(vhZapTWb z7v-DR3&SW3UTqKtlgHLGlKnxjG^o@AfpXDjYLrLYl)xZ_pwdUM+9w02bV7B$P*Mk~|49VH|M6v+*q0^^g^A7t{|eqh42Rt7!poL^ zE-Nq3u+R3dib3R8+qW(7X(RUKD_mTaDcu+UX~{5r3H)ZR)Zjk#)0N>yEPvaDZMnut4P$00g+p*wV z$pHWD2e-b%6^uXTY~@JMW6p$9rf5= fc>4djRrG*u;f}>b9(cxw02i4LiW24T4gCKf7ZEJF literal 0 HcmV?d00001 diff --git a/docs/overrides/public/user-settings-applications-new.png b/docs/overrides/public/user-settings-applications-new.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1b40f3812a58fb49d4805277e204582909e338 GIT binary patch literal 164598 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 literal 0 HcmV?d00001 diff --git a/docs/swagger.go b/docs/swagger.go index ecd03e6b9..500abd7a2 100644 --- a/docs/swagger.go +++ b/docs/swagger.go @@ -17,6 +17,56 @@ // GoToSocial Swagger documentation. // +// This document describes the GoToSocial HTTP API. +// +// For information on how to authenticate with the API using an OAuth access token, see the documentation here: https://docs.gotosocial.org/en/latest/api/authentication/. +// +// Available scopes are: +// +// - admin: grants admin access to everything +// - admin:read: grants admin read access to everything +// - admin:read:accounts: grants admin read access to accounts +// - admin:read:domain_allows: grants admin read access to domain_allows +// - admin:read:domain_blocks: grants admin read access to domain_blocks +// - admin:read:reports: grants admin read access to reports +// - admin:write: grants admin write access to everything +// - admin:write:accounts: grants write read access to accounts +// - admin:write:domain_allows: grants admin write access to domain_allows +// - admin:write:domain_blocks: grants write read access to domain_blocks +// - admin:write:reports: grants admin write access to reports +// - profile: grants read access to verify_credentials +// - push: grants read/write access to push +// - read: grants read access to everything +// - read:accounts: grants read access to accounts +// - read:applications: grants read access to user-managed applications +// - read:blocks: grants read access to blocks +// - read:bookmarks: grants read access to bookmarks +// - read:favourites: grants read access to accounts +// - read:filters: grants read access to filters +// - read:follows: grants read access to follows +// - read:lists: grants read access to lists +// - read:mutes: grants read access to mutes +// - read:notifications: grants read access to notifications +// - read:search: grants read access to search +// - read:statuses: grants read access to statuses +// - write: grants write access to everything +// - write:accounts: grants write access to accounts +// - write:applications: grants write access to user-managed applications +// - write:blocks: grants write access to blocks +// - write:bookmarks: grants write access to bookmarks +// - write:conversations: grants write access to conversations +// - write:favourites: grants write access to favourites +// - write:filters: grants write access to filters +// - write:follows: grants write access to follows +// - write:lists: grants write access to lists +// - write:media: grants write access to media +// - write:mutes: grants write access to mutes +// - write:notifications: grants write access to notifications +// - write:reports: grants write access to reports +// - write:statuses: grants write access to statuses +// +// --- +// // Schemes: https, http // BasePath: / // Version: REPLACE_ME @@ -31,45 +81,47 @@ // authorizationUrl: https://example.org/oauth/authorize // tokenUrl: https://example.org/oauth/token // scopes: -// read: grants read access to everything -// write: grants write access to everything -// push: grants read/write access to push -// profile: grants read access to verify_credentials -// read:accounts: grants read access to accounts -// write:accounts: grants write access to accounts -// read:blocks: grants read access to blocks -// write:blocks: grants write access to blocks -// read:bookmarks: grants read access to bookmarks -// write:bookmarks: grants write access to bookmarks -// write:conversations: grants write access to conversations -// read:favourites: grants read access to accounts -// write:favourites: grants write access to favourites -// read:filters: grants read access to filters -// write:filters: grants write access to filters -// read:follows: grants read access to follows -// write:follows: grants write access to follows -// read:lists: grants read access to lists -// write:lists: grants write access to lists -// write:media: grants write access to media -// read:mutes: grants read access to mutes -// write:mutes: grants write access to mutes -// read:notifications: grants read access to notifications -// write:notifications: grants write access to notifications -// write:reports: grants write access to reports -// read:search: grants read access to search -// read:statuses: grants read access to statuses -// write:statuses: grants write access to statuses // admin: grants admin access to everything // admin:read: grants admin read access to everything -// admin:write: grants admin write access to everything // admin:read:accounts: grants admin read access to accounts -// admin:write:accounts: grants write read access to accounts -// admin:read:reports: grants admin read access to reports -// admin:write:reports: grants admin write access to reports // admin:read:domain_allows: grants admin read access to domain_allows -// admin:write:domain_allows: grants admin write access to domain_allows // admin:read:domain_blocks: grants admin read access to domain_blocks +// admin:read:reports: grants admin read access to reports +// admin:write: grants admin write access to everything +// admin:write:accounts: grants write read access to accounts +// admin:write:domain_allows: grants admin write access to domain_allows // admin:write:domain_blocks: grants write read access to domain_blocks +// admin:write:reports: grants admin write access to reports +// profile: grants read access to verify_credentials +// push: grants read/write access to push +// read: grants read access to everything +// read:accounts: grants read access to accounts +// read:applications: grants read access to user-managed applications +// read:blocks: grants read access to blocks +// read:bookmarks: grants read access to bookmarks +// read:favourites: grants read access to accounts +// read:filters: grants read access to filters +// read:follows: grants read access to follows +// read:lists: grants read access to lists +// read:mutes: grants read access to mutes +// read:notifications: grants read access to notifications +// read:search: grants read access to search +// read:statuses: grants read access to statuses +// write: grants write access to everything +// write:accounts: grants write access to accounts +// write:applications: grants write access to user-managed applications +// write:blocks: grants write access to blocks +// write:bookmarks: grants write access to bookmarks +// write:conversations: grants write access to conversations +// write:favourites: grants write access to favourites +// write:filters: grants write access to filters +// write:follows: grants write access to follows +// write:lists: grants write access to lists +// write:media: grants write access to media +// write:mutes: grants write access to mutes +// write:notifications: grants write access to notifications +// write:reports: grants write access to reports +// write:statuses: grants write access to statuses // OAuth2 Application: // type: oauth2 // flow: application diff --git a/docs/user_guide/settings.md b/docs/user_guide/settings.md index 7e85e0ed8..590b04b42 100644 --- a/docs/user_guide/settings.md +++ b/docs/user_guide/settings.md @@ -287,3 +287,70 @@ Logging out of an application does not necessarily remove the token from the GoT !!! note Token "Last used" time is approximate and may be off by an hour in either direction. + +## Applications + +In the applications section, you can create a new managed OAuth client application, and search through applications that you've created. + +### What is an OAuth client application? + +A GoToSocial OAuth client application is equivalent to an OAuth 2.0 client as described in [the Auth0 roles docs](https://auth0.com/intro-to-iam/what-is-oauth-2#oauth20-roles). + +When you create an application, you can then, as the "Resource Owner" of your account, give the application access to your account via an access token, which the application can use to interact with the GoToSocial client API "as you", or "on your behalf". + +For example, when you log in to your GoToSocial account using Tusky, Tusky first registers itself with your instance as an OAuth client application, and then requests the instance to redirect you to a page where you can sign in with your GoToSocial email address and password in order to authorize Tusky to get an access code. Tusky then stores and uses that access code in all further requests, to do what you tell it to do: post statuses, read timelines, etc. + +The advantage of OAuth client applications is that they never store (or even see) your password: they only ever act as you using their access token, which can be invalidated so that the application cannot access your account anymore, without you having to change your password (see [Access Tokens](#access-tokens)). + +!!! note "Managed vs unmanaged applications" + A *managed* application is one that you created yourself via the settings panel, and have the ability to request tokens for, and delete. This differs somewhat from applications like Tusky, which are not considered to be *managed* applications, as they were not created by a user in the settings panel. + +### What is a redirect URI? + +Redirect URIs offer a security measure that prevents applications from being to redirect to malicious addresses after authorization. This is best explained in the OAuth 2.0 documentation, see: + +- [Redirect URIs](https://www.oauth.com/oauth2-servers/redirect-uris/) +- [Redirect URL Registration](https://www.oauth.com/oauth2-servers/redirect-uris/redirect-uri-registration/) + +Whatever service you are trying to create an application for will usually tell you what redirect URI(s) you need to enter when creating an application. + +### What is a scope? + +Scopes are a space-separated list of identifiers that can be specified when creating an application (or getting a token for that application) in order to prevent the application or its access token from accessing more data than it needs to do its job. + +For example, if you create an application with only scope `read`, then any tokens owned by that application will have only `read` access to your account: they will not be able to post, delete, or take other *write*-type actions as you. + +GoToSocial offers a range of scopes very similar to what the Mastodon API offers. You can see a list of scopes (and what they do) here: https://docs.gotosocial.org/en/latest/api/swagger/. + +Like Mastodon, GoToSocial allows you to specify scopes both when you create an application, *and* when you subsequently request a token. So you could create an application with scope `read write`, but request a token with only `read` scope, or with an even narrower scope like `read:accounts`. Any scopes specified when requesting a token must be covered by the scopes permitted to the application. For example, you cannot request a token with scope `write` if your application only has scope `read`. + +For more information on scopes in general, see the OAuth 2.0 docs: + +- [Scope](https://www.oauth.com/oauth2-servers/scope/) +- [Defining Scopes](https://www.oauth.com/oauth2-servers/scope/defining-scopes/) + +### Search Applications + +Using this section, you can see an overview of applications that you've created via the settings panel, and click on an application to go to the details view for that application. + +### New Application + +![The new application form.](../public/user-settings-applications-new.png) + +To create a new managed OAuth application, you must provide at least a name for your application. If you want, you can provide a website too. + +If you don't provide any scopes, then the application will have scope `read` by default. + +If you don't specify any redirect URIs, then the application will have the out-of-band redirect URI `urn:ietf:wg:oauth:2.0:oob` by default. + +If you want to be able to use the settings panel to easily get an access token for the application that you create, then you must include the given settings panel callback URL in your redirect URIs list. This will be in the form `https://[your_instance_host]/settings/user/applications/callback`. + +### Application Details + +![The details view for an application.](../public/user-settings-applications-details.png) + +On the details page for an application, you can view the application's client ID and client secret, which you can use in a command-line tool like `curl` to manually get an authorization code + access token for the application. + +If you included the settings panel callback URL in your redirect URIs list, you can also use this page to request an access token for your account. This will redirect you to the sign in page for your instance, where you must provide your credentials in order to authorize your application. You will then be redirected again to the settings panel callback URL, where you can receive your access token. + +You can also use this page to delete your application. When a managed application is deleted, all tokens that were created via that application will also be deleted, so ensure you only do this when your application is not being used. diff --git a/internal/api/client/apps/appcreate.go b/internal/api/client/apps/appcreate.go index 6a8208a20..062b2e13d 100644 --- a/internal/api/client/apps/appcreate.go +++ b/internal/api/client/apps/appcreate.go @@ -18,8 +18,11 @@ package apps import ( + "errors" "fmt" "net/http" + "slices" + "strings" "github.com/gin-gonic/gin" apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" @@ -40,8 +43,10 @@ const ( // The registered application can be used to obtain an application token. // This can then be used to register a new account, or (through user auth) obtain an access token. // -// The parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. -// The parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. +// If the application was registered with a Bearer token passed in the Authorization header, the created application will be managed by the authenticated user (must have scope write:applications). +// +// Parameters can also be given in the body of the request, as JSON, if the content-type is set to 'application/json'. +// Parameters can also be given in the body of the request, as XML, if the content-type is set to 'application/xml'. // // --- // tags: @@ -81,42 +86,66 @@ func (m *Module) AppsPOSTHandler(c *gin.Context) { return } + if authed.Token != nil { + // If a token has been passed, user + // needs write perm on applications. + if !slices.ContainsFunc( + strings.Split(authed.Token.GetScope(), " "), + func(hasScope string) bool { + return apiutil.Scope(hasScope).Permits(apiutil.ScopeWriteApplications) + }, + ) { + const errText = "token has insufficient scope permission" + errWithCode := gtserror.NewErrorForbidden(errors.New(errText), errText) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + } + + if authed.Account != nil && authed.Account.IsMoving() { + apiutil.ForbiddenAfterMove(c) + return + } + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { - apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + errWithCode := gtserror.NewErrorNotAcceptable(err, err.Error()) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return } form := &apimodel.ApplicationCreateRequest{} if err := c.ShouldBind(form); err != nil { - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + errWithCode := gtserror.NewErrorBadRequest(err, err.Error()) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return } - if len([]rune(form.ClientName)) > formFieldLen { - err := fmt.Errorf("client_name must be less than %d characters", formFieldLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.ClientName)); l > formFieldLen { + m.fieldTooLong(c, "client_name", formFieldLen, l) return } - if len([]rune(form.RedirectURIs)) > formRedirectLen { - err := fmt.Errorf("redirect_uris must be less than %d characters", formRedirectLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.RedirectURIs)); l > formRedirectLen { + m.fieldTooLong(c, "redirect_uris", formRedirectLen, l) return } - if len([]rune(form.Scopes)) > formFieldLen { - err := fmt.Errorf("scopes must be less than %d characters", formFieldLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.Scopes)); l > formFieldLen { + m.fieldTooLong(c, "scopes", formFieldLen, l) return } - if len([]rune(form.Website)) > formFieldLen { - err := fmt.Errorf("website must be less than %d characters", formFieldLen) - apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) + if l := len([]rune(form.Website)); l > formFieldLen { + m.fieldTooLong(c, "website", formFieldLen, l) return } - apiApp, errWithCode := m.processor.AppCreate(c.Request.Context(), authed, form) + var managedByUserID string + if authed.User != nil { + managedByUserID = authed.User.ID + } + + apiApp, errWithCode := m.processor.Application().Create(c.Request.Context(), managedByUserID, form) if errWithCode != nil { apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) return @@ -124,3 +153,13 @@ func (m *Module) AppsPOSTHandler(c *gin.Context) { apiutil.JSON(c, http.StatusOK, apiApp) } + +func (m *Module) fieldTooLong(c *gin.Context, fieldName string, max int, actual int) { + errText := fmt.Sprintf( + "%s must be less than %d characters, provided %s was %d characters", + fieldName, max, fieldName, actual, + ) + + errWithCode := gtserror.NewErrorBadRequest(errors.New(errText), errText) + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) +} diff --git a/internal/api/client/apps/appdelete.go b/internal/api/client/apps/appdelete.go new file mode 100644 index 000000000..301579929 --- /dev/null +++ b/internal/api/client/apps/appdelete.go @@ -0,0 +1,98 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package apps + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" +) + +// AppDELETEHandler swagger:operation DELETE /api/v1/apps/{id} appDelete +// +// Delete a single application managed by the requester. +// +// --- +// tags: +// - apps +// +// produces: +// - application/json +// +// parameters: +// - +// name: id +// type: string +// description: The id of the application to delete. +// in: path +// required: true +// +// security: +// - OAuth2 Bearer: +// - write:applications +// +// responses: +// '200': +// description: The deleted application. +// schema: +// "$ref": "#/definitions/application" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AppDELETEHandler(c *gin.Context) { + authed, errWithCode := apiutil.TokenAuth(c, + true, true, true, true, + apiutil.ScopeWriteApplications, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + appID, errWithCode := apiutil.ParseID(c.Param(apiutil.IDKey)) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + app, errWithCode := m.processor.Application().Delete( + c.Request.Context(), + authed.User.ID, + appID, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + apiutil.JSON(c, http.StatusOK, app) +} diff --git a/internal/api/client/apps/appget.go b/internal/api/client/apps/appget.go new file mode 100644 index 000000000..f9d5050b4 --- /dev/null +++ b/internal/api/client/apps/appget.go @@ -0,0 +1,98 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package apps + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" +) + +// AppGETHandler swagger:operation GET /api/v1/apps/{id} appGet +// +// Get a single application managed by the requester. +// +// --- +// tags: +// - apps +// +// produces: +// - application/json +// +// parameters: +// - +// name: id +// type: string +// description: The id of the requested application. +// in: path +// required: true +// +// security: +// - OAuth2 Bearer: +// - read:applications +// +// responses: +// '200': +// description: The requested application. +// schema: +// "$ref": "#/definitions/application" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AppGETHandler(c *gin.Context) { + authed, errWithCode := apiutil.TokenAuth(c, + true, true, true, true, + apiutil.ScopeReadApplications, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + appID, errWithCode := apiutil.ParseID(c.Param(apiutil.IDKey)) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + app, errWithCode := m.processor.Application().Get( + c.Request.Context(), + authed.User.ID, + appID, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + apiutil.JSON(c, http.StatusOK, app) +} diff --git a/internal/api/client/apps/apps.go b/internal/api/client/apps/apps.go index 679b985b8..2071c08bd 100644 --- a/internal/api/client/apps/apps.go +++ b/internal/api/client/apps/apps.go @@ -21,11 +21,14 @@ import ( "net/http" "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" "github.com/superseriousbusiness/gotosocial/internal/processing" ) -// BasePath is the base path for this api module, excluding the api prefix -const BasePath = "/v1/apps" +const ( + BasePath = "/v1/apps" + BasePathWithID = BasePath + "/:" + apiutil.IDKey +) type Module struct { processor *processing.Processor @@ -39,4 +42,7 @@ func New(processor *processing.Processor) *Module { func (m *Module) Route(attachHandler func(method string, path string, f ...gin.HandlerFunc) gin.IRoutes) { attachHandler(http.MethodPost, BasePath, m.AppsPOSTHandler) + attachHandler(http.MethodGet, BasePath, m.AppsGETHandler) + attachHandler(http.MethodGet, BasePathWithID, m.AppGETHandler) + attachHandler(http.MethodDelete, BasePathWithID, m.AppDELETEHandler) } diff --git a/internal/api/client/apps/appsget.go b/internal/api/client/apps/appsget.go new file mode 100644 index 000000000..6bbd4c752 --- /dev/null +++ b/internal/api/client/apps/appsget.go @@ -0,0 +1,146 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package apps + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" + "github.com/superseriousbusiness/gotosocial/internal/paging" +) + +// AppsGETHandler swagger:operation GET /api/v1/apps appsGet +// +// Get an array of applications that are managed by the requester. +// +// The next and previous queries can be parsed from the returned Link header. +// +// Example: +// +// ``` +// ; rel="next", ; rel="prev" +// ```` +// +// --- +// tags: +// - apps +// +// produces: +// - application/json +// +// parameters: +// - +// name: max_id +// type: string +// description: >- +// Return only items *OLDER* than the given max item ID. +// The item with the specified ID will not be included in the response. +// in: query +// required: false +// - +// name: since_id +// type: string +// description: >- +// Return only items *newer* than the given since item ID. +// The item with the specified ID will not be included in the response. +// in: query +// - +// name: min_id +// type: string +// description: >- +// Return only items *immediately newer* than the given since item ID. +// The item with the specified ID will not be included in the response. +// in: query +// required: false +// - +// name: limit +// type: integer +// description: Number of items to return. +// default: 20 +// in: query +// required: false +// max: 80 +// min: 0 +// +// security: +// - OAuth2 Bearer: +// - read:applications +// +// responses: +// '200': +// headers: +// Link: +// type: string +// description: Links to the next and previous queries. +// schema: +// type: array +// items: +// "$ref": "#/definitions/application" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AppsGETHandler(c *gin.Context) { + authed, errWithCode := apiutil.TokenAuth(c, + true, true, true, true, + apiutil.ScopeReadApplications, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + page, errWithCode := paging.ParseIDPage(c, + 0, // min limit + 80, // max limit + 20, // default limit + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + resp, errWithCode := m.processor.Application().GetPage( + c.Request.Context(), + authed.User.ID, + page, + ) + if errWithCode != nil { + apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) + return + } + + if resp.LinkHeader != "" { + c.Header("Link", resp.LinkHeader) + } + + apiutil.JSON(c, http.StatusOK, resp.Items) +} diff --git a/internal/api/client/tokens/tokensget.go b/internal/api/client/tokens/tokensget.go index 2ffc2afb9..15fc5511f 100644 --- a/internal/api/client/tokens/tokensget.go +++ b/internal/api/client/tokens/tokensget.go @@ -52,7 +52,7 @@ import ( // name: max_id // type: string // description: >- -// Return only items *OLDER* than the given max status ID. +// Return only items *OLDER* than the given max item ID. // The item with the specified ID will not be included in the response. // in: query // required: false @@ -60,14 +60,14 @@ import ( // name: since_id // type: string // description: >- -// Return only items *newer* than the given since status ID. +// Return only items *newer* than the given since item ID. // The item with the specified ID will not be included in the response. // in: query // - // name: min_id // type: string // description: >- -// Return only items *immediately newer* than the given since status ID. +// Return only items *immediately newer* than the given since item ID. // The item with the specified ID will not be included in the response. // in: query // required: false diff --git a/internal/api/model/application.go b/internal/api/model/application.go index 720674ad5..3f974683f 100644 --- a/internal/api/model/application.go +++ b/internal/api/model/application.go @@ -24,6 +24,9 @@ type Application struct { // The ID of the application. // example: 01FBVD42CQ3ZEEVMW180SBX03B ID string `json:"id,omitempty"` + // When the application was created. (ISO 8601 Datetime) + // example: 2021-07-30T09:20:25+00:00 + CreatedAt string `json:"created_at,omitempty"` // The name of the application. // example: Tusky Name string `json:"name"` diff --git a/internal/api/util/scopes.go b/internal/api/util/scopes.go index 8161de500..594a46ecd 100644 --- a/internal/api/util/scopes.go +++ b/internal/api/util/scopes.go @@ -27,6 +27,7 @@ const ( /* Sub-scopes / scope components */ scopeAccounts = "accounts" + scopeApplications = "applications" scopeBlocks = "blocks" scopeBookmarks = "bookmarks" scopeConversations = "conversations" @@ -57,6 +58,8 @@ const ( ScopeReadAccounts Scope = ScopeRead + ":" + scopeAccounts ScopeWriteAccounts Scope = ScopeWrite + ":" + scopeAccounts + ScopeReadApplications Scope = ScopeRead + ":" + scopeApplications + ScopeWriteApplications Scope = ScopeWrite + ":" + scopeApplications ScopeReadBlocks Scope = ScopeRead + ":" + scopeBlocks ScopeWriteBlocks Scope = ScopeWrite + ":" + scopeBlocks ScopeReadBookmarks Scope = ScopeRead + ":" + scopeBookmarks diff --git a/internal/db/application.go b/internal/db/application.go index a3061f028..76948b0fd 100644 --- a/internal/db/application.go +++ b/internal/db/application.go @@ -31,11 +31,14 @@ type Application interface { // GetApplicationByClientID fetches the application from the database with corresponding client_id value. GetApplicationByClientID(ctx context.Context, clientID string) (*gtsmodel.Application, error) + // GetApplicationsManagedByUserID fetches a page of applications managed by the given userID. + GetApplicationsManagedByUserID(ctx context.Context, userID string, page *paging.Page) ([]*gtsmodel.Application, error) + // PutApplication places the new application in the database, erroring on non-unique ID or client_id. PutApplication(ctx context.Context, app *gtsmodel.Application) error - // DeleteApplicationByClientID deletes the application with corresponding client_id value from the database. - DeleteApplicationByClientID(ctx context.Context, clientID string) error + // DeleteApplicationByID deletes the application with corresponding id from the database. + DeleteApplicationByID(ctx context.Context, id string) error // GetAllTokens fetches all client oauth tokens from database. GetAllTokens(ctx context.Context) ([]*gtsmodel.Token, error) @@ -72,4 +75,8 @@ type Application interface { // DeleteTokenByRefresh deletes client oauth token from database with refresh code. DeleteTokenByRefresh(ctx context.Context, refresh string) error + + // DeleteTokensByClientID deletes all tokens + // with the given clientID from the database. + DeleteTokensByClientID(ctx context.Context, clientID string) error } diff --git a/internal/db/bundb/admin.go b/internal/db/bundb/admin.go index a311d2fc5..02f10f44f 100644 --- a/internal/db/bundb/admin.go +++ b/internal/db/bundb/admin.go @@ -194,6 +194,17 @@ func (a *adminDB) NewSignup(ctx context.Context, newSignup gtsmodel.NewSignup) ( return nil, err } + // If no app ID was set, + // use the instance app ID. + if newSignup.AppID == "" { + instanceApp, err := a.state.DB.GetInstanceApplication(ctx) + if err != nil { + err := gtserror.Newf("db error getting instance app: %w", err) + return nil, err + } + newSignup.AppID = instanceApp.ID + } + user = >smodel.User{ ID: newUserID, AccountID: account.ID, diff --git a/internal/db/bundb/application.go b/internal/db/bundb/application.go index c21221c9f..1a600d620 100644 --- a/internal/db/bundb/application.go +++ b/internal/db/bundb/application.go @@ -56,6 +56,73 @@ func (a *applicationDB) GetApplicationByClientID(ctx context.Context, clientID s ) } +func (a *applicationDB) GetApplicationsManagedByUserID( + ctx context.Context, + userID string, + page *paging.Page, +) ([]*gtsmodel.Application, error) { + var ( + // Get paging params. + minID = page.GetMin() + maxID = page.GetMax() + limit = page.GetLimit() + order = page.GetOrder() + + // Make educated guess for slice size. + appIDs = make([]string, 0, limit) + ) + + // Ensure user ID. + if userID == "" { + return nil, gtserror.New("userID not set") + } + + q := a.db. + NewSelect(). + TableExpr("? AS ?", bun.Ident("applications"), bun.Ident("application")). + Column("application.id"). + Where("? = ?", bun.Ident("application.managed_by_user_id"), userID) + + if maxID != "" { + // Return only apps LOWER (ie., older) than maxID. + q = q.Where("? < ?", bun.Ident("application.id"), maxID) + } + + if minID != "" { + // Return only apps HIGHER (ie., newer) than minID. + q = q.Where("? > ?", bun.Ident("application.id"), minID) + } + + if limit > 0 { + q = q.Limit(limit) + } + + if order == paging.OrderAscending { + // Page up. + q = q.Order("application.id ASC") + } else { + // Page down. + q = q.Order("application.id DESC") + } + + if err := q.Scan(ctx, &appIDs); err != nil { + return nil, err + } + + if len(appIDs) == 0 { + return nil, nil + } + + // If we're paging up, we still want apps + // to be sorted by ID desc (ie., newest to + // oldest), so reverse ids slice. + if order == paging.OrderAscending { + slices.Reverse(appIDs) + } + + return a.getApplicationsByIDs(ctx, appIDs) +} + func (a *applicationDB) getApplication(ctx context.Context, lookup string, dbQuery func(*gtsmodel.Application) error, keyParts ...any) (*gtsmodel.Application, error) { return a.state.Caches.DB.Application.LoadOne(lookup, func() (*gtsmodel.Application, error) { var app gtsmodel.Application @@ -69,6 +136,37 @@ func (a *applicationDB) getApplication(ctx context.Context, lookup string, dbQue }, keyParts...) } +func (a *applicationDB) getApplicationsByIDs(ctx context.Context, ids []string) ([]*gtsmodel.Application, error) { + apps, err := a.state.Caches.DB.Application.LoadIDs("ID", + ids, + func(uncached []string) ([]*gtsmodel.Application, error) { + // Preallocate expected length of uncached apps. + apps := make([]*gtsmodel.Application, 0, len(uncached)) + + // Perform database query scanning + // the remaining (uncached) app IDs. + if err := a.db.NewSelect(). + Model(&apps). + Where("? IN (?)", bun.Ident("id"), bun.In(uncached)). + Scan(ctx); err != nil { + return nil, err + } + + return apps, nil + }, + ) + if err != nil { + return nil, err + } + + // Reorder the apps by their + // IDs to ensure in correct order. + getID := func(t *gtsmodel.Application) string { return t.ID } + xslices.OrderBy(apps, ids, getID) + + return apps, nil +} + func (a *applicationDB) PutApplication(ctx context.Context, app *gtsmodel.Application) error { return a.state.Caches.DB.Application.Store(app, func() error { _, err := a.db.NewInsert().Model(app).Exec(ctx) @@ -76,27 +174,25 @@ func (a *applicationDB) PutApplication(ctx context.Context, app *gtsmodel.Applic }) } -func (a *applicationDB) DeleteApplicationByClientID(ctx context.Context, clientID string) error { - // Attempt to delete application. - if _, err := a.db.NewDelete(). +// DeleteApplicationByID deletes application with the given ID. +// +// The function does not delete tokens owned by the application +// or update statuses/accounts that used the application, since +// the latter can be extremely expensive given the size of the +// statuses table. +// +// Callers to this function should ensure that they do side +// effects themselves (if required) before or after calling. +func (a *applicationDB) DeleteApplicationByID(ctx context.Context, id string) error { + _, err := a.db.NewDelete(). Table("applications"). - Where("? = ?", bun.Ident("client_id"), clientID). - Exec(ctx); err != nil { + Where("? = ?", bun.Ident("id"), id). + Exec(ctx) + if err != nil { return err } - // NOTE about further side effects: - // - // We don't need to handle updating any statuses or users - // (both of which may contain refs to applications), as - // DeleteApplication__() is only ever called during an - // account deletion, which handles deletion of the user - // and all their statuses already. - // - - // Clear application from the cache. - a.state.Caches.DB.Application.Invalidate("ClientID", clientID) - + a.state.Caches.DB.Application.Invalidate("ID", id) return nil } @@ -363,3 +459,27 @@ func (a *applicationDB) DeleteTokenByRefresh(ctx context.Context, refresh string a.state.Caches.DB.Token.Invalidate("Refresh", refresh) return nil } + +func (a *applicationDB) DeleteTokensByClientID(ctx context.Context, clientID string) error { + // Delete tokens owned by + // clientID and gather token IDs. + var tokenIDs []string + if _, err := a.db. + NewDelete(). + Table("tokens"). + Where("? = ?", bun.Ident("client_id"), clientID). + Returning("id"). + Exec(ctx, &tokenIDs); err != nil { + return err + } + + if len(tokenIDs) == 0 { + // Nothing was deleted, + // nothing to invalidate. + return nil + } + + // Invalidate all deleted tokens. + a.state.Caches.DB.Token.InvalidateIDs("ID", tokenIDs) + return nil +} diff --git a/internal/db/bundb/application_test.go b/internal/db/bundb/application_test.go index b6b19319c..540c632b5 100644 --- a/internal/db/bundb/application_test.go +++ b/internal/db/bundb/application_test.go @@ -92,7 +92,7 @@ func (suite *ApplicationTestSuite) TestDeleteApplicationBy() { for _, app := range suite.testApplications { for lookup, dbfunc := range map[string]func() error{ "client_id": func() error { - return suite.db.DeleteApplicationByClientID(ctx, app.ClientID) + return suite.db.DeleteApplicationByID(ctx, app.ID) }, } { // Clear database caches. @@ -124,6 +124,36 @@ func (suite *ApplicationTestSuite) TestGetAllTokens() { suite.NotEmpty(tokens) } +func (suite *ApplicationTestSuite) TestDeleteTokensByClientID() { + ctx := context.Background() + + // Delete tokens by each app. + for _, app := range suite.testApplications { + if err := suite.state.DB.DeleteTokensByClientID(ctx, app.ClientID); err != nil { + suite.FailNow(err.Error()) + } + } + + // Ensure all tokens deleted. + for _, token := range suite.testTokens { + _, err := suite.db.GetTokenByID(ctx, token.ID) + if !errors.Is(err, db.ErrNoEntries) { + suite.FailNow("", "token %s not deleted", token.ID) + } + } +} + +func (suite *ApplicationTestSuite) TestDeleteTokensByUnknownClientID() { + // Should not return ErrNoRows even though + // the client with given ID doesn't exist. + if err := suite.state.DB.DeleteTokensByClientID( + context.Background(), + "01JPJ4NCGH6GHY7ZVYBHNP55XS", + ); err != nil { + suite.FailNow(err.Error()) + } +} + func TestApplicationTestSuite(t *testing.T) { suite.Run(t, new(ApplicationTestSuite)) } diff --git a/internal/db/bundb/migrations/20250310144102_application_management.go b/internal/db/bundb/migrations/20250310144102_application_management.go new file mode 100644 index 000000000..46ff9926b --- /dev/null +++ b/internal/db/bundb/migrations/20250310144102_application_management.go @@ -0,0 +1,105 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package migrations + +import ( + "context" + + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/uptrace/bun" +) + +func init() { + up := func(ctx context.Context, db *bun.DB) error { + return db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error { + // Add client_id index to token table, + // needed for invalidation if/when the + // token's app is deleted. + if _, err := tx. + NewCreateIndex(). + Table("tokens"). + Index("tokens_client_id_idx"). + Column("client_id"). + IfNotExists(). + Exec(ctx); err != nil { + return err + } + + // Update users to set all "created_by_application_id" + // values to the instance application, to correct some + // past issues where this wasn't set. Skip this if there's + // no users though, as in that case we probably don't even + // have an instance application yet. + usersLen, err := tx. + NewSelect(). + Table("users"). + Count(ctx) + if err != nil { + return err + } + + if usersLen == 0 { + // Nothing to do. + return nil + } + + // Get Instance account ID. + var instanceAcctID string + if err := tx. + NewSelect(). + Table("accounts"). + Column("id"). + Where("? = ?", bun.Ident("username"), config.GetHost()). + Where("? IS NULL", bun.Ident("domain")). + Scan(ctx, &instanceAcctID); err != nil { + return err + } + + // Get the instance app ID. + var instanceAppID string + if err := tx. + NewSelect(). + Table("applications"). + Column("id"). + Where("? = ?", bun.Ident("client_id"), instanceAcctID). + Scan(ctx, &instanceAppID); err != nil { + return err + } + + // Set instance app + // ID on all users. + if _, err := tx. + NewUpdate(). + Table("users"). + Set("? = ?", bun.Ident("created_by_application_id"), instanceAppID). + Exec(ctx); err != nil { + return err + } + + return nil + }) + } + + down := func(ctx context.Context, db *bun.DB) error { + return nil + } + + if err := Migrations.Register(up, down); err != nil { + panic(err) + } +} diff --git a/internal/db/bundb/status.go b/internal/db/bundb/status.go index fea5594dd..8383a9c01 100644 --- a/internal/db/bundb/status.go +++ b/internal/db/bundb/status.go @@ -299,11 +299,12 @@ func (s *statusDB) PopulateStatus(ctx context.Context, status *gtsmodel.Status) if status.CreatedWithApplicationID != "" && status.CreatedWithApplication == nil { // Populate the status' expected CreatedWithApplication (not always set). + // Don't error on ErrNoEntries, as the application may have been cleaned up. status.CreatedWithApplication, err = s.state.DB.GetApplicationByID( gtscontext.SetBarebones(ctx), status.CreatedWithApplicationID, ) - if err != nil { + if err != nil && !errors.Is(err, db.ErrNoEntries) { errs.Appendf("error populating status application: %w", err) } } diff --git a/internal/gtsmodel/token.go b/internal/gtsmodel/token.go index 6fe944290..46d30ba7d 100644 --- a/internal/gtsmodel/token.go +++ b/internal/gtsmodel/token.go @@ -27,7 +27,7 @@ type Token struct { ClientID string `bun:"type:CHAR(26),nullzero,notnull"` // ID of the client who owns this token UserID string `bun:"type:CHAR(26),nullzero"` // ID of the user who owns this token RedirectURI string `bun:",nullzero,notnull"` // Oauth redirect URI for this token - Scope string `bun:",nullzero,notnull,default:'read'"` // Oauth scope // Oauth scope + Scope string `bun:",nullzero,notnull,default:'read'"` // Oauth scope Code string `bun:",pk,nullzero,notnull,default:''"` // Code, if present CodeChallenge string `bun:",nullzero"` // Code challenge, if code present CodeChallengeMethod string `bun:",nullzero"` // Code challenge method, if code present diff --git a/internal/processing/account/delete.go b/internal/processing/account/delete.go index 0064d7eb4..ab64c3270 100644 --- a/internal/processing/account/delete.go +++ b/internal/processing/account/delete.go @@ -107,19 +107,33 @@ func (p *Processor) deleteUserAndTokensForAccount(ctx context.Context, account * return gtserror.Newf("db error getting user: %w", err) } - tokens := []*gtsmodel.Token{} - if err := p.state.DB.GetWhere(ctx, []db.Where{{Key: "user_id", Value: user.ID}}, &tokens); err != nil { + // Get all applications owned by user. + apps, err := p.state.DB.GetApplicationsManagedByUserID(ctx, user.ID, nil) + if err != nil { + return gtserror.Newf("db error getting apps: %w", err) + } + + // Delete each app and any tokens it had created + // (not necessarily owned by deleted account). + for _, a := range apps { + if err := p.state.DB.DeleteApplicationByID(ctx, a.ID); err != nil { + return gtserror.Newf("db error deleting app: %w", err) + } + + if err := p.state.DB.DeleteTokensByClientID(ctx, a.ClientID); err != nil { + return gtserror.Newf("db error deleting tokens for app: %w", err) + } + } + + // Get any remaining access tokens owned by user. + tokens, err := p.state.DB.GetAccessTokens(ctx, user.ID, nil) + if err != nil { return gtserror.Newf("db error getting tokens: %w", err) } + // Delete each token. for _, t := range tokens { - // Delete any OAuth applications associated with this token. - if err := p.state.DB.DeleteApplicationByClientID(ctx, t.ClientID); err != nil { - return gtserror.Newf("db error deleting application: %w", err) - } - - // Delete the token itself. - if err := p.state.DB.DeleteByID(ctx, t.ID, t); err != nil { + if err := p.state.DB.DeleteTokenByID(ctx, t.ID); err != nil { return gtserror.Newf("db error deleting token: %w", err) } } diff --git a/internal/processing/application/application.go b/internal/processing/application/application.go new file mode 100644 index 000000000..4ad35749e --- /dev/null +++ b/internal/processing/application/application.go @@ -0,0 +1,38 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package application + +import ( + "github.com/superseriousbusiness/gotosocial/internal/state" + "github.com/superseriousbusiness/gotosocial/internal/typeutils" +) + +type Processor struct { + state *state.State + converter *typeutils.Converter +} + +func New( + state *state.State, + converter *typeutils.Converter, +) Processor { + return Processor{ + state: state, + converter: converter, + } +} diff --git a/internal/processing/app.go b/internal/processing/application/create.go similarity index 68% rename from internal/processing/app.go rename to internal/processing/application/create.go index c9bd4eb68..d1340a39f 100644 --- a/internal/processing/app.go +++ b/internal/processing/application/create.go @@ -15,24 +15,28 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -package processing +package application import ( "context" + "errors" "fmt" "net/url" "strings" "github.com/google/uuid" apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" - apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/id" "github.com/superseriousbusiness/gotosocial/internal/oauth" ) -func (p *Processor) AppCreate(ctx context.Context, authed *apiutil.Auth, form *apimodel.ApplicationCreateRequest) (*apimodel.Application, gtserror.WithCode) { +func (p *Processor) Create( + ctx context.Context, + managedByUserID string, + form *apimodel.ApplicationCreateRequest, +) (*apimodel.Application, gtserror.WithCode) { // Set default 'read' for // scopes if it's not set. var scopes string @@ -49,13 +53,32 @@ func (p *Processor) AppCreate(ctx context.Context, authed *apiutil.Auth, form *a // Redirect URIs can be just one value, or can be passed // as a newline-separated list of strings. Ensure each URI // is parseable + normalize it by reconstructing from *url.URL. - for _, redirectStr := range strings.Split(form.RedirectURIs, "\n") { + // Also ensure we don't add multiple copies of the same URI. + redirectStrs := strings.Split(form.RedirectURIs, "\n") + added := make(map[string]struct{}, len(redirectStrs)) + + for _, redirectStr := range redirectStrs { + redirectStr = strings.TrimSpace(redirectStr) + if redirectStr == "" { + continue + } + redirectURI, err := url.Parse(redirectStr) if err != nil { errText := fmt.Sprintf("error parsing redirect URI: %v", err) return nil, gtserror.NewErrorBadRequest(err, errText) } - redirectURIs = append(redirectURIs, redirectURI.String()) + + redirectURIStr := redirectURI.String() + if _, alreadyAdded := added[redirectURIStr]; !alreadyAdded { + redirectURIs = append(redirectURIs, redirectURIStr) + added[redirectURIStr] = struct{}{} + } + } + + if len(redirectURIs) == 0 { + errText := "no redirect URIs left after trimming space" + return nil, gtserror.NewErrorBadRequest(errors.New(errText), errText) } } else { // No redirect URI(s) provided, just set default oob. @@ -71,13 +94,14 @@ func (p *Processor) AppCreate(ctx context.Context, authed *apiutil.Auth, form *a // Generate + store app // to put in the database. app := >smodel.Application{ - ID: id.NewULID(), - Name: form.ClientName, - Website: form.Website, - RedirectURIs: redirectURIs, - ClientID: clientID, - ClientSecret: uuid.NewString(), - Scopes: scopes, + ID: id.NewULID(), + Name: form.ClientName, + Website: form.Website, + RedirectURIs: redirectURIs, + ClientID: clientID, + ClientSecret: uuid.NewString(), + Scopes: scopes, + ManagedByUserID: managedByUserID, } if err := p.state.DB.PutApplication(ctx, app); err != nil { return nil, gtserror.NewErrorInternalError(err) diff --git a/internal/processing/application/delete.go b/internal/processing/application/delete.go new file mode 100644 index 000000000..02f5e4bfa --- /dev/null +++ b/internal/processing/application/delete.go @@ -0,0 +1,70 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package application + +import ( + "context" + "errors" + + apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" + "github.com/superseriousbusiness/gotosocial/internal/db" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" +) + +func (p *Processor) Delete( + ctx context.Context, + userID string, + appID string, +) (*apimodel.Application, gtserror.WithCode) { + app, err := p.state.DB.GetApplicationByID(ctx, appID) + if err != nil && !errors.Is(err, db.ErrNoEntries) { + err := gtserror.Newf("db error getting app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + if app == nil { + err := gtserror.Newf("app %s not found in the db", appID) + return nil, gtserror.NewErrorNotFound(err) + } + + if app.ManagedByUserID != userID { + err := gtserror.Newf("app %s not managed by user %s", appID, userID) + return nil, gtserror.NewErrorNotFound(err) + } + + // Convert app before deletion. + apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) + if err != nil { + err := gtserror.Newf("error converting app to api app: %w", err) + return nil, gtserror.NewErrorInternalError(err) + } + + // Delete app itself. + if err := p.state.DB.DeleteApplicationByID(ctx, appID); err != nil { + err := gtserror.Newf("db error deleting app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + // Delete all tokens owned by app. + if err := p.state.DB.DeleteTokensByClientID(ctx, app.ClientID); err != nil { + err := gtserror.Newf("db error deleting tokens for app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + return apiApp, nil +} diff --git a/internal/processing/application/get.go b/internal/processing/application/get.go new file mode 100644 index 000000000..0a3eb8e04 --- /dev/null +++ b/internal/processing/application/get.go @@ -0,0 +1,104 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package application + +import ( + "context" + "errors" + + apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" + "github.com/superseriousbusiness/gotosocial/internal/db" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" + "github.com/superseriousbusiness/gotosocial/internal/log" + "github.com/superseriousbusiness/gotosocial/internal/paging" +) + +func (p *Processor) Get( + ctx context.Context, + userID string, + appID string, +) (*apimodel.Application, gtserror.WithCode) { + app, err := p.state.DB.GetApplicationByID(ctx, appID) + if err != nil && !errors.Is(err, db.ErrNoEntries) { + err := gtserror.Newf("db error getting app %s: %w", appID, err) + return nil, gtserror.NewErrorInternalError(err) + } + + if app == nil { + err := gtserror.Newf("app %s not found in the db", appID) + return nil, gtserror.NewErrorNotFound(err) + } + + if app.ManagedByUserID != userID { + err := gtserror.Newf("app %s not managed by user %s", appID, userID) + return nil, gtserror.NewErrorNotFound(err) + } + + apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) + if err != nil { + err := gtserror.Newf("error converting app to api app: %w", err) + return nil, gtserror.NewErrorInternalError(err) + } + + return apiApp, nil +} + +func (p *Processor) GetPage( + ctx context.Context, + userID string, + page *paging.Page, +) (*apimodel.PageableResponse, gtserror.WithCode) { + apps, err := p.state.DB.GetApplicationsManagedByUserID(ctx, userID, page) + if err != nil && !errors.Is(err, db.ErrNoEntries) { + err := gtserror.Newf("db error getting apps: %w", err) + return nil, gtserror.NewErrorInternalError(err) + } + + count := len(apps) + if count == 0 { + return paging.EmptyResponse(), nil + } + + var ( + // Get the lowest and highest + // ID values, used for paging. + lo = apps[count-1].ID + hi = apps[0].ID + + // Best-guess items length. + items = make([]interface{}, 0, count) + ) + + for _, app := range apps { + apiApp, err := p.converter.AppToAPIAppSensitive(ctx, app) + if err != nil { + log.Errorf(ctx, "error converting app to api app: %v", err) + continue + } + + // Append req to return items. + items = append(items, apiApp) + } + + return paging.PackageResponse(paging.ResponseParams{ + Items: items, + Path: "/api/v1/apps", + Next: page.Next(lo, hi), + Prev: page.Prev(lo, hi), + }), nil +} diff --git a/internal/processing/processor.go b/internal/processing/processor.go index 0bba23089..0324f49cf 100644 --- a/internal/processing/processor.go +++ b/internal/processing/processor.go @@ -29,6 +29,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/processing/account" "github.com/superseriousbusiness/gotosocial/internal/processing/admin" "github.com/superseriousbusiness/gotosocial/internal/processing/advancedmigrations" + "github.com/superseriousbusiness/gotosocial/internal/processing/application" "github.com/superseriousbusiness/gotosocial/internal/processing/common" "github.com/superseriousbusiness/gotosocial/internal/processing/conversations" "github.com/superseriousbusiness/gotosocial/internal/processing/fedi" @@ -81,6 +82,7 @@ type Processor struct { account account.Processor admin admin.Processor advancedmigrations advancedmigrations.Processor + application application.Processor conversations conversations.Processor fedi fedi.Processor filtersv1 filtersv1.Processor @@ -113,6 +115,10 @@ func (p *Processor) AdvancedMigrations() *advancedmigrations.Processor { return &p.advancedmigrations } +func (p *Processor) Application() *application.Processor { + return &p.application +} + func (p *Processor) Conversations() *conversations.Processor { return &p.conversations } @@ -221,6 +227,7 @@ func NewProcessor( // processors + pin them to this struct. processor.account = account.New(&common, state, converter, mediaManager, federator, visFilter, parseMentionFunc) processor.admin = admin.New(&common, state, cleaner, subscriptions, federator, converter, mediaManager, federator.TransportController(), emailSender) + processor.application = application.New(state, converter) processor.conversations = conversations.New(state, converter, visFilter) processor.fedi = fedi.New(state, &common, converter, federator, visFilter) processor.filtersv1 = filtersv1.New(state, converter, &processor.stream) diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 537eeb6db..b0e137f75 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -623,8 +623,14 @@ func (c *Converter) AppToAPIAppSensitive(ctx context.Context, a *gtsmodel.Applic return nil, gtserror.Newf("error getting VAPID public key: %w", err) } + createdAt, err := id.TimeFromULID(a.ID) + if err != nil { + return nil, gtserror.Newf("error converting id to time: %w", err) + } + return &apimodel.Application{ ID: a.ID, + CreatedAt: util.FormatISO8601(createdAt), Name: a.Name, Website: a.Website, RedirectURI: strings.Join(a.RedirectURIs, "\n"), @@ -1412,14 +1418,28 @@ func (c *Converter) baseStatusToFrontend( apiStatus.InReplyToAccountID = util.PtrIf(s.InReplyToAccountID) apiStatus.Language = util.PtrIf(s.Language) - if app := s.CreatedWithApplication; app != nil { - apiStatus.Application, err = c.AppToAPIAppPublic(ctx, app) + switch { + case s.CreatedWithApplication != nil: + // App exists for this status and is set. + apiStatus.Application, err = c.AppToAPIAppPublic(ctx, s.CreatedWithApplication) if err != nil { return nil, gtserror.Newf( "error converting application %s: %w", s.CreatedWithApplicationID, err, ) } + + case s.CreatedWithApplicationID != "": + // App existed for this status but not + // anymore, it's probably been cleaned up. + // Set a dummy application. + apiStatus.Application = &apimodel.Application{ + Name: "unknown application", + } + + default: + // No app stored for this (probably remote) + // status, so nothing to do (app is optional). } if s.Poll != nil { diff --git a/internal/typeutils/internaltofrontend_test.go b/internal/typeutils/internaltofrontend_test.go index 0b2c6ddfa..c94d4481a 100644 --- a/internal/typeutils/internaltofrontend_test.go +++ b/internal/typeutils/internaltofrontend_test.go @@ -753,6 +753,156 @@ func (suite *InternalToFrontendTestSuite) TestStatusToFrontendHTMLContentWarning }`, string(b)) } +func (suite *InternalToFrontendTestSuite) TestStatusToFrontendApplicationDeleted() { + ctx := context.Background() + testStatus := suite.testStatuses["admin_account_status_1"] + + // Delete the application this status was created with. + if err := suite.state.DB.DeleteApplicationByID(ctx, testStatus.CreatedWithApplicationID); err != nil { + suite.FailNow(err.Error()) + } + + requestingAccount := suite.testAccounts["local_account_1"] + apiStatus, err := suite.typeconverter.StatusToAPIStatus(ctx, testStatus, requestingAccount, statusfilter.FilterContextNone, nil, nil) + suite.NoError(err) + + b, err := json.MarshalIndent(apiStatus, "", " ") + suite.NoError(err) + + suite.Equal(`{ + "id": "01F8MH75CBF9JFX4ZAD54N0W0R", + "created_at": "2021-10-20T11:36:45.000Z", + "edited_at": null, + "in_reply_to_id": null, + "in_reply_to_account_id": null, + "sensitive": false, + "spoiler_text": "", + "visibility": "public", + "language": "en", + "uri": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R", + "url": "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R", + "replies_count": 1, + "reblogs_count": 0, + "favourites_count": 1, + "favourited": true, + "reblogged": false, + "muted": false, + "bookmarked": true, + "pinned": false, + "content": "\u003cp\u003ehello world! \u003ca href=\"http://localhost:8080/tags/welcome\" class=\"mention hashtag\" rel=\"tag nofollow noreferrer noopener\" target=\"_blank\"\u003e#\u003cspan\u003ewelcome\u003c/span\u003e\u003c/a\u003e ! first post on the instance :rainbow: !\u003c/p\u003e", + "reblog": null, + "application": { + "name": "unknown application" + }, + "account": { + "id": "01F8MH17FWEB39HZJ76B6VXSKF", + "username": "admin", + "acct": "admin", + "display_name": "", + "locked": false, + "discoverable": true, + "bot": false, + "created_at": "2022-05-17T13:10:59.000Z", + "note": "", + "url": "http://localhost:8080/@admin", + "avatar": "", + "avatar_static": "", + "header": "http://localhost:8080/assets/default_header.webp", + "header_static": "http://localhost:8080/assets/default_header.webp", + "header_description": "Flat gray background (default header).", + "followers_count": 1, + "following_count": 1, + "statuses_count": 4, + "last_status_at": "2021-10-20", + "emojis": [], + "fields": [], + "enable_rss": true, + "roles": [ + { + "id": "admin", + "name": "admin", + "color": "" + } + ], + "group": false + }, + "media_attachments": [ + { + "id": "01F8MH6NEM8D7527KZAECTCR76", + "type": "image", + "url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg", + "text_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg", + "preview_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.webp", + "remote_url": null, + "preview_remote_url": null, + "meta": { + "original": { + "width": 1200, + "height": 630, + "size": "1200x630", + "aspect": 1.9047619 + }, + "small": { + "width": 512, + "height": 268, + "size": "512x268", + "aspect": 1.9104477 + }, + "focus": { + "x": 0, + "y": 0 + } + }, + "description": "Black and white image of some 50's style text saying: Welcome On Board", + "blurhash": "LIIE|gRj00WB-;j[t7j[4nWBj[Rj" + } + ], + "mentions": [], + "tags": [ + { + "name": "welcome", + "url": "http://localhost:8080/tags/welcome" + } + ], + "emojis": [ + { + "shortcode": "rainbow", + "url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png", + "static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png", + "visible_in_picker": true, + "category": "reactions" + } + ], + "card": null, + "poll": null, + "text": "hello world! #welcome ! first post on the instance :rainbow: !", + "content_type": "text/plain", + "interaction_policy": { + "can_favourite": { + "always": [ + "public", + "me" + ], + "with_approval": [] + }, + "can_reply": { + "always": [ + "public", + "me" + ], + "with_approval": [] + }, + "can_reblog": { + "always": [ + "public", + "me" + ], + "with_approval": [] + } + } +}`, string(b)) +} + // Modify a fixture status into a status that should be filtered, // and then filter it, returning the API status or any error from converting it. func (suite *InternalToFrontendTestSuite) filteredStatusToFrontend(action gtsmodel.FilterAction, boost bool) (*apimodel.Status, error) { diff --git a/web/source/settings/components/authorization/index.tsx b/web/source/settings/components/authorization/index.tsx index 7c6373399..3eeeb393a 100644 --- a/web/source/settings/components/authorization/index.tsx +++ b/web/source/settings/components/authorization/index.tsx @@ -17,7 +17,7 @@ along with this program. If not, see . */ -import { useLogoutMutation, useVerifyCredentialsQuery } from "../../lib/query/oauth"; +import { useLogoutMutation, useVerifyCredentialsQuery } from "../../lib/query/login"; import { store } from "../../redux/store"; import React, { ReactNode } from "react"; @@ -27,8 +27,8 @@ import { Error } from "../error"; import { NoArg } from "../../lib/types/query"; export function Authorization({ App }) { - const { loginState, expectingRedirect } = store.getState().oauth; - const skip = (loginState == "none" || loginState == "logout" || expectingRedirect); + const { current: loginState, expectingRedirect } = store.getState().login; + const skip = (loginState == "none" || loginState == "loggedout" || expectingRedirect); const [ logoutQuery ] = useLogoutMutation(); const { @@ -46,9 +46,9 @@ export function Authorization({ App }) { showLogin = false; let loadingInfo = ""; - if (loginState == "callback") { + if (loginState == "awaitingcallback") { loadingInfo = "Processing OAUTH callback."; - } else if (loginState == "login") { + } else if (loginState == "loggedin") { loadingInfo = "Verifying stored login."; } @@ -70,7 +70,7 @@ export function Authorization({ App }) { ); } - if (loginState == "login" && isSuccess) { + if (loginState == "loggedin" && isSuccess) { return ; } else { return ( diff --git a/web/source/settings/components/authorization/login.tsx b/web/source/settings/components/authorization/login.tsx index 28ed7953c..c54125972 100644 --- a/web/source/settings/components/authorization/login.tsx +++ b/web/source/settings/components/authorization/login.tsx @@ -19,7 +19,7 @@ import React from "react"; -import { useAuthorizeFlowMutation } from "../../lib/query/oauth"; +import { useAuthorizeFlowMutation } from "../../lib/query/login"; import { useTextInput, useValue } from "../../lib/form"; import useFormSubmit from "../../lib/form/submit"; import MutationButton from "../form/mutation-button"; diff --git a/web/source/settings/components/highlightedcode.tsx b/web/source/settings/components/highlightedcode.tsx new file mode 100644 index 000000000..eccecd709 --- /dev/null +++ b/web/source/settings/components/highlightedcode.tsx @@ -0,0 +1,44 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React, { useEffect, useRef } from "react"; + +// Used for syntax highlighting of json result. +import Prism from "../../frontend/prism"; + +export function HighlightedCode({ code, lang }: { code: string, lang: string }) { + const ref = useRef(null); + useEffect(() => { + if (ref.current) { + Prism.highlightElement(ref.current); + } + }, []); + + // Prism takes control of the `pre` so wrap + // the whole thing in a div that we control. + return ( +

+ ); +} diff --git a/web/source/settings/components/status.tsx b/web/source/settings/components/status.tsx index ec7af3ad3..701a9f8b7 100644 --- a/web/source/settings/components/status.tsx +++ b/web/source/settings/components/status.tsx @@ -18,7 +18,7 @@ */ import React from "react"; -import { useVerifyCredentialsQuery } from "../lib/query/oauth"; +import { useVerifyCredentialsQuery } from "../lib/query/login"; import { MediaAttachment, Status as StatusType } from "../lib/types/status"; import sanitize from "sanitize-html"; diff --git a/web/source/settings/components/user-logout-card.tsx b/web/source/settings/components/user-logout-card.tsx index f9acc9698..e15a1ee6a 100644 --- a/web/source/settings/components/user-logout-card.tsx +++ b/web/source/settings/components/user-logout-card.tsx @@ -20,7 +20,7 @@ import React from "react"; import Loading from "./loading"; import { Error as ErrorC } from "./error"; -import { useVerifyCredentialsQuery, useLogoutMutation } from "../lib/query/oauth"; +import { useVerifyCredentialsQuery, useLogoutMutation } from "../lib/query/login"; import { useInstanceV1Query } from "../lib/query/gts-api"; export default function UserLogoutCard() { diff --git a/web/source/settings/index.tsx b/web/source/settings/index.tsx index 5317658d2..c9ed5c30b 100644 --- a/web/source/settings/index.tsx +++ b/web/source/settings/index.tsx @@ -66,7 +66,7 @@ export function App({ account }: AppProps) { Ensure user ends up somewhere if they just open /settings. */} - + diff --git a/web/source/settings/lib/query/admin/custom-emoji/index.ts b/web/source/settings/lib/query/admin/custom-emoji/index.ts index 56684f03b..c5dd0a814 100644 --- a/web/source/settings/lib/query/admin/custom-emoji/index.ts +++ b/web/source/settings/lib/query/admin/custom-emoji/index.ts @@ -141,7 +141,7 @@ const extended = gtsApi.injectEndpoints({ searchItemForEmoji: build.mutation({ async queryFn(url, api, _extraOpts, fetchWithBQ) { const state = api.getState() as RootState; - const oauthState = state.oauth; + const loginState = state.login; // First search for given url. const searchRes = await fetchWithBQ({ @@ -161,8 +161,8 @@ const extended = gtsApi.injectEndpoints({ // Ensure emojis domain is not OUR domain. If it // is, we already have the emojis by definition. - if (oauthState.instanceUrl !== undefined) { - if (domain == new URL(oauthState.instanceUrl).host) { + if (loginState.instanceUrl !== undefined) { + if (domain == new URL(loginState.instanceUrl).host) { throw "LOCAL_INSTANCE"; } } diff --git a/web/source/settings/lib/query/admin/domain-permissions/export.ts b/web/source/settings/lib/query/admin/domain-permissions/export.ts index 868e3f7a4..f258991c6 100644 --- a/web/source/settings/lib/query/admin/domain-permissions/export.ts +++ b/web/source/settings/lib/query/admin/domain-permissions/export.ts @@ -116,7 +116,7 @@ const extended = gtsApi.injectEndpoints({ // Parse filename to something like: // `example.org-blocklist-2023-10-09.json`. const state = api.getState() as RootState; - const instanceUrl = state.oauth.instanceUrl?? "unknown"; + const instanceUrl = state.login.instanceUrl?? "unknown"; const domain = new URL(instanceUrl).host; const date = new Date(); const filename = [ diff --git a/web/source/settings/lib/query/gts-api.ts b/web/source/settings/lib/query/gts-api.ts index 401423766..540191132 100644 --- a/web/source/settings/lib/query/gts-api.ts +++ b/web/source/settings/lib/query/gts-api.ts @@ -77,7 +77,7 @@ const gtsBaseQuery: BaseQueryFn< // Retrieve state at the moment // this function was called. const state = api.getState() as RootState; - const { instanceUrl, token } = state.oauth; + const { instanceUrl, token } = state.login; // Derive baseUrl dynamically. let baseUrl: string | undefined; @@ -160,6 +160,7 @@ export const gtsApi = createApi({ reducerPath: "api", baseQuery: gtsBaseQuery, tagTypes: [ + "Application", "Auth", "Emoji", "Report", diff --git a/web/source/settings/lib/query/oauth/index.ts b/web/source/settings/lib/query/login/index.ts similarity index 87% rename from web/source/settings/lib/query/oauth/index.ts rename to web/source/settings/lib/query/login/index.ts index e151b0aee..e3b3b94a1 100644 --- a/web/source/settings/lib/query/oauth/index.ts +++ b/web/source/settings/lib/query/login/index.ts @@ -24,17 +24,10 @@ import { setToken as oauthSetToken, remove as oauthRemove, authorize as oauthAuthorize, -} from "../../../redux/oauth"; +} from "../../../redux/login"; import { RootState } from '../../../redux/store'; import { Account } from '../../types/account'; - -export interface OauthTokenRequestBody { - client_id: string; - client_secret: string; - redirect_uri: string; - grant_type: string; - code: string; -} +import { OAuthAccessTokenRequestBody } from '../../types/oauth'; function getSettingsURL() { /* @@ -45,7 +38,7 @@ function getSettingsURL() { Also drops anything past /settings/, because authorization urls that are too long get rejected by GTS. */ - let [pre, _past] = window.location.pathname.split("/settings"); + const [pre, _past] = window.location.pathname.split("/settings"); return `${window.location.origin}${pre}/settings`; } @@ -64,12 +57,12 @@ const extended = gtsApi.injectEndpoints({ error == undefined ? ["Auth"] : [], async queryFn(_arg, api, _extraOpts, fetchWithBQ) { const state = api.getState() as RootState; - const oauthState = state.oauth; + const loginState = state.login; // If we're not in the middle of an auth/callback, // we may already have an auth token, so just // return a standard verify_credentials query. - if (oauthState.loginState != 'callback') { + if (loginState.current != 'awaitingcallback') { return fetchWithBQ({ url: `/api/v1/accounts/verify_credentials` }); @@ -77,8 +70,8 @@ const extended = gtsApi.injectEndpoints({ // We're in the middle of an auth/callback flow. // Try to retrieve callback code from URL query. - let urlParams = new URLSearchParams(window.location.search); - let code = urlParams.get("code"); + const urlParams = new URLSearchParams(window.location.search); + const code = urlParams.get("code"); if (code == undefined) { return { error: { @@ -91,7 +84,7 @@ const extended = gtsApi.injectEndpoints({ // Retrieve app with which the // callback code was generated. - let app = oauthState.app; + const app = loginState.app; if (app == undefined || app.client_id == undefined) { return { error: { @@ -104,7 +97,7 @@ const extended = gtsApi.injectEndpoints({ // Use the provided code and app // secret to request an auth token. - const tokenReqBody: OauthTokenRequestBody = { + const tokenReqBody: OAuthAccessTokenRequestBody = { client_id: app.client_id, client_secret: app.client_secret, redirect_uri: SETTINGS_URL, @@ -139,7 +132,7 @@ const extended = gtsApi.injectEndpoints({ authorizeFlow: build.mutation({ async queryFn(formData, api, _extraOpts, fetchWithBQ) { const state = api.getState() as RootState; - const oauthState = state.oauth; + const loginState = state.login; let instanceUrl: string; if (!formData.instance.startsWith("http")) { @@ -147,8 +140,8 @@ const extended = gtsApi.injectEndpoints({ } instanceUrl = new URL(formData.instance).origin; - if (oauthState?.instanceUrl == instanceUrl && oauthState.app) { - return { data: oauthState.app }; + if (loginState?.instanceUrl == instanceUrl && loginState.app) { + return { data: loginState.app }; } const appResult = await fetchWithBQ({ @@ -166,24 +159,24 @@ const extended = gtsApi.injectEndpoints({ return { error: appResult.error as FetchBaseQueryError }; } - let app = appResult.data as any; + const app = appResult.data as any; app.scopes = formData.scopes; api.dispatch(oauthAuthorize({ instanceUrl: instanceUrl, app: app, - loginState: "callback", + current: "awaitingcallback", expectingRedirect: true })); - let url = new URL(instanceUrl); + const url = new URL(instanceUrl); url.pathname = "/oauth/authorize"; url.searchParams.set("client_id", app.client_id); url.searchParams.set("redirect_uri", SETTINGS_URL); url.searchParams.set("response_type", "code"); url.searchParams.set("scope", app.scopes); - let redirectURL = url.toString(); + const redirectURL = url.toString(); window.location.assign(redirectURL); return { data: null }; }, diff --git a/web/source/settings/lib/query/user/applications.ts b/web/source/settings/lib/query/user/applications.ts new file mode 100644 index 000000000..9d271a1e1 --- /dev/null +++ b/web/source/settings/lib/query/user/applications.ts @@ -0,0 +1,146 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import { RootState } from "../../../redux/store"; +import { + SearchAppParams, + SearchAppResp, + App, + AppCreateParams, +} from "../../types/application"; +import { OAuthAccessToken, OAuthAccessTokenRequestBody } from "../../types/oauth"; +import { gtsApi } from "../gts-api"; +import parse from "parse-link-header"; + +const extended = gtsApi.injectEndpoints({ + endpoints: (build) => ({ + searchApp: build.query({ + query: (form) => { + const params = new(URLSearchParams); + Object.entries(form).forEach(([k, v]) => { + if (v !== undefined) { + params.append(k, v); + } + }); + + let query = ""; + if (params.size !== 0) { + query = `?${params.toString()}`; + } + + return { + url: `/api/v1/apps${query}` + }; + }, + // Headers required for paging. + transformResponse: (apiResp: App[], meta) => { + const apps = apiResp; + const linksStr = meta?.response?.headers.get("Link"); + const links = parse(linksStr); + return { apps, links }; + }, + providesTags: [{ type: "Application", id: "TRANSFORMED" }] + }), + + getApp: build.query({ + query: (id) => ({ + method: "GET", + url: `/api/v1/apps/${id}`, + }), + providesTags: (_result, _error, id) => [ + { type: 'Application', id } + ], + }), + + createApp: build.mutation({ + query: (formData) => ({ + method: "POST", + url: `/api/v1/apps`, + asForm: true, + body: formData, + discardEmpty: true + }), + invalidatesTags: [{ type: "Application", id: "TRANSFORMED" }], + }), + + deleteApp: build.mutation({ + query: (id) => ({ + method: "DELETE", + url: `/api/v1/apps/${id}` + }), + invalidatesTags: (_result, _error, id) => [ + { type: 'Application', id }, + { type: "Application", id: "TRANSFORMED" }, + { type: "TokenInfo", id: "TRANSFORMED" }, + ], + }), + + getOOBAuthCode: build.mutation({ + async queryFn({ app, scope, redirectURI }, api, _extraOpts, _fetchWithBQ) { + // Fetch the instance URL string from + // oauth state, eg., https://example.org. + const state = api.getState() as RootState; + if (!state.login.instanceUrl) { + return { + error: { + status: 'CUSTOM_ERROR', + error: "oauthState.instanceUrl undefined", + } + }; + } + const instanceUrl = state.login.instanceUrl; + + // Parse instance URL + set params on it. + const url = new URL(instanceUrl); + url.pathname = "/oauth/authorize"; + url.searchParams.set("client_id", app.client_id); + url.searchParams.set("redirect_uri", redirectURI); + url.searchParams.set("response_type", "code"); + url.searchParams.set("scope", scope); + + // Set the app ID in state so we know which + // app to get out of our store after redirect. + url.searchParams.set("state", app.id); + + // Whisk the user away to the authorize page. + window.location.assign(url.toString()); + return { data: null }; + } + }), + + getAccessTokenForApp: build.mutation({ + query: (formData) => ({ + method: "POST", + url: `/oauth/token`, + asForm: true, + body: formData, + discardEmpty: true + }), + }), + }) +}); + +export const { + useLazySearchAppQuery, + useCreateAppMutation, + useGetAppQuery, + useGetOOBAuthCodeMutation, + useGetAccessTokenForAppMutation, + useDeleteAppMutation, +} = extended; diff --git a/web/source/settings/lib/types/application.ts b/web/source/settings/lib/types/application.ts new file mode 100644 index 000000000..125e82c95 --- /dev/null +++ b/web/source/settings/lib/types/application.ts @@ -0,0 +1,71 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import { Links } from "parse-link-header"; + +export interface App { + id: string; + created_at: string; + name: string; + website?: string; + redirect_uris: string[]; + redirect_uri: string; + client_id: string; + client_secret: string; + vapid_key: string; + scopes: string[]; +} + +/** + * Parameters for GET to /api/v1/apps. + */ +export interface SearchAppParams { + /** + * If set, show only items older (ie., lower) than the given ID. + * Item with the given ID will not be included in response. + */ + max_id?: string; + /** + * If set, show only items newer (ie., higher) than the given ID. + * Item with the given ID will not be included in response. + */ + since_id?: string; + /** + * If set, show only items *immediately newer* than the given ID. + * Item with the given ID will not be included in response. + */ + min_id?: string; + /** + * If set, limit returned items to this number. + * Else, fall back to GtS API defaults. + */ + limit?: number; +} + +export interface SearchAppResp { + apps: App[]; + links: Links | null; +} + +export interface AppCreateParams { + client_name: string; + redirect_uris: string; + scopes: string; + website: string; +} diff --git a/web/source/settings/lib/types/oauth.ts b/web/source/settings/lib/types/oauth.ts new file mode 100644 index 000000000..b077ed356 --- /dev/null +++ b/web/source/settings/lib/types/oauth.ts @@ -0,0 +1,49 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/** + * OAuthToken represents a response + * to an OAuth token request. + */ +export interface OAuthAccessToken { + /** + * Most likely to be 'Bearer' + * but may be something else. + */ + token_type: string; + /** + * The actual token. Can be passed in to + * authenticate further requests using the + * Authorization header and the token type. + */ + access_token: string; +} + +export interface OAuthApp { + client_id: string; + client_secret: string; +} + +export interface OAuthAccessTokenRequestBody { + client_id: string; + client_secret: string; + redirect_uri: string; + grant_type: string; + code: string; +} diff --git a/web/source/settings/lib/types/scopes.ts b/web/source/settings/lib/types/scopes.ts new file mode 100644 index 000000000..2bf5c21b4 --- /dev/null +++ b/web/source/settings/lib/types/scopes.ts @@ -0,0 +1,139 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +/* Sub-scopes / scope components */ + +const scopeAccounts = "accounts"; +const scopeApplications = "applications"; +const scopeBlocks = "blocks"; +const scopeBookmarks = "bookmarks"; +const scopeConversations = "conversations"; +const scopeDomainAllows = "domain_allows"; +const scopeDomainBlocks = "domain_blocks"; +const scopeFavourites = "favourites"; +const scopeFilters = "filters"; +const scopeFollows = "follows"; +const scopeLists = "lists"; +const scopeMedia = "media"; +const scopeMutes = "mutes"; +const scopeNotifications = "notifications"; +const scopeReports = "reports"; +const scopeSearch = "search"; +const scopeStatuses = "statuses"; + +/* Top-level scopes */ + +export const ScopeProfile = "profile"; +export const ScopePush = "push"; +export const ScopeRead = "read"; +export const ScopeWrite = "write"; +export const ScopeAdmin = "admin"; +export const ScopeAdminRead = ScopeAdmin + ":" + ScopeRead; +export const ScopeAdminWrite = ScopeAdmin + ":" + ScopeWrite; + +/* Granular scopes */ + +export const ScopeReadAccounts = ScopeRead + ":" + scopeAccounts; +export const ScopeWriteAccounts = ScopeWrite + ":" + scopeAccounts; +export const ScopeReadApplications = ScopeRead + ":" + scopeApplications; +export const ScopeWriteApplications = ScopeWrite + ":" + scopeApplications; +export const ScopeReadBlocks = ScopeRead + ":" + scopeBlocks; +export const ScopeWriteBlocks = ScopeWrite + ":" + scopeBlocks; +export const ScopeReadBookmarks = ScopeRead + ":" + scopeBookmarks; +export const ScopeWriteBookmarks = ScopeWrite + ":" + scopeBookmarks; +export const ScopeWriteConversations = ScopeWrite + ":" + scopeConversations; +export const ScopeReadFavourites = ScopeRead + ":" + scopeFavourites; +export const ScopeWriteFavourites = ScopeWrite + ":" + scopeFavourites; +export const ScopeReadFilters = ScopeRead + ":" + scopeFilters; +export const ScopeWriteFilters = ScopeWrite + ":" + scopeFilters; +export const ScopeReadFollows = ScopeRead + ":" + scopeFollows; +export const ScopeWriteFollows = ScopeWrite + ":" + scopeFollows; +export const ScopeReadLists = ScopeRead + ":" + scopeLists; +export const ScopeWriteLists = ScopeWrite + ":" + scopeLists; +export const ScopeWriteMedia = ScopeWrite + ":" + scopeMedia; +export const ScopeReadMutes = ScopeRead + ":" + scopeMutes; +export const ScopeWriteMutes = ScopeWrite + ":" + scopeMutes; +export const ScopeReadNotifications = ScopeRead + ":" + scopeNotifications; +export const ScopeWriteNotifications = ScopeWrite + ":" + scopeNotifications; +export const ScopeWriteReports = ScopeWrite + ":" + scopeReports; +export const ScopeReadSearch = ScopeRead + ":" + scopeSearch; +export const ScopeReadStatuses = ScopeRead + ":" + scopeStatuses; +export const ScopeWriteStatuses = ScopeWrite + ":" + scopeStatuses; +export const ScopeAdminReadAccounts = ScopeAdminRead + ":" + scopeAccounts; +export const ScopeAdminWriteAccounts = ScopeAdminWrite + ":" + scopeAccounts; +export const ScopeAdminReadReports = ScopeAdminRead + ":" + scopeReports; +export const ScopeAdminWriteReports = ScopeAdminWrite + ":" + scopeReports; +export const ScopeAdminReadDomainAllows = ScopeAdminRead + ":" + scopeDomainAllows; +export const ScopeAdminWriteDomainAllows = ScopeAdminWrite + ":" + scopeDomainAllows; +export const ScopeAdminReadDomainBlocks = ScopeAdminRead + ":" + scopeDomainBlocks; +export const ScopeAdminWriteDomainBlocks = ScopeAdminWrite + ":" + scopeDomainBlocks; + +export const ValidScopes = [ + ScopeProfile, + ScopePush, + ScopeRead, + ScopeWrite, + ScopeAdmin, + ScopeAdminRead, + ScopeAdminWrite, + ScopeReadAccounts, + ScopeWriteAccounts, + ScopeReadApplications, + ScopeWriteApplications, + ScopeReadBlocks, + ScopeWriteBlocks, + ScopeReadBookmarks, + ScopeWriteBookmarks, + ScopeWriteConversations, + ScopeReadFavourites, + ScopeWriteFavourites, + ScopeReadFilters, + ScopeWriteFilters, + ScopeReadFollows, + ScopeWriteFollows, + ScopeReadLists, + ScopeWriteLists, + ScopeWriteMedia, + ScopeReadMutes, + ScopeWriteMutes, + ScopeReadNotifications, + ScopeWriteNotifications, + ScopeWriteReports, + ScopeReadSearch, + ScopeReadStatuses, + ScopeWriteStatuses, + ScopeAdminReadAccounts, + ScopeAdminWriteAccounts, + ScopeAdminReadReports, + ScopeAdminWriteReports, + ScopeAdminReadDomainAllows, + ScopeAdminWriteDomainAllows, + ScopeAdminReadDomainBlocks, + ScopeAdminWriteDomainBlocks, +]; + +export const ValidTopLevelScopes = [ + ScopeProfile, + ScopePush, + ScopeRead, + ScopeWrite, + ScopeAdmin, + ScopeAdminRead, + ScopeAdminWrite, +]; diff --git a/web/source/settings/lib/util/formvalidators.ts b/web/source/settings/lib/util/formvalidators.ts index 358db616c..4e0e4a6a8 100644 --- a/web/source/settings/lib/util/formvalidators.ts +++ b/web/source/settings/lib/util/formvalidators.ts @@ -18,6 +18,8 @@ */ import isValidDomain from "is-valid-domain"; +import { useCallback } from "react"; +import { ValidScopes, ValidTopLevelScopes } from "../types/scopes"; /** * Validate the "domain" field of a form. @@ -29,6 +31,11 @@ export function formDomainValidator(domain: string): string { return ""; } + // Allow localhost for testing. + if (domain === "localhost") { + return ""; + } + if (domain[domain.length-1] === ".") { return "invalid domain"; } @@ -63,5 +70,67 @@ export function urlValidator(urlStr: string): string { return `invalid protocol, must be http or https`; } - return formDomainValidator(url.host); + return formDomainValidator(url.hostname); } + +export function useScopesValidator(): (_scopes: string[]) => string { + return useCallback((scopes) => { + return scopes. + map((scope) => validateScope(scope)). + flatMap((msg) => msg || []). + join(", "); + }, []); +} + +export function useScopeValidator(): (_scope: string) => string { + return useCallback((scope) => validateScope(scope), []); +} + +const validateScope = (scope: string) => { + if (!ValidScopes.includes(scope)) { + return scope + " is not a recognized scope"; + } + return ""; +}; + +export function useScopesPermittedBy(): (_hasScopes: string[], _wantScopes: string[]) => string { + return useCallback((hasScopes, wantsScopes) => { + return wantsScopes. + map((wanted) => scopePermittedByScopes(hasScopes, wanted)). + flatMap((msg) => msg || []). + join(", "); + }, []); +} + +const scopePermittedByScopes = (hasScopes: string[], wanted: string) => { + if (hasScopes.some((hasScope) => scopePermittedByScope(hasScope, wanted) === "")) { + return ""; + } + return `scopes [${hasScopes}] do not permit ${wanted}`; +}; + +const scopePermittedByScope = (has: string, wanted: string) => { + if (has === wanted) { + // Exact match on either a + // top-level or granular scope. + return ""; + } + + // Ensure we have a + // known top-level scope. + switch (true) { + case (ValidTopLevelScopes.includes(has)): + // Check if top-level includes wanted, + // eg., have "admin", want "admin:read". + if (wanted.startsWith(has + ":")) { + return ""; + } else { + return `scope ${has} does not permit ${wanted}`; + } + + default: + // Unknown top-level scope, + // can't permit anything. + return `unrecognized scope ${has}`; + } +}; diff --git a/web/source/settings/lib/util/index.ts b/web/source/settings/lib/util/index.ts index 4c8a90626..8bcf5ab5d 100644 --- a/web/source/settings/lib/util/index.ts +++ b/web/source/settings/lib/util/index.ts @@ -30,7 +30,7 @@ export function UseOurInstanceAccount(account: AdminAccount): boolean { // Pull our own URL out of storage so we can // tell if account is our instance account. const ourDomain = useMemo(() => { - const instanceUrlStr = store.getState().oauth.instanceUrl; + const instanceUrlStr = store.getState().login.instanceUrl; if (!instanceUrlStr) { return ""; } diff --git a/web/source/settings/redux/oauth.ts b/web/source/settings/redux/login.ts similarity index 59% rename from web/source/settings/redux/oauth.ts rename to web/source/settings/redux/login.ts index 1d6bf9bb1..2ba06dfff 100644 --- a/web/source/settings/redux/oauth.ts +++ b/web/source/settings/redux/login.ts @@ -18,33 +18,11 @@ */ import { PayloadAction, createSlice } from "@reduxjs/toolkit"; +import { OAuthApp, OAuthAccessToken } from "../lib/types/oauth"; -/** - * OAuthToken represents a response - * to an OAuth token request. - */ -export interface OAuthToken { - /** - * Most likely to be 'Bearer' - * but may be something else. - */ - token_type: string; - /** - * The actual token. Can be passed in to - * authenticate further requests using the - * Authorization header and the token type. - */ - access_token: string; -} - -export interface OAuthApp { - client_id: string; - client_secret: string; -} - -export interface OAuthState { +export interface LoginState { instanceUrl?: string; - loginState: "none" | "callback" | "login" | "logout"; + current: "none" | "awaitingcallback" | "loggedin" | "loggedout"; expectingRedirect: boolean; /** * Token stored in easy-to-use format. @@ -55,29 +33,31 @@ export interface OAuthState { app?: OAuthApp; } -const initialState: OAuthState = { - loginState: 'none', +const initialState: LoginState = { + current: 'none', expectingRedirect: false, }; -export const oauthSlice = createSlice({ - name: "oauth", +export const loginSlice = createSlice({ + name: "login", initialState: initialState, reducers: { - authorize: (_state, action: PayloadAction) => { + authorize: (_state, action: PayloadAction) => { // Overrides state with payload. return action.payload; }, - setToken: (state, action: PayloadAction) => { - // Mark us as logged in by storing token. + setToken: (state, action: PayloadAction) => { + // Mark us as logged + // in by storing token. state.token = `${action.payload.token_type} ${action.payload.access_token}`; - state.loginState = "login"; + state.current = "loggedin"; }, remove: (state) => { - // Mark us as logged out by clearing auth. + // Mark us as logged + // out by clearing auth. delete state.token; delete state.app; - state.loginState = "logout"; + state.current = "loggedout"; } } }); @@ -86,4 +66,4 @@ export const { authorize, setToken, remove, -} = oauthSlice.actions; +} = loginSlice.actions; diff --git a/web/source/settings/redux/store.ts b/web/source/settings/redux/store.ts index 0c1285187..076f5f88d 100644 --- a/web/source/settings/redux/store.ts +++ b/web/source/settings/redux/store.ts @@ -30,19 +30,19 @@ import { REGISTER, } from "redux-persist"; -import { oauthSlice } from "./oauth"; +import { loginSlice } from "./login"; import { gtsApi } from "../lib/query/gts-api"; const combinedReducers = combineReducers({ [gtsApi.reducerPath]: gtsApi.reducer, - oauth: oauthSlice.reducer, + login: loginSlice.reducer, }); const persistedReducer = persistReducer({ key: "gotosocial-settings", storage: require("redux-persist/lib/storage").default, stateReconciler: require("redux-persist/lib/stateReconciler/autoMergeLevel1").default, - whitelist: ["oauth"], + whitelist: ["login"], migrate: async (state) => { if (state == undefined) { return state; @@ -51,8 +51,8 @@ const persistedReducer = persistReducer({ // This is a cheeky workaround for // redux-persist being a stickler. let anyState = state as any; - if (anyState?.oauth != undefined) { - anyState.oauth.expectingRedirect = false; + if (anyState?.login != undefined) { + anyState.login.expectingRedirect = false; } return anyState; diff --git a/web/source/settings/style.css b/web/source/settings/style.css index 5a85f370e..fc146cdd7 100644 --- a/web/source/settings/style.css +++ b/web/source/settings/style.css @@ -1495,6 +1495,62 @@ button.tab-button { } } +.access-token-receive-form { + > .access-token-frame { + background-color: $gray2; + width: 100%; + padding: 0.25rem; + border-radius: $br-inner; + white-space: pre; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + font-family: monospace; + font-size: large; + } + + .closed { + text-align: center; + } +} + +.applications-view { + .application { + .info-list { + border: none; + width: 100%; + + .info-list-entry { + background: none; + padding: 0; + } + + > .info-list-entry > .monospace { + font-size: large; + } + } + } +} + +.application-details { + .info-list { + margin-top: 1rem; + + > .info-list-entry .monospace { + font-size: large; + } + + > .info-list-entry > dd > button { + font-size: medium; + padding-top: 0; + padding-bottom: 0; + } + } +} + +.application-new > .form-section-docs > p > .monospace { + font-size: large; +} + .instance-rules { list-style-position: inside; margin: 0; diff --git a/web/source/settings/views/admin/debug/apurl/index.tsx b/web/source/settings/views/admin/debug/apurl/index.tsx index b66794132..9ad88aa03 100644 --- a/web/source/settings/views/admin/debug/apurl/index.tsx +++ b/web/source/settings/views/admin/debug/apurl/index.tsx @@ -17,16 +17,14 @@ along with this program. If not, see . */ -import React, { useEffect, useRef } from "react"; +import React from "react"; import { useTextInput } from "../../../../lib/form"; import { useLazyApURLQuery } from "../../../../lib/query/admin/debug"; import { TextInput } from "../../../../components/form/inputs"; import MutationButton from "../../../../components/form/mutation-button"; import { ApURLResponse } from "../../../../lib/types/debug"; import Loading from "../../../../components/loading"; - -// Used for syntax highlighting of json result. -import Prism from "../../../../../frontend/prism"; +import { HighlightedCode } from "../../../../components/highlightedcode"; export default function ApURL() { const urlField = useTextInput("url"); @@ -102,26 +100,5 @@ function ApURLResult({ }; const jsonStr = JSON.stringify(jsonObj, null, 2); - return ; -} - -function Highlighted({ jsonStr }: { jsonStr: string }) { - const ref = useRef(null); - useEffect(() => { - if (ref.current) { - Prism.highlightElement(ref.current); - } - }, []); - - // Prism takes control of the `pre` so wrap - // the whole thing in a div that we control. - return ( -
-
-				
-					{jsonStr}
-				
-			
-
- ); + return ; } diff --git a/web/source/settings/views/user/applications/callback.tsx b/web/source/settings/views/user/applications/callback.tsx new file mode 100644 index 000000000..f1634cc6f --- /dev/null +++ b/web/source/settings/views/user/applications/callback.tsx @@ -0,0 +1,121 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React from "react"; +import { useSearch } from "wouter"; +import { Error as ErrorCmp } from "../../../components/error"; +import { useGetAccessTokenForAppMutation, useGetAppQuery } from "../../../lib/query/user/applications"; +import { useCallbackURL } from "./common"; +import useFormSubmit from "../../../lib/form/submit"; +import { useValue } from "../../../lib/form"; +import MutationButton from "../../../components/form/mutation-button"; +import FormWithData from "../../../lib/form/form-with-data"; +import { App } from "../../../lib/types/application"; +import { OAuthAccessToken } from "../../../lib/types/oauth"; + +export function AppTokenCallback({}) { + // Read the callback authorization + // information from the search params. + const search = useSearch(); + const urlQueryParams = new URLSearchParams(search); + const code = urlQueryParams.get("code"); + const appId = urlQueryParams.get("state"); + const error = urlQueryParams.get("error"); + const errorDescription = urlQueryParams.get("error_description"); + + if (error) { + let errString = error; + if (errorDescription) { + errString += ": " + errorDescription; + } + if (error === "invalid_scope") { + errString += ". You probably requested a token (sub-)scope that wasn't contained in the scopes of your application."; + } + const err = Error(errString); + return ; + } + + if (!code || !appId) { + const err = Error("code or app id not defined"); + return ; + } + + return( + <> + + + ); +} + + +function AccessForAppForm({ data: app, code }: { data: App, code: string }) { + const redirectURI = useCallbackURL(); + + // Prepare to call /oauth/token to + // exchange code for access token. + const form = { + client_id: useValue("client_id", app.client_id), + client_secret: useValue("client_secret", app.client_secret), + redirect_uri: useValue("redirect_uri", redirectURI), + code: useValue("code", code), + grant_type: useValue("grant_type", "authorization_code"), + + }; + const [ submit, result ] = useFormSubmit(form, useGetAccessTokenForAppMutation()); + + return ( +
+ + + { result.data + ?
{(result.data as OAuthAccessToken).access_token}
+ :
+ } + + + + ); +} diff --git a/web/source/settings/views/user/applications/common.tsx b/web/source/settings/views/user/applications/common.tsx new file mode 100644 index 000000000..44f5570cb --- /dev/null +++ b/web/source/settings/views/user/applications/common.tsx @@ -0,0 +1,85 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React, { useMemo } from "react"; +import { App } from "../../../lib/types/application"; +import { useStore } from "react-redux"; +import { RootState } from "../../../redux/store"; + +export const useAppWebsite = (app: App) => { + return useMemo(() => { + if (!app.website) { + return ""; + } + + try { + // Try to parse nicely and return link. + const websiteURL = new URL(app.website); + const websiteURLStr = websiteURL.toString(); + return ( + {websiteURLStr} + ); + } catch { + // Fall back to returning string. + return app.website; + } + }, [app.website]); +}; + +export const useCreated = (app: App) => { + return useMemo(() => { + const createdAt = new Date(app.created_at); + return ; + }, [app.created_at]); +}; + +export const useRedirectURIs= (app: App) => { + return useMemo(() => { + const length = app.redirect_uris.length; + if (length === 1) { + return app.redirect_uris[0]; + } + + return app.redirect_uris.map((redirectURI, i) => { + return i === 0 ? <>{redirectURI} : <>
{redirectURI}; + }); + + }, [app.redirect_uris]); +}; + +export const useCallbackURL = () => { + const state = useStore().getState() as RootState; + const instanceUrl = state.login.instanceUrl; + if (instanceUrl === undefined) { + throw "instanceUrl undefined"; + } + + return useMemo(() => { + const url = new URL(instanceUrl); + if (url === null) { + throw "redirectURI null"; + } + url.pathname = "/settings/user/applications/callback"; + return url.toString(); + }, [instanceUrl]); +}; diff --git a/web/source/settings/views/user/applications/detail.tsx b/web/source/settings/views/user/applications/detail.tsx new file mode 100644 index 000000000..5beeb0cce --- /dev/null +++ b/web/source/settings/views/user/applications/detail.tsx @@ -0,0 +1,226 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React, { useState } from "react"; +import { useLocation, useParams } from "wouter"; +import FormWithData from "../../../lib/form/form-with-data"; +import BackButton from "../../../components/back-button"; +import { useBaseUrl } from "../../../lib/navigation/util"; +import { useDeleteAppMutation, useGetAppQuery, useGetOOBAuthCodeMutation } from "../../../lib/query/user/applications"; +import { App } from "../../../lib/types/application"; +import { useAppWebsite, useCallbackURL, useCreated, useRedirectURIs } from "./common"; +import MutationButton from "../../../components/form/mutation-button"; +import { useTextInput } from "../../../lib/form"; +import { TextInput } from "../../../components/form/inputs"; +import { useScopesPermittedBy, useScopesValidator } from "../../../lib/util/formvalidators"; + +export default function AppDetail({ }) { + const params: { appId: string } = useParams(); + const baseUrl = useBaseUrl(); + const backLocation: String = history.state?.backLocation ?? `~${baseUrl}`; + + return ( +
+

Application Details

+ +
+ ); +} + +function AppDetailForm({ data: app, backLocation }: { data: App, backLocation: string }) { + return ( + <> + + + + + ); +} + +function AppBasicInfo({ app }: { app: App }) { + const appWebsite = useAppWebsite(app); + const created = useCreated(app); + const redirectURIs = useRedirectURIs(app); + const [ showClient, setShowClient ] = useState(false); + const [ showSecret, setShowSecret ] = useState(false); + + return ( +
+
+
Name:
+
{app.name}
+
+ + { appWebsite && +
+
Website:
+
{appWebsite}
+
+ } + +
+
Created:
+
{created}
+
+ +
+
Scopes:
+
{app.scopes.join(" ")}
+
+ +
+
Redirect URI(s):
+
{redirectURIs}
+
+ +
+
Vapid key:
+
{app.vapid_key}
+
+ +
+
Client ID:
+ { showClient + ?
{app.client_id}
+ :
+ } +
+ +
+
Client secret:
+ { showSecret + ?
{app.client_secret}
+ :
+ } +
+
+ ); +} + +function AccessTokenForm({ app }: { app: App }) { + const [ getOOBAuthCode, result ] = useGetOOBAuthCodeMutation(); + const permittedScopes = useScopesPermittedBy(); + const validateScopes = useScopesValidator(); + const scope = useTextInput("scope", { + defaultValue: app.scopes.join(" "), + validator: (wantsScopesStr: string) => { + if (wantsScopesStr === "") { + return ""; + } + + // Check requested scopes are valid scopes. + const wantsScopes = wantsScopesStr.split(" "); + const invalidScopesMsg = validateScopes(wantsScopes); + if (invalidScopesMsg !== "") { + return invalidScopesMsg; + } + + // Check requested scopes are permitted by the app. + return permittedScopes(app.scopes, wantsScopes); + } + }); + + const callbackURL = useCallbackURL(); + const disabled = !app.redirect_uris.includes(callbackURL); + return ( +
{ + e.preventDefault(); + getOOBAuthCode({ + app, + scope: scope.value ?? "", + redirectURI: callbackURL, + }); + }} + > +
+

Request An API Access Token

+

+ If your application redirect URIs includes the settings panel callback URL, + you can use this section to request an access token that you can use to make API calls. +
The token scopes specified below must be equal to, or a subset of, the scopes + you provided when you created the application. +
After clicking "Request access token", you will be redirected to the sign in + page for your instance, where you must provide your credentials in order to authorize + your application to act on your behalf. You will then be redirected again to a page + where you can view your new access token. +

+ + Learn more about the OAuth authentication flow (opens in a new tab) + +
+ + + + + + ); +} + +function DeleteAppForm({ app, backLocation }: { app: App, backLocation: string }) { + const [ _location, setLocation ] = useLocation(); + const [ deleteApp, result ] = useDeleteAppMutation(); + + return ( +
+
+

Delete Application

+

+ You can use this button to delete the application. +
Any tokens created by the application will also be deleted. +

+
+ { + e.preventDefault(); + deleteApp(app.id); + setLocation(backLocation); + }} + disabled={false} + showError={false} + result={result} + /> + + ); +} diff --git a/web/source/settings/views/user/applications/index.tsx b/web/source/settings/views/user/applications/index.tsx new file mode 100644 index 000000000..0a86adf16 --- /dev/null +++ b/web/source/settings/views/user/applications/index.tsx @@ -0,0 +1,44 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React from "react"; +import AppsSearchForm from "./search"; + +export default function Applications() { + return ( +
+
+

Applications

+

+ On this page you can search through applications you've created. + To manage an application, click on it to go to the detailed view. +

+ + Learn more about managing your applications (opens in a new tab) + +
+ +
+ ); +} diff --git a/web/source/settings/views/user/applications/new.tsx b/web/source/settings/views/user/applications/new.tsx new file mode 100644 index 000000000..fc5e5cc42 --- /dev/null +++ b/web/source/settings/views/user/applications/new.tsx @@ -0,0 +1,150 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +import React from "react"; +import useFormSubmit from "../../../lib/form/submit"; +import { useTextInput } from "../../../lib/form"; +import MutationButton from "../../../components/form/mutation-button"; +import { TextArea, TextInput } from "../../../components/form/inputs"; +import { useLocation } from "wouter"; +import { useCreateAppMutation } from "../../../lib/query/user/applications"; +import { urlValidator, useScopesValidator } from "../../../lib/util/formvalidators"; +import { useCallbackURL } from "./common"; +import { HighlightedCode } from "../../../components/highlightedcode"; + +export default function NewApp() { + const [ _location, setLocation ] = useLocation(); + const callbackURL = useCallbackURL(); + const scopesValidator = useScopesValidator(); + + const form = { + name: useTextInput("client_name"), + redirect_uris: useTextInput("redirect_uris", { + validator: (redirectURIs: string) => { + if (redirectURIs === "") { + return ""; + } + + const invalids = redirectURIs. + split("\n"). + map(redirectURI => redirectURI === "urn:ietf:wg:oauth:2.0:oob" ? "" : urlValidator(redirectURI)). + flatMap((invalid) => invalid || []); + + return invalids.join(", "); + } + }), + scopes: useTextInput("scopes", { + validator: (scopesStr: string) => { + if (scopesStr === "") { + return ""; + } + return scopesValidator(scopesStr.split(" ")); + } + }), + website: useTextInput("website", { + validator: urlValidator, + }), + }; + + const [formSubmit, result] = useFormSubmit( + form, + useCreateAppMutation(), + { + changedOnly: false, + onFinish: (res) => { + if (res.data) { + // Creation successful, + // redirect to apps overview. + setLocation(`/search`); + } + }, + }); + + return ( +
+
+

New Application

+

+ On this page you can create a new managed OAuth client application, with the specified redirect URIs and scopes. +
If not specified, redirect URIs defaults to urn:ietf:wg:oauth:2.0:oob, and scopes defaults to read. +
If you want to obtain an access token for your application here in the settings panel, include this settings panel callback URL in your redirect URIs: + +

+ + Learn more about application redirect URIs and scopes (opens in a new tab) + +
+ + + + + +