mirror of
https://github.com/makeplane/plane.git
synced 2026-07-12 13:29:56 +02:00
* chore: silo imports integrations (#1610) * fix: silo service initial setup * feat: moved controllers inside runner * feat: created core definations for apps and context * feat: added interfaces required for apps * feat: moved shared definations * feat: added logger as an injection for apps * feat: changes to controllers * feat: added vm based app execution inside manager * feat: added dummy implementations for core constructs * feat: moved controllers to routes * feat: created worker moduler for processing message queue requests * feat: added task manager defination * feat: added context and manager separations * feat: created defaults for the defination implementation * feat: added async task management inside apps * feat: removed unnecessary arguments in function calls * feat: added context builder for app instances * feat: added runtime type safety with zod * feat: added packaged definition structure for silo apps * feat: added package based configuration for engine and definitions * feat: added custom eslint rule for throws decorator * feat: added custom eslint rule for try catch * feat: removed custom eslint config * feat: added authentication controller inside engine * feat: added auth in silo engine * feat: migrated jira ui module to plane * chore: removed jira app * chore: moved engine components into src_engine directory * feat: added base template inside new src directory * feat: migrated worker interface with mq and redis store inside new src * feat: created jira migrator and jira importer types * chore: migrated worker's helper inside the base directory * feat: added logic for booting up root worker * feat: added jira and jira auth service inside jira app * feat: added all transformers inside jira package * feat: added authorization types for jira * feat: added jira authentication oauth class * feat: added jira transformer and pull mechanisms inside jira app * feat: addded batching logic inside jira migrator * feat: embedded silo sdk inside jira migrator * feat: added plane migrator inside engine * feat: added plane migrator for push inside migration controller * feat: added controller methods for migration * feat: added credentials and job routes in controller * feat: added linear importer * feat: added linear pull function as importer * feat: added transformation for linear data * feat: added pull mechanism for linear * feat: attached linear data importer with migration controller * fix: removed hardcoded jira from cycle and module migrator * feat: fixed build errors * chore: addeed example env * feat: added authentication routes for jira * feat: added linear route controller * fix: restructuring * fix: sdk configs setup * fix: merge conflicts * fix: sdk setup * chore: added jira and linear importers and separate packages * feat: moved transformation parts to linear package * feat: decoupled jira logical parts with worker * fix: linear silo app to use linear package * fix: build errors and dependency resolution with packages in silo * fix: module build errors in silo * fix: linear authorization flow * feat: added logic for segregated workers * feat: attached task manager with the base starter * feat: added migrations, query and schema into db directory * feat: added linear importer and jira importer app structure * feat: added silo core package * chore: migrated worker and main engine controller inside apps * fix: made linear integration working * silo: added cors * feat: added base64 state changes with jira * chore: updated silo env * fix: jira token cookie * feat: added issue attachments in linear job * feat: added credentials controller * feat: added github package inside silo packages * feat: added resource fetching in jira api service * feat: added credentials locking * feat: created resources endpoint for jira * feat: added endpoints for getting jira data * fix: credentials not working * chore: exported jira types * chore: added jira states * fix: jira project pagination issue * chore: initiated silo folder in web * feat: added github routes and services in silo app * feat: improvided auth service and added background worker for github * feat: added task manager for github * fix: build updates * fix: updated plane sdk and updated jira importer * chore: updated the importer layout * chore: removed as any from table component * chore: integrated importer dashboard * fix: tsup fixes * fix: removed unnecessary files * fix: removing tsup for building silo packages * fix: build related issues * feat: modified project and issue sdk service to add more methods * feat: added installation webhook hook handler * feat: added issue comment handler * feat: added issue events handler interface * feat: added pull request interface handler * feat: added github worker for handling bg tasks * feat: attached manager into main controller * fix: build issues * fix: eslint fixes * fix: silo build errors * fix: silo app build errors types * fix: reverting the cloud branch * fix: updated package json in silo service * fix: branch build cloud updated * fix: build errors in apps while using sdk due to ts-alias paths * fix: branch build cloud workflow fixes * feat: added user mentions with github sync * fix: docker compose setup updates * fix: bot user comments with github * feat: initialized github plane worker * fix: docker compose build fixes * fix: docker build fixes envs updated in example file * feat: added plane github webhook worker * chore: updates folder structure and handled job services * chore: resolved build errors in silo chore * fix: docker compose cloud added * feat: added issue handler with labels * fix: build process docker compose * feat: added issue edit and comment edits in github sync * chore: updated jira workflow * feat: added plane webhook types * feat: added plane webhook event handlers * feat: added workspace connection schema * chore: handled the job start and jira dashboard * feat: added query for getting entity connection * chore: updated constants, file naming convention * chore: resolved merge conflicts * feat: added worspace and entity connection tables * feat: added workspace and entity connections for pr, comment as well * fix: github import with usermapping * feat: added plane issue synce to github * chore: integrated linear and updated jobs query * feat: added hostname changes * conflict: updated jira config and added issue transformation count in dashboard * conflict: updated job * chore: updated Jira status * chore: updated Jira status * fix: batch processing * fix: batch key release * chore: updated workflow for building images * fix: detached silo build * chore: updates linear and resolved build errors * fix: batch key missing * fix: merge issues with Credential types * fix: issues with github mereg * fix: linear workflow * chore: updated linear queries * feat: updated plane bg tasks to send webhook on desc change * feat: added plane transformations for github * feat: added connection schema and comment handler inside github worker * chore: modified dashboard labels * fix: docker compose fixed for running silo services * feat: added key based deduping for webhook events * feat: added schema based tables * feat: added redis based payload dispatch and dedup * feat: added migrations and changed connection table schema * feat: modified github etl for changed webhook process * feat: implemented redis ttl based arch with github * feat: implemented gitlab silo package * feat: added github user authentication * feat: modified linear dashboard and services * feat: changed yarn lock * feat: added user auth into comments as well * feat: addded gitlab authentication service * fix: state activity not being reconized by external apis * feat: added gitlab package for apis and sdk * feat: added gitlab merge request integration * fix: code cleanup for gitlab * feat: added title references to gitlab * feat: added magic words in github integration * chore: removed logging token response * feat: added slack authentication flow * feat: added user and team level authentication for slack * feat: added services for slack integration * feat: added blockkit components inside slack interaction * feat: modified slack service for addded thread ephemeral messages * feat: added handlers and views * feat: asana importer. * fix: build errors. * feat: added thread sync to slack * feat: added changes with merge * chore: handle asana token refresh. * fix: builder for giving warning * chore: remove console logs. --------- Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com> Co-authored-by: gurusainath <gurusainath007@gmail.com> * fix: feature flags implementation * fix: build errorsg * fix: build errors * chore: add missing silo packages. * fix: updating package version for build issues in docker * Added PAT based authentication for Jira Integration and Private bucket attachment uploads (#1642) * feat: added pat authentication for jira service * feat: added jira oauth and pat authentication strategy * feat: added PAT auth for linear sdk * feat: blocked routes for jira oauth * fix: added OAuth Enabled key for authentication route * feat: added PAT routes for linear and jira * feat: added default value to job status * feat: added credentials PAT filter * feat: added credential fetch condition for PAT token * chore: basic PAT token UI. * fix: pat token implementation for jira * chore: Jira personal access token form. * fix: controller jira projects * chore: handle migration steps without resourceId * fix: jira project logo * fix: migrator and attachment * chore: update issue attachment external apis * fix: attachments private bucket changes for silo --------- Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> * chore: Asana importer UI. (#1630) * chore: UI improvements for Jira importer personal access token authentication (#1648) * feat: added pat authentication for jira service * feat: added jira oauth and pat authentication strategy * feat: added PAT auth for linear sdk * feat: blocked routes for jira oauth * fix: added OAuth Enabled key for authentication route * feat: added PAT routes for linear and jira * feat: added default value to job status * feat: added credentials PAT filter * feat: added credential fetch condition for PAT token * chore: basic PAT token UI. * fix: pat token implementation for jira * chore: Jira personal access token form. * fix: controller jira projects * chore: handle migration steps without resourceId * fix: jira project logo * fix: migrator and attachment * chore: update issue attachment external apis * fix: attachments private bucket changes for silo * chore: minor UI improvements * chore: ui improvement * chore: fix importer list --------- Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com> Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> * fix: github package dependency with silo (#1622) * fix/deps * fix: axios * chore: fix formatting. --------- Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> * Runway silo store (#1672) * chore: silo store init * chore: infra update for maintenance mode (#5963) * [WEB-2728] improvement: add `true-transparent` variant for textarea. (#5960) * fix: renaming and formatting * chore: app sidebar behaviour (#5964) * chore: infra update for maintenance mode (#1667) * [WEB-2728] improvement: new UI for custom property settings. (#1663) * chore: importer store integration for jira and resolved build error --------- Co-authored-by: pushya22 <130810100+pushya22@users.noreply.github.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> * Basic Jira issue type and custom properties migration (#1676) * chore: issue type migration. * chore: update issue types api for pagination * chore: update jira migrator for issue types * chore: issue type sdk types and service updates * typo: issue service files name update * typo: issue service files name update * fix: issue type fetch and create request. * fix: build * fix: issue type migration * chore: minor improvements * chore: issue property fetch for jira * chore: issue property fetch * fix: type errors * chore: temp fix for batches completion logic. * chore: add issue type check * chore: issue property basic migration. * fix: updated base silo base url * remove console log. --------- Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> Co-authored-by: gurusainath <gurusainath007@gmail.com> * chore: add silo base url and silo base path in dockerfile * chore: update in runway silo * chore: custom field attributes structure. * chore: helper for test settings config. * chore: add logo props * chore: custom field migrations * chore: all simple properties migrations. * chore: issue property options * chore: update could not fetch feature * chore: feature flag service in packages silo core * chore: feature flagging * chore: issue property values. * [WEB-2742] chore: issue link ui revamp (#5971) * chore-issue-link-ui * chore: issue link ui revamp * chore: upload image in the intake form (#1677) * fix: editor user config (#1679) * fix: editor user config (#5974) * fix: pi chat bug fixes (#1670) * chore: pi empty state * fix: response change handled * fix: handled api failure * fix: formatted ai messages * fix: reverted the pi pallete * fix: integrated models api * fix: disabled regenerating new chat * fix: page loading fixed * fix: dynamically imported markdown * fix: removed extras * fix: minor css * fix: handled pi chat in bulk ops * [WEB-2706] fix: Add fallback when db initialisation fails (#5973) * Add fallback when db initialization fails * add checks for instance.exec * chore: convert issue boolean fields to actual boolean value. * change instance exec code * sync issue to local db when inbox issue is accepted and draft issue is moved to project * chore: added project and workspace keys --------- Co-authored-by: rahulramesha <rahulramesham@gmail.com> Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> * fix related to activity (#5972) * fix: renamed inbox to intake (#5967) * feat: intake * chore: intake model migration changes * dev: update dummy data * dev: add duplicate apis for inbox * dev: fix external apis * fix: external apis * chore: migration file changes --------- Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> * chore: removed the validation in patch request (#1680) * chore: changed inbox to intake (#1682) * chore: fix custom fields option fetch logic. * fix: renamed inbox to intake (#5967) * feat: intake * chore: intake model migration changes * dev: update dummy data * dev: add duplicate apis for inbox * dev: fix external apis * fix: external apis * chore: migration file changes --------- Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> * fix: intake loading (#5966) * fix: intake loading * fix: image upload in space * chore: silo feature flag service * fix: jira issue pull logic * chore: map user picker custom property using display names. * fix: silo github package dependencies. * fix: silo github package * chore: add lucide icons mappings * fix: removed constants * fix: package.json dependency fix for silo * chore: update batching logic to handle trees * chore: take job hostname from .env * fix: build issues * chore: fix migrations * chore: asana custom field import * chore: remove unused values * chore: update oauth enabled envs * chore: fix builds * chore: asana batching logic. * chore: asana PAT auth endpoint * chore: delete credential endpoint * fix: silo jira importer * chore: fix silo refresh token callback * chore: update linear batching logic * dev: jira store migration * chore: fetching jobs * chore: updating job store * chore: build error in store * chore: job store updates * chore: returning the jira resource details * chore: add pat token validation * chore: updated URL in the silo * chore: issues count * chore: fix merge conflicts * dev: resolved merge conflict * chore: removed logs * feat: added comment import with linear * chore: build fixes * chore: add missing status class * chore: updated Jira * chore: loader in summary * chore: Asana importer improved UI with mobx store * fix: jobs api * chore: make dashboard view true * chore: updating the jira dashboard toggler * chore: minor ui improvements. * chore: fix job order logic. * chore: Linear integration * fix: slack linkback workflow * chore: update service token logic * chore: deactivate credentials * dev: updated linear states mapping * chore: asana priority mapping. * chore: updated linear config * fix:images not loading when issue is imported * chore: asana comments * chore: asana attachements * chore: linear attachements pull * chore: deactivating the importers * chore: minor bug fix in priority mapping * chore: handled feature flag, reload jobs and dashboard load * chore: handled verfication check in start and re-run job * chore: code cleanup * feat: added controller routes for disconnecting and getting current status * chore: update silo to be a single service * fix: credentials * chore: handled map states and map priority on worksapce and project change of importers * chore: handled loaders in importers * chore: updating linear team details * chore: update assets * chore: replaced migration * fix: condition for credential availability * chore: slack integration * chore: handled modal confirmation and linear issue count in summary * feat: modified cycles and modules services in order to create new entities * feat: added base types and modified services * feat: added command method inside slack integration * feat: added new helper methods * feat: added Slack Private Metadata types * feat: added command and weblink modals * feat: created types for custom input blocks * feat: created issue linkback modal * feat: created issue create modal full * feat: created unfurl views for project, modules and cycles * fix: modified project select modal for ensuring proper types for entities and payload * feat: added command handler * feat: modified block action to handle weblink and comment buttons * feat: modified message event to handle link unfurls * feat: modified view submission to handle weblink submission and commands * feat: modified slack worker * feat: added slack types * feat: added update message method and new overflow type * fix: refactored issue linkback to add overflow instead buttons * fix: added await * fix: deps bump * feat: remove description from issue linkback * fix: message as description and not title * chore: webhook integration for slack * chore: constructd base url for silo webhook * chore: handlded same domain validation * chore: handled exception * Merge branch 'preview' into feat/slack * fix: auth state * chore: yarn.lock * fix: import order * feat: added changes for user profile integration settings * feat: Github Configuration UI into integrations (#1863) * chore: github UI (#1721) * chore: typos integrations and importers * chore: github integration base * fix: github integration context updates * chore: resolved build errors * chore: github store and services * chore: updated instance serializer * fix: issue migrator to handle linear image component * chore: github integration * chore: removed logs * chore: updated UI * chore: revamp ui github integration * chore: removed logs * implemented edit and remove entity connection in github * chore: updated github dark and light logos * fix: issue serializer fixes * chore: updated config object in entity connection * chore: updated the config type and handled the build error * feat: fixed github label for allowing payload * fix: slash commands * chore: filter out the removed cycle from issue detail (#6138) * feat: workflows (#1849) * chore: state workflows * fix: actor endpoints * chore: add feature flaggging * chore: single endpoint for managing actors * chore: patch endpoint for workflow transition * chore: add workflow manager on single endpoint * chore: add external api validation for workflow transitions * chore: correct comments * chore: add workflow transition * chore: update permission for guest users * [MOBIL-518] feat: Mobile push notifications (#1848) * chore: implemented mobile push notification * chore: updated the notification job * chore: handled the response * chore: updated private key * chore: issue push notification updates * chore: resolved the boolean validation on mobile push notification * chore: added push notification to the notification activity * chore: updated push notification logic * chore: removed mutation for push notification * feat: added endpoint for getting the authenticated user * feat: added user mapping when authenticated inside github * fix: github import * fix: merge yarn lock * fix: remove target hostname check * fix: interchange request from env host * fix: target host * feat: added base64 private key --------- Co-authored-by: guru_sainath <gurusainath007@gmail.com> Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> Co-authored-by: pushya22 <130810100+pushya22@users.noreply.github.com> Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com> * fix: installation webhook handler and webhook connection * fix: profile import * feat: added dynamic member account connection * fix: credential controller * fix: modified store to not check for external api token for members * chore: updated auth imports in github integration * fix: redis consumption mechanism * fix: reduced dedup interval * fix: updated redis consumer for a homogeneus key * fix: modified logic for deduping * feat: link creation over github pull request state change * chore: gitlab store integration * chore: updated gitlab components * chore: Updated github_hostname key * fix: key logic with redis * fix: added github logo for links and modified pull request link content * feat: added member sync when adding new member into plane * feat: separated queues for integrations and importers * fix: initail etl package setup * fix: etl folder structuring * fix: module resolutions and exported etl package * feat: added body transformation for plane to github html description * feat: added generic asset endpoint for getting the resource * feat: added asset service * fix: asset service url on redirect * feat: added content parser for parsing html to markdown * Improvised Import Speed from `42 minutes / 1000 Issues` to `30 seconds / 1000 Issues` 🚅 (#1948) * feat: added issue batch queue to celery and simplified structure * feat: added data import background task * feat: added generic asset url * feat: added handler for issue properties and assets * feat: added comment images and also added issue properties import * fix: cancel button alignment inside the job dashboards * feat: added job acknowledgement inside celery * feat: added separate amqp url for celery * fix: sdk build errors * fix: docker build errors --------- Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com> * Silo - user imports alert flow UI and silo backend API changes (#1961) * feat: added workspace member list endpoint * feat: added endpoint for getting additional users inside asana, jira and linear * feat: added additional users endpoint inside jira * fix: changed payload for response * feat: warn for additional users in importers * jira server user import flow with warn complete * labels data type fix for jira import * add skip user import ui component + linear user import warn flow * add asana import user warn flow * add jira importer user import warn flow + api fixes * feat: added optional user import --------- Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com> * feat: added optional project_id inside generic asset endpoint * feat: added attachment endpoint for github client * feat: added function to handle github private images * add user_id in github connection post request * fix: proxy image construction * fix: etl build using tsup * fix: key setting and images * feat: added images inside issue comments * feat: added issue link and issue linkback for github and plane * fix: build process of etl package * feat: handled edge cases and tweaked UI a little bit * fix github logo in dark mode * fix: issues not getting synced when external source is different * feat: added conditional rendering for gh * fix: link item for pulls * fix:naming * fix: build fixes * fix: build * fix: build * fix: build and lint errors * fix: etl packaging * fix: build errors * fix: docker build errors --------- Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com> Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com> Co-authored-by: gurusainath <gurusainath007@gmail.com> Co-authored-by: pablohashescobar <nikhilschacko@gmail.com> Co-authored-by: pushya22 <130810100+pushya22@users.noreply.github.com> Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com> Co-authored-by: Akshita Goyal <36129505+gakshita@users.noreply.github.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> Co-authored-by: rahulramesha <rahulramesham@gmail.com> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com> Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Co-authored-by: Saurabhkmr98 <70131915+Saurabhkmr98@users.noreply.github.com> Co-authored-by: Saurabhkmr98 <saurabhkapur73@gmail.com>
16 lines
20 KiB
XML
16 lines
20 KiB
XML
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<circle cx="20" cy="20" r="20" fill="white"/>
|
|
<mask id="mask0_18217_187055" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="40" height="40">
|
|
<circle cx="20" cy="20" r="20" fill="white"/>
|
|
</mask>
|
|
<g mask="url(#mask0_18217_187055)">
|
|
<rect x="2" y="7" width="36" height="36" fill="url(#pattern0_18217_187055)"/>
|
|
</g>
|
|
<defs>
|
|
<pattern id="pattern0_18217_187055" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
<use xlink:href="#image0_18217_187055" transform="scale(0.00195312)"/>
|
|
</pattern>
|
|
<image id="image0_18217_187055" width="512" height="512" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACAKADAAQAAAABAAACAAAAAAAL+LWFAAA6m0lEQVR4Ae3dCbRkVX3v8UZmAWlmFZAGEQURkWZQUAQVDSrIEnQZSJSYBDBZiSauiLpiwjMJT5/BIUaNzziiPucBEAkSVBxABpVRERAaBJlppm5m3u9H7u2+fW/VrWmPZ3/3Wv++1VXn7P3fn32qatc5p04tWEBBAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaEVgtVY62mA/t1Cfn6nYciqerL9rK6bLPbrhWKq4XvE7xRLFjYqHFRQEEEBgUgG/5jxlKrbW3ycoNlSsp5guD+nGzYrfT8Vl+nu7ghJZgAlAZOBM1b9Y7Z4xZtv3az0/AS+eigv19wIFT0ghUBBAoKfAGrp3R8UuU7Gr/k5/ANHNkcveWuPskddiBQQQWPBZGTwaOK5SfZ9THKXYTkFBAIF2BdZU1xcrjlWcrLhDEfI15yOqj4IAAiMKPF7L36UI+WTsVdcVauP9Cu9t8IsBBQEEui3wdHXv7xQ/UHhPYa/XhVD33ar611JQEEBgBIHDtWyoJ+Gw9fg8gi8r/lixUEFBAIH6Bbxbf3/FCYrfKIZ9PQi13CFqk4IAAiMInKplQz0Bx6nnPrXvXYKvV3hvBAUBBOoS8LH79yh8QvA4rwGh1vlaXWxki0Begc3V/IOKUE/ASevxngGfN3CQYnUFBQEEyhTwmfo+nn+5YtLnfaj1fZhhEwUFAQSGEHizlgn15AtdzzXK7Z0KT1IoCCCQX2AdpfAGxU8VoZ/voerzSccUBBAYQsBfmwn1xItVjw8RfEGxzxD9YREEEAgvsEhVehf/LYpYz/NQ9Z6pHCkIIDBAwJ+sfQGfUE+8FPX8Svl6r8X6CgoCCMQT8DVfXqL4iqKkw4SDXmec60YKCgIIzCNwpB4b9GQq9XF/h/h4BYcHhEBBIKCAd/Mfo7hCUerzf1BerwvoQVUIdFLAZ8wOeiKV/rgPD/ikwad1coToFALpBLxXzXvXfInv0p/3g/L7fDo2WkKgPgFfiMdn3A96ItXyuA9leFelv45EQQCB4QU21aLHKW5T1PJ8H5Sn+7KGgoIAAj0EfDW+QU+iGh/3ROCbir169Jm7EEBgpcDWuvkhxb2KGp/rg3J+wcqucgsBBGYKfED/GfQEqv3x76mPu87sNLcRQGCBP/H7jP7litqf4/Pl/17GGgEEegtcqrvne/J05THvEfA5Atv2ZuBeBJoReIJ6+m7F3YquPL/n68cvmxlZOorACAL+BPCIYr4nT9cee0D9/bjiSQoKAi0J+AdyfHGcGxVde17P1x9P/hcqKAggMEPgEN2e74nT5cfuUd+9+5MXhhkbBDc7KfA49eo1iqsUXX5Oz9e3Azs5snQKgQkE3qd153vStPDYrTL4GwU/SzzBhsSqxQr4tzRaOcw33+vVvxQ7QiSGQCaBGi7/O9+TOuRj/snSl2caB5pFILSAr4dxiiLkc6Tmun4QGrj1+nx5SEq9Av65XV9Fz8cFKSsFvq2bb1V4dylleAHvQfEFZHyC2cxfb1xP/5+5ja2t/3tZH4KZLj4P5c7p/0z99f+XKXyGOmV4Afu/S/HXipnuw9fQzSV9oTAf7vOvBFICCDABCICYsYr91Pb3M7ZfctN+sXi/4niFvxvdSvGk0CeGbqHYbOq2/+/bvtTyBoqNFH5Td/gN3y+q/hvrzWZ6cuAz1j0WjqUKTyB8nw/h3KK4aeq2/++4WeHlWil+PX694n8rOMG196jvo7t/2vsh7h1VgKsrjSpW1vK7l5VOUdmso2z888N+QX2b4ksK7/6sufiT4daKbab++vZTpv6/lf4+UeEJQGnFJ7B50uEYtfjHYDwZuFZx3VQsmfV/TxxqL34uf1jx3No7Ejn/xaqfCUAgZCYAgSAzVbNzpnZratZvjF9UvEnha6P/QlFy2VjJ7aB4+tRfHwf2/xcpNlS0VnyowZ+GHf2uCOm9PZ4cXKm4XOFzQRz+ARzfX/LEz3tljlf8icITJcr8Arzmze8z0qPe5USpV+ACpb5bveknz/xhtfhBxT8ofGw6Z9lSje+ieLbCb/bTb/ib6DYlnIDH2ROB6QnBhbp90dR93h5yFb/2Hqk4QTHOnhGt1mQ5W73eu8meR+g0E4AIqImqXF3t+Pjpuona61IzV6szxyhOT9Apf4L1J/idFM9UeBfmHgofo6fkE/ChBU8MPIm+VHGZ4hyFz0WIXbZVAx9XHBC7oQ7W7/NGfCis5L061bAzAahmqOYk6jcV7+6kjC/wWa36VsVt41exyprehbujwruqfSx3T4Xf+D0JoNQhcI3SPFfxs6n4uf4uV4QonrS/RfFuRYnnaoToY4o6nqpGfpuiIdpAoFSBQ5WYZ8HEZAZ+8z9qzEH2MfmXKI5TnKzwyWqMR7cMvKfAewg+p/B24r0443xwepbW86SC7WNyg4PlSEGgaYF3qfe8mIQzOEWePqN+vvJkPXiE4hMKH1PGv00DHyb4uuKvFD4pbb4Jgb+NcrziAQXbSxiDt8uSgkDTAp9U73lBCWvg76cfq/CuWpfNFa9RfEhxvuIRBeYYzN4GbtZ24T1A3nYWK6YnBPvots8tmL08/5/M5KMypQQQmN5QA1RFFYkFfAIbJxHFQf+lql1L4eP3FARGFbhJK/iwwf4KXmNH1Ru8/He0yCsHL8YSgwS4DsAgoXIf36bc1KrPbNfqe0AHcgpsocYdlDgCgw7VxWm1g7UyO61zUD1u3l29bp3pkzUCCCAwtsBdWrPFi2KNDdZvRa481U+m7Ps3U3q8+Zc9RmSHAAJxBHwdACYAAWyZAARAzFDFlhnapEkEEECgFAFf4psyoQATgAkBM62+SaZ2aRYBBBAoQYDLJwcYBSYAARAzVLEwQ5s0iQACCJQiwAQgwEgwAQiAmKEKjn9lQKdJBBAoRoAPQQGGgglAAMQMVbDxZ0CnSQQQKEaAPQABhoIJQADEDFWwByADOk0igEAxAnwICjAUTAACIGaoYv0MbdIkAgggUIrAeqUkUnMeTADqHL3pa9XXmT1ZI4AAApMJ8N41md9ja4MYADFDFVzBMQM6TSKAQDECfAgKMBRMAAIgZqiCccuATpMIIFCMAK+BAYYCxACIGapg3DKg0yQCCBQjwB6AAEPBG0kAxAxVMG4Z0GkSAQSKEeA1MMBQgBgAMUMV92dokyYRQACBUgSWl5JIzXkwAahz9O6pM22yRgABBIIIMAEIwMgEIABihiruzdAmTSKAAAKlCDABCDASTAACIGaogj0AGdBpEgEEihFYVkwmFSfCBKDOwbu7zrTJGgEEEAgiwF7QAIxMAAIgZqjitgxt0iQCCCBQisAtpSRScx5MAOocvRvrTJusEUAAgSACNwWppfFKmADUuQEwAahz3MgaAQTCCDABCODINeUDIGaoYi21eZ+C8cuAT5MIIJBdwL+IynkAEw4DewAmBMy0+gNql/MAMuHTLAIIZBXwSdC8+QcYAiYAARAzVfHbTO3SLAIIIJBTgNe+QPpMAAJBZqjmigxt0iQCCCCQW4AJQKARYAIQCDJDNUwAMqDTJAIIZBdgAhBoCJgABILMUM1vMrRJkwgggEBuASYAgUaACUAgyAzVXJyhTZpEAAEEcgtckjuBrrTP18jqHcnVlfpdisfX2wUyRwABBEYW2ERr3D7yWqwwR4A9AHNIqrnjYWXKTLia4SJRBBAIIHCd6uDNPwCkq2ACEAgyUzW/yNQuzSKAAAI5BC7K0WhX22QCUPfInl13+mSPAAIIjCRw7khLs/C8AkwA5uUp/sGzis+QBBFAAIFwAnzoCWfJteQDWuaqaokafkquxmkXAQQQSCTwqNrZWLE0UXudb4Y9APUP8Zn1d4EeIIAAAgMFLtQSvPkPZBp+ASYAw1uVuuRJpSZGXggggEBAgf8KWBdVSYAJQP2bgZ8Uy+rvBj1AAAEE5hU4fd5HeXBkASYAI5MVt4Lf/M8oLisSQgABBMIJ+Od/fxKuOmqyABOAbmwH3+5GN+gFAggg0FPgB7r3/p6PcOfYAkwAxqYrasVTlI2vDEhBAAEEuijA8f8Io8oEIAJqhipvVpunZmiXJhFAAIHYAv76H3s5IygzAYiAmqnKj2Vql2YRQACBmAI+9n9tzAZarZsJQHdG/jR15crudIeeIIAAAo8JfBWHOAJMAOK45qjVu8k4SzaHPG0igEBMAV8AiBJBYLUIdVJlHoEj1OyJCsY0jz+tIoBAHIHrVe3eCg4DBPblzSIwaKbqXqF2v6VYI1P7NIsAAgjEFLhMlb9AcXvMRlqrmwlA/SO+p7rg3wNYr/6u0AMEEECgr8DP9MiLFb4oECWAAOcABEDMWMUOattf/+PNP+Mg0DQCCCQR2Eut+DAn71uBuFcPVA/VpBfYQE1+T7FN+qZpEQEEEMgisKNa9fvW97O03rFGmQDUOaCeAX9N8fw60ydrBBBAYGwBnwtwueKSsWtgxccE2JVS54bwHqX9yjpTJ2sEEEBgIgGfu/Ypxe4T1cLKfGWswm3gcOX8hQrzJmUEEEAgpMASVbZYcVvISluqi28B1DXa2yvdCxRPqCttskUAAQSiCPgkaO8N9YXQKCMKcA7AiGAZF19bbfsXsRZlzIGmEUAAgZIEnqZklirOKSmpWnJhD0AtI7VgwUeV6pvqSZdMEUAAgSQCD6qVfRVMAkbkZgIwIlimxQ9Vuz7rn4IAAgggMFfAP4S2m+LuuQ9xTz8BDgH0kynn/s2UyncUXOynnDEhEwQQKEtgY6XjOKWstMrOhglA2ePj7D6n2KP8NMkQAQQQyCrgbwT4MMBVWbOoqHEOAZQ9WHzlr+zxITsEEChLYInSeZaCQwFDjAt7AIZAyrSId/2frGDXf6YBoFkEEKhOYKEydviwKWWAAFcCHACU8eEPq21PAigIIIAAAsMLHKNF9xl+8XaX5BBAmWP/YqV1RpmpkRUCCCBQvMDFytDfCnio+EwzJsghgIz4fZpeS/efpODTfx8g7kYAAQQGCGyhx29SnDdguaYf5hBAecP/N0rJP3lJQQABBBAYX+CftSofpObxYw/APDgZHtpSbX5F4b0AFAQQQACB8QXW1ao+IdAnU1N6CLAHoAdKxrverbbXz9g+TSOAAAJdEnijOrNTlzoUsi+cBBhSc7K6nq7VL1GsMVk1rI0AAgggMEPg67p92Iz/c3NKgD0A5WwK71UqvPmXMx5kggAC3RA4VN14bje6ErYX7AEI6zlubXtpxbMVjMe4gqyHAAII9Bf4oR7ar//DbT7CHoAyxv14pcGbfxljQRYIINA9gReqS/t1r1uT9YgJwGR+Idb2p/8XhaiIOhBAAAEE+gq8ve8jjT7ABCD/wP99/hTIAAEEEOi8wMvUw8Wd7+UIHWQCMAJWhEV3UZ2viFAvVSKAAAIIzBV429y72r2HCUDesX+HmufYf94xoHUEEGhHwN8I2KGd7s7fU64EOL9PzEe3VuUfVzAJi6lM3QgggMBKAb/e+kPXd1fe1e4t3nzyjb1/spLv/efzp2UEEGhT4A3q9hPa7PqqvWYPwKoeqf7na/2fqOCyv6nEaQcBBBD4H4G19edaxfmtg7AHIM8W8Bo165+rpCCAAAIIpBd4U/omy2uRCUCeMWHjy+NOqwgggIAF/A2sfVqnYAKQfgt4GhteenRaRAABBGYJ+FyApgsTgPTD3/xGl56cFhFAAIE5Aq/VPevMubehO5gApB1sf/3k8LRN0hoCCCCAQA+BDXXfy3vc38xdTADSDrV/kGLbtE3SGgIIIIBAH4Ej+tzfxN1MANIO8x+lbY7WEEAAAQTmEfCl2BfO83inH2ICkG54fc2FV6VrjpYQQAABBAYI+JoAzf4eCxOAAVtHwIf3VV2bBqyPqhBAAAEEJhc4aPIq6qyBCUC6cePTfzprWkIAAQSGFThQC/rqrM0VJgDphvzgdE3REgIIIIDAkAL+XQCfoN1cYQKQZsh91SnO/k9jTSsIIIDAqAJNHgZgAjDqZjLe8i8bbzXWQgABBBBIIHBAgjaKa4IJQJoheVGaZmgFAQQQQGAMgWdonSePsV7VqzABiD98a6qJ58dvhhYQQAABBCYQ8De1mipMAOIP915qYv34zdACAggggMAEAvtPsG6VqzIBiD9s7P6Pb0wLCCCAwKQCTAAmFWT9OQJ7z7mHOxBAAAEEShPwT7VvVlpSMfNhD0BM3QULVlP1u8dtgtoRQAABBAIJLA5UTxXVMAGIO0zbqfpN4jZB7QgggAACgQSa+sDGBCDQVtOnmj363M/dCCCAAALlCTABKG9Mqs2ICUC1Q0fiCCDQoMCeLfWZPQBxR/vZcaundgQQQACBgAJPUl3NHLZlAhBwy+lR1Y497uMuBBBAAIFyBZ5ebmphM2MCENZzZm3+hSnPJikIIIAAAvUIMAGoZ6yKzdSf/v01QAoCCCCAQD0CTADqGatiM2X3f7FDQ2IIIIBAXwH/MFAThUMA8YZ5+3hVUzMCCCCAQCSBp0aqt7hqmQDEG5Kt41VNzQgggAACkQS2ilRvcdUyAYg3JM1sRPEIqRkBBBBILrBQLTbxC65MAOJtW0wA4tlSMwIIIBBTYMuYlZdSNxOAeCPRxAYUj4+aEUAAgWwCTbx+MwGIs31tqGrXi1M1tSKAAAIIRBZo4houTADibEUbx6mWWhFAAAEEEgj4PIDOFyYAcYbYewAoCCCAAAJ1CjTxGs4EIM7G2cTsMQ4dtSKAAALZBZgAZB+CehNgAlDv2JE5Aggg0MRrOHsA4mzo/iEgCgIIIIBAnQJNvIYzAYizca4Vp1pqRQABBBBIINDEazgTgDhb0upxqqVWBBBAAIEEAk28hjMBiLMlNbHxxKGjVgQQQCC7QBOv4UwA4mxnTWw8ceioFQEEEMgusEb2DBIkwAQgDjITgDiu1IoAAgikEGjiNZwJQJxN6ZE41VIrAggggEACgUcTtJG9CSYAcYbgoTjVUisCCCCAQAKBBxO0kb0JJgBxhqCJjScOHbUigAAC2QWaeA1nAhBnO2ti44lDR60IIIBAdoEmXsOZAMTZzprYeOLQUSsCCCCQXaCJ13AmAHG2syY2njh01IoAAghkF2jiNZwJQJztrImNJw4dtSKAAALZBZp4DWcCEGc7a2LjiUNHrQgggEB2gSZew5kAxNnOmth44tBRKwIIIJBd4IHsGSRIgAlAHGQmAHFcqRUBBBBIIdDEtVyYAMTZlO6NUy21IoAAAggkELgnQRvZm2ACEGcI7oxTLbUigAACCCQQaOI1nAlAnC1paZxqqRUBBBBAIIFAE6/hTADibEl3xKmWWhFAAAEEEgiwByABclebuF8dc1AQQAABBOoTYA9AfWNWVMZNbEBFiZMMAgggEEagiddvDgGE2Vh61dLEBtSr49yHAAIIVC7AIYDKBzB3+k1sQLmRaR8BBBCIINDEBzj2AETYcqaqbGIDisdHzQgggEA2gbuytZywYSYA8bD5JkA8W2pGAAEEYgn4IkBNXM2VCUCsTWjBghviVU3NCCCAAAKRBJp57WYCEGkLUrXNbETxCKkZAQQQSC5wffIWMzXIBCAefDMbUTxCakYAAQSSCzTz2s0EIN621cxGFI+QmhFAAIHkAs28djMBiLdtNbMRxSOkZgQQQCC5QDOv3UwA4m1bnAMQz5aaEUAAgVgCTABiyTZU73L19faG+ktXEUAAgS4IMAHowigW0Af2AhQwCKSAAAIIjCDABGAELBbtL3Bd/4d4BAEEEECgMIGHlc9NheUULR3OAYhG+1jFV8StntoRQAABBAIKXK26mrgKoM2YAATccnpUdXmP+7gLAQQQQKBMgaZes5kAxN0Im9qY4lJSOwIIIBBdoKnXbCYAcbenpjamuJTUjgACCEQX+E30FgpqgAlA3MHw2aT+ZSkKAggggED5Ak19aGMCEHeDfFTVNzWjjMtJ7QgggEBUASYAUXnbq7ypDaq94aXHCCDQEYG71Y8bO9KXobrBHoChmCZaiAnARHysjAACCCQR8Gu199o2U5gAxB/qi+M3QQsIIIAAAhMKXDrh+tWtzgQg/pCdH78JWkAAAQQQmFDgvAnXr251JgDxh+xaNXFz/GZoAQEEEEBgAoHmPqwxAZhgaxlh1eY2rBFsWBQBBBDILeDL/16UO4nU7TMBSCPOBCCNM60ggAAC4whcopX8E+5NFSYAaYb7gjTN0AoCCCCAwBgCTX5IYwIwxpYyxirnjrEOqyCAAAIIpBFgApDGuclWfHGJG5rsOZ1GAAEEyhdgAlD+GFWd4TlVZ0/yCCCAQDcFlqlbPgegucIhgHRD/v10TdESAggggMCQAj/Scg8MuWynFmMCkG44z0zXFC0hgAACCAwp0OyHMyYAQ24hARa7THVwHkAASKpAAAEEAgo0++GMCUDArWiIqn4wxDIsggACCCCQRuBONfPzNE2V1woTgLRj0uyuprTMtIYAAggMJfADLfXwUEt2cCEmAGkH9Xtpm6M1BBBAAIF5BJr+UMYEYJ4tI8JDS1Tn1RHqpUoEEEAAgdEFmACMbsYaEwh8Z4J1WRUBBBBAIIzA71TNxWGqqrMW9gCkH7dvpm+SFhFAAAEEZgl8Q/9/dNZ9Tf2XCUD64f6hmrw1fbO0iAACCCAwQ6D5D2NMAGZsDYlu+oxTDgMkwqYZBBBAoIfAbbrvxz3ub+ouJgB5hrv5mWcedlpFAAEEHhM4Sf8+1LoFE4A8W8DpavbePE3TKgIIINC8AB/CtAkwAcjzPFiuZv8rT9O0igACCDQtcI96zzVZhMAEIN/z4Mv5mqZlBBBAoFmBU9Tz+5rt/YyOrzbjNjfTCqyl5q5XbJq2WVpDAAEEmhZ4qXrPHgAhsAcg3/PAvz/9pXzN0zICCCDQnIAv/tPsr//NHm0mALNF0v7/02mbozUEEECgaQG/5jb74z+zR55DALNF0v//F2py1/TN0iICCCDQlICv+vc0xVVN9XqezrIHYB6cRA99JlE7NIMAAgi0LHCWOs+b/4wtgAnADIxMNz+vdu/P1DbNIoAAAq0IcMh11kgzAZgFkuG/viTlVzO0S5MIIIBAKwK8zvYYaSYAPVAy3PU+tenjUxQEEEAAgfACH1WVy8JXW3eNnARYzvj5qyn7l5MOmSCAAAKdEPAh1kWKGzvRm4CdYA9AQMwJqzphwvVZHQEEEEBgrsCJuos3/7kuC9gD0AMl010ei0sVO2Zqn2YRQACBrgn40OrOisu61rEQ/WEPQAjFMHV4Q/1gmKqoBQEEEEBAAt9V8ObfZ1NgD0AfmEx3r6t2f6t4Yqb2aRYBBBDoksCL1Jnvd6lDIfvCHoCQmpPX5Z8JPn7yaqgBAQQQaF7gLAnw5j/PZsAegHlwMj3kXwn8lWK7TO3TLAIIINAFgb3VibO70JFYfWAPQCzZ8ev1rwT+8/irsyYCCCDQvMC3JcCb/4DNgD0AA4AyPby62r1YwTcCMg0AzSKAQLUCjyjz3RQXVtuDRImzByAR9IjN+Ocq/3HEdVgcAQQQQGDBgi8KgTf/IbYE9gAMgZRpEY/NuYrdM7VPswgggEBtAj6EupOCX/0bYuTYAzAEUqZFfF2ANym8O4uCAAIIIDBYwL+rwpv/YKfHlvCxZkq5Ajcota0Ui8tNkcwQQACBIgSuVRZ/qHiwiGwqSIJDAOUP0sZK8XLFpuWnSoYIIIBANoFXqeWTsrVeYcMcAih/0G5Xiu8sP00yRAABBLIJnKaWefMfkZ89ACOCZVrcE7WfKJ6bqX2aRQABBEoV8BVU/YM/vow6ZQQB9gCMgJVxUZ8IeIzCZ7hSEEAAAQRWChynm7z5r/QY+hYnAQ5NlX3Bm5SBrw/w4uyZkAACCCBQhoD3jB6l8LemKCMKcAhgRLDMi3uPjX/cYt/MedA8AgggkFvgXiWwq+LK3InU2j6HAOoaOR8KOFJxd11pky0CCCAQXOCvVSNv/hOwcghgArxMqy5Vu7cqDsrUPs0igAACuQV8xv+xuZOovX0OAdQ7gn4CMAmod/zIHAEExhPw+VC7KG4eb3XWmhZgAjAtUd/fhUr5PMX29aVOxggggMBYAr7K3wGKH461NiutIsA5AKtwVPUfHwp4tcInwlAQQACBFgT+Vp3kzT/QSDMBCASZqZqL1e6fZ2qbZhFAAIGUAl9QY/+essGut8VJgPWP8CXqgg8HcJXA+seSHiCAQG+BC3X3IQp+6Ke3z1j3cg7AWGzFrbSmMjpdsV9xmZEQAgggMJnALVp9T8U1k1XD2rMFOAQwW6TO/3tW7F/C8iyZggACCHRFYJk64te2a7rSoZL6wQSgpNGYLJe7tPrLFUsmq4a1EUAAgSIE/MHmMMXZRWTTwSSYAHRrUG9QdzwJ8E8IUxBAAIFaBXxt/6MV3621AzXkzQSghlEaLcfLtPgrFN51RkEAAQRqFHiHkv50jYnXlDMTgJpGa/hcz9Gif6jg54OHN2NJBBAoQ+D/KI33lpFKt7PgWwDdHt8D1b1vKNbpdjfpHQIIdETAb/5c4z/RYDIBSASdsZk/UNvfVDAJyDgINI0AAgMF/Kn/7QOXYoFgAhwCCEZZbEWnKTNfQOO+YjMkMQQQaF3gOAHw5p94K2APQGLwjM29TG1/XbFexhxoGgEEEJgp4LP9fcIfx/xnqiS6zQQgEXQhzeyhPE5WbFFIPqSBAALtCvgk5T9TnNguQd6eMwHI65+j9W3V6KmKZ+RonDYRQAABCdyteK3ChygpmQSYAGSCz9zsxmr/W4oXZM6D5hFAoD2B69XlVyp+2V7Xy+oxJwGWNR6psvGVAl+q+EqqBmkHAQQQkMD5ij0VvPkXsDnwc8AFDEKmFB5Su19T/F7hrwqyLQiBggAC0QR8rP9QxR3RWqDikQQ4BDASV2cX3lc9+7LiiZ3tIR1DAIFcAv4K8l8p/jNXArTbW4AJQG+XFu/dUp32IYG9W+w8fUYAgSgCV6pWf+q/KErtVDqRALt9J+Lr1Mo+K/fzCl8nYC8Fk0MhUBBAYGyBL2rNVymuHbsGVowqwIt8VN5qK99HmX9OsV21PSBxBBDIJbBUDXuXvz9QUAoWYA9AwYOTMbXr1PZnFJsoFisoCCCAwDACp2shX3X0J8MszDJ5BfgaYF7/klu/S8kdrXid4raSEyU3BBDILuBDiMco/I0if8+fUoEAewAqGKTMKV6q9n327kaK3RQcNhICBQEEVgicolu+sM+ZK+7hRhUCvJhXMUzFJOkrB/6HYqdiMiIRBBDIJXCVGvax/u/mSoB2JxNgD8Bkfq2t7bN5P6nwj3g8T7GGgoIAAm0J+Hv9xysOV/y6ra53q7dMALo1nil687AaOUvxOYW/MvgcBXuShEBBoOMC/uleXz301YpvKnw1UUrFArxwVzx4haTubwn8q2K/QvIhDQQQCC9whqo8VvHz8FVTYy6Bx+VqmHY7I3CBerK/whf8+FVnekVHEEDAAr9Q+Mz+AxS8+QuBggACvQU8oTxI4RcK7y4kMGAbqHMb8Bv/axTsJRYCBQEEhheYngicr1V4A8CAbaCebeDHes56Ek9pQIDZXQODnLGL3r4OUbxN8dyMedA0Agj0F3hED52seL/irP6L8UjXBJgAdG1Ey+2PTxZ8s+J1ijXLTZPMEGhGwFf7/JLiAwq+ztfMsK/saOsTgLVF8QzFjlN/N9HfjRW+6p2/7nbNVCyZ+nu1/t6moIwvsJVW/UvFUQpbUxBAIK2AT9b9iOKzinvSNk1rJQm0OAF4qgbgSMXLFbsoRr2YzZVaxz904V1l/nu5gjK6wDpa5VDFnyr2U7S4LarbFASSCNytVr6i+JTip0lapBEEChLwp/oTFf5kH/KkpBtU34cV/gld3sSEMEbxpOxfFNcrQo4NdeHZ8jbgY/s/UhypWF9BQaBJgQ3V6ysUsV8MrlEb71H4sAJldAHvjTlQ4V2Tdypijxf1Y9zFbcBfw/WJt4sUFASaF/igBFI+0T3zPknx/OblxwfwIYJXK7zbcpki5fjRFt61bQMX6znyLsUOCgoCCMwQ8DGvXE9ot/2qGblwc3SBDbSKL0riQzg+CTPXWNIu9qVsA/5BLl+e9y0KH0KjIIBAHwF/isz9xP2hctitT37cPbzA6lp0P8UJihSHdXJvN7Sf/7lbyhj4fCMfHnutwoc1KQggMITAwVqmhCexT0D8tOLJQ+TMIsMJbKfFjlb4V8puV5QwzuTAOITYBnzm/skKf8rfWUFBIKjAakFrK7uy05TeywpJ0Se4/a3CX8mhhBPw3oHdFQcoXqB4nsKHDygI1CDgCawPGfpyvI5zFQ8qKAhEEWhpAuDjZOcoNo0iOV6l39Fqf674/Xirs9YAAX+rYFeFT8b0hMBf1dxCQUEgt4BPFPY1RM5TTL/pX6bb3nNAQSCJQEsTAIPuqThTsZ7/U0jxrN+TgG8Ukk/X09hGHfR24NhDsVjBd6SFQIkm4Df7axTnT4Xf9H+uuEtBQSCbQGsTAEP7MMC3FP6aWSnFs/73Kd6p8HkClHQCPmzwdIWPsTqeOfXXe4z8GAWBYQX8PF6iuHQq/In+EoUvvbtMQUGgKIEWJwAeAB8b9iRgc/+noOK9E/6xnFsKyqnVVDxB9G9ETE8I/NexSNHq80Zdp0jAk/TfKfzG7jf4mW/09+j/FASqEGj5hWxbjdApip0KG6lrlI+vhsevcxU2MFPp+HCBJwb+9oG3Iceiqb8+vLCWglK/gM/LuVpxTY+/1+o+Ts4TAqVugdXqTn/i7Beqhk8rDpm4prAV+GI3Byt8chClHoHHKdUtFYsUnhhMh09C9CEFSrkCPuP+OMX0m/595aZKZgggEFLgaFV2r+LRgsLHDD0JoNQtsIvSv1VR0rZFLr3H4181Tq1/KKr72Ub2CIwp4N26PjO3pBdHX+7z0DH7w2r5BXx46SZFSdsUucw/Hp/QeDEJyP/cIQMEkgusrRb/SVHS3gBPAg5LLkGDkwrsoApuUPCGW5/BxzRuTAImfQawPgKVCixS3qcqSnnx9glHpZ2noJQofQQW6f7rFKVsP+Qx+lj4gwAFAQQaFjhcfS/ld+mXK5d9Gx6LWrq+nhK9UMGbbv0Gb6hloyNPBBCII+Czty9QlPCCfofy8ElllDIFvNv4S4oSthVymHwc7tdY7lXmpkZWCCCQSsDnBnxIUcKL6hLlsVmqjtPOSALHaukSthFyCDcO/s7/piNtBSyMAAKdFHi9euVPBblfYP9bOfiHbijlCLxUqTykyL1t0H74Mfh2OZsZmSCAQE6B/dT47YrcL7Tvz4lA26sI+BMiX/fL/5yI+Zx8wyojzn8QQKBZAX+/29cCj/mCM0zdf9LsCJTV8f9XwLYwzPbCMuM/Z5dqjLcqa7MjGwQQyCWwvRq+WpHzRdVXCyzttwxyjUeudl+VeRvIuf211vaXc21ktIsAAuUJPEUp5Z4E+BsKa5ZH00RGG6mXXOwn7yQ49SRkvya2bDqJAAJDCfhrgrkPB3DRkqGGKvhC/6kaU78B0V5e84s05qsH35KoEAEEqhV4hjK/WZHrxdlXCty9Wr06E99ZaXPWf75tPtdzze3620AUBBBAYIWALxiS8zcEzlP7fDJZMRzRb5ykFnK+CdF2Pv8rNfYcdov+FKMBBOoS8PX6c34qfHNdXNVmu48y5w24bYM/rXbrJXEEEIgm4DfhXG8Od6ntraP1jIqnBX6kG7nGmHbLsP+1toHHTW8Q/EUAAQSmBT6jG7leqL81nQR/owgckHFsc21TtNv7+fzKKFsYlSKAQNUC6yr7nytyvXAeVrVe2cmfnHFcc21PtNv7uexLclMQQACBOQLb6J5bFDlePH2pYg4FzBmSie94qmp4WJFjTGmzTHd/A4iCQJUCHMOKN2z+1b43xqt+3pp9gRp/R90/T0sJJ/AXqornTDjPLtT0hi50gj4ggEAcgf9Qtbk+vb0lTpearPXx6vVtGccy1zZEu/M/f6/XNsHXb5t8SaDTCAwW8BuHzxjO8UK6XO3uMThFlhhC4Egtk2MMabN8d/8UNAWB6gTYnRl/yPyDPUcoHojf1JwW1tE9X1dsPucR7hhV4NBRV2D5ZgTYNpoZajqKwHgC/6TVcn2a+4naXmu8tFlLAhsovDcl1/jRbtn2Ptl3DQUFAQQQ6CngT+OXK3K9mH+kZ1bcOYzA6zKOW67thXZHe66+cJgNiWUQKEmAQwDpRuM+NXWUwi+sOYrPYH9HjoY70Ca7eDswiJG7cGDk+qkeAQQ6IPBJ9SHXp6tH1PaRHTBM2QUfOrlbkWvMaLcO+wtSbpS0hQACdQpsorR9oZ5cL+z+6eCD66TLkrV/5THXWNFuPfa+QNSmWbZQGkVgTAEOAYwJN8Fq/i65TwjMVXyy0lcV/uVCymCBvQcvwhIIPHaBqBfhgEBNAkwA8ozWv6vZK/I0/Vir3q39NcXhGXOopWn/9C8FgWEEmCwOo8QyxQgwAcgzFN4Nf2yeple06quXfVbxxhX3cKOXwPN63cl9CPQQ8OEiCgIIIDCUwA+1VAnHeX1Igt8NmDtkiwoZnxK2EXIY/Fz1N33WnrsZcQ8CZQqwByDvuJTytby/F8OJCv+MMWWlwI4rb3ILgYECfvN/9sClWACBQgSYAOQdiJ+q+TPyprCi9SN0y/lsv+IebmDBNjCqwM6jrsDyCOQSYAKQS35lu+9eeTP7rV2Vgb/PzIVv/mcotss+IiRQm8BOtSVMvu0KMAHIP/Y/Ugrfz5/GigyeoFv+hsBXFL5mQcuFPQAtj/54feew0XhurJVBgAlABvQeTZa0F2A6vdfoxsWKlq8XwB6A6a2Bv8MKsAdgWCmWQwCBFQI/1q1Sz7Q+Tbm19MnmmervRxX+umapY0JeZY6Nrwi4poKCAAIIDC3gT9wlv6j7zfDDiicP3aO6FvQZ3Icp/lvh30woeSzIrezxWaTth4IAAggMLbCGllyiKP3Ffbly9ERgK0UXymJ14t8UtypKtye/OsZo3y48MegDAgikFfDVAWt5kX9AuX5ZUeOL3XOUty9+dJmiFm/yrGes/kjbFQUBBBAYSWBjLX2vorYX+0uUsy9qtEhRYnm8knqp4gTFbxW1+ZJvXWOW+zLf2sQpCCBQo8DHlXStL/g+dn6O4l2KPRS5vmWyrtr2NfzfqThT4Uu01mpK3vWN3Xu1vVEQKF6A67+XN0S+lOgvy0trrIz808dnK36m8MTAXyu8SRGybK7KnqbwRYx8PN/hr2L5nAoKAjkEPqFGj8rRMG0iMIoAE4BRtNIt66vx7ZauuaQt3a7WfqXwCY+/m4r79fdOhb9CtVThbxz4U/sGioWK9RTrT8WT9Hdbhb+j779+jIJASQJfVzL+RgkFgaIF+JRU5vB8Sml1dQLg8xz2mYoy9ckKgckENppsddZGII1ArmO0aXpXbyufUer+pExBAIH6BLznioJA8QJMAMocIn8TwFeioyCAQH0CXAmwvjFrMmMmAOUO+78ptbvLTY/MEECgj8Bafe7nbgSKEmACUNRwrJLMLfrfCavcw38QQKAGASYANYwSOS7gWwBlbwQ+8/1KxRZlp0l2CCAwQ+Ba3d5mxv+5iUCRAuwBKHJYViR1j275krUUBBCoR2D1elIl05YFmACUP/ofU4q+iA4FAQTqEPDVGykIFC/ABKD4IXrsp2mPVpq+OA4FAQTKF2ACUP4YkaEEmADUsRlcpDQ/WEeqZIlA8wJMAJrfBOoA4CTAOsbJWfoX7S5UbO//UBBAoFiBJcpsUbHZkRgCUwLsAahnU1imVA9VLK8nZTJFoEkB9gA0Oez1dZoJQF1j5kMBf1dXymSLQHMCTACaG/I6O8wEoL5x+4hS/kJ9aZMxAs0IMAFoZqjr7igTgDrH7y+U9hV1pk7WCCCAAAIlCDABKGEURs/hLq1ysOKO0VdlDQQQiCzAHoDIwFQfRoAJQBjHHLX8Wo0eonggR+O0iQACfQWYAPSl4YGSBJgAlDQao+dyllZ5o+KR0VdlDQQQiCTABCASLNWGFWACENYzR20+IfDPFLzo5NCnTQTmCvBcnGvCPQUKMAEocFDGSOnTWuetCl54xsBjFQQCC/A8DAxKdXEEmADEcc1R6wfU6DEKDgfk0KdNBFYKMAFYacGtggWYABQ8OGOk9n+1zhsVD42xLqsggEAYASYAYRypJbIAE4DIwBmq/6zaPFBxZ4a2aRIBBDgUxzZQiQATgEoGasQ0z9Dy+yquG3E9FkcAAQQQaESACUB3B9q/G7Cb4vTudpGeIVCkAIcAihwWkpotwARgtki3/n+ruvMHircrODmwW2NLb8oVYAJQ7tiQ2QwBJgAzMDp60y9G71W8TMEhgY4OMt0qSoAJQFHDQTL9BJgA9JPp3v0+L2Bnhb8pQEEAgXgCTADi2VJzQAEmAAExK6jKPyJ0tOIgxdUV5EuKCNQowASgxlFrMGcmAA0Ourp8iuKZiv+luE9BQQCBcAJMAMJZUlNEASYAEXELr3q58jtO4cMCX1RwkqAQKAgggEArAkwAWhnp/v28Sg8doXiW4qsKPr0IgYLABAJMpifAY9V0AkwA0lmX3tJlSvC1Cl874ETFgwoKAggggEBHBZgAdHRgJ+jWL7Xu6xXbK96vuENBQQCB4QXYiza8FUtmFGACkBG/8KavVX7+ieEnKbxnwCcOPqygIIDA/AJMAOb34dFCBFYrJA/SqENgG6X5OsUhij0VTCCFQEFglsB5+r+fHxQEihZgAlD08BSdnPcMHDwVL9DfDYrOdvjk7teilyo2Umw7/GosicAKgXN1a68V/+MGAoUKMAEodGAqS2sN5euTB184Ffvo70JF6WWpEvQ5D45fTP39lf76BMiPKY5RUBAYVeBnWuG5o67E8gikFvALNwWBSQUeUgX+1ON431RlPlzw7KnYRX93UvgT9bqKlOVeNXbljLhi6rb/3qDoV/gqVz8Z7h8kwDkAg4R4vAgBJgBFDEMnk1iiXjlOmtW7LfT/RQpPELZWbKrw7vbZsZrum1nW13+8e95xp2LZ1G1/S2G54sapuFl/f6+4aSr8i4jjFE54HEeNdRBAoBoBJgDVDFVnEp1+Y/Zu0pILewBKHp2yc2PbKXt8yG5KgLO42RQQ6C3Ai3hvF+5FAIGOCDAB6MhA0o3gAhwCCE7aTIWcA9DMUNfdUSYAdY8f2ccTYA9APNuu18wEoOsj3JH+MQHoyEDSjeAC7AEITtpMhUwAmhnqujvKBKDu8SP7eALsAYhn2/WamQB0fYQ70j8mAB0ZSLoRXIA9AMFJm6mQCUAzQ113R5kA1D1+ZB9PgD0A8Wy7XjMTgK6PcEf6xwSgIwNJN4ILsAcgOGkzFTIBaGao6+4oE4C6x4/s4wmwByCeLTUjgEABAkwAChgEUihSgD0ARQ5LFUmxB6CKYSJJJgBsAwj0FmAPQG8X7h0swARgsBFLFCDABKCAQSCFIgXYA1DksFSRFBOAKoaJJJkAsA0g0FuAPQC9Xbh3sAATgMFGLFGAABOAAgaBFIoUYA9AkcNSRVJMAKoYJpJkAsA2gEBvASYAvV24FwEEOiLABKAjA0k3ggtwCCA4aTMVsu00M9R1d5QJQN3jR/bxBHgRj2fb9ZrZdro+wh3pHxOAjgwk3QguwCGA4KTNVMg5AM0Mdd0dZQJQ9/iRfTwBPsXFs+16zWw7XR/hjvSPCUBHBpJuBBdgD0Bw0mYqZA9AM0Ndd0eZANQ9fmQfT4BPcfFsu14z207XR7gj/WMC0JGBpBvBBdgDEJy0mQrZA9DMUNfdUSYAdY8f2ccT4FNcPNuu18y20/UR7kj/mAB0ZCDpRnAB9gAEJ22mQvYANDPUdXeUCUDd40f28QT4FBfPtus1s+10fYQ70j8mAB0ZSLoRXIA9AMFJm6mQPQDNDHXdHWUCUPf4kX08AV7E49l2vWb2AHR9hDvSPyYAHRlIuhFcgAlAcNJmKmTbaWao6+4oE4C6x4/sEUCgPAH2AJQ3JmTUQ4AJQA8U7kJAAnyKYzMYV4BtZ1w51ksqwAQgKTeNVSTAi3hFg1VYquwBKGxASKe3ABOA3i7ciwACCIwrwORxXDnWSyrABCApN41VJMCLeEWDVViq7AEobEBIp7cAE4DeLtyLAAIIjCvA5HFcOdZLKsAEICk3jVUkwIt4RYNVWKrsAShsQEintwATgN4u3IsAEwC2gXEF2HbGlWO9pAJMAJJy0xgCCDQgwB6ABga5C11kAtCFUaQPMQT4FBdDtY062XbaGOfqe8kEoPohpAMIIFCYAHsAChsQ0uktwASgtwv3IsCnOLaBcQXYdsaVY72kAkwAknLTWEUCvIhXNFiFpcoegMIGhHR6CzAB6O3CvQgggMC4Akwex5VjvaQCTACSctNYRQK8iFc0WIWlyrZT2ICQTm8BJgC9XbgXAQQQGFdgvXFXZD0EUgowAUipTVs1CaxVU7LkWpTAwqKyIRkE+ggwAegDw93NC2zavAAA4wpsPu6KrIdASgEmACm1aasmASYANY1WWbkuVjprlJUS2SAwV4AJwFwT7kHAArvCgMCYAutrvd3GXJfVEEgmwAQgGTUNVSSwmnJ9SUX5kmp5AoeVlxIZIbCqgF/oKAggsKqAP71dsOpd/A+BkQSWaukdFLeMtBYLI5BQgD0ACbFpqhqBt1STKYmWKuBvAnyo1OTICwELrA4DAgisIvA8/e+DCvaOrcLCf8YQeJbWeVhx1hjrsgoC0QWYAEQnpoGKBPz1rdMUG1WUM6mWLfCiqe3pTP31ZICCAAIIIFCYwBOVz0UKX8aVwCD0NuBt6wAFBYFiBNgDUMxQkEhGgZeq7VMV22fMgaa7LbCFuvfHilcqPLm4TrFMQUEgmwDHObPR03ABAs9RDv+gOKSAXEihLQEfDjhPcc7U39/o75WKpQoKAkkEmAAkYaaRggSeqlwOUrxW4RP+KOkF7lKT/Y6H36vHHuiT0v26v9+nZtfnevuVO/o9oPvvVjzU53G353Z7FefpfHuVR3Tnnb0emLrPb/TeEzC7LNcdSxQ3KpzTPYoHFRQEggswAQhOSoWZBdZU+74S24YK73b17e0Uz1DspXiSYrrM9+I+yZtNvxd3tzvfm41f/O+bTm7W30nebPxG5DekXmW+Nxjn4px6Fb85uS+9it/Y+CTbS4b7EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBFAL/H9AaUSKIgSxGAAAAAElFTkSuQmCC"/>
|
|
</defs>
|
|
</svg>
|