From ff5c854192dafd99d57204ce690d6fbe3828ceb6 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 24 May 2023 21:36:01 +0200 Subject: [PATCH 01/74] Add PWA, service worker and Web Push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use new notification request/opt-in flow for push - Implement unsubscribing - Implement muting - Implement emojis in title - Add iOS specific PWA warning - Don’t use websockets when web push is enabled - Fix duplicate notifications - Implement default web push setting - Implement changing subscription type - Implement web push subscription refresh - Implement web push notification click --- .gitignore | 1 + cmd/serve.go | 17 + cmd/web_push.go | 39 + docs/config.md | 31 +- docs/develop.md | 63 +- go.mod | 2 + go.sum | 5 + server/config.go | 11 +- server/errors.go | 1 + server/server.go | 290 +- server/server.yml | 10 + server/server_account.go | 7 + server/server_middleware.go | 9 + server/server_test.go | 13 + server/smtp_sender.go | 24 - server/types.go | 24 + server/util.go | 24 + server/web_push.go | 132 + web/.eslintrc | 3 +- web/index.html | 7 + web/package-lock.json | 2932 ++++++++++++++++- web/package.json | 3 +- web/public/config.js | 2 +- web/public/static/images/apple-touch-icon.png | Bin 0 -> 15584 bytes web/public/static/images/mask-icon.svg | 20 + web/public/static/images/pwa-192x192.png | Bin 0 -> 6614 bytes web/public/static/images/pwa-512x512.png | Bin 0 -> 19716 bytes web/public/static/langs/en.json | 18 +- web/public/sw.js | 111 + web/src/app/AccountApi.js | 4 + web/src/app/Api.js | 59 + web/src/app/ConnectionManager.js | 17 +- web/src/app/Notifier.js | 102 +- web/src/app/Poller.js | 9 +- web/src/app/Prefs.js | 30 +- web/src/app/Pruner.js | 4 + web/src/app/Session.js | 12 +- web/src/app/SessionReplica.js | 44 + web/src/app/SubscriptionManager.js | 198 +- web/src/app/UserManager.js | 17 +- web/src/app/WebPushWorker.js | 46 + web/src/app/db.js | 21 - web/src/app/getDb.js | 34 + web/src/app/utils.js | 18 +- web/src/components/Account.jsx | 7 +- web/src/components/ActionBar.jsx | 6 +- web/src/components/App.jsx | 4 + web/src/components/Navigation.jsx | 44 +- web/src/components/Preferences.jsx | 32 + web/src/components/SubscribeDialog.jsx | 121 +- web/src/components/SubscriptionPopup.jsx | 168 +- web/src/components/hooks.js | 33 +- web/vite.config.js | 61 +- 53 files changed, 4502 insertions(+), 388 deletions(-) create mode 100644 cmd/web_push.go create mode 100644 server/web_push.go create mode 100644 web/public/static/images/apple-touch-icon.png create mode 100644 web/public/static/images/mask-icon.svg create mode 100644 web/public/static/images/pwa-192x192.png create mode 100644 web/public/static/images/pwa-512x512.png create mode 100644 web/public/sw.js create mode 100644 web/src/app/SessionReplica.js create mode 100644 web/src/app/WebPushWorker.js delete mode 100644 web/src/app/db.js create mode 100644 web/src/app/getDb.js diff --git a/.gitignore b/.gitignore index f695607e2..b60c9b231 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ secrets/ node_modules/ .DS_Store __pycache__ +web/dev-dist/ \ No newline at end of file diff --git a/cmd/serve.go b/cmd/serve.go index 5d5381bf2..a5105bcd1 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -94,6 +94,11 @@ var flagsServe = append( altsrc.NewBoolFlag(&cli.BoolFlag{Name: "enable-metrics", Aliases: []string{"enable_metrics"}, EnvVars: []string{"NTFY_ENABLE_METRICS"}, Value: false, Usage: "if set, Prometheus metrics are exposed via the /metrics endpoint"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "metrics-listen-http", Aliases: []string{"metrics_listen_http"}, EnvVars: []string{"NTFY_METRICS_LISTEN_HTTP"}, Usage: "ip:port used to expose the metrics endpoint (implicitly enables metrics)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "profile-listen-http", Aliases: []string{"profile_listen_http"}, EnvVars: []string{"NTFY_PROFILE_LISTEN_HTTP"}, Usage: "ip:port used to expose the profiling endpoints (implicitly enables profiling)"}), + altsrc.NewBoolFlag(&cli.BoolFlag{Name: "web-push-enabled", Aliases: []string{"web_push_enabled"}, EnvVars: []string{"NTFY_WEB_PUSH_ENABLED"}, Usage: "enable web push (requires public and private key)"}), + altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-public-key", Aliases: []string{"web_push_public_key"}, EnvVars: []string{"NTFY_WEB_PUSH_PUBLIC_KEY"}, Usage: "public key used for web push notifications"}), + altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-private-key", Aliases: []string{"web_push_private_key"}, EnvVars: []string{"NTFY_WEB_PUSH_PRIVATE_KEY"}, Usage: "private key used for web push notifications"}), + altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-subscriptions-file", Aliases: []string{"web_push_subscriptions_file"}, EnvVars: []string{"NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE"}, Usage: "file used to store web push subscriptions"}), + altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-email-address", Aliases: []string{"web_push_email_address"}, EnvVars: []string{"NTFY_WEB_PUSH_EMAIL_ADDRESS"}, Usage: "e-mail address of sender, required to use browser push services"}), ) var cmdServe = &cli.Command{ @@ -129,6 +134,11 @@ func execServe(c *cli.Context) error { keyFile := c.String("key-file") certFile := c.String("cert-file") firebaseKeyFile := c.String("firebase-key-file") + webPushEnabled := c.Bool("web-push-enabled") + webPushPrivateKey := c.String("web-push-private-key") + webPushPublicKey := c.String("web-push-public-key") + webPushSubscriptionsFile := c.String("web-push-subscriptions-file") + webPushEmailAddress := c.String("web-push-email-address") cacheFile := c.String("cache-file") cacheDuration := c.Duration("cache-duration") cacheStartupQueries := c.String("cache-startup-queries") @@ -183,6 +193,8 @@ func execServe(c *cli.Context) error { // Check values if firebaseKeyFile != "" && !util.FileExists(firebaseKeyFile) { return errors.New("if set, FCM key file must exist") + } else if webPushEnabled && (webPushPrivateKey == "" || webPushPublicKey == "" || webPushSubscriptionsFile == "" || webPushEmailAddress == "" || baseURL == "") { + return errors.New("if web push is enabled, web-push-private-key, web-push-public-key, web-push-subscriptions-file, web-push-email-address, and base-url should be set. run 'ntfy web-push-keys' to generate keys") } else if keepaliveInterval < 5*time.Second { return errors.New("keepalive interval cannot be lower than five seconds") } else if managerInterval < 5*time.Second { @@ -347,6 +359,11 @@ func execServe(c *cli.Context) error { conf.MetricsListenHTTP = metricsListenHTTP conf.ProfileListenHTTP = profileListenHTTP conf.Version = c.App.Version + conf.WebPushEnabled = webPushEnabled + conf.WebPushPrivateKey = webPushPrivateKey + conf.WebPushPublicKey = webPushPublicKey + conf.WebPushSubscriptionsFile = webPushSubscriptionsFile + conf.WebPushEmailAddress = webPushEmailAddress // Set up hot-reloading of config go sigHandlerConfigReload(config) diff --git a/cmd/web_push.go b/cmd/web_push.go new file mode 100644 index 000000000..becaffd75 --- /dev/null +++ b/cmd/web_push.go @@ -0,0 +1,39 @@ +//go:build !noserver + +package cmd + +import ( + "fmt" + + "github.com/SherClockHolmes/webpush-go" + "github.com/urfave/cli/v2" +) + +func init() { + commands = append(commands, cmdWebPush) +} + +var cmdWebPush = &cli.Command{ + Name: "web-push-keys", + Usage: "Generate web push VAPID keys", + UsageText: "ntfy web-push-keys", + Category: categoryServer, + Action: generateWebPushKeys, +} + +func generateWebPushKeys(c *cli.Context) error { + privateKey, publicKey, err := webpush.GenerateVAPIDKeys() + if err != nil { + return err + } + + fmt.Fprintf(c.App.ErrWriter, `Add the following lines to your config file: +web-push-enabled: true +web-push-public-key: %s +web-push-private-key: %s +web-push-subscriptions-file: +web-push-email-address: +`, publicKey, privateKey) + + return nil +} diff --git a/docs/config.md b/docs/config.md index df1f2cd62..774f9b2fc 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1285,13 +1285,17 @@ variable before running the `ntfy` command (e.g. `export NTFY_LISTEN_HTTP=:80`). | `stripe-secret-key` | `NTFY_STRIPE_SECRET_KEY` | *string* | - | Payments: Key used for the Stripe API communication, this enables payments | | `stripe-webhook-key` | `NTFY_STRIPE_WEBHOOK_KEY` | *string* | - | Payments: Key required to validate the authenticity of incoming webhooks from Stripe | | `billing-contact` | `NTFY_BILLING_CONTACT` | *email address* or *website* | - | Payments: Email or website displayed in Upgrade dialog as a billing contact | +| `web-push-enabled` | `NTFY_WEB_PUSH_ENABLED` | *boolean* (`true` or `false`) | - | Web Push: Enable/disable (requires private and public key below). | +| `web-push-public-key` | `NTFY_WEB_PUSH_PUBLIC_KEY` | *string* | - | Web Push: Public Key. Run `ntfy web-push-keys` to generate | +| `web-push-private-key` | `NTFY_WEB_PUSH_PRIVATE_KEY` | *string* | - | Web Push: Private Key. Run `ntfy web-push-keys` to generate | +| `web-push-subscriptions-file` | `NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE` | *string* | - | Web Push: Subscriptions file | +| `web-push-email-address` | `NTFY_WEB_PUSH_EMAIL_ADDRESS` | *string* | - | Web Push: Sender email address | The format for a *duration* is: `(smh)`, e.g. 30s, 20m or 1h. The format for a *size* is: `(GMK)`, e.g. 1G, 200M or 4000k. ## Command line options ``` -$ ntfy serve --help NAME: ntfy serve - Run the ntfy server @@ -1321,8 +1325,8 @@ OPTIONS: --log-file value, --log_file value set log file, default is STDOUT [$NTFY_LOG_FILE] --config value, -c value config file (default: /etc/ntfy/server.yml) [$NTFY_CONFIG_FILE] --base-url value, --base_url value, -B value externally visible base URL for this host (e.g. https://ntfy.sh) [$NTFY_BASE_URL] - --listen-http value, --listen_http value, -l value ip:port used to as HTTP listen address (default: ":80") [$NTFY_LISTEN_HTTP] - --listen-https value, --listen_https value, -L value ip:port used to as HTTPS listen address [$NTFY_LISTEN_HTTPS] + --listen-http value, --listen_http value, -l value ip:port used as HTTP listen address (default: ":80") [$NTFY_LISTEN_HTTP] + --listen-https value, --listen_https value, -L value ip:port used as HTTPS listen address [$NTFY_LISTEN_HTTPS] --listen-unix value, --listen_unix value, -U value listen on unix socket path [$NTFY_LISTEN_UNIX] --listen-unix-mode value, --listen_unix_mode value file permissions of unix socket, e.g. 0700 (default: system default) [$NTFY_LISTEN_UNIX_MODE] --key-file value, --key_file value, -K value private key file, if listen-https is set [$NTFY_KEY_FILE] @@ -1343,11 +1347,12 @@ OPTIONS: --keepalive-interval value, --keepalive_interval value, -k value interval of keepalive messages (default: 45s) [$NTFY_KEEPALIVE_INTERVAL] --manager-interval value, --manager_interval value, -m value interval of for message pruning and stats printing (default: 1m0s) [$NTFY_MANAGER_INTERVAL] --disallowed-topics value, --disallowed_topics value [ --disallowed-topics value, --disallowed_topics value ] topics that are not allowed to be used [$NTFY_DISALLOWED_TOPICS] - --web-root value, --web_root value sets web root to landing page (home), web app (app) or disabled (disable) (default: "app") [$NTFY_WEB_ROOT] + --web-root value, --web_root value sets root of the web app (e.g. /, or /app), or disables it (disable) (default: "/") [$NTFY_WEB_ROOT] --enable-signup, --enable_signup allows users to sign up via the web app, or API (default: false) [$NTFY_ENABLE_SIGNUP] --enable-login, --enable_login allows users to log in via the web app, or API (default: false) [$NTFY_ENABLE_LOGIN] --enable-reservations, --enable_reservations allows users to reserve topics (if their tier allows it) (default: false) [$NTFY_ENABLE_RESERVATIONS] --upstream-base-url value, --upstream_base_url value forward poll request to an upstream server, this is needed for iOS push notifications for self-hosted servers [$NTFY_UPSTREAM_BASE_URL] + --upstream-access-token value, --upstream_access_token value access token to use for the upstream server; needed only if upstream rate limits are exceeded or upstream server requires auth [$NTFY_UPSTREAM_ACCESS_TOKEN] --smtp-sender-addr value, --smtp_sender_addr value SMTP server address (host:port) for outgoing emails [$NTFY_SMTP_SENDER_ADDR] --smtp-sender-user value, --smtp_sender_user value SMTP user (if e-mail sending is enabled) [$NTFY_SMTP_SENDER_USER] --smtp-sender-pass value, --smtp_sender_pass value SMTP password (if e-mail sending is enabled) [$NTFY_SMTP_SENDER_PASS] @@ -1355,6 +1360,10 @@ OPTIONS: --smtp-server-listen value, --smtp_server_listen value SMTP server address (ip:port) for incoming emails, e.g. :25 [$NTFY_SMTP_SERVER_LISTEN] --smtp-server-domain value, --smtp_server_domain value SMTP domain for incoming e-mail, e.g. ntfy.sh [$NTFY_SMTP_SERVER_DOMAIN] --smtp-server-addr-prefix value, --smtp_server_addr_prefix value SMTP email address prefix for topics to prevent spam (e.g. 'ntfy-') [$NTFY_SMTP_SERVER_ADDR_PREFIX] + --twilio-account value, --twilio_account value Twilio account SID, used for phone calls, e.g. AC123... [$NTFY_TWILIO_ACCOUNT] + --twilio-auth-token value, --twilio_auth_token value Twilio auth token [$NTFY_TWILIO_AUTH_TOKEN] + --twilio-phone-number value, --twilio_phone_number value Twilio number to use for outgoing calls [$NTFY_TWILIO_PHONE_NUMBER] + --twilio-verify-service value, --twilio_verify_service value Twilio Verify service ID, used for phone number verification [$NTFY_TWILIO_VERIFY_SERVICE] --global-topic-limit value, --global_topic_limit value, -T value total number of topics allowed (default: 15000) [$NTFY_GLOBAL_TOPIC_LIMIT] --visitor-subscription-limit value, --visitor_subscription_limit value number of subscriptions per visitor (default: 30) [$NTFY_VISITOR_SUBSCRIPTION_LIMIT] --visitor-attachment-total-size-limit value, --visitor_attachment_total_size_limit value total storage limit used for attachments per visitor (default: "100M") [$NTFY_VISITOR_ATTACHMENT_TOTAL_SIZE_LIMIT] @@ -1365,10 +1374,18 @@ OPTIONS: --visitor-message-daily-limit value, --visitor_message_daily_limit value max messages per visitor per day, derived from request limit if unset (default: 0) [$NTFY_VISITOR_MESSAGE_DAILY_LIMIT] --visitor-email-limit-burst value, --visitor_email_limit_burst value initial limit of e-mails per visitor (default: 16) [$NTFY_VISITOR_EMAIL_LIMIT_BURST] --visitor-email-limit-replenish value, --visitor_email_limit_replenish value interval at which burst limit is replenished (one per x) (default: 1h0m0s) [$NTFY_VISITOR_EMAIL_LIMIT_REPLENISH] + --visitor-subscriber-rate-limiting, --visitor_subscriber_rate_limiting enables subscriber-based rate limiting (default: false) [$NTFY_VISITOR_SUBSCRIBER_RATE_LIMITING] --behind-proxy, --behind_proxy, -P if set, use X-Forwarded-For header to determine visitor IP address (for rate limiting) (default: false) [$NTFY_BEHIND_PROXY] --stripe-secret-key value, --stripe_secret_key value key used for the Stripe API communication, this enables payments [$NTFY_STRIPE_SECRET_KEY] --stripe-webhook-key value, --stripe_webhook_key value key required to validate the authenticity of incoming webhooks from Stripe [$NTFY_STRIPE_WEBHOOK_KEY] - --billing-contact value, --billing_contact value e-mail or website to display in upgrade dialog (only if payments are enabled) [$NTFY_BILLING_CONTACT] - --help, -h show help (default: false) + --billing-contact value, --billing_contact value e-mail or website to display in upgrade dialog (only if payments are enabled) [$NTFY_BILLING_CONTACT] + --enable-metrics, --enable_metrics if set, Prometheus metrics are exposed via the /metrics endpoint (default: false) [$NTFY_ENABLE_METRICS] + --metrics-listen-http value, --metrics_listen_http value ip:port used to expose the metrics endpoint (implicitly enables metrics) [$NTFY_METRICS_LISTEN_HTTP] + --profile-listen-http value, --profile_listen_http value ip:port used to expose the profiling endpoints (implicitly enables profiling) [$NTFY_PROFILE_LISTEN_HTTP] + --web-push-enabled, --web_push_enabled enable web push (requires public and private key) (default: false) [$NTFY_WEB_PUSH_ENABLED] + --web-push-public-key value, --web_push_public_key value public key used for web push notifications [$NTFY_WEB_PUSH_PUBLIC_KEY] + --web-push-private-key value, --web_push_private_key value private key used for web push notifications [$NTFY_WEB_PUSH_PRIVATE_KEY] + --web-push-subscriptions-file value, --web_push_subscriptions_file value file used to store web push subscriptions [$NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE] + --web-push-email-address value, --web_push_email_address value e-mail address of sender, required to use browser push services [$NTFY_WEB_PUSH_EMAIL_ADDRESS] + --help, -h show help ``` - diff --git a/docs/develop.md b/docs/develop.md index baab3f3a1..6be65abd4 100644 --- a/docs/develop.md +++ b/docs/develop.md @@ -16,7 +16,7 @@ server consists of three components: * **The documentation** is generated by [MkDocs](https://www.mkdocs.org/) and [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/), which is written in [Python](https://www.python.org/). You'll need Python and MkDocs (via `pip`) only if you want to build the docs. -* **The web app** is written in [React](https://reactjs.org/), using [MUI](https://mui.com/). It uses [Create React App](https://create-react-app.dev/) +* **The web app** is written in [React](https://reactjs.org/), using [MUI](https://mui.com/). It uses [Vite](https://vitejs.dev/) to build the production build. If you want to modify the web app, you need [nodejs](https://nodejs.org/en/) (for `npm`) and install all the 100,000 dependencies (*sigh*). @@ -241,6 +241,67 @@ $ cd web $ npm start ``` +### Testing Web Push locally + +Reference: + +#### With the dev servers + +1. Get web push keys `go run main.go web-push-keys` + +2. Run the server with web push enabled + + ```sh + go run main.go \ + --log-level debug \ + serve \ + --web-push-enabled \ + --web-push-public-key KEY \ + --web-push-private-key KEY \ + --web-push-subscriptions-file=/tmp/subscriptions.db + ``` + +3. In `web/public/config.js` set `base_url` to `http://localhost`. This is required as web push can only be used + with the server matching the `base_url` + +4. Run `ENABLE_DEV_PWA=1 npm run start` - this enables the dev service worker + +5. Set your browser to allow testing service workers insecurely: + + - Chrome: + + Open Chrome with special flags allowing insecure localhost service worker testing (regularly dismissing SSL warnings is not enough) + + ```sh + # for example, macOS + /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \ + --user-data-dir=/tmp/foo \ + --unsafely-treat-insecure-origin-as-secure=http://localhost:3000,http://localhost + ``` + + - Firefox: + + See here: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API + + > Note: On Firefox, for testing you can run service workers over HTTP (insecurely); simply check the Enable Service Workers over HTTP (when toolbox is open) option in the Firefox Devtools options/gear menu + + - Safari, iOS: + + There doesn't seem to be a good way to do this currently. The only way is to serve a valid HTTPS certificate. + + This is beyond the scope of this guide, but you can try `mkcert`, a number of reverse proxies such as Traefik and Caddy, + or tunneling software such as [Cloudflare Tunnels][cloudflare_tunnels] or ngrok. + +[cloudflare_tunnels]: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/do-more-with-tunnels/trycloudflare/ + +6. Open +#### With a built package + +1. Run `make web-build` + +2. Follow steps 1, 2, 4 and 5 from "With the dev servers" + +3. Open ### Build the docs The sources for the docs live in `docs/`. Similarly to the web app, you can simply run `make docs` to build the documentation. As long as you have `mkdocs` installed (see above), this should work fine: diff --git a/go.mod b/go.mod index 19af7ba56..dda58c9b8 100644 --- a/go.mod +++ b/go.mod @@ -39,10 +39,12 @@ require ( cloud.google.com/go/longrunning v0.5.0 // indirect github.com/AlekSi/pointer v1.2.0 // indirect github.com/MicahParks/keyfunc v1.9.0 // indirect + github.com/SherClockHolmes/webpush-go v1.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emersion/go-sasl v0.0.0-20220912192320-0145f2c60ead // indirect + github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect diff --git a/go.sum b/go.sum index 999fc8acd..d8e78b86d 100644 --- a/go.sum +++ b/go.sum @@ -23,6 +23,8 @@ github.com/BurntSushi/toml v1.3.1 h1:rHnDkSK+/g6DlREUK73PkmIs60pqrnuduK+JmP++JmU github.com/BurntSushi/toml v1.3.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/MicahParks/keyfunc v1.9.0 h1:lhKd5xrFHLNOWrDc4Tyb/Q1AJ4LCzQ48GVJyVIID3+o= github.com/MicahParks/keyfunc v1.9.0/go.mod h1:IdnCilugA0O/99dW+/MkvlyrsX8+L8+x95xuVNtM5jw= +github.com/SherClockHolmes/webpush-go v1.2.0 h1:sGv0/ZWCvb1HUH+izLqrb2i68HuqD/0Y+AmGQfyqKJA= +github.com/SherClockHolmes/webpush-go v1.2.0/go.mod h1:w6X47YApe/B9wUz2Wh8xukxlyupaxSSEbu6yKJcHN2w= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -57,6 +59,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= @@ -149,6 +153,7 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= diff --git a/server/config.go b/server/config.go index a876926e4..f7c1813dc 100644 --- a/server/config.go +++ b/server/config.go @@ -1,10 +1,11 @@ package server import ( - "heckel.io/ntfy/user" "io/fs" "net/netip" "time" + + "heckel.io/ntfy/user" ) // Defines default config settings (excluding limits, see below) @@ -146,6 +147,11 @@ type Config struct { EnableMetrics bool AccessControlAllowOrigin string // CORS header field to restrict access from web clients Version string // injected by App + WebPushEnabled bool + WebPushPrivateKey string + WebPushPublicKey string + WebPushSubscriptionsFile string + WebPushEmailAddress string } // NewConfig instantiates a default new server config @@ -227,5 +233,8 @@ func NewConfig() *Config { EnableReservations: false, AccessControlAllowOrigin: "*", Version: "", + WebPushPrivateKey: "", + WebPushPublicKey: "", + WebPushSubscriptionsFile: "", } } diff --git a/server/errors.go b/server/errors.go index eee916b56..d13e2969e 100644 --- a/server/errors.go +++ b/server/errors.go @@ -114,6 +114,7 @@ var ( errHTTPBadRequestAnonymousCallsNotAllowed = &errHTTP{40035, http.StatusBadRequest, "invalid request: anonymous phone calls are not allowed", "https://ntfy.sh/docs/publish/#phone-calls", nil} errHTTPBadRequestPhoneNumberVerifyChannelInvalid = &errHTTP{40036, http.StatusBadRequest, "invalid request: verification channel must be 'sms' or 'call'", "https://ntfy.sh/docs/publish/#phone-calls", nil} errHTTPBadRequestDelayNoCall = &errHTTP{40037, http.StatusBadRequest, "delayed call notifications are not supported", "", nil} + errHTTPBadRequestWebPushSubscriptionInvalid = &errHTTP{40038, http.StatusBadRequest, "invalid request: web push payload malformed", "", nil} errHTTPNotFound = &errHTTP{40401, http.StatusNotFound, "page not found", "", nil} errHTTPUnauthorized = &errHTTP{40101, http.StatusUnauthorized, "unauthorized", "https://ntfy.sh/docs/publish/#authentication", nil} errHTTPForbidden = &errHTTP{40301, http.StatusForbidden, "forbidden", "https://ntfy.sh/docs/publish/#authentication", nil} diff --git a/server/server.go b/server/server.go index d2fac01f7..cba742801 100644 --- a/server/server.go +++ b/server/server.go @@ -9,13 +9,6 @@ import ( "encoding/json" "errors" "fmt" - "github.com/emersion/go-smtp" - "github.com/gorilla/websocket" - "github.com/prometheus/client_golang/prometheus/promhttp" - "golang.org/x/sync/errgroup" - "heckel.io/ntfy/log" - "heckel.io/ntfy/user" - "heckel.io/ntfy/util" "io" "net" "net/http" @@ -32,32 +25,43 @@ import ( "sync" "time" "unicode/utf8" + + "github.com/emersion/go-smtp" + "github.com/gorilla/websocket" + "github.com/prometheus/client_golang/prometheus/promhttp" + "golang.org/x/sync/errgroup" + "heckel.io/ntfy/log" + "heckel.io/ntfy/user" + "heckel.io/ntfy/util" + + "github.com/SherClockHolmes/webpush-go" ) // Server is the main server, providing the UI and API for ntfy type Server struct { - config *Config - httpServer *http.Server - httpsServer *http.Server - httpMetricsServer *http.Server - httpProfileServer *http.Server - unixListener net.Listener - smtpServer *smtp.Server - smtpServerBackend *smtpBackend - smtpSender mailer - topics map[string]*topic - visitors map[string]*visitor // ip: or user: - firebaseClient *firebaseClient - messages int64 // Total number of messages (persisted if messageCache enabled) - messagesHistory []int64 // Last n values of the messages counter, used to determine rate - userManager *user.Manager // Might be nil! - messageCache *messageCache // Database that stores the messages - fileCache *fileCache // File system based cache that stores attachments - stripe stripeAPI // Stripe API, can be replaced with a mock - priceCache *util.LookupCache[map[string]int64] // Stripe price ID -> price as cents (USD implied!) - metricsHandler http.Handler // Handles /metrics if enable-metrics set, and listen-metrics-http not set - closeChan chan bool - mu sync.RWMutex + config *Config + httpServer *http.Server + httpsServer *http.Server + httpMetricsServer *http.Server + httpProfileServer *http.Server + unixListener net.Listener + smtpServer *smtp.Server + smtpServerBackend *smtpBackend + smtpSender mailer + topics map[string]*topic + visitors map[string]*visitor // ip: or user: + firebaseClient *firebaseClient + messages int64 // Total number of messages (persisted if messageCache enabled) + messagesHistory []int64 // Last n values of the messages counter, used to determine rate + userManager *user.Manager // Might be nil! + messageCache *messageCache // Database that stores the messages + webPushSubscriptionStore *webPushSubscriptionStore // Database that stores web push subscriptions + fileCache *fileCache // File system based cache that stores attachments + stripe stripeAPI // Stripe API, can be replaced with a mock + priceCache *util.LookupCache[map[string]int64] // Stripe price ID -> price as cents (USD implied!) + metricsHandler http.Handler // Handles /metrics if enable-metrics set, and listen-metrics-http not set + closeChan chan bool + mu sync.RWMutex } // handleFunc extends the normal http.HandlerFunc to be able to easily return errors @@ -65,17 +69,21 @@ type handleFunc func(http.ResponseWriter, *http.Request, *visitor) error var ( // If changed, don't forget to update Android App and auth_sqlite.go - topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No /! - topicPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}$`) // Regex must match JS & Android app! - externalTopicPathRegex = regexp.MustCompile(`^/[^/]+\.[^/]+/[-_A-Za-z0-9]{1,64}$`) // Extended topic path, for web-app, e.g. /example.com/mytopic - jsonPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/json$`) - ssePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/sse$`) - rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) - wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) - authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) - publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}/(publish|send|trigger)$`) + topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No /! + topicPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}$`) // Regex must match JS & Android app! + externalTopicPathRegex = regexp.MustCompile(`^/[^/]+\.[^/]+/[-_A-Za-z0-9]{1,64}$`) // Extended topic path, for web-app, e.g. /example.com/mytopic + jsonPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/json$`) + ssePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/sse$`) + rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) + wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) + authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) + webPushPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/web-push$`) + webPushUnsubscribePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/web-push/unsubscribe$`) + publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}/(publish|send|trigger)$`) webConfigPath = "/config.js" + webManifestPath = "/manifest.webmanifest" + webServiceWorkerPath = "/sw.js" accountPath = "/account" matrixPushPath = "/_matrix/push/v1/notify" metricsPath = "/metrics" @@ -98,6 +106,7 @@ var ( apiAccountBillingSubscriptionCheckoutSuccessTemplate = "/v1/account/billing/subscription/success/{CHECKOUT_SESSION_ID}" apiAccountBillingSubscriptionCheckoutSuccessRegex = regexp.MustCompile(`/v1/account/billing/subscription/success/(.+)$`) apiAccountReservationSingleRegex = regexp.MustCompile(`/v1/account/reservation/([-_A-Za-z0-9]{1,64})$`) + apiWebPushConfig = "/v1/web-push-config" staticRegex = regexp.MustCompile(`^/static/.+`) docsRegex = regexp.MustCompile(`^/docs(|/.*)$`) fileRegex = regexp.MustCompile(`^/file/([-_A-Za-z0-9]{1,64})(?:\.[A-Za-z0-9]{1,16})?$`) @@ -151,6 +160,10 @@ func New(conf *Config) (*Server, error) { if err != nil { return nil, err } + webPushSubscriptionStore, err := createWebPushSubscriptionStore(conf) + if err != nil { + return nil, err + } topics, err := messageCache.Topics() if err != nil { return nil, err @@ -188,17 +201,18 @@ func New(conf *Config) (*Server, error) { firebaseClient = newFirebaseClient(sender, auther) } s := &Server{ - config: conf, - messageCache: messageCache, - fileCache: fileCache, - firebaseClient: firebaseClient, - smtpSender: mailer, - topics: topics, - userManager: userManager, - messages: messages, - messagesHistory: []int64{messages}, - visitors: make(map[string]*visitor), - stripe: stripe, + config: conf, + messageCache: messageCache, + webPushSubscriptionStore: webPushSubscriptionStore, + fileCache: fileCache, + firebaseClient: firebaseClient, + smtpSender: mailer, + topics: topics, + userManager: userManager, + messages: messages, + messagesHistory: []int64{messages}, + visitors: make(map[string]*visitor), + stripe: stripe, } s.priceCache = util.NewLookupCache(s.fetchStripePrices, conf.StripePriceCacheDuration) return s, nil @@ -213,6 +227,14 @@ func createMessageCache(conf *Config) (*messageCache, error) { return newMemCache() } +func createWebPushSubscriptionStore(conf *Config) (*webPushSubscriptionStore, error) { + if !conf.WebPushEnabled { + return nil, nil + } + + return newWebPushSubscriptionStore(conf.WebPushSubscriptionsFile) +} + // Run executes the main server. It listens on HTTP (+ HTTPS, if configured), and starts // a manager go routine to print stats and prune messages. func (s *Server) Run() error { @@ -342,6 +364,9 @@ func (s *Server) closeDatabases() { s.userManager.Close() } s.messageCache.Close() + if s.webPushSubscriptionStore != nil { + s.webPushSubscriptionStore.Close() + } } // handle is the main entry point for all HTTP requests @@ -416,6 +441,10 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.handleHealth(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == webConfigPath { return s.ensureWebEnabled(s.handleWebConfig)(w, r, v) + } else if r.Method == http.MethodGet && r.URL.Path == webManifestPath { + return s.ensureWebEnabled(s.handleWebManifest)(w, r, v) + } else if r.Method == http.MethodGet && r.URL.Path == webServiceWorkerPath { + return s.ensureWebEnabled(s.handleStatic)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiUsersPath { return s.ensureAdmin(s.handleUsersGet)(w, r, v) } else if r.Method == http.MethodPut && r.URL.Path == apiUsersPath { @@ -474,6 +503,8 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.handleStats(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiTiersPath { return s.ensurePaymentsEnabled(s.handleBillingTiersGet)(w, r, v) + } else if r.Method == http.MethodGet && r.URL.Path == apiWebPushConfig { + return s.ensureWebPushEnabled(s.handleAPIWebPushConfig)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == matrixPushPath { return s.handleMatrixDiscovery(w) } else if r.Method == http.MethodGet && r.URL.Path == metricsPath && s.metricsHandler != nil { @@ -504,6 +535,10 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeWS))(w, r, v) } else if r.Method == http.MethodGet && authPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleTopicAuth))(w, r, v) + } else if r.Method == http.MethodPost && webPushPathRegex.MatchString(r.URL.Path) { + return s.limitRequestsWithTopic(s.authorizeTopicRead(s.ensureWebPushEnabled(s.handleTopicWebPushSubscribe)))(w, r, v) + } else if r.Method == http.MethodPost && webPushUnsubscribePathRegex.MatchString(r.URL.Path) { + return s.limitRequestsWithTopic(s.authorizeTopicRead(s.ensureWebPushEnabled(s.handleTopicWebPushUnsubscribe)))(w, r, v) } else if r.Method == http.MethodGet && (topicPathRegex.MatchString(r.URL.Path) || externalTopicPathRegex.MatchString(r.URL.Path)) { return s.ensureWebEnabled(s.handleTopic)(w, r, v) } @@ -535,6 +570,63 @@ func (s *Server) handleTopicAuth(w http.ResponseWriter, _ *http.Request, _ *visi return s.writeJSON(w, newSuccessResponse()) } +func (s *Server) handleAPIWebPushConfig(w http.ResponseWriter, _ *http.Request, _ *visitor) error { + response := &apiWebPushConfigResponse{ + PublicKey: s.config.WebPushPublicKey, + } + + return s.writeJSON(w, response) +} + +func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Request, v *visitor) error { + var username string + u := v.User() + if u != nil { + username = u.Name + } + + var sub webPushSubscribePayload + err := json.NewDecoder(r.Body).Decode(&sub) + + if err != nil || sub.BrowserSubscription.Endpoint == "" || sub.BrowserSubscription.Keys.P256dh == "" || sub.BrowserSubscription.Keys.Auth == "" { + return errHTTPBadRequestWebPushSubscriptionInvalid + } + + topic, err := fromContext[*topic](r, contextTopic) + if err != nil { + return err + } + + err = s.webPushSubscriptionStore.AddSubscription(topic.ID, username, sub) + if err != nil { + return err + } + + return s.writeJSON(w, newSuccessResponse()) +} + +func (s *Server) handleTopicWebPushUnsubscribe(w http.ResponseWriter, r *http.Request, _ *visitor) error { + var payload webPushUnsubscribePayload + + err := json.NewDecoder(r.Body).Decode(&payload) + + if err != nil { + return errHTTPBadRequestWebPushSubscriptionInvalid + } + + topic, err := fromContext[*topic](r, contextTopic) + if err != nil { + return err + } + + err = s.webPushSubscriptionStore.RemoveSubscription(topic.ID, payload.Endpoint) + if err != nil { + return err + } + + return s.writeJSON(w, newSuccessResponse()) +} + func (s *Server) handleHealth(w http.ResponseWriter, _ *http.Request, _ *visitor) error { response := &apiHealthResponse{ Healthy: true, @@ -564,6 +656,11 @@ func (s *Server) handleWebConfig(w http.ResponseWriter, _ *http.Request, _ *visi return err } +func (s *Server) handleWebManifest(w http.ResponseWriter, r *http.Request, v *visitor) error { + w.Header().Set("Content-Type", "application/manifest+json") + return s.handleStatic(w, r, v) +} + // handleMetrics returns Prometheus metrics. This endpoint is only called if enable-metrics is set, // and listen-metrics-http is not set. func (s *Server) handleMetrics(w http.ResponseWriter, r *http.Request, _ *visitor) error { @@ -763,6 +860,9 @@ func (s *Server) handlePublishInternal(r *http.Request, v *visitor) (*message, e if s.config.UpstreamBaseURL != "" && !unifiedpush { // UP messages are not sent to upstream go s.forwardPollRequest(v, m) } + if s.config.WebPushEnabled { + go s.publishToWebPushEndpoints(v, m) + } } else { logvrm(v, r, m).Tag(tagPublish).Debug("Message delayed, will process later") } @@ -877,6 +977,95 @@ func (s *Server) forwardPollRequest(v *visitor, m *message) { } } +func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { + subscriptions, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic(m.Topic) + + if err != nil { + logvm(v, m).Err(err).Warn("Unable to publish web push messages") + return + } + + failedCount := 0 + totalCount := len(subscriptions) + + wg := &sync.WaitGroup{} + wg.Add(totalCount) + + ctx := log.Context{"topic": m.Topic, "message_id": m.ID, "total_count": totalCount} + + // Importing the emojis in the service worker would add unnecessary complexity, + // simply do it here for web push notifications instead + var titleWithDefault string + var formattedTitle string + + emojis, _, err := toEmojis(m.Tags) + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") + return + } + + if m.Title == "" { + titleWithDefault = m.Topic + } else { + titleWithDefault = m.Title + } + + if len(emojis) > 0 { + formattedTitle = fmt.Sprintf("%s %s", strings.Join(emojis[:], " "), titleWithDefault) + } else { + formattedTitle = titleWithDefault + } + + for i, xi := range subscriptions { + go func(i int, sub webPushSubscription) { + defer wg.Done() + ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.Username, "topic": m.Topic, "message_id": m.ID} + + payload := &webPushPayload{ + SubscriptionID: fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), + Message: *m, + FormattedTitle: formattedTitle, + } + jsonPayload, err := json.Marshal(payload) + + if err != nil { + failedCount++ + logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") + return + } + + _, err = webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ + Subscriber: s.config.WebPushEmailAddress, + VAPIDPublicKey: s.config.WebPushPublicKey, + VAPIDPrivateKey: s.config.WebPushPrivateKey, + // deliverability on iOS isn't great with lower urgency values, + // and thus we can't really map lower ntfy priorities to lower urgency values + Urgency: webpush.UrgencyHigh, + }) + + if err != nil { + failedCount++ + logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") + + // probably need to handle different codes differently, + // but for now just expire the subscription on any error + err = s.webPushSubscriptionStore.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") + } + } + }(i, xi) + } + + ctx = log.Context{"topic": m.Topic, "message_id": m.ID, "failed_count": failedCount, "total_count": totalCount} + + if failedCount > 0 { + logvm(v, m).Fields(ctx).Warn("Unable to publish web push messages to %d of %d endpoints", failedCount, totalCount) + } else { + logvm(v, m).Fields(ctx).Debug("Published %d web push messages successfully", totalCount) + } +} + func (s *Server) parsePublishParams(r *http.Request, m *message) (cache bool, firebase bool, email, call string, unifiedpush bool, err *errHTTP) { cache = readBoolParam(r, true, "x-cache", "cache") firebase = readBoolParam(r, true, "x-firebase", "firebase") @@ -1692,6 +1881,9 @@ func (s *Server) sendDelayedMessage(v *visitor, m *message) error { if s.config.UpstreamBaseURL != "" { go s.forwardPollRequest(v, m) } + if s.config.WebPushEnabled { + go s.publishToWebPushEndpoints(v, m) + } if err := s.messageCache.MarkPublished(m); err != nil { return err } diff --git a/server/server.yml b/server/server.yml index 9c7972e95..ecb899947 100644 --- a/server/server.yml +++ b/server/server.yml @@ -38,6 +38,16 @@ # # firebase-key-file: +# Enable web push +# +# Run ntfy web-push-keys to generate the keys +# +# web-push-enabled: true +# web-push-public-key: "" +# web-push-private-key: "" +# web-push-subscriptions-file: "" +# web-push-email-address: "" + # If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory. # This allows for service restarts without losing messages in support of the since= parameter. # diff --git a/server/server_account.go b/server/server_account.go index 6e6a6864f..dbadb81a5 100644 --- a/server/server_account.go +++ b/server/server_account.go @@ -170,6 +170,13 @@ func (s *Server) handleAccountDelete(w http.ResponseWriter, r *http.Request, v * if _, err := s.userManager.Authenticate(u.Name, req.Password); err != nil { return errHTTPBadRequestIncorrectPasswordConfirmation } + if s.webPushSubscriptionStore != nil { + err := s.webPushSubscriptionStore.ExpireWebPushForUser(u.Name) + + if err != nil { + logvr(v, r).Err(err).Warn("Error removing web push subscriptions for %s", u.Name) + } + } if u.Billing.StripeSubscriptionID != "" { logvr(v, r).Tag(tagStripe).Info("Canceling billing subscription for user %s", u.Name) if _, err := s.stripe.CancelSubscription(u.Billing.StripeSubscriptionID); err != nil { diff --git a/server/server_middleware.go b/server/server_middleware.go index 7aea45a39..41c2706ce 100644 --- a/server/server_middleware.go +++ b/server/server_middleware.go @@ -58,6 +58,15 @@ func (s *Server) ensureWebEnabled(next handleFunc) handleFunc { } } +func (s *Server) ensureWebPushEnabled(next handleFunc) handleFunc { + return func(w http.ResponseWriter, r *http.Request, v *visitor) error { + if !s.config.WebPushEnabled { + return errHTTPNotFound + } + return next(w, r, v) + } +} + func (s *Server) ensureUserManager(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { if s.userManager == nil { diff --git a/server/server_test.go b/server/server_test.go index d7c4a7c67..b9f2912d4 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -238,6 +238,12 @@ func TestServer_WebEnabled(t *testing.T) { rr = request(t, s, "GET", "/config.js", "", nil) require.Equal(t, 404, rr.Code) + rr = request(t, s, "GET", "/manifest.webmanifest", "", nil) + require.Equal(t, 404, rr.Code) + + rr = request(t, s, "GET", "/sw.js", "", nil) + require.Equal(t, 404, rr.Code) + rr = request(t, s, "GET", "/static/css/home.css", "", nil) require.Equal(t, 404, rr.Code) @@ -250,6 +256,13 @@ func TestServer_WebEnabled(t *testing.T) { rr = request(t, s2, "GET", "/config.js", "", nil) require.Equal(t, 200, rr.Code) + + rr = request(t, s2, "GET", "/manifest.webmanifest", "", nil) + require.Equal(t, 200, rr.Code) + require.Equal(t, "application/manifest+json", rr.Header().Get("Content-Type")) + + rr = request(t, s2, "GET", "/sw.js", "", nil) + require.Equal(t, 200, rr.Code) } func TestServer_PublishLargeMessage(t *testing.T) { diff --git a/server/smtp_sender.go b/server/smtp_sender.go index 9093687ee..759ef3967 100644 --- a/server/smtp_sender.go +++ b/server/smtp_sender.go @@ -1,8 +1,6 @@ package server import ( - _ "embed" // required by go:embed - "encoding/json" "fmt" "mime" "net" @@ -130,25 +128,3 @@ This message was sent by {ip} at {time} via {topicURL}` body = strings.ReplaceAll(body, "{ip}", senderIP) return body, nil } - -var ( - //go:embed "mailer_emoji_map.json" - emojisJSON string -) - -func toEmojis(tags []string) (emojisOut []string, tagsOut []string, err error) { - var emojiMap map[string]string - if err = json.Unmarshal([]byte(emojisJSON), &emojiMap); err != nil { - return nil, nil, err - } - tagsOut = make([]string, 0) - emojisOut = make([]string, 0) - for _, t := range tags { - if emoji, ok := emojiMap[t]; ok { - emojisOut = append(emojisOut, emoji) - } else { - tagsOut = append(tagsOut, t) - } - } - return -} diff --git a/server/types.go b/server/types.go index 9e4ff558a..6eed5eef7 100644 --- a/server/types.go +++ b/server/types.go @@ -7,6 +7,7 @@ import ( "net/netip" "time" + "github.com/SherClockHolmes/webpush-go" "heckel.io/ntfy/util" ) @@ -401,6 +402,10 @@ type apiConfigResponse struct { DisallowedTopics []string `json:"disallowed_topics"` } +type apiWebPushConfigResponse struct { + PublicKey string `json:"public_key"` +} + type apiAccountBillingPrices struct { Month int64 `json:"month"` Year int64 `json:"year"` @@ -462,3 +467,22 @@ type apiStripeSubscriptionDeletedEvent struct { ID string `json:"id"` Customer string `json:"customer"` } + +type webPushPayload struct { + SubscriptionID string `json:"subscription_id"` + Message message `json:"message"` + FormattedTitle string `json:"formatted_title"` +} + +type webPushSubscription struct { + BrowserSubscription webpush.Subscription + Username string +} + +type webPushSubscribePayload struct { + BrowserSubscription webpush.Subscription `json:"browser_subscription"` +} + +type webPushUnsubscribePayload struct { + Endpoint string `json:"endpoint"` +} diff --git a/server/util.go b/server/util.go index 03eb86617..be724c76b 100644 --- a/server/util.go +++ b/server/util.go @@ -2,6 +2,8 @@ package server import ( "context" + _ "embed" // required by go:embed + "encoding/json" "fmt" "heckel.io/ntfy/util" "io" @@ -133,3 +135,25 @@ func maybeDecodeHeader(header string) string { } return decoded } + +var ( + //go:embed "mailer_emoji_map.json" + emojisJSON string +) + +func toEmojis(tags []string) (emojisOut []string, tagsOut []string, err error) { + var emojiMap map[string]string + if err = json.Unmarshal([]byte(emojisJSON), &emojiMap); err != nil { + return nil, nil, err + } + tagsOut = make([]string, 0) + emojisOut = make([]string, 0) + for _, t := range tags { + if emoji, ok := emojiMap[t]; ok { + emojisOut = append(emojisOut, emoji) + } else { + tagsOut = append(tagsOut, t) + } + } + return +} diff --git a/server/web_push.go b/server/web_push.go new file mode 100644 index 000000000..fe9f51492 --- /dev/null +++ b/server/web_push.go @@ -0,0 +1,132 @@ +package server + +import ( + "database/sql" + + _ "github.com/mattn/go-sqlite3" // SQLite driver +) + +// Messages cache +const ( + createWebPushSubscriptionsTableQuery = ` + BEGIN; + CREATE TABLE IF NOT EXISTS web_push_subscriptions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + topic TEXT NOT NULL, + username TEXT, + endpoint TEXT NOT NULL, + key_auth TEXT NOT NULL, + key_p256dh TEXT NOT NULL, + updated_at DATETIME DEFAULT CURRENT_TIMESTAMP + ); + CREATE INDEX IF NOT EXISTS idx_topic ON web_push_subscriptions (topic); + CREATE INDEX IF NOT EXISTS idx_endpoint ON web_push_subscriptions (endpoint); + CREATE UNIQUE INDEX IF NOT EXISTS idx_topic_endpoint ON web_push_subscriptions (topic, endpoint); + COMMIT; + ` + insertWebPushSubscriptionQuery = ` + INSERT OR REPLACE INTO web_push_subscriptions (topic, username, endpoint, key_auth, key_p256dh) + VALUES (?, ?, ?, ?, ?); + ` + deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM web_push_subscriptions WHERE endpoint = ?` + deleteWebPushSubscriptionByUsernameQuery = `DELETE FROM web_push_subscriptions WHERE username = ?` + deleteWebPushSubscriptionByTopicAndEndpointQuery = `DELETE FROM web_push_subscriptions WHERE topic = ? AND endpoint = ?` + + selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, username FROM web_push_subscriptions WHERE topic = ?` + + selectWebPushSubscriptionsCountQuery = `SELECT COUNT(*) FROM web_push_subscriptions` +) + +type webPushSubscriptionStore struct { + db *sql.DB +} + +func newWebPushSubscriptionStore(filename string) (*webPushSubscriptionStore, error) { + db, err := sql.Open("sqlite3", filename) + if err != nil { + return nil, err + } + if err := setupSubscriptionDb(db); err != nil { + return nil, err + } + webPushSubscriptionStore := &webPushSubscriptionStore{ + db: db, + } + return webPushSubscriptionStore, nil +} + +func setupSubscriptionDb(db *sql.DB) error { + // If 'messages' table does not exist, this must be a new database + rowsMC, err := db.Query(selectWebPushSubscriptionsCountQuery) + if err != nil { + return setupNewSubscriptionDb(db) + } + rowsMC.Close() + return nil +} + +func setupNewSubscriptionDb(db *sql.DB) error { + if _, err := db.Exec(createWebPushSubscriptionsTableQuery); err != nil { + return err + } + return nil +} + +func (c *webPushSubscriptionStore) AddSubscription(topic string, username string, subscription webPushSubscribePayload) error { + _, err := c.db.Exec( + insertWebPushSubscriptionQuery, + topic, + username, + subscription.BrowserSubscription.Endpoint, + subscription.BrowserSubscription.Keys.Auth, + subscription.BrowserSubscription.Keys.P256dh, + ) + return err +} + +func (c *webPushSubscriptionStore) RemoveSubscription(topic string, endpoint string) error { + _, err := c.db.Exec( + deleteWebPushSubscriptionByTopicAndEndpointQuery, + topic, + endpoint, + ) + return err +} + +func (c *webPushSubscriptionStore) GetSubscriptionsForTopic(topic string) (subscriptions []webPushSubscription, err error) { + rows, err := c.db.Query(selectWebPushSubscriptionsForTopicQuery, topic) + if err != nil { + return nil, err + } + defer rows.Close() + + data := []webPushSubscription{} + for rows.Next() { + i := webPushSubscription{} + err = rows.Scan(&i.BrowserSubscription.Endpoint, &i.BrowserSubscription.Keys.Auth, &i.BrowserSubscription.Keys.P256dh, &i.Username) + if err != nil { + return nil, err + } + data = append(data, i) + } + return data, nil +} + +func (c *webPushSubscriptionStore) ExpireWebPushEndpoint(endpoint string) error { + _, err := c.db.Exec( + deleteWebPushSubscriptionByEndpointQuery, + endpoint, + ) + return err +} + +func (c *webPushSubscriptionStore) ExpireWebPushForUser(username string) error { + _, err := c.db.Exec( + deleteWebPushSubscriptionByUsernameQuery, + username, + ) + return err +} +func (c *webPushSubscriptionStore) Close() error { + return c.db.Close() +} diff --git a/web/.eslintrc b/web/.eslintrc index adf661300..a21221fc4 100644 --- a/web/.eslintrc +++ b/web/.eslintrc @@ -33,5 +33,6 @@ "unnamedComponents": "arrow-function" } ] - } + }, + "overrides": [{ "files": ["./public/sw.js"], "rules": { "no-restricted-globals": "off" } }] } diff --git a/web/index.html b/web/index.html index c146e64db..82bae45e7 100644 --- a/web/index.html +++ b/web/index.html @@ -13,11 +13,18 @@ + + + + diff --git a/web/package-lock.json b/web/package-lock.json index a8637edbc..c0ef7ef40 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -37,7 +37,8 @@ "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "prettier": "^2.8.8", - "vite": "^4.3.9" + "vite": "^4.3.9", + "vite-plugin-pwa": "^0.15.0" } }, "node_modules/@ampproject/remapping": { @@ -118,193 +119,1432 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.3.tgz", + "integrity": "sha512-ahEoxgqNoYXm0k22TvOke48i1PkavGu0qGCmcq9ugi6gnmvKNaMjKBSrZTnWUi1CFEeNAUiVba0Wtzm03aSkJg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.22.1", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz", "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.0", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.0", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.1.tgz", + "integrity": "sha512-SowrZ9BWzYFgzUMwUmowbPSGu6CXL5MSuuCkG3bejahSpSymioPmuLdhPxNOc9MjuNGjy7M/HaXvJ8G82Lywlw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.22.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.22.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.1.tgz", + "integrity": "sha512-WWjdnfR3LPIe+0EY8td7WmjhytxXtjKAEpnAxun/hkNiyOaPlvGK+NZaBFIdi9ndYV3Gav7BpFvtUwnaJlwi1w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", + "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz", + "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.3.tgz", + "integrity": "sha512-Gl7sK04b/2WOb6OPVeNy9eFKeD3L6++CzL3ykPOWqTn08xgYYK0wz4TUh2feIImDXxcVW3/9WQ1NMKY66/jfZA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", + "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz", + "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-simple-access": "^7.21.5", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", + "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.1.tgz", + "integrity": "sha512-ut4qrkE4AuSfrwHSps51ekR1ZY/ygrP1tp0WFm8oVq6nzc/hvfV/22JylndIbsf2U2M9LOMwiSddr6y+78j+OQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-member-expression-to-functions": "^7.22.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", + "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", + "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", + "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", + "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.3.tgz", + "integrity": "sha512-6r4yRwEnorYByILoDRnEqxtojYKuiIv9FojW2E8GUKo9eWBwbKcd9IiZOZpdyXc64RmyGGyPu3/uAcrz/dq2kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-transform-optional-chaining": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.3.tgz", + "integrity": "sha512-i35jZJv6aO7hxEbIWQ41adVfOzjm9dcYDNeWlBMd8p0ZQRtNUCBrmGwZt+H5lb+oOC9a3svp956KP0oWGA1YsA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz", + "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.3.tgz", + "integrity": "sha512-36A4Aq48t66btydbZd5Fk0/xJqbpg/v4QWI4AH4cYHBXy9Mu42UOupZpebKFiCFNT9S9rJFcsld0gsv0ayLjtA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz", + "integrity": "sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.3.tgz", + "integrity": "sha512-mASLsd6rhOrLZ5F3WbCxkzl67mmOnqik0zrg5W6D/X0QMW7HtvnoL1dRARLKIbMP3vXwkwziuLesPqWVGIl6Bw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.3.tgz", + "integrity": "sha512-5BirgNWNOx7cwbTJCOmKFJ1pZjwk5MUfMIwiBBvsirCJMZeQgs5pk6i1OlkVg+1Vef5LfBahFOrdCnAWvkVKMw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz", + "integrity": "sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz", + "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz", + "integrity": "sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.1.tgz", + "integrity": "sha512-rlhWtONnVBPdmt+jeewS0qSnMz/3yLFrqAP8hHC6EDcrYRSyuz9f9yQhHvVn2Ad6+yO9fHXac5piudeYrInxwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.3.tgz", + "integrity": "sha512-5Ti1cHLTDnt3vX61P9KZ5IG09bFXp4cDVFJIAeCZuxu9OXXJJZp5iP0n/rzM2+iAutJY+KWEyyHcRaHlpQ/P5g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz", + "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.3.tgz", + "integrity": "sha512-IuvOMdeOOY2X4hRNAT6kwbePtK21BUyrAEgLKviL8pL6AEEVUVcqtRdN/HJXBLGIbt9T3ETmXRnFedRRmQNTYw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.3.tgz", + "integrity": "sha512-CbayIfOw4av2v/HYZEsH+Klks3NC2/MFIR3QR8gnpGNNPEaq2fdlVCRYG/paKs7/5hvBLQ+H70pGWOHtlNEWNA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz", + "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz", + "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.21.5", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-simple-access": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.3.tgz", + "integrity": "sha512-V21W3bKLxO3ZjcBJZ8biSvo5gQ85uIXW2vJfh7JSWf/4SLUSr1tOoHX3ruN4+Oqa2m+BKfsxTR1I+PsvkIWvNw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.3.tgz", + "integrity": "sha512-c6HrD/LpUdNNJsISQZpds3TXvfYIAbo+efE9aWmY/PmSRD0agrJ9cPMt4BmArwUQ7ZymEWTFjTyp+yReLJZh0Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.3.tgz", + "integrity": "sha512-5RuJdSo89wKdkRTqtM9RVVJzHum9c2s0te9rB7vZC1zKKxcioWIy+xcu4OoIAjyFZhb/bp5KkunuLin1q7Ct+w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.3.tgz", + "integrity": "sha512-CpaoNp16nX7ROtLONNuCyenYdY/l7ZsR6aoVa7rW7nMWisoNoQNIH5Iay/4LDyRjKMuElMqXiBoOQCDLTMGZiw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.3.tgz", + "integrity": "sha512-+AF88fPDJrnseMh5vD9+SH6wq4ZMvpiTMHh58uLs+giMEyASFVhcT3NkoyO+NebFCNnpHJEq5AXO2txV4AGPDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.3.tgz", + "integrity": "sha512-38bzTsqMMCI46/TQnJwPPpy33EjLCc1Gsm2hRTF6zTMWnKsN61vdrpuzIEGQyKEhDSYDKyZHrrd5FMj4gcUHhw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.3", + "@babel/helper-compilation-targets": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.22.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz", - "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.3.tgz", + "integrity": "sha512-bnDFWXFzWY0BsOyqaoSXvMQ2F35zutQipugog/rqotL2S4ciFOKlRYUu9djt4iq09oh2/34hqfRR2k1dIvuu4g==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.3.tgz", + "integrity": "sha512-63v3/UFFxhPKT8j8u1jTTGVyITxl7/7AfOqK8C5gz1rHURPUGe3y5mvIf68eYKGoBNahtJnTxBKug4BQOnzeJg==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.3.tgz", + "integrity": "sha512-x7QHQJHPuD9VmfpzboyGJ5aHEr9r7DsAsdxdhJiTB3J3j8dyl+NFZ+rX5Q2RWFDCs61c06qBfS4ys2QYn8UkMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-hoist-variables": { + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.3.tgz", + "integrity": "sha512-fC7jtjBPFqhqpPAE+O4LKwnLq7gGkD3ZmC2E3i4qWH34mH3gOg2Xrq5YMHUq6DM30xhqM1DNftiRaSqVjEG+ug==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.3.tgz", + "integrity": "sha512-C7MMl4qWLpgVCbXfj3UW8rR1xeCnisQ0cU7YJHV//8oNBS0aCIVg1vFnZXxOckHhEpQyqNNkWmvSEWnMLlc+Vw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", + "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "dev": true, "dependencies": { - "@babel/types": "^7.21.4" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz", - "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-plugin-utils": { + "node_modules/@babel/plugin-transform-regenerator": { "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz", - "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz", + "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.21.5", + "regenerator-transform": "^0.15.1" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", - "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, "dependencies": { - "@babel/types": "^7.21.5" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-split-export-declaration": { + "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz", - "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz", + "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helpers": { - "version": "7.22.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", - "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, "dependencies": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz", + "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==", + "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/parser": { - "version": "7.22.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.4.tgz", - "integrity": "sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.3.tgz", + "integrity": "sha512-5ScJ+OmdX+O6HRuMGW4kv7RL9vIKdtdAj9wuWUKy1wbHY3jaM/UlyIiC1G7J6UJiiyMukjjK0QwL3P0vBd0yYg==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", - "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -313,13 +1553,108 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", - "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.3.tgz", + "integrity": "sha512-hNufLdkF8vqywRp+P55j4FHXqAX2LRUccoZHH7AFn1pq5ZOO2ISKW9w13bFZVjBoTqeve2HOgoJCcaziJVhGNw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.22.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.4.tgz", + "integrity": "sha512-c3lHOjbwBv0TkhYCr+XCR6wKcSZ1QbQTVdSkZUaVpLv8CVWotBMArWUi5UAJrcrQaEnleVkkvaV8F/pmc/STZQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.3", + "@babel/helper-compilation-targets": "^7.22.1", + "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.3", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "@babel/plugin-syntax-import-attributes": "^7.22.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.21.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.3", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-class-properties": "^7.22.3", + "@babel/plugin-transform-class-static-block": "^7.22.3", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.21.5", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-dynamic-import": "^7.22.1", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-export-namespace-from": "^7.22.3", + "@babel/plugin-transform-for-of": "^7.21.5", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-json-strings": "^7.22.3", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.3", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.3", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.3", + "@babel/plugin-transform-new-target": "^7.22.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.3", + "@babel/plugin-transform-numeric-separator": "^7.22.3", + "@babel/plugin-transform-object-rest-spread": "^7.22.3", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-optional-catch-binding": "^7.22.3", + "@babel/plugin-transform-optional-chaining": "^7.22.3", + "@babel/plugin-transform-parameters": "^7.22.3", + "@babel/plugin-transform-private-methods": "^7.22.3", + "@babel/plugin-transform-private-property-in-object": "^7.22.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.21.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.21.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.3", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.3", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.22.4", + "babel-plugin-polyfill-corejs2": "^0.4.3", + "babel-plugin-polyfill-corejs3": "^0.8.1", + "babel-plugin-polyfill-regenerator": "^0.5.0", + "core-js-compat": "^3.30.2", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -328,6 +1663,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { "version": "7.22.3", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.3.tgz", @@ -1008,6 +2365,16 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -1323,12 +2690,36 @@ "node": ">=14" } }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dev": true, + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/node": { + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", + "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "dev": true + }, "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -1365,11 +2756,26 @@ "@types/react": "*" } }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/scheduler": { "version": "0.16.3", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, + "node_modules/@types/trusted-types": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", + "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==", + "dev": true + }, "node_modules/@vitejs/plugin-react": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz", @@ -1547,6 +2953,21 @@ "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -1591,6 +3012,45 @@ "npm": ">=6" } }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", + "integrity": "sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.4.0", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", + "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.0", + "core-js-compat": "^3.30.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", + "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1607,6 +3067,18 @@ "concat-map": "0.0.1" } }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { "version": "4.21.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz", @@ -1639,6 +3111,24 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -1722,6 +3212,21 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1739,6 +3244,19 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, + "node_modules/core-js-compat": { + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.30.2.tgz", + "integrity": "sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -1776,6 +3294,15 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", @@ -1839,6 +3366,15 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/define-properties": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", @@ -1894,6 +3430,21 @@ "csstype": "^3.0.2" } }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.423", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.423.tgz", @@ -2554,6 +4105,12 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2569,6 +4126,34 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2602,6 +4187,48 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -2651,6 +4278,21 @@ "is-callable": "^1.1.3" } }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2727,6 +4369,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -2811,6 +4459,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -2960,6 +4614,12 @@ "cross-fetch": "3.1.5" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "dev": true + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -3154,6 +4814,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -3166,6 +4832,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/is-number-object": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", @@ -3181,6 +4856,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -3206,6 +4890,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -3227,6 +4920,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -3291,36 +4996,159 @@ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 10.13.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/js-base64": { "version": "3.7.5", @@ -3361,6 +5189,12 @@ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3385,6 +5219,27 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -3413,6 +5268,15 @@ "language-subtag-registry": "~0.3.2" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -3446,12 +5310,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3472,6 +5354,43 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3799,6 +5718,18 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/postcss": { "version": "8.4.24", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", @@ -3851,6 +5782,18 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-bytes": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.0.tgz", + "integrity": "sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==", + "dev": true, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -3895,6 +5838,15 @@ } ] }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", @@ -4009,11 +5961,38 @@ "react-dom": ">=16.6.0" } }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", @@ -4031,6 +6010,53 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", @@ -4119,6 +6145,26 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -4150,6 +6196,15 @@ "semver": "bin/semver.js" } }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4202,6 +6257,32 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, "node_modules/stack-generator": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", @@ -4318,6 +6399,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4339,43 +6434,109 @@ "node": ">=4" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/terser": { + "version": "5.17.7", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.17.7.tgz", + "integrity": "sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ==", + "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" + "bin": { + "terser": "bin/terser" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, "node_modules/text-table": { @@ -4400,6 +6561,18 @@ "node": ">=4" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -4482,6 +6655,77 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -4569,6 +6813,27 @@ } } }, + "node_modules/vite-plugin-pwa": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.15.2.tgz", + "integrity": "sha512-l1srtaad5NMNrAtAuub6ArTYG5Ci9AwofXXQ6IsbpCMYQ/0HUndwI7RB2x95+1UBFm7VGttQtT7woBlVnNhBRw==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "pretty-bytes": "^6.0.0", + "workbox-build": "^6.5.4", + "workbox-window": "^6.5.4" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0", + "workbox-build": "^6.5.4", + "workbox-window": "^6.5.4" + } + }, "node_modules/void-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", @@ -4666,6 +6931,391 @@ "node": ">=0.10.0" } }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dev": true, + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dev": true, + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/workbox-build/node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/workbox-build/node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/workbox-build/node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "dev": true + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dev": true, + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "dev": true, + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dev": true, + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dev": true, + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "dev": true + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dev": true, + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/web/package.json b/web/package.json index 274e4c8e6..2e52635ab 100644 --- a/web/package.json +++ b/web/package.json @@ -40,7 +40,8 @@ "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "prettier": "^2.8.8", - "vite": "^4.3.9" + "vite": "^4.3.9", + "vite-plugin-pwa": "^0.15.0" }, "browserslist": { "production": [ diff --git a/web/public/config.js b/web/public/config.js index 2f46d65c2..7bcad73f4 100644 --- a/web/public/config.js +++ b/web/public/config.js @@ -7,7 +7,7 @@ var config = { base_url: window.location.origin, // Change to test against a different server - app_root: "/app", + app_root: "/", enable_login: true, enable_signup: true, enable_payments: false, diff --git a/web/public/static/images/apple-touch-icon.png b/web/public/static/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8f89050995c49f6073a9167c8afd7d2831cac384 GIT binary patch literal 15584 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 MMdd`Qh4cgd7jCG$_W%F@ literal 0 HcmV?d00001 diff --git a/web/public/static/images/mask-icon.svg b/web/public/static/images/mask-icon.svg new file mode 100644 index 000000000..32fced6df --- /dev/null +++ b/web/public/static/images/mask-icon.svg @@ -0,0 +1,20 @@ + + + + + + + diff --git a/web/public/static/images/pwa-192x192.png b/web/public/static/images/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaebcc4da731b451ddfd2403c222ee45b571a46 GIT binary patch literal 6614 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 Yi|2gk?hWM}iV46-&s?|RhD+T402#pN%m4rY literal 0 HcmV?d00001 diff --git a/web/public/static/images/pwa-512x512.png b/web/public/static/images/pwa-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..d9003a1959d28c7aea6d6c2fd726866c5ffe9d0f GIT binary patch literal 19716 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 literal 0 HcmV?d00001 diff --git a/web/public/static/langs/en.json b/web/public/static/langs/en.json index 5d8a3a3d9..53b8c3f55 100644 --- a/web/public/static/langs/en.json +++ b/web/public/static/langs/en.json @@ -52,9 +52,10 @@ "nav_button_connecting": "connecting", "nav_upgrade_banner_label": "Upgrade to ntfy Pro", "nav_upgrade_banner_description": "Reserve topics, more messages & emails, and larger attachments", - "alert_grant_title": "Notifications are disabled", - "alert_grant_description": "Grant your browser permission to display desktop notifications.", - "alert_grant_button": "Grant now", + "alert_notification_permission_denied_title": "Notifications are blocked", + "alert_notification_permission_denied_description": "Please re-enable them in your browser and refresh the page to receive notifications", + "alert_notification_ios_install_required_title": "iOS Install Required", + "alert_notification_ios_install_required_description": "Click on the Share icon and Add to Home Screen to enable notifications on iOS", "alert_not_supported_title": "Notifications not supported", "alert_not_supported_description": "Notifications are not supported in your browser.", "alert_not_supported_context_description": "Notifications are only supported over HTTPS. This is a limitation of the Notifications API.", @@ -92,6 +93,10 @@ "notifications_no_subscriptions_description": "Click the \"{{linktext}}\" link to create or subscribe to a topic. After that, you can send messages via PUT or POST and you'll receive notifications here.", "notifications_example": "Example", "notifications_more_details": "For more information, check out the website or documentation.", + "notification_toggle_unmute": "Unmute", + "notification_toggle_sound": "Sound only", + "notification_toggle_browser": "Browser notifications", + "notification_toggle_background": "Browser and background notifications", "display_name_dialog_title": "Change display name", "display_name_dialog_description": "Set an alternative name for a topic that is displayed in the subscription list. This helps identify topics with complicated names more easily.", "display_name_dialog_placeholder": "Display name", @@ -164,6 +169,8 @@ "subscribe_dialog_subscribe_description": "Topics may not be password-protected, so choose a name that's not easy to guess. Once subscribed, you can PUT/POST notifications.", "subscribe_dialog_subscribe_topic_placeholder": "Topic name, e.g. phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Use another server", + "subscribe_dialog_subscribe_enable_browser_notifications_label": "Notify me via browser notifications", + "subscribe_dialog_subscribe_enable_background_notifications_label": "Also notify me when ntfy is not open (web push)", "subscribe_dialog_subscribe_base_url_label": "Service URL", "subscribe_dialog_subscribe_button_generate_topic_name": "Generate name", "subscribe_dialog_subscribe_button_cancel": "Cancel", @@ -363,6 +370,11 @@ "prefs_reservations_dialog_description": "Reserving a topic gives you ownership over the topic, and allows you to define access permissions for other users over the topic.", "prefs_reservations_dialog_topic_label": "Topic", "prefs_reservations_dialog_access_label": "Access", + "prefs_notifications_web_push_default_title": "Enable web push notifications by default", + "prefs_notifications_web_push_default_description": "This affects the initial state in the subscribe dialog, as well as the default state for synced topics", + "prefs_notifications_web_push_default_initial": "Unset", + "prefs_notifications_web_push_default_enabled": "Enabled", + "prefs_notifications_web_push_default_disabled": "Disabled", "reservation_delete_dialog_description": "Removing a reservation gives up ownership over the topic, and allows others to reserve it. You can keep, or delete existing messages and attachments.", "reservation_delete_dialog_action_keep_title": "Keep cached messages and attachments", "reservation_delete_dialog_action_keep_description": "Messages and attachments that are cached on the server will become publicly visible for people with knowledge of the topic name.", diff --git a/web/public/sw.js b/web/public/sw.js new file mode 100644 index 000000000..43a2e3b36 --- /dev/null +++ b/web/public/sw.js @@ -0,0 +1,111 @@ +/* eslint-disable import/no-extraneous-dependencies */ +import { cleanupOutdatedCaches, createHandlerBoundToURL, precacheAndRoute } from "workbox-precaching"; +import { NavigationRoute, registerRoute } from "workbox-routing"; +import { NetworkFirst } from "workbox-strategies"; + +import { getDbAsync } from "../src/app/getDb"; + +// See WebPushWorker, this is to play a sound on supported browsers, +// if the app is in the foreground +const broadcastChannel = new BroadcastChannel("web-push-broadcast"); + +self.addEventListener("install", () => { + console.log("[ServiceWorker] Installed"); + self.skipWaiting(); +}); + +self.addEventListener("activate", () => { + console.log("[ServiceWorker] Activated"); + self.skipWaiting(); +}); + +// There's no good way to test this, and Chrome doesn't seem to implement this, +// so leaving it for now +self.addEventListener("pushsubscriptionchange", (event) => { + console.log("[ServiceWorker] PushSubscriptionChange"); + console.log(event); +}); + +self.addEventListener("push", (event) => { + console.log("[ServiceWorker] Received Web Push Event", { event }); + // server/types.go webPushPayload + const data = event.data.json(); + + const { formatted_title: formattedTitle, subscription_id: subscriptionId, message } = data; + broadcastChannel.postMessage(message); + + event.waitUntil( + (async () => { + const db = await getDbAsync(); + + await Promise.all([ + (async () => { + await db.notifications.add({ + ...message, + subscriptionId, + // New marker (used for bubble indicator); cannot be boolean; Dexie index limitation + new: 1, + }); + const badgeCount = await db.notifications.where({ new: 1 }).count(); + console.log("[ServiceWorker] Setting new app badge count", { badgeCount }); + self.navigator.setAppBadge?.(badgeCount); + })(), + db.subscriptions.update(subscriptionId, { + last: message.id, + }), + self.registration.showNotification(formattedTitle, { + tag: subscriptionId, + body: message.message, + icon: "/static/images/ntfy.png", + data, + }), + ]); + })() + ); +}); + +self.addEventListener("notificationclick", (event) => { + event.notification.close(); + + const { message } = event.notification.data; + + if (message.click) { + self.clients.openWindow(message.click); + return; + } + + const rootUrl = new URL(self.location.origin); + const topicUrl = new URL(message.topic, self.location.origin); + + event.waitUntil( + (async () => { + const clients = await self.clients.matchAll({ type: "window" }); + + const topicClient = clients.find((client) => client.url === topicUrl.toString()); + if (topicClient) { + topicClient.focus(); + return; + } + + const rootClient = clients.find((client) => client.url === rootUrl.toString()); + if (rootClient) { + rootClient.focus(); + return; + } + + self.clients.openWindow(topicUrl); + })() + ); +}); + +// self.__WB_MANIFEST is default injection point +// eslint-disable-next-line no-underscore-dangle +precacheAndRoute(self.__WB_MANIFEST); + +// clean old assets +cleanupOutdatedCaches(); + +// to allow work offline +registerRoute(new NavigationRoute(createHandlerBoundToURL("/"))); + +registerRoute(({ url }) => url.pathname === "/config.js", new NetworkFirst()); diff --git a/web/src/app/AccountApi.js b/web/src/app/AccountApi.js index 9576c4ec5..572764fef 100644 --- a/web/src/app/AccountApi.js +++ b/web/src/app/AccountApi.js @@ -382,6 +382,10 @@ class AccountApi { setTimeout(() => this.runWorker(), delayMillis); } + stopWorker() { + clearTimeout(this.timer); + } + async runWorker() { if (!session.token()) { return; diff --git a/web/src/app/Api.js b/web/src/app/Api.js index ba1cbe615..f731e61f1 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -6,6 +6,9 @@ import { topicUrlAuth, topicUrlJsonPoll, topicUrlJsonPollWithSince, + topicUrlWebPushSubscribe, + topicUrlWebPushUnsubscribe, + webPushConfigUrl, } from "./utils"; import userManager from "./UserManager"; import { fetchOrThrow } from "./errors"; @@ -113,6 +116,62 @@ class Api { } throw new Error(`Unexpected server response ${response.status}`); } + + /** + * @returns {Promise<{ public_key: string } | undefined>} + */ + async getWebPushConfig(baseUrl) { + const response = await fetch(webPushConfigUrl(baseUrl)); + + if (response.ok) { + return response.json(); + } + + if (response.status === 404) { + // web push is not enabled + return undefined; + } + + throw new Error(`Unexpected server response ${response.status}`); + } + + async subscribeWebPush(baseUrl, topic, browserSubscription) { + const user = await userManager.get(baseUrl); + + const url = topicUrlWebPushSubscribe(baseUrl, topic); + console.log(`[Api] Sending Web Push Subscription ${url}`); + + const response = await fetch(url, { + method: "POST", + headers: maybeWithAuth({}, user), + body: JSON.stringify({ browser_subscription: browserSubscription }), + }); + + if (response.ok) { + return true; + } + + throw new Error(`Unexpected server response ${response.status}`); + } + + async unsubscribeWebPush(subscription) { + const user = await userManager.get(subscription.baseUrl); + + const url = topicUrlWebPushUnsubscribe(subscription.baseUrl, subscription.topic); + console.log(`[Api] Unsubscribing Web Push Subscription ${url}`); + + const response = await fetch(url, { + method: "POST", + headers: maybeWithAuth({}, user), + body: JSON.stringify({ endpoint: subscription.webPushEndpoint }), + }); + + if (response.ok) { + return true; + } + + throw new Error(`Unexpected server response ${response.status}`); + } } const api = new Api(); diff --git a/web/src/app/ConnectionManager.js b/web/src/app/ConnectionManager.js index 2033cbea8..952c74aff 100644 --- a/web/src/app/ConnectionManager.js +++ b/web/src/app/ConnectionManager.js @@ -1,7 +1,8 @@ import Connection from "./Connection"; +import { NotificationType } from "./SubscriptionManager"; import { hashCode } from "./utils"; -const makeConnectionId = async (subscription, user) => +const makeConnectionId = (subscription, user) => user ? hashCode(`${subscription.id}|${user.username}|${user.password ?? ""}|${user.token ?? ""}`) : hashCode(`${subscription.id}`); /** @@ -45,13 +46,19 @@ class ConnectionManager { return; } console.log(`[ConnectionManager] Refreshing connections`); - const subscriptionsWithUsersAndConnectionId = await Promise.all( - subscriptions.map(async (s) => { + const subscriptionsWithUsersAndConnectionId = subscriptions + .map((s) => { const [user] = users.filter((u) => u.baseUrl === s.baseUrl); - const connectionId = await makeConnectionId(s, user); + const connectionId = makeConnectionId(s, user); return { ...s, user, connectionId }; }) - ); + // we want to create a ws for both sound-only and active browser notifications, + // only background notifications don't need this as they come over web push. + // however, if background notifications are muted, we again need the ws while + // the page is active + .filter((s) => s.notificationType !== NotificationType.BACKGROUND && s.mutedUntil !== 1); + + console.log(); const targetIds = subscriptionsWithUsersAndConnectionId.map((s) => s.connectionId); const deletedIds = Array.from(this.connections.keys()).filter((id) => !targetIds.includes(id)); diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index 45792dc8d..a005f4609 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -1,22 +1,18 @@ -import { formatMessage, formatTitleWithDefault, openUrl, playSound, topicDisplayName, topicShortUrl } from "./utils"; +import { formatMessage, formatTitleWithDefault, openUrl, playSound, topicDisplayName, topicShortUrl, urlB64ToUint8Array } from "./utils"; import prefs from "./Prefs"; -import subscriptionManager from "./SubscriptionManager"; import logo from "../img/ntfy.png"; +import api from "./Api"; /** * The notifier is responsible for displaying desktop notifications. Note that not all modern browsers * support this; most importantly, all iOS browsers do not support window.Notification. */ class Notifier { - async notify(subscriptionId, notification, onClickFallback) { + async notify(subscription, notification, onClickFallback) { if (!this.supported()) { return; } - const subscription = await subscriptionManager.get(subscriptionId); - const shouldNotify = await this.shouldNotify(subscription, notification); - if (!shouldNotify) { - return; - } + const shortUrl = topicShortUrl(subscription.baseUrl, subscription.topic); const displayName = topicDisplayName(subscription); const message = formatMessage(notification); @@ -26,6 +22,7 @@ class Notifier { console.log(`[Notifier, ${shortUrl}] Displaying notification ${notification.id}: ${message}`); const n = new Notification(title, { body: message, + tag: subscription.id, icon: logo, }); if (notification.click) { @@ -33,45 +30,88 @@ class Notifier { } else { n.onclick = () => onClickFallback(subscription); } + } + async playSound() { // Play sound const sound = await prefs.sound(); if (sound && sound !== "none") { try { await playSound(sound); } catch (e) { - console.log(`[Notifier, ${shortUrl}] Error playing audio`, e); + console.log(`[Notifier] Error playing audio`, e); } } } - granted() { - return this.supported() && Notification.permission === "granted"; + async unsubscribeWebPush(subscription) { + try { + await api.unsubscribeWebPush(subscription); + } catch (e) { + console.error("[Notifier.subscribeWebPush] Error subscribing to web push", e); + } } - maybeRequestPermission(cb) { - if (!this.supported()) { - cb(false); - return; + async subscribeWebPush(baseUrl, topic) { + if (!this.supported() || !this.pushSupported()) { + return {}; } - if (!this.granted()) { - Notification.requestPermission().then((permission) => { - const granted = permission === "granted"; - cb(granted); + + // only subscribe to web push for the current server. this is a limitation of the web push API, + // which only allows a single server per service worker origin. + if (baseUrl !== config.base_url) { + return {}; + } + + const registration = await navigator.serviceWorker.getRegistration(); + + if (!registration) { + console.log("[Notifier.subscribeWebPush] Web push supported but no service worker registration found, skipping"); + return {}; + } + + try { + const webPushConfig = await api.getWebPushConfig(baseUrl); + + if (!webPushConfig) { + console.log("[Notifier.subscribeWebPush] Web push not configured on server"); + } + + const browserSubscription = await registration.pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: urlB64ToUint8Array(webPushConfig.public_key), }); + + await api.subscribeWebPush(baseUrl, topic, browserSubscription); + + console.log("[Notifier.subscribeWebPush] Successfully subscribed to web push"); + + return browserSubscription; + } catch (e) { + console.error("[Notifier.subscribeWebPush] Error subscribing to web push", e); } + + return {}; } - async shouldNotify(subscription, notification) { - if (subscription.mutedUntil === 1) { - return false; - } - const priority = notification.priority ? notification.priority : 3; - const minPriority = await prefs.minPriority(); - if (priority < minPriority) { + granted() { + return this.supported() && Notification.permission === "granted"; + } + + denied() { + return this.supported() && Notification.permission === "denied"; + } + + async maybeRequestPermission() { + if (!this.supported()) { return false; } - return true; + + return new Promise((resolve) => { + Notification.requestPermission((permission) => { + resolve(permission === "granted"); + }); + }); } supported() { @@ -82,6 +122,10 @@ class Notifier { return "Notification" in window; } + pushSupported() { + return "serviceWorker" in navigator && "PushManager" in window; + } + /** * Returns true if this is a HTTPS site, or served over localhost. Otherwise the Notification API * is not supported, see https://developer.mozilla.org/en-US/docs/Web/API/notification @@ -89,6 +133,10 @@ class Notifier { contextSupported() { return window.location.protocol === "https:" || window.location.hostname.match("^127.") || window.location.hostname === "localhost"; } + + iosSupportedButInstallRequired() { + return "standalone" in window.navigator && window.navigator.standalone === false; + } } const notifier = new Notifier(); diff --git a/web/src/app/Poller.js b/web/src/app/Poller.js index 372e46e51..2261dddc5 100644 --- a/web/src/app/Poller.js +++ b/web/src/app/Poller.js @@ -18,6 +18,10 @@ class Poller { setTimeout(() => this.pollAll(), delayMillis); } + stopWorker() { + clearTimeout(this.timer); + } + async pollAll() { console.log(`[Poller] Polling all subscriptions`); const subscriptions = await subscriptionManager.all(); @@ -47,14 +51,13 @@ class Poller { } pollInBackground(subscription) { - const fn = async () => { + (async () => { try { await this.poll(subscription); } catch (e) { console.error(`[App] Error polling subscription ${subscription.id}`, e); } - }; - setTimeout(() => fn(), 0); + })(); } } diff --git a/web/src/app/Prefs.js b/web/src/app/Prefs.js index 8adc50888..45078352c 100644 --- a/web/src/app/Prefs.js +++ b/web/src/app/Prefs.js @@ -1,33 +1,45 @@ -import db from "./db"; +import getDb from "./getDb"; class Prefs { + constructor(db) { + this.db = db; + } + async setSound(sound) { - db.prefs.put({ key: "sound", value: sound.toString() }); + this.db.prefs.put({ key: "sound", value: sound.toString() }); } async sound() { - const sound = await db.prefs.get("sound"); + const sound = await this.db.prefs.get("sound"); return sound ? sound.value : "ding"; } async setMinPriority(minPriority) { - db.prefs.put({ key: "minPriority", value: minPriority.toString() }); + this.db.prefs.put({ key: "minPriority", value: minPriority.toString() }); } async minPriority() { - const minPriority = await db.prefs.get("minPriority"); + const minPriority = await this.db.prefs.get("minPriority"); return minPriority ? Number(minPriority.value) : 1; } async setDeleteAfter(deleteAfter) { - db.prefs.put({ key: "deleteAfter", value: deleteAfter.toString() }); + this.db.prefs.put({ key: "deleteAfter", value: deleteAfter.toString() }); } async deleteAfter() { - const deleteAfter = await db.prefs.get("deleteAfter"); + const deleteAfter = await this.db.prefs.get("deleteAfter"); return deleteAfter ? Number(deleteAfter.value) : 604800; // Default is one week } + + async webPushDefaultEnabled() { + const obj = await this.db.prefs.get("webPushDefaultEnabled"); + return obj?.value ?? "initial"; + } + + async setWebPushDefaultEnabled(enabled) { + await this.db.prefs.put({ key: "webPushDefaultEnabled", value: enabled ? "enabled" : "disabled" }); + } } -const prefs = new Prefs(); -export default prefs; +export default new Prefs(getDb()); diff --git a/web/src/app/Pruner.js b/web/src/app/Pruner.js index 498c15668..f9568a333 100644 --- a/web/src/app/Pruner.js +++ b/web/src/app/Pruner.js @@ -18,6 +18,10 @@ class Pruner { setTimeout(() => this.prune(), delayMillis); } + stopWorker() { + clearTimeout(this.timer); + } + async prune() { const deleteAfterSeconds = await prefs.deleteAfter(); const pruneThresholdTimestamp = Math.round(Date.now() / 1000) - deleteAfterSeconds; diff --git a/web/src/app/Session.js b/web/src/app/Session.js index 0b47f93a2..8affa53cd 100644 --- a/web/src/app/Session.js +++ b/web/src/app/Session.js @@ -1,12 +1,22 @@ +import sessionReplica from "./SessionReplica"; + class Session { + constructor(replica) { + this.replica = replica; + } + store(username, token) { localStorage.setItem("user", username); localStorage.setItem("token", token); + + this.replica.store(username, token); } reset() { localStorage.removeItem("user"); localStorage.removeItem("token"); + + this.replica.reset(); } resetAndRedirect(url) { @@ -27,5 +37,5 @@ class Session { } } -const session = new Session(); +const session = new Session(sessionReplica); export default session; diff --git a/web/src/app/SessionReplica.js b/web/src/app/SessionReplica.js new file mode 100644 index 000000000..808833f6f --- /dev/null +++ b/web/src/app/SessionReplica.js @@ -0,0 +1,44 @@ +import Dexie from "dexie"; + +// Store to IndexedDB as well so that the +// service worker can access it +// TODO: Probably make everything depend on this and not use localStorage, +// but that's a larger refactoring effort for another PR + +class SessionReplica { + constructor() { + const db = new Dexie("session-replica"); + + db.version(1).stores({ + keyValueStore: "&key", + }); + + this.db = db; + } + + async store(username, token) { + try { + await this.db.keyValueStore.bulkPut([ + { key: "user", value: username }, + { key: "token", value: token }, + ]); + } catch (e) { + console.error("[Session] Error replicating session to IndexedDB", e); + } + } + + async reset() { + try { + await this.db.delete(); + } catch (e) { + console.error("[Session] Error resetting session on IndexedDB", e); + } + } + + async username() { + return (await this.db.keyValueStore.get({ key: "user" }))?.value; + } +} + +const sessionReplica = new SessionReplica(); +export default sessionReplica; diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index ecbe4dacb..ae4bf49ec 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -1,47 +1,112 @@ -import db from "./db"; +import notifier from "./Notifier"; +import prefs from "./Prefs"; +import getDb from "./getDb"; import { topicUrl } from "./utils"; +/** @typedef {string} NotificationTypeEnum */ + +/** @enum {NotificationTypeEnum} */ +export const NotificationType = { + /** sound-only */ + SOUND: "sound", + /** browser notifications when there is an active tab, via websockets */ + BROWSER: "browser", + /** web push notifications, regardless of whether the window is open */ + BACKGROUND: "background", +}; + class SubscriptionManager { + constructor(db) { + this.db = db; + } + /** All subscriptions, including "new count"; this is a JOIN, see https://dexie.org/docs/API-Reference#joining */ async all() { - const subscriptions = await db.subscriptions.toArray(); + const subscriptions = await this.db.subscriptions.toArray(); return Promise.all( subscriptions.map(async (s) => ({ ...s, - new: await db.notifications.where({ subscriptionId: s.id, new: 1 }).count(), + new: await this.db.notifications.where({ subscriptionId: s.id, new: 1 }).count(), })) ); } async get(subscriptionId) { - return db.subscriptions.get(subscriptionId); + return this.db.subscriptions.get(subscriptionId); + } + + async notify(subscriptionId, notification, defaultClickAction) { + const subscription = await this.get(subscriptionId); + + if (subscription.mutedUntil === 1) { + return; + } + + const priority = notification.priority ?? 3; + if (priority < (await prefs.minPriority())) { + return; + } + + await notifier.playSound(); + + // sound only + if (subscription.notificationType === "sound") { + return; + } + + await notifier.notify(subscription, notification, defaultClickAction); } - async add(baseUrl, topic, internal) { + /** + * @param {string} baseUrl + * @param {string} topic + * @param {object} opts + * @param {boolean} opts.internal + * @param {NotificationTypeEnum} opts.notificationType + * @returns + */ + async add(baseUrl, topic, opts = {}) { const id = topicUrl(baseUrl, topic); + + const webPushFields = opts.notificationType === "background" ? await notifier.subscribeWebPush(baseUrl, topic) : {}; + const existingSubscription = await this.get(id); if (existingSubscription) { + if (webPushFields.endpoint) { + await this.db.subscriptions.update(existingSubscription.id, { + webPushEndpoint: webPushFields.endpoint, + }); + } + return existingSubscription; } + const subscription = { id: topicUrl(baseUrl, topic), baseUrl, topic, mutedUntil: 0, last: null, - internal: internal || false, + ...opts, + webPushEndpoint: webPushFields.endpoint, }; - await db.subscriptions.put(subscription); + + await this.db.subscriptions.put(subscription); + return subscription; } async syncFromRemote(remoteSubscriptions, remoteReservations) { console.log(`[SubscriptionManager] Syncing subscriptions from remote`, remoteSubscriptions); + const notificationType = (await prefs.webPushDefaultEnabled()) === "enabled" ? "background" : "browser"; + // Add remote subscriptions const remoteIds = await Promise.all( remoteSubscriptions.map(async (remote) => { - const local = await this.add(remote.base_url, remote.topic, false); + const local = await this.add(remote.base_url, remote.topic, { + notificationType, + }); const reservation = remoteReservations?.find((r) => remote.base_url === config.base_url && remote.topic === r.topic) || null; await this.update(local.id, { @@ -54,29 +119,33 @@ class SubscriptionManager { ); // Remove local subscriptions that do not exist remotely - const localSubscriptions = await db.subscriptions.toArray(); + const localSubscriptions = await this.db.subscriptions.toArray(); await Promise.all( localSubscriptions.map(async (local) => { const remoteExists = remoteIds.includes(local.id); if (!local.internal && !remoteExists) { - await this.remove(local.id); + await this.remove(local); } }) ); } async updateState(subscriptionId, state) { - db.subscriptions.update(subscriptionId, { state }); + this.db.subscriptions.update(subscriptionId, { state }); } - async remove(subscriptionId) { - await db.subscriptions.delete(subscriptionId); - await db.notifications.where({ subscriptionId }).delete(); + async remove(subscription) { + await this.db.subscriptions.delete(subscription.id); + await this.db.notifications.where({ subscriptionId: subscription.id }).delete(); + + if (subscription.webPushEndpoint) { + await notifier.unsubscribeWebPush(subscription); + } } async first() { - return db.subscriptions.toCollection().first(); // May be undefined + return this.db.subscriptions.toCollection().first(); // May be undefined } async getNotifications(subscriptionId) { @@ -84,7 +153,7 @@ class SubscriptionManager { // It's actually fine, because the reading and filtering is quite fast. The rendering is what's // killing performance. See https://dexie.org/docs/Collection/Collection.offset()#a-better-paging-approach - return db.notifications + return this.db.notifications .orderBy("time") // Sort by time first .filter((n) => n.subscriptionId === subscriptionId) .reverse() @@ -92,7 +161,7 @@ class SubscriptionManager { } async getAllNotifications() { - return db.notifications + return this.db.notifications .orderBy("time") // Efficient, see docs .reverse() .toArray(); @@ -100,18 +169,19 @@ class SubscriptionManager { /** Adds notification, or returns false if it already exists */ async addNotification(subscriptionId, notification) { - const exists = await db.notifications.get(notification.id); + const exists = await this.db.notifications.get(notification.id); if (exists) { return false; } try { - await db.notifications.add({ + // sw.js duplicates this logic, so if you change it here, change it there too + await this.db.notifications.add({ ...notification, subscriptionId, // New marker (used for bubble indicator); cannot be boolean; Dexie index limitation new: 1, }); // FIXME consider put() for double tab - await db.subscriptions.update(subscriptionId, { + await this.db.subscriptions.update(subscriptionId, { last: notification.id, }); } catch (e) { @@ -124,19 +194,19 @@ class SubscriptionManager { async addNotifications(subscriptionId, notifications) { const notificationsWithSubscriptionId = notifications.map((notification) => ({ ...notification, subscriptionId })); const lastNotificationId = notifications.at(-1).id; - await db.notifications.bulkPut(notificationsWithSubscriptionId); - await db.subscriptions.update(subscriptionId, { + await this.db.notifications.bulkPut(notificationsWithSubscriptionId); + await this.db.subscriptions.update(subscriptionId, { last: lastNotificationId, }); } async updateNotification(notification) { - const exists = await db.notifications.get(notification.id); + const exists = await this.db.notifications.get(notification.id); if (!exists) { return false; } try { - await db.notifications.put({ ...notification }); + await this.db.notifications.put({ ...notification }); } catch (e) { console.error(`[SubscriptionManager] Error updating notification`, e); } @@ -144,47 +214,105 @@ class SubscriptionManager { } async deleteNotification(notificationId) { - await db.notifications.delete(notificationId); + await this.db.notifications.delete(notificationId); } async deleteNotifications(subscriptionId) { - await db.notifications.where({ subscriptionId }).delete(); + await this.db.notifications.where({ subscriptionId }).delete(); } async markNotificationRead(notificationId) { - await db.notifications.where({ id: notificationId }).modify({ new: 0 }); + await this.db.notifications.where({ id: notificationId }).modify({ new: 0 }); } async markNotificationsRead(subscriptionId) { - await db.notifications.where({ subscriptionId, new: 1 }).modify({ new: 0 }); + await this.db.notifications.where({ subscriptionId, new: 1 }).modify({ new: 0 }); } async setMutedUntil(subscriptionId, mutedUntil) { - await db.subscriptions.update(subscriptionId, { + await this.db.subscriptions.update(subscriptionId, { mutedUntil, }); + + const subscription = await this.get(subscriptionId); + + if (subscription.notificationType === "background") { + if (mutedUntil === 1) { + await notifier.unsubscribeWebPush(subscription); + } else { + const webPushFields = await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); + await this.db.subscriptions.update(subscriptionId, { + webPushEndpoint: webPushFields.endpoint, + }); + } + } + } + + /** + * + * @param {object} subscription + * @param {NotificationTypeEnum} newNotificationType + * @returns + */ + async setNotificationType(subscription, newNotificationType) { + const oldNotificationType = subscription.notificationType ?? "browser"; + + if (oldNotificationType === newNotificationType) { + return; + } + + let { webPushEndpoint } = subscription; + + if (oldNotificationType === "background") { + await notifier.unsubscribeWebPush(subscription); + webPushEndpoint = undefined; + } else if (newNotificationType === "background") { + const webPushFields = await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); + webPushEndpoint = webPushFields.webPushEndpoint; + } + + await this.db.subscriptions.update(subscription.id, { + notificationType: newNotificationType, + webPushEndpoint, + }); + } + + // for logout/delete, unsubscribe first to prevent receiving dangling notifications + async unsubscribeAllWebPush() { + const subscriptions = await this.db.subscriptions.where({ notificationType: "background" }).toArray(); + await Promise.all(subscriptions.map((subscription) => notifier.unsubscribeWebPush(subscription))); + } + + async refreshWebPushSubscriptions() { + const subscriptions = await this.db.subscriptions.where({ notificationType: "background" }).toArray(); + const browserSubscription = await (await navigator.serviceWorker.getRegistration())?.pushManager?.getSubscription(); + + if (browserSubscription) { + await Promise.all(subscriptions.map((subscription) => notifier.subscribeWebPush(subscription.baseUrl, subscription.topic))); + } else { + await Promise.all(subscriptions.map((subscription) => this.setNotificationType(subscription, "sound"))); + } } async setDisplayName(subscriptionId, displayName) { - await db.subscriptions.update(subscriptionId, { + await this.db.subscriptions.update(subscriptionId, { displayName, }); } async setReservation(subscriptionId, reservation) { - await db.subscriptions.update(subscriptionId, { + await this.db.subscriptions.update(subscriptionId, { reservation, }); } async update(subscriptionId, params) { - await db.subscriptions.update(subscriptionId, params); + await this.db.subscriptions.update(subscriptionId, params); } async pruneNotifications(thresholdTimestamp) { - await db.notifications.where("time").below(thresholdTimestamp).delete(); + await this.db.notifications.where("time").below(thresholdTimestamp).delete(); } } -const subscriptionManager = new SubscriptionManager(); -export default subscriptionManager; +export default new SubscriptionManager(getDb()); diff --git a/web/src/app/UserManager.js b/web/src/app/UserManager.js index 2cdd54491..a3dee0a34 100644 --- a/web/src/app/UserManager.js +++ b/web/src/app/UserManager.js @@ -1,9 +1,13 @@ -import db from "./db"; +import getDb from "./getDb"; import session from "./Session"; class UserManager { + constructor(db) { + this.db = db; + } + async all() { - const users = await db.users.toArray(); + const users = await this.db.users.toArray(); if (session.exists()) { users.unshift(this.localUser()); } @@ -14,21 +18,21 @@ class UserManager { if (session.exists() && baseUrl === config.base_url) { return this.localUser(); } - return db.users.get(baseUrl); + return this.db.users.get(baseUrl); } async save(user) { if (session.exists() && user.baseUrl === config.base_url) { return; } - await db.users.put(user); + await this.db.users.put(user); } async delete(baseUrl) { if (session.exists() && baseUrl === config.base_url) { return; } - await db.users.delete(baseUrl); + await this.db.users.delete(baseUrl); } localUser() { @@ -43,5 +47,4 @@ class UserManager { } } -const userManager = new UserManager(); -export default userManager; +export default new UserManager(getDb()); diff --git a/web/src/app/WebPushWorker.js b/web/src/app/WebPushWorker.js new file mode 100644 index 000000000..508df7253 --- /dev/null +++ b/web/src/app/WebPushWorker.js @@ -0,0 +1,46 @@ +import notifier from "./Notifier"; +import subscriptionManager from "./SubscriptionManager"; + +const onMessage = () => { + notifier.playSound(); +}; + +const delayMillis = 2000; // 2 seconds +const intervalMillis = 300000; // 5 minutes + +class WebPushWorker { + constructor() { + this.timer = null; + } + + startWorker() { + if (this.timer !== null) { + return; + } + + this.timer = setInterval(() => this.updateSubscriptions(), intervalMillis); + setTimeout(() => this.updateSubscriptions(), delayMillis); + + this.broadcastChannel = new BroadcastChannel("web-push-broadcast"); + this.broadcastChannel.addEventListener("message", onMessage); + } + + stopWorker() { + clearTimeout(this.timer); + + this.broadcastChannel.removeEventListener("message", onMessage); + this.broadcastChannel.close(); + } + + async updateSubscriptions() { + try { + console.log("[WebPushBroadcastListener] Refreshing web push subscriptions"); + + await subscriptionManager.refreshWebPushSubscriptions(); + } catch (e) { + console.error("[WebPushBroadcastListener] Error refreshing web push subscriptions", e); + } + } +} + +export default new WebPushWorker(); diff --git a/web/src/app/db.js b/web/src/app/db.js deleted file mode 100644 index 0e1a5e71e..000000000 --- a/web/src/app/db.js +++ /dev/null @@ -1,21 +0,0 @@ -import Dexie from "dexie"; -import session from "./Session"; - -// Uses Dexie.js -// https://dexie.org/docs/API-Reference#quick-reference -// -// Notes: -// - As per docs, we only declare the indexable columns, not all columns - -// The IndexedDB database name is based on the logged-in user -const dbName = session.username() ? `ntfy-${session.username()}` : "ntfy"; -const db = new Dexie(dbName); - -db.version(1).stores({ - subscriptions: "&id,baseUrl", - notifications: "&id,subscriptionId,time,new,[subscriptionId+new]", // compound key for query performance - users: "&baseUrl,username", - prefs: "&key", -}); - -export default db; diff --git a/web/src/app/getDb.js b/web/src/app/getDb.js new file mode 100644 index 000000000..9cf8c66e8 --- /dev/null +++ b/web/src/app/getDb.js @@ -0,0 +1,34 @@ +import Dexie from "dexie"; +import session from "./Session"; +import sessionReplica from "./SessionReplica"; + +// Uses Dexie.js +// https://dexie.org/docs/API-Reference#quick-reference +// +// Notes: +// - As per docs, we only declare the indexable columns, not all columns + +const getDbBase = (username) => { + // The IndexedDB database name is based on the logged-in user + const dbName = username ? `ntfy-${username}` : "ntfy"; + const db = new Dexie(dbName); + + db.version(2).stores({ + subscriptions: "&id,baseUrl,notificationType", + notifications: "&id,subscriptionId,time,new,[subscriptionId+new]", // compound key for query performance + users: "&baseUrl,username", + prefs: "&key", + }); + + return db; +}; + +export const getDbAsync = async () => { + const username = await sessionReplica.username(); + + return getDbBase(username); +}; + +const getDb = () => getDbBase(session.username()); + +export default getDb; diff --git a/web/src/app/utils.js b/web/src/app/utils.js index ab7551bba..0f879373c 100644 --- a/web/src/app/utils.js +++ b/web/src/app/utils.js @@ -20,7 +20,10 @@ export const topicUrlJson = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/jso export const topicUrlJsonPoll = (baseUrl, topic) => `${topicUrlJson(baseUrl, topic)}?poll=1`; export const topicUrlJsonPollWithSince = (baseUrl, topic, since) => `${topicUrlJson(baseUrl, topic)}?poll=1&since=${since}`; export const topicUrlAuth = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/auth`; +export const topicUrlWebPushSubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push`; +export const topicUrlWebPushUnsubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/unsubscribe`; export const topicShortUrl = (baseUrl, topic) => shortUrl(topicUrl(baseUrl, topic)); +export const webPushConfigUrl = (baseUrl) => `${baseUrl}/v1/web-push-config`; export const accountUrl = (baseUrl) => `${baseUrl}/v1/account`; export const accountPasswordUrl = (baseUrl) => `${baseUrl}/v1/account/password`; export const accountTokenUrl = (baseUrl) => `${baseUrl}/v1/account/token`; @@ -156,7 +159,7 @@ export const splitNoEmpty = (s, delimiter) => .filter((x) => x !== ""); /** Non-cryptographic hash function, see https://stackoverflow.com/a/8831937/1440785 */ -export const hashCode = async (s) => { +export const hashCode = (s) => { let hash = 0; for (let i = 0; i < s.length; i += 1) { const char = s.charCodeAt(i); @@ -288,3 +291,16 @@ export const randomAlphanumericString = (len) => { } return id; }; + +export const urlB64ToUint8Array = (base64String) => { + const padding = "=".repeat((4 - (base64String.length % 4)) % 4); + const base64 = (base64String + padding).replace(/-/g, "+").replace(/_/g, "/"); + + const rawData = window.atob(base64); + const outputArray = new Uint8Array(rawData.length); + + for (let i = 0; i < rawData.length; i += 1) { + outputArray[i] = rawData.charCodeAt(i); + } + return outputArray; +}; diff --git a/web/src/components/Account.jsx b/web/src/components/Account.jsx index 541d4f868..bbc380c93 100644 --- a/web/src/components/Account.jsx +++ b/web/src/components/Account.jsx @@ -48,7 +48,7 @@ import routes from "./routes"; import { formatBytes, formatShortDate, formatShortDateTime, openUrl } from "../app/utils"; import accountApi, { LimitBasis, Role, SubscriptionInterval, SubscriptionStatus } from "../app/AccountApi"; import { Pref, PrefGroup } from "./Pref"; -import db from "../app/db"; +import getDb from "../app/getDb"; import UpgradeDialog from "./UpgradeDialog"; import { AccountContext } from "./App"; import DialogFooter from "./DialogFooter"; @@ -57,6 +57,7 @@ import { IncorrectPasswordError, UnauthorizedError } from "../app/errors"; import { ProChip } from "./SubscriptionPopup"; import theme from "./theme"; import session from "../app/Session"; +import subscriptionManager from "../app/SubscriptionManager"; const Account = () => { if (!session.exists()) { @@ -1077,8 +1078,10 @@ const DeleteAccountDialog = (props) => { const handleSubmit = async () => { try { + await subscriptionManager.unsubscribeAllWebPush(); + await accountApi.delete(password); - await db.delete(); + await getDb().delete(); console.debug(`[Account] Account deleted`); session.resetAndRedirect(routes.app); } catch (e) { diff --git a/web/src/components/ActionBar.jsx b/web/src/components/ActionBar.jsx index 798efb49f..154f17cb5 100644 --- a/web/src/components/ActionBar.jsx +++ b/web/src/components/ActionBar.jsx @@ -13,7 +13,7 @@ import session from "../app/Session"; import logo from "../img/ntfy.svg"; import subscriptionManager from "../app/SubscriptionManager"; import routes from "./routes"; -import db from "../app/db"; +import getDb from "../app/getDb"; import { topicDisplayName } from "../app/utils"; import Navigation from "./Navigation"; import accountApi from "../app/AccountApi"; @@ -120,8 +120,10 @@ const ProfileIcon = () => { const handleLogout = async () => { try { + await subscriptionManager.unsubscribeAllWebPush(); + await accountApi.logout(); - await db.delete(); + await getDb().delete(); } finally { session.resetAndRedirect(routes.app); } diff --git a/web/src/components/App.jsx b/web/src/components/App.jsx index 189235bb6..148c3ac29 100644 --- a/web/src/components/App.jsx +++ b/web/src/components/App.jsx @@ -57,6 +57,10 @@ const App = () => { const updateTitle = (newNotificationsCount) => { document.title = newNotificationsCount > 0 ? `(${newNotificationsCount}) ntfy` : "ntfy"; + + if ("setAppBadge" in window.navigator) { + window.navigator.setAppBadge(newNotificationsCount); + } }; const Layout = () => { diff --git a/web/src/components/Navigation.jsx b/web/src/components/Navigation.jsx index 8cbefec40..b2755aa97 100644 --- a/web/src/components/Navigation.jsx +++ b/web/src/components/Navigation.jsx @@ -14,7 +14,6 @@ import { ListSubheader, Portal, Tooltip, - Button, Typography, Box, IconButton, @@ -94,15 +93,10 @@ const NavList = (props) => { setSubscribeDialogKey((prev) => prev + 1); }; - const handleRequestNotificationPermission = () => { - notifier.maybeRequestPermission((granted) => props.onNotificationGranted(granted)); - }; - const handleSubscribeSubmit = (subscription) => { console.log(`[Navigation] New subscription: ${subscription.id}`, subscription); handleSubscribeReset(); navigate(routes.forSubscription(subscription)); - handleRequestNotificationPermission(); }; const handleAccountClick = () => { @@ -114,19 +108,27 @@ const NavList = (props) => { const isPaid = account?.billing?.subscription; const showUpgradeBanner = config.enable_payments && !isAdmin && !isPaid; const showSubscriptionsList = props.subscriptions?.length > 0; - const showNotificationBrowserNotSupportedBox = !notifier.browserSupported(); + const showNotificationPermissionDenied = notifier.denied(); + const showNotificationIOSInstallRequired = notifier.iosSupportedButInstallRequired(); + const showNotificationBrowserNotSupportedBox = !showNotificationIOSInstallRequired && !notifier.browserSupported(); const showNotificationContextNotSupportedBox = notifier.browserSupported() && !notifier.contextSupported(); // Only show if notifications are generally supported in the browser - const showNotificationGrantBox = notifier.supported() && props.subscriptions?.length > 0 && !props.notificationsGranted; + const navListPadding = - showNotificationGrantBox || showNotificationBrowserNotSupportedBox || showNotificationContextNotSupportedBox ? "0" : ""; + showNotificationPermissionDenied || + showNotificationIOSInstallRequired || + showNotificationBrowserNotSupportedBox || + showNotificationContextNotSupportedBox + ? "0" + : ""; return ( <> + {showNotificationPermissionDenied && } {showNotificationBrowserNotSupportedBox && } {showNotificationContextNotSupportedBox && } - {showNotificationGrantBox && } + {showNotificationIOSInstallRequired && } {!showSubscriptionsList && ( navigate(routes.app)} selected={location.pathname === config.app_root}> @@ -344,16 +346,26 @@ const SubscriptionItem = (props) => { ); }; -const NotificationGrantAlert = (props) => { +const NotificationPermissionDeniedAlert = () => { + const { t } = useTranslation(); + return ( + <> + + {t("alert_notification_permission_denied_title")} + {t("alert_notification_permission_denied_description")} + + + + ); +}; + +const NotificationIOSInstallRequiredAlert = () => { const { t } = useTranslation(); return ( <> - {t("alert_grant_title")} - {t("alert_grant_description")} - + {t("alert_notification_ios_install_required_title")} + {t("alert_notification_ios_install_required_description")} diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 4afc0f80b..091e1f517 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -48,6 +48,7 @@ import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; import { subscribeTopic } from "./SubscribeDialog"; +import notifier from "../app/Notifier"; const maybeUpdateAccountSettings = async (payload) => { if (!session.exists()) { @@ -85,6 +86,7 @@ const Notifications = () => { + {notifier.pushSupported() && } ); @@ -232,6 +234,36 @@ const DeleteAfter = () => { ); }; +const WebPushDefaultEnabled = () => { + const { t } = useTranslation(); + const labelId = "prefWebPushDefaultEnabled"; + const defaultEnabled = useLiveQuery(async () => prefs.webPushDefaultEnabled()); + const handleChange = async (ev) => { + await prefs.setWebPushDefaultEnabled(ev.target.value); + }; + + // while loading + if (defaultEnabled == null) { + return null; + } + + return ( + + + + + + ); +}; + const Users = () => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); diff --git a/web/src/components/SubscribeDialog.jsx b/web/src/components/SubscribeDialog.jsx index 0f1cec13d..57281661f 100644 --- a/web/src/components/SubscribeDialog.jsx +++ b/web/src/components/SubscribeDialog.jsx @@ -8,17 +8,20 @@ import { DialogContentText, DialogTitle, Autocomplete, - Checkbox, FormControlLabel, FormGroup, useMediaQuery, + Switch, + Stack, } from "@mui/material"; import { useTranslation } from "react-i18next"; +import { Warning } from "@mui/icons-material"; +import { useLiveQuery } from "dexie-react-hooks"; import theme from "./theme"; import api from "../app/Api"; import { randomAlphanumericString, topicUrl, validTopic, validUrl } from "../app/utils"; import userManager from "../app/UserManager"; -import subscriptionManager from "../app/SubscriptionManager"; +import subscriptionManager, { NotificationType } from "../app/SubscriptionManager"; import poller from "../app/Poller"; import DialogFooter from "./DialogFooter"; import session from "../app/Session"; @@ -28,11 +31,13 @@ import ReserveTopicSelect from "./ReserveTopicSelect"; import { AccountContext } from "./App"; import { TopicReservedError, UnauthorizedError } from "../app/errors"; import { ReserveLimitChip } from "./SubscriptionPopup"; +import notifier from "../app/Notifier"; +import prefs from "../app/Prefs"; const publicBaseUrl = "https://ntfy.sh"; -export const subscribeTopic = async (baseUrl, topic) => { - const subscription = await subscriptionManager.add(baseUrl, topic); +export const subscribeTopic = async (baseUrl, topic, opts) => { + const subscription = await subscriptionManager.add(baseUrl, topic, opts); if (session.exists()) { try { await accountApi.addSubscription(baseUrl, topic); @@ -52,14 +57,29 @@ const SubscribeDialog = (props) => { const [showLoginPage, setShowLoginPage] = useState(false); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); - const handleSuccess = async () => { + const webPushDefaultEnabled = useLiveQuery(async () => prefs.webPushDefaultEnabled()); + + const handleSuccess = async (notificationType) => { console.log(`[SubscribeDialog] Subscribing to topic ${topic}`); const actualBaseUrl = baseUrl || config.base_url; - const subscription = await subscribeTopic(actualBaseUrl, topic); + const subscription = await subscribeTopic(actualBaseUrl, topic, { + notificationType, + }); poller.pollInBackground(subscription); // Dangle! + + // if the user hasn't changed the default web push setting yet, set it to enabled + if (notificationType === "background" && webPushDefaultEnabled === "initial") { + await prefs.setWebPushDefaultEnabled(true); + } + props.onSuccess(subscription); }; + // wait for liveQuery load + if (webPushDefaultEnabled === undefined) { + return <>; + } + return ( {!showLoginPage && ( @@ -72,6 +92,7 @@ const SubscribeDialog = (props) => { onCancel={props.onCancel} onNeedsLogin={() => setShowLoginPage(true)} onSuccess={handleSuccess} + webPushDefaultEnabled={webPushDefaultEnabled} /> )} {showLoginPage && setShowLoginPage(false)} onSuccess={handleSuccess} />} @@ -79,6 +100,22 @@ const SubscribeDialog = (props) => { ); }; +const browserNotificationsSupported = notifier.supported(); +const pushNotificationsSupported = notifier.pushSupported(); +const iosInstallRequired = notifier.iosSupportedButInstallRequired(); + +const getNotificationTypeFromToggles = (browserNotificationsEnabled, backgroundNotificationsEnabled) => { + if (backgroundNotificationsEnabled) { + return NotificationType.BACKGROUND; + } + + if (browserNotificationsEnabled) { + return NotificationType.BROWSER; + } + + return NotificationType.SOUND; +}; + const SubscribePage = (props) => { const { t } = useTranslation(); const { account } = useContext(AccountContext); @@ -96,6 +133,30 @@ const SubscribePage = (props) => { const reserveTopicEnabled = session.exists() && (account?.role === Role.ADMIN || (account?.role === Role.USER && (account?.stats.reservations_remaining || 0) > 0)); + // load initial value, but update it in `handleBrowserNotificationsChanged` + // if we interact with the API and therefore possibly change it (from default -> denied) + const [notificationsExplicitlyDenied, setNotificationsExplicitlyDenied] = useState(notifier.denied()); + // default to on if notifications are already granted + const [browserNotificationsEnabled, setBrowserNotificationsEnabled] = useState(notifier.granted()); + const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState(props.webPushDefaultEnabled === "enabled"); + + const handleBrowserNotificationsChanged = async (e) => { + if (e.target.checked && (await notifier.maybeRequestPermission())) { + setBrowserNotificationsEnabled(true); + if (props.webPushDefaultEnabled === "enabled") { + setBackgroundNotificationsEnabled(true); + } + } else { + setNotificationsExplicitlyDenied(notifier.denied()); + setBrowserNotificationsEnabled(false); + setBackgroundNotificationsEnabled(false); + } + }; + + const handleBackgroundNotificationsChanged = (e) => { + setBackgroundNotificationsEnabled(e.target.checked); + }; + const handleSubscribe = async () => { const user = await userManager.get(baseUrl); // May be undefined const username = user ? user.username : t("subscribe_dialog_error_user_anonymous"); @@ -133,12 +194,15 @@ const SubscribePage = (props) => { } console.log(`[SubscribeDialog] Successful login to ${topicUrl(baseUrl, topic)} for user ${username}`); - props.onSuccess(); + props.onSuccess(getNotificationTypeFromToggles(browserNotificationsEnabled, backgroundNotificationsEnabled)); }; const handleUseAnotherChanged = (e) => { props.setBaseUrl(""); setAnotherServerVisible(e.target.checked); + if (e.target.checked) { + setBackgroundNotificationsEnabled(false); + } }; const subscribeButtonEnabled = (() => { @@ -193,8 +257,7 @@ const SubscribePage = (props) => { setReserveTopicVisible(ev.target.checked)} @@ -217,8 +280,9 @@ const SubscribePage = (props) => { { )} )} + {browserNotificationsSupported && ( + + + } + label={ + + {t("subscribe_dialog_subscribe_enable_browser_notifications_label")} + {notificationsExplicitlyDenied && } + + } + /> + {pushNotificationsSupported && !anotherServerVisible && browserNotificationsEnabled && ( + + } + label={t("subscribe_dialog_subscribe_enable_background_notifications_label")} + /> + )} + + )} diff --git a/web/src/components/SubscriptionPopup.jsx b/web/src/components/SubscriptionPopup.jsx index ee83a1194..90c63b3fd 100644 --- a/web/src/components/SubscriptionPopup.jsx +++ b/web/src/components/SubscriptionPopup.jsx @@ -14,12 +14,26 @@ import { useMediaQuery, MenuItem, IconButton, + ListItemIcon, + ListItemText, + Divider, } from "@mui/material"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; -import { Clear } from "@mui/icons-material"; +import { + Check, + Clear, + ClearAll, + Edit, + EnhancedEncryption, + Lock, + LockOpen, + NotificationsOff, + RemoveCircle, + Send, +} from "@mui/icons-material"; import theme from "./theme"; -import subscriptionManager from "../app/SubscriptionManager"; +import subscriptionManager, { NotificationType } from "../app/SubscriptionManager"; import DialogFooter from "./DialogFooter"; import accountApi, { Role } from "../app/AccountApi"; import session from "../app/Session"; @@ -30,6 +44,7 @@ import api from "../app/Api"; import { AccountContext } from "./App"; import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; +import notifier from "../app/Notifier"; export const SubscriptionPopup = (props) => { const { t } = useTranslation(); @@ -70,8 +85,7 @@ export const SubscriptionPopup = (props) => { }; const handleSendTestMessage = async () => { - const { baseUrl } = props.subscription; - const { topic } = props.subscription; + const { baseUrl, topic } = props.subscription; const tags = shuffle([ "grinning", "octopus", @@ -133,7 +147,7 @@ export const SubscriptionPopup = (props) => { const handleUnsubscribe = async () => { console.log(`[SubscriptionPopup] Unsubscribing from ${props.subscription.id}`, props.subscription); - await subscriptionManager.remove(props.subscription.id); + await subscriptionManager.remove(props.subscription); if (session.exists() && !subscription.internal) { try { await accountApi.deleteSubscription(props.subscription.baseUrl, props.subscription.topic); @@ -155,19 +169,72 @@ export const SubscriptionPopup = (props) => { return ( <> - {t("action_bar_change_display_name")} - {showReservationAdd && {t("action_bar_reservation_add")}} + + + + + + + + {t("action_bar_change_display_name")} + + {showReservationAdd && ( + + + + + {t("action_bar_reservation_add")} + + )} {showReservationAddDisabled && ( + + + + {t("action_bar_reservation_add")} )} - {showReservationEdit && {t("action_bar_reservation_edit")}} - {showReservationDelete && {t("action_bar_reservation_delete")}} - {t("action_bar_send_test_notification")} - {t("action_bar_clear_notifications")} - {t("action_bar_unsubscribe")} + {showReservationEdit && ( + + + + + + {t("action_bar_reservation_edit")} + + )} + {showReservationDelete && ( + + + + + + {t("action_bar_reservation_delete")} + + )} + + + + + + {t("action_bar_send_test_notification")} + + + + + + + {t("action_bar_clear_notifications")} + + + + + + + {t("action_bar_unsubscribe")} + { ); }; +const getNotificationType = (subscription) => { + if (subscription.mutedUntil === 1) { + return "muted"; + } + + return subscription.notificationType ?? NotificationType.BROWSER; +}; + +const checkedItem = ( + + + +); + +const NotificationToggle = ({ subscription }) => { + const { t } = useTranslation(); + const type = getNotificationType(subscription); + + const handleChange = async (newType) => { + try { + if (newType !== NotificationType.SOUND && !(await notifier.maybeRequestPermission())) { + return; + } + + await subscriptionManager.setNotificationType(subscription, newType); + } catch (e) { + console.error("[NotificationToggle] Error setting notification type", e); + } + }; + + const unmute = async () => { + await subscriptionManager.setMutedUntil(subscription.id, 0); + }; + + if (type === "muted") { + return ( + + + + + {t("notification_toggle_unmute")} + + ); + } + + return ( + <> + + {type === NotificationType.SOUND && checkedItem} + handleChange(NotificationType.SOUND)}> + {t("notification_toggle_sound")} + + + {!notifier.denied() && !notifier.iosSupportedButInstallRequired() && ( + <> + {notifier.supported() && ( + + {type === NotificationType.BROWSER && checkedItem} + handleChange(NotificationType.BROWSER)}> + {t("notification_toggle_browser")} + + + )} + {notifier.pushSupported() && ( + + {type === NotificationType.BACKGROUND && checkedItem} + handleChange(NotificationType.BACKGROUND)}> + {t("notification_toggle_background")} + + + )} + + )} + + ); +}; + export const ReserveLimitChip = () => { const { account } = useContext(AccountContext); if (account?.role === Role.ADMIN || account?.stats.reservations_remaining > 0) { diff --git a/web/src/components/hooks.js b/web/src/components/hooks.js index 6b6818817..3a710e3ac 100644 --- a/web/src/components/hooks.js +++ b/web/src/components/hooks.js @@ -2,7 +2,6 @@ import { useNavigate, useParams } from "react-router-dom"; import { useEffect, useState } from "react"; import subscriptionManager from "../app/SubscriptionManager"; import { disallowedTopic, expandSecureUrl, topicUrl } from "../app/utils"; -import notifier from "../app/Notifier"; import routes from "./routes"; import connectionManager from "../app/ConnectionManager"; import poller from "../app/Poller"; @@ -10,6 +9,7 @@ import pruner from "../app/Pruner"; import session from "../app/Session"; import accountApi from "../app/AccountApi"; import { UnauthorizedError } from "../app/errors"; +import webPushWorker from "../app/WebPushWorker"; /** * Wire connectionManager and subscriptionManager so that subscriptions are updated when the connection @@ -41,7 +41,7 @@ export const useConnectionListeners = (account, subscriptions, users) => { const added = await subscriptionManager.addNotification(subscriptionId, notification); if (added) { const defaultClickAction = (subscription) => navigate(routes.forSubscription(subscription)); - await notifier.notify(subscriptionId, notification, defaultClickAction); + await subscriptionManager.notify(subscriptionId, notification, defaultClickAction); } }; @@ -61,7 +61,7 @@ export const useConnectionListeners = (account, subscriptions, users) => { } }; - connectionManager.registerStateListener(subscriptionManager.updateState); + connectionManager.registerStateListener((id, state) => subscriptionManager.updateState(id, state)); connectionManager.registerMessageListener(handleMessage); return () => { @@ -79,7 +79,7 @@ export const useConnectionListeners = (account, subscriptions, users) => { if (!account || !account.sync_topic) { return; } - subscriptionManager.add(config.base_url, account.sync_topic, true); // Dangle! + subscriptionManager.add(config.base_url, account.sync_topic, { internal: true }); // Dangle! }, [account]); // When subscriptions or users change, refresh the connections @@ -129,11 +129,30 @@ export const useAutoSubscribe = (subscriptions, selected) => { * and Poller.js, because side effect imports are not a thing in JS, and "Optimize imports" cleans * up "unused" imports. See https://github.com/binwiederhier/ntfy/issues/186. */ + +const stopWorkers = () => { + poller.stopWorker(); + pruner.stopWorker(); + accountApi.stopWorker(); +}; + +const startWorkers = () => { + poller.startWorker(); + pruner.startWorker(); + accountApi.startWorker(); +}; + export const useBackgroundProcesses = () => { useEffect(() => { - poller.startWorker(); - pruner.startWorker(); - accountApi.startWorker(); + console.log("[useBackgroundProcesses] mounting"); + startWorkers(); + webPushWorker.startWorker(); + + return () => { + console.log("[useBackgroundProcesses] unloading"); + stopWorkers(); + webPushWorker.stopWorker(); + }; }, []); }; diff --git a/web/vite.config.js b/web/vite.config.js index ffc80ab74..840ee0067 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -1,14 +1,73 @@ /* eslint-disable import/no-extraneous-dependencies */ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; +import { VitePWA } from "vite-plugin-pwa"; + +// please look at develop.md for how to run your browser +// in a mode allowing insecure service worker testing +// this turns on: +// - the service worker in dev mode +// - turns off automatically opening the browser +const enableLocalPWATesting = process.env.ENABLE_DEV_PWA; export default defineConfig(() => ({ build: { outDir: "build", assetsDir: "static/media", + sourcemap: true, }, server: { port: 3000, + open: !enableLocalPWATesting, }, - plugins: [react()], + plugins: [ + react(), + VitePWA({ + registerType: "autoUpdate", + injectRegister: "inline", + strategies: "injectManifest", + devOptions: { + enabled: enableLocalPWATesting, + /* when using generateSW the PWA plugin will switch to classic */ + type: "module", + navigateFallback: "index.html", + }, + injectManifest: { + globPatterns: ["**/*.{js,css,html,mp3,png,svg,json}"], + globIgnores: ["config.js"], + manifestTransforms: [ + (entries) => ({ + manifest: entries.map((entry) => + entry.url === "index.html" + ? { + ...entry, + url: "/", + } + : entry + ), + }), + ], + }, + manifest: { + name: "ntfy web", + short_name: "ntfy", + description: + "ntfy lets you send push notifications via scripts from any computer or phone. Made with ❤ by Philipp C. Heckel, Apache License 2.0, source at https://heckel.io/ntfy.", + theme_color: "#317f6f", + start_url: "/", + icons: [ + { + src: "/static/images/pwa-192x192.png", + sizes: "192x192", + type: "image/png", + }, + { + src: "/static/images/pwa-512x512.png", + sizes: "512x512", + type: "image/png", + }, + ], + }, + }), + ], })); From a9fef387faf5754060dd3e12f6a8921fe99a6df0 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Mon, 29 May 2023 17:57:21 +0200 Subject: [PATCH 02/74] Add web push tests --- cmd/serve.go | 2 +- cmd/web_push.go | 36 ++++- cmd/web_push_test.go | 24 +++ docs/config.md | 4 +- docs/develop.md | 2 +- docs/static/img/pwa-badge.png | Bin 0 -> 804922 bytes docs/static/img/pwa-install.png | Bin 0 -> 291616 bytes docs/static/img/pwa.png | Bin 0 -> 285281 bytes docs/static/img/web-pin.png | Bin 18235 -> 0 bytes docs/static/img/web-push-settings.png | Bin 0 -> 329556 bytes docs/static/img/web-subscribe.png | Bin 77785 -> 300865 bytes docs/subscribe/desktop.md | 12 ++ docs/subscribe/web.md | 55 +++++-- mkdocs.yml | 1 + server/config.go | 2 + server/server.go | 31 ++-- server/server.yml | 2 +- server/server_test.go | 26 +++- server/server_web_push_test.go | 212 ++++++++++++++++++++++++++ web/src/app/utils.js | 2 +- 20 files changed, 371 insertions(+), 40 deletions(-) create mode 100644 cmd/web_push_test.go create mode 100644 docs/static/img/pwa-badge.png create mode 100644 docs/static/img/pwa-install.png create mode 100644 docs/static/img/pwa.png delete mode 100644 docs/static/img/web-pin.png create mode 100644 docs/static/img/web-push-settings.png create mode 100644 docs/subscribe/desktop.md create mode 100644 server/server_web_push_test.go diff --git a/cmd/serve.go b/cmd/serve.go index a5105bcd1..4ec94945d 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -194,7 +194,7 @@ func execServe(c *cli.Context) error { if firebaseKeyFile != "" && !util.FileExists(firebaseKeyFile) { return errors.New("if set, FCM key file must exist") } else if webPushEnabled && (webPushPrivateKey == "" || webPushPublicKey == "" || webPushSubscriptionsFile == "" || webPushEmailAddress == "" || baseURL == "") { - return errors.New("if web push is enabled, web-push-private-key, web-push-public-key, web-push-subscriptions-file, web-push-email-address, and base-url should be set. run 'ntfy web-push-keys' to generate keys") + return errors.New("if web push is enabled, web-push-private-key, web-push-public-key, web-push-subscriptions-file, web-push-email-address, and base-url should be set. run 'ntfy web-push generate-keys' to generate keys") } else if keepaliveInterval < 5*time.Second { return errors.New("keepalive interval cannot be lower than five seconds") } else if managerInterval < 5*time.Second { diff --git a/cmd/web_push.go b/cmd/web_push.go index becaffd75..8b09762cf 100644 --- a/cmd/web_push.go +++ b/cmd/web_push.go @@ -14,11 +14,20 @@ func init() { } var cmdWebPush = &cli.Command{ - Name: "web-push-keys", - Usage: "Generate web push VAPID keys", - UsageText: "ntfy web-push-keys", + Name: "web-push", + Usage: "Generate keys, in the future manage web push subscriptions", + UsageText: "ntfy web-push [generate-keys]", Category: categoryServer, - Action: generateWebPushKeys, + + Subcommands: []*cli.Command{ + { + Action: generateWebPushKeys, + Name: "generate-keys", + Usage: "Generate VAPID keys to enable browser background push notifications", + UsageText: "ntfy web-push generate-keys", + Category: categoryServer, + }, + }, } func generateWebPushKeys(c *cli.Context) error { @@ -27,13 +36,28 @@ func generateWebPushKeys(c *cli.Context) error { return err } - fmt.Fprintf(c.App.ErrWriter, `Add the following lines to your config file: + fmt.Fprintf(c.App.ErrWriter, `Keys generated. + +VAPID Public Key: +%s + +VAPID Private Key: +%s + +--- + +Add the following lines to your config file: + web-push-enabled: true web-push-public-key: %s web-push-private-key: %s web-push-subscriptions-file: web-push-email-address: -`, publicKey, privateKey) + +Look at the docs for other methods (e.g. command line flags & environment variables). + +You will also need to set a base-url. +`, publicKey, privateKey, publicKey, privateKey) return nil } diff --git a/cmd/web_push_test.go b/cmd/web_push_test.go new file mode 100644 index 000000000..3241ea43f --- /dev/null +++ b/cmd/web_push_test.go @@ -0,0 +1,24 @@ +package cmd + +import ( + "testing" + + "github.com/stretchr/testify/require" + "github.com/urfave/cli/v2" + "heckel.io/ntfy/server" +) + +func TestCLI_WebPush_GenerateKeys(t *testing.T) { + app, _, _, stderr := newTestApp() + require.Nil(t, runWebPushCommand(app, server.NewConfig(), "generate-keys")) + require.Contains(t, stderr.String(), "Keys generated.") +} + +func runWebPushCommand(app *cli.App, conf *server.Config, args ...string) error { + webPushArgs := []string{ + "ntfy", + "--log-level=ERROR", + "web-push", + } + return app.Run(append(webPushArgs, args...)) +} diff --git a/docs/config.md b/docs/config.md index 774f9b2fc..3aeab6140 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1286,8 +1286,8 @@ variable before running the `ntfy` command (e.g. `export NTFY_LISTEN_HTTP=:80`). | `stripe-webhook-key` | `NTFY_STRIPE_WEBHOOK_KEY` | *string* | - | Payments: Key required to validate the authenticity of incoming webhooks from Stripe | | `billing-contact` | `NTFY_BILLING_CONTACT` | *email address* or *website* | - | Payments: Email or website displayed in Upgrade dialog as a billing contact | | `web-push-enabled` | `NTFY_WEB_PUSH_ENABLED` | *boolean* (`true` or `false`) | - | Web Push: Enable/disable (requires private and public key below). | -| `web-push-public-key` | `NTFY_WEB_PUSH_PUBLIC_KEY` | *string* | - | Web Push: Public Key. Run `ntfy web-push-keys` to generate | -| `web-push-private-key` | `NTFY_WEB_PUSH_PRIVATE_KEY` | *string* | - | Web Push: Private Key. Run `ntfy web-push-keys` to generate | +| `web-push-public-key` | `NTFY_WEB_PUSH_PUBLIC_KEY` | *string* | - | Web Push: Public Key. Run `ntfy web-push generate-keys` to generate | +| `web-push-private-key` | `NTFY_WEB_PUSH_PRIVATE_KEY` | *string* | - | Web Push: Private Key. Run `ntfy web-push generate-keys` to generate | | `web-push-subscriptions-file` | `NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE` | *string* | - | Web Push: Subscriptions file | | `web-push-email-address` | `NTFY_WEB_PUSH_EMAIL_ADDRESS` | *string* | - | Web Push: Sender email address | diff --git a/docs/develop.md b/docs/develop.md index 6be65abd4..09215d9a4 100644 --- a/docs/develop.md +++ b/docs/develop.md @@ -247,7 +247,7 @@ Reference: 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 z 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∈VDwY+>kNcEiivKvtdKrLoui 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

8Ek<^i4 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

x?A)hy{o3zi*v9&q9Amgj6ua9a>8 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μho>nS>a|&RS=w2b1&@lBg!Shg?gaby7`IWsw`R<) zEP?t8?+V75LJW;-ky3~|iVL>aam3upUqsubZ&((eM@V|{Ktk-f=*)P&+3R5XQ$O`v z5-z#@TDOpKj4QLLTbm1(%#|C9v&69^q2C@t{3@BRQ_BhGCk7m3fO4{OQ@CMv^+{>j zzpet9^T~Wg@DXEr?&IELKgNS1z2bFZ7n}DS1y^1$ox6H&6ncp4PPj+o!a`gM zLz|^MGu(NE%8p|*5=`lr#2l^ohV^&ftQ_CM5-|4R#H8`UtGgk?yxv9 zp{tIZF0_c#iTMfe@oS@ECOm2_|F(y6BwVD~CfV>wVRUunS-XHux5>(z_$fC*NGGEv=eJ)SeM#_jyn}WqgM%qT>A+Kz(joXh)Ejeah3G@EKdt>)?paKKkUFz z=D-7R{x`lbQASd;+^C6@X^;!2dE)DSplqN-{)B-qqQiA#b1f(IO}Q7hn_T zC1@v#O7w~cVvy+Fo*C4h(kw?QNmh%fpF&oqbG|$H-Mws9H_FHZQR*-gEH52wd*Q(g zyY8{F$Xs!m3DgZKJ0QBGXzIB6h+bc26HQVi22=_CztdhX9*!})A|YyN4W>Ar!{z^lx`ueztUhAS}rm08bo#O~KSb?xuT zHZiI1r-XXqSLUj6YCB`@K9@Cy?OvK)Yp)QAgtWRxU&@||-!!~P_KlKh z(#bp{HS=pr-0Fo<+qX57jyRdJu?L2a;JLDOepe)Nbj(7(RNonWeC#Bukblk6QROFW zG*)#_?!-B~_V@2ypPV`>0egsHY|k*;zczX?dhlfO{JqM|&f&mTh>eN1UTA=NV4NU8 zS10&I%u_%l%NX#nr-h;5cWQGhy{BPJmteMoP;DKCmctYig2`Q1g~n7C_wx5^YK+x? zrPC>DD#&VEk{d z)vmlfUxhxM2}oUj`f9EKNSRXm+Cp~i&Fb8x9oG86*eI-3?m~dQ>qz=tETka54|Vp6 zYEI5jIQjdqL)$u6FY~53u@cB@+9RPbD14`3{CKuK>efW+=73S!Tgx~{GhlV~fr}@F zhcHJdP7W$(%Ooky(OQ}xZZ70iF)yT4RTtG6tNwL%dgzi1JlL-E;@-uw&p>PH;u+m{ zxNk7o8%5DhN8Lo_YJZm_EQ01GjCDyL;FSJT#X%mEv9B^4047p$tN`OE$SsRkAZx5> z>bmEx^^@JQRYTtJdUVMRCI7MyXMQ1$`lhqCc)y2!B)Z|K_rl!sGz8+rrQmGn$8enW0y!b{9zj&TdI5{fCZr{tFnI8Q+HJ3?<$s4 zi+tT5vbcrSPhh(x&@P0ueZ}eCETD|e!qQLJk(K}`QNjq{vZ!6`Ha1w+(+`RWU7GZh z=-b^lEO)8eS*67~iKXIP!VK(ClsCJlyFcd2n7=b5c18W9jPB*vqYPJ8P5gN9tF@L7 zou!K#7{10+!wtOYYLXh*j6CYk7*K& z|Fgi#XHjJ+|*mC~z>-1B?u-RAS3qm^D4zX!hU>(mzw?kL4I%CD6HlM^x_ zN@M)35=5>4R?zDSnrOir8WN3d=xL9A}X`G=Wkyr9$6)B;3LXOf*1UrTXKBF4#3J`3eU1Rd4zG z-WN36o3(W4OW~=qdag__sR+ixw-aC-hD6?Dv)1ju=C{>z_@@2Jwv+V1N+nasvRTmZ zh?X|rKd4Qv+{-1x_jhBWg?;r3)&a&A*?WN3BbSEYP!aQ7=8vOBU{!2uQPh8qFF6W3 z?z!KH#JdjP3tH@yGx4^$gGk5fS2_Dwp1L)pDaM=aC1EVS=kS2viLQ>pHoVZ5P_xyK z&33-c#0Qw3E&javn6*bAUid$mIQFV^%%0Dw-kcsRp%4C=U%8t4TI<~i(vdDhC)~^q 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�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

*h+xPgcDJQlicxK92<&WJZ-B^aAZ5+3Akm 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

*<&?s`_kj6hpcHbI!3^?D3x`LeQ0dN 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νj)i&1uDtwu-+B_ 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 FV1iUJ8C?JX literal 0 HcmV?d00001 diff --git a/docs/static/img/pwa-install.png b/docs/static/img/pwa-install.png new file mode 100644 index 0000000000000000000000000000000000000000..e7397add644039938c0aad554896112072c63384 GIT binary patch literal 291616 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%0AI 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
^_F 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

F=21(*!qxJ-o~qimEzHmP^|c`fpPG{9gNLPN zl5$*&T1~&mIXB*8vR#e^9KSGF@+d(}vhGxYO+1r2uFO7>ck_SQykaQve%by$w)5gx z;#YtsqNC%YRw6ITbK|OY-b^asO1W+ObI?`K4870F*5RSj#Dm20E47OX&;#1edM?HZF_UtC|2mkMdBX=3e_YW4G!w$o1GtA z&-b0Xnd(#;DxFC!b`yK%v^uxqZagJ#JC*wemsKg!A6i!4d3m0T?b1t*kP9bMy`)zb zPv#9=d^aNq-ea$3dwb$upvRv3;U;!4;y4+60lnx)UM36O4f`Y;6g*7&C^hca8XF&V zT_9&(!JNbjXj(&<(;?;J^nR@r$U8bf@`g(MHf~ z6VI$qGn_r|O%&qV=gaZDOWT&6*N*8`CHHYtwv@;e0q^|)d-d>PWAxc1ZSdJ%@^`D( zl$8O;-O8qKHWDZAe{TJ>J^0j_@A{6~yX=n4`g-!U=#q_fi{)n-$6Fqw(z?#m@>%&H&wnbOP8xEJi@zcm%j{eI}sqZmDK{ql9LEb(I2+`u`YfP3b}(-)5;c!zbK z&SM&{uLQF=4=o;z?aFdu(!w#FyJ_yy;xfal=BJ@Zk)^HkNZ2vA( zC(G6Opph;aQw zJnt!4*4jptgnfwm_bxW}UDi4hcP`V6yG(@Bnv2C-ZU9L_{lUSnN`ra6;Z<*t|29^4 zvZ;)bVH>a6o3?}*v3)Raw>i^$YITaCYjHio_mYbLL5x6;E zvxh+4y1&JoM9RODt`!b{j|>5YIVKo zAGVq_b=Y%*qny5G`xv!<^8W<^pU5TOEgSsW5$J ze&_re*18GpxE}f#_|&0nYa)<=7nJ9`ahdn_)NdcA1#5@Cy_~;9*;fPwHlGC}KPTz< zEP7=o{3B7D1zz^9wX@EAZ~Rdnyyp0J_$v9}m+#1Oa=Z{yMJVv{9PC#t)8n#eEY$s{ zDB0t7#kapc0^&?b#0k3UnfIfA&)ke(*;lxK@UFG@HPWsicK=$vbZzEzJC#rNk!`nQ*nI5=$yA*$ z>ue zt~hR~d)ZPYY4ZN<@%swP@%D48i!XJ-vZfx1Ty_Z?gdnNay?s?sunoy`k%tq5d%ZmG zHNX9h=wC4GieToy&%u75QxJH2kcZ9jnefjGeXLWU0I7pY(bzd# zi|He|R8Nj;j|TGK)La*KeKP&aQp>+Xe6{F)Z&r^Ns@1)hmE0Mbi?OKBG@u9T^-9Tg z%Re0%u1xI2nwmm4Sb1B5Sp2r4GhE;w*I{5L>%cC*--2yC4n|0X`zP_&3w9=I&ZlP1 zH}j%Tg2cR|Q-g>p<{r^EKbjn{CO`^tW0|D(uRVc%k0!#OUL<&8cfWV6c$e@tRv^O@ zno5?S6@5zi?2Ag+Ai9c_kR@Q#_)wpzLbLc*b4bsXo^kpv>4}HM5YKw$Vs8-;l+0+9 z2}qk`F{hEEppUBN7&m9i{wVYd`VABNO6OPXPH#evu;t0dgZHZyr@{DG;;-W9teEKN z4LA}|E2v|a4+FVXU(K_I8|CYEI(|mI<~2=y#}Y%x=oK<3v`U5u^_(awv<;H^@ixqw zNYyZ$C>6UC$C2a)9bmAvUoKC3vrkWVmLmwrh#%F@=!T>eyTZp-IY01<9PmYB(K_a+ z%dxS)yDqWNyTci1$JwPPatkme(o69a(NobSl1&T*7^`^-BE^T5hHk8QNFgbq_{>}_ zotK!F5TmAxl79*?hg?o9luLT#v7<>>g(=l%?Dj7}NvB|?j0rrNwm(;zYE6ovgtidV zKMh;{QD>F(H#eu_YpSVX_QUx&c`laxgS%Qsk5ks~+q%I@wmRdL)`f3trRe_HiI5tF zPaE}9!^AcRCq0+mrwYL%%m8w2VsJH!y^zNavsLls88)D7q17y4uVs$##r{aPZc{(Z zMqnqF+CAx6CMEMlx_yh?iif&8!REU~taTy1Kky1^TMaF>9b1W5+^WD}(0ayVOd^{9 zdz}8q*+Iuw0cmslsmvU!0{d;ltNylpne6&B>`|6y{ll|Aq@Nyg+BMpKAnN7$4}?dg z7NZ!uzP6^Um%ZvT$p(1}waQN(fz$WC7v`exlvO20 zZ^)2&M{}c@am4V{wPl%0$nOg{-d?pPXB$jp8LkhY7$JJYgMb$uU zqjYy8F*GRB2uOEItF$zTARy8;bT=qSr<8PemmnQOcXtdiFz{`j_x;W}*ZIXSW_Hcm zYu&YwB4DOyzyfTCwm?x`(vHp@w7ZtOitWBvRDaWIPPiQYE%3V|{#7E+C>8fw7#e)j zc=-40bm_HEfUVcPTZb8~lT%N@;m)z3LBZq34Zg zfqiwlk@Bg?0lM)A!DWxo+MGo*7+tcx&(qLA>Gz73?!HheSWYpy*lYK=!&~#|V`PUj z-YTi5(`xB2??4}0 zFUT5{!T@%A9*{_@NesHgQ_^^L&48kxZmFN-Irloph8LUK&mt3}K#wqnkr3PIWZzV+ z+bapH&}9K%O|OR4-us8yzW%+e_xyGNB0~nh{$S+GlpsN;|}E`@Xb%xT(WKewtN}ruEs-nHB`!)pXi& zxD0~CRK;w@VCYSc`|JZn+W!I#9dO)31cARGAN4KgtxG<9r?x}Y_*j8S^rkDB4-U7} zp)-g0o{yiGpCwkp8+;&5awCrd?)exCdj9ZcJfEHR`(ko<*W+>{pI7yh@JSM=_^Xax z4sCr;jQvwFc_tTtmZa76;KHpcfFldOn5|Lm-r2a`zKB~eh=Dh@=BRZ1ib6J){>B5d z?4V?WpeF4UJmoVAR8g)GLwn?np8Eg_(_GS)9z}@(#H5sQng~?06i$gR54g;H__7^O z(v-%M_v>>rHImDT#R?}BXCdW!D}!ne@wXYL||=6Y_|?(dyI%ymb8WOL%C ze-wZT=@tQaeX0UQo-_YXZlDCHVKRDI1tjoJiC3p@fj2a+_V1;yTD)Y)e=)%M1ElCs zw2Sn982{dJ6|av0Bqs!7rq|!qf#Cvr@h2DVz5ewXevLT8M)Zv3_LG{cd zo_PTo5a^%}7lr)T$VMZYxbDo5;9P8%-vHq4fcOHy-Gp>=L3iADmmUA$PiWdu593#1FZG(WEgo^Os|j&G8{Q4-su8#&JpFjp9g zVQoQS@3gK5LPyB;geVp0t7ED_F*6Y)TN(l*-CQN_B+UN@xjg*0e%EP=Tr5&&Q_(H? z(YK9q7R1i7=`5G$#DseEVlMv9V+(QY1C?t>rOUqRT(Nrkh0L9v?33T5r)@ zs#mRkp;!G@?J(Czkl1$1|NNqz7q>5JqD~(kb++aNE#l*mdhU3x=_{ohVvd)|aElMW0`sOLV1D9;hpX3fGX;X|FgHyqZ0qODV4RB1>+i8wR1AjW8_e z5D2W`YkzL`Jz!i)SWVsRhA#PQ+8GL~%>_K>fHD+@3uU1ADqV%nACQn?vJ?+kc-VteQeW97+ECA>zso`|ZAqm&WA+ z%bz#h2g0DBRgslexKhjhQRpC5r#|ggDm2<~It^%&edE~oL$0JaeGqf9{FaN(TuW;o zvWC-|R$e*8v-^B{ye%v$JU%v7(Y;`=%kuOGdg`N&x64thAi7m2>8= zBP}vp*QY=q8-=rRM>$yWojFCQ%&{!q3PcWPiyphS+7W}o9DQCYwm@+NsY*BH2dS#H4KH8?J3J)dJhJ^p z{~>DchFD}!O)%}ZKmeJ;q#s+@5m~nslB*g$lPk5}r!$;Wh4W4wLgv9<6?Dj#BHr7ifUdAzLDA@Q*1tIkCs~7v zV)^#U@oC5`M$xm|M5-1LsQ@ulh@kRy^yXvOJ9Vmv< zm?ylPYm?k9V=#{3~g3vZ~^i}qsGaeTh*aD-163ddyQONFZ5RJ7ZPV$?A^$+F zxaNT09$#aw!Ev;d*%Ju!k~eZg9v6_)t!;n0shVwY1O%rDu{^7nQIA-m|8DAXrhJs3W? zo|=4iGfc_@+F$OkCTn|B^cn;zP?Ye@D7~h$FS=z(XdQD<3HIgjK z`^lnx(9bjjMei}aO=Fq)qLEgxbN}{pHugZA7ufAU{Btr1UISy%<(H-^v~y~%8%;h+ z=J9CseizJ%G2f$^aHaM08|NLVP+r85*7$&9sFi3do4L}k%2mtV+5#VXk$b1N*!0Hd zeE;SzgfYN_IR1NeM|$1Fs^)u|s!oyMkz4k6@2A-Ig3+cOUTa2miT6;!STV)2gGUzM zzYbg)pr^hYBe&CL<&Lty9r1^Qr#^B;JeQtP z(ka)fjvbd+(IjZdX6y&I6`$m(0zoIB7F<`rVeg?XcVO61d%TLo)cO<*QF0v-5Y-8j z?MYnR8-LJQ@@@-qyOiekVI+Ui{&+YwJvUaDs#tgfrQJ#pbXpd;{>iQQ1`Q^Eh_ShJ zO@d@BrNXb79Z!eSw@>jl!tG1Tiz_tc&q+THil5HrI`ZbtpX9afNKdZc_4pR0jk8{( zYA8lfZg90#J<-jjNj#knQ8nf34%IBy-{^o_Z_IJ5iVUZ~PuFJ9KI4o(qs~-mu`H9Iz*Iqd!TR~K#TNMJEck5l{A27q*CPI;!i#fh4GLIO^P+*ObBW6yS8fYv zP)$2H!%iqWw8;PVNWu_vLzln`b*F0hG2Zsct7`B|{0^06_hF7nPW3SRmW<}rzaRRo zr=kTkxqR%FbgYe>a)ck9JtB2j_pTy2HRe{lYZgwsyc$my!Le<*SxVCupr=v6Y1M{R zJ9md4IxjN4XMb6xfwut?+|DD8z1)ifnu?4cuNe!8s^kw|M|7VwPO`N z6JxNb-PQ^|l z#oG2p&5~?1`v+UY&}ylN2FX-Sg^1p+b=kWHpES-eQ1_%*g#AZZ5inwS#e@m7Rf##t z6sKk8W>HnYeqF38l5XGK6f)Du<5bw$s;8nBi6-}ZKXm%Hm{f`W+Iqx5gAx$Z?qOPhQHuSw`6o_d@71B~_lsaek=QF6;(n)#-f7Z(Ruw)(|7SLQ1X*iG>Q%Ua&SF9)dMO1S zpsf%vokGlK>=fNJVP6g=b`2dtw=ktjO6e6dzdz@1@21Pmp+zBx0G=Bh2HDy0JE?7m zM=yJ92+!{^kx81Dcn6%vOzR{^-+5^v&kvUdnJZQOG~)NTZ~cxGU1Y+g0e9<^x(=l~ zDk{?d6_z`XuDiSzLiRbX>;5tvFs55F-?FLGwX{p};HIZ1F+a&jrF13aNB}!8|CxU= z))HD$lW(mQku@R14#-JGBqj}XX|X@vg48~W>pn@n@>(5k7^8ER%5iNyL}b7m5yC8I zU-sVH2^LE6n66_C_wD+mbwnd+P&_N2Z*f8{6RWQYItDYh$BP`lJ$O5&Na1EFA+1JV8 z&lF97^k4kKK1DSCzBN!^Q#DBSHhYLYD+_}>(DX|km7D!i98)XBLN0Sez=JqL{}_c* z$61wURZW#z%EBqEi2!pEk5;nSgl=`S{RidGYU z)`tK>(a)y6Nzl&e;AQ%4!jNTpEHZ;nT4QU0A9L9NT$GxkvvM;+40WBNmuy2Sx9^Dh z2YD2DM+&p8yDx?ytI(`eC!3!{9bw-?YbQ8AJC#Qk*B7FyC>;Q3K|=tE0SjUMcM}CP zdJe|d!1{nZA%-!>D3p_LtH;yq*B-C;rx)8VEnQ~HU^)db|FIQ#{DJ93gEPG8sQ+*V z-Pbb!AR2h_-xf%SxYxAKu-{TYhQVh7KYq2;FK>rhLF-Q+ll2yn$&)`mC2bmHo!R9{ zpGv@XR{>%y$Czn)hSgp1j4x!JXU+lUxqB0o^ zw9RkivWUCf7@ymlb3-?WnUx5Pp<{{{;jzfjaZL!B%|FJd9L@#mgcvlyxWUq$+9@SR zXi!IQbGS12gI8^0F<(N|e1*Mdaz$hFUBp+OC;9TnKtruRnUtxjXI+c-6_4%}0~GIu zvA@Et%DEm66b_Dt!L}?BE7tBfKelUXd0R)&JkC@Wn0v(sgR_>6J>yh5;@RPQ`~{aX z6-I|Yo?2Y(x&Sjlv0K~L%$FanKVIHUs0TmZF4aumjNTSZO0>9-iQPEchiKM^p1+Ot z^gi9C0=urvD|c`l&MsOYp|9T`Uu!^h)V=JPHis{?lR;wZLW^WkSwDu8OJiwZu)&+& zDRBA9{R|gQCI&wEFW<}~{=7(pS6^t17QopD_RbUA)?S2l7CUS)3{3zgsrHAOMA5P% zT?OCBo3KFR>}$`?(MHOLX&^HuM(j>RGfm*r{j_!Qz=>5B#Bvu^=TrI0#hrSQtwXcY z`voqvW*Ja39C>e7cuR`5*!EG)x)}JmLF4pFR$4e5& z-fF`)!9FaLrEcX5c6`tia?tOeUmN2u+sb3ba!N*uGL06w6+xOc^>Eo&GwyMS};L|l>F0#`r*MK(%`B8@LZMmsXU zXEjTZq8xhJ=P0Qg$YjJ8gQ0{L^v2TrS2P~CHpw!*h$T*xnxR!ExA`l!I&1P2i^zk5 zQJxX1ZaL) z=m0N8*PCly$Pc@SaU%BQb%J;T-@CXh&`6s5l@zws)C2||V7DYlWXWD$Bk2w^8Q-f? zLGJOuq3_2Rk>?$MegQq}EXG&+#p;-ie*N}d?(;qmJE22VWq!?iU5o2nz~3&WHu#W@ z4xlN*e$u=B$iganawC<&zHHBo9YP}atO^=Ry)oB)Xt0y1>eq$K6b!m=WTqIr?=VAI z0+&Kf$e+CuIgxm8ph`dA9s=@2**HrRak}Z{UE=i}(U;I$bn9M~?qB#X)#mtBn4r#K zlF$0_EgpN`c7_&PYd1Pp)6h4OL8y7jzdg6mUQkxnu+^@2mW^p0&ueuQ8z7A|(jmLz z67rN1dkF_3<#P*40Ky5H{hd%iG;nvw^*7bVTT<)4bPQ8xKY5xO$}lt5Ymy+wZcT=7 zis-tA+2eAk=&nga6jWsm?VbaOV>|;N1gXI*ln2As8Ix|WYw6r{;PoXwp{s+?diay> z*XGBN5T%ZsgGS>gt^P=mLh(u2&*cGl>qfNON{M~*=CxXI8J9QXoX4D@=_6jpHp_KW z^!JK(!?q{ZRbDawt0StW$p&Lh4Kz2soK@j#_q`-v#<}gGo-gZEO`|Oz`M*}iJEfL4 z8N!Fv)#A__;13Y%MfAZQ%UGv$*m|{rT%wx9e&WP3H#HM8ip4;A*L?2O{?J`rA;<>j z`w_}Ns-}ec%zaS0+3gPp?r-LpL3Xm}_GGp&9=egX_`_3)C(wVg$+j|b3;4N1H<7^; z<8h09O@`-n52%c`_20FC+s-P?wA{^mGjhi>8{7GOVfhT3+=GGtxPN%(^rBgaFn4vS zda9&s#+DW?yG-o^oKWuXsGP$*nSO4(Ro880Xoz*IcAOUsz16 zc3&WTKZy-T&1~GNKFrE_fS6Y3q&aMWtJS}^9xy)XEW00mRV({vLiyO(qwFU!umuY^)l1 zP9Z&6gtBKv5^;a83{e2VTBMxl*w7~SyTgCtwM3?+u4F)zOI9zW;% zj^W9#8tQ-_lasz*6@?5<=(WW&yk*5MF+>7v9S*ou!iki6KMrUQAKT~FP&@7-vGoG5 z!Koj~S%NRbBC*x%0+*o$X{@<#aSDUx`%z#2pupk|FX(z_7#@4n86W;HIIib!`lU0r z#al|}H48Ywh<4HT!B9a9J3+{W3wd+b-Qg+EH5L*6WFcFNka6d8qb?aKMl5h}x|=G! z#{M~+1&d!lC|ii;8_N9#9|uPS@4C6__-5$x`kKu51O^0h zpi#0y$muGu`cz4)fhs^vcukzNTgqBX10qy?L!c4(=$`m58sCQdA}9oqemahX?1ems z=Abo%uP-&wQ3JOnydsm}ec+z8iHQyal9l9pY5(K+J7Y;oNkcH{n6{M1mY#4v5wDrs z9*ZA@cde;?%S*Y|fGuH9DlO`=Pgd$A?!Wx&?YEPkX-6ix!lYr4w6&4Y=KB?Dc>*I~^dY^zQXv7-0{n^ffH~lg za7R0Je%Mt<%j57YG2N_Yh{)T{pie<& zT#Dd?j6b-5ufG|+jT?xFdrOObuui7mPWLe#%jB$V&W`PvGG zG6b(gT z-j&;LHA53%%}>Q+wpsG8<;3u@Yzn6^wszeNIFHX|R8pjuL4b^;N#IYk! zsZ>t|u|*T^l)GpM!bE};-vKC!f7k*q487|XpGIZR63_6~tFU1HfRqIn=tiB4ULISu zhjo8yto`P$l}`s~gt{{kt{7279P`UFC!Z}dcoxvDl$g|9aJiVMF8Nflzh8!&Des(- z{X_2@Gd!Lz#Zz2F;of*sc3BBwzly`jXlSIfUeT7;G-`4}w_C_3(>=}+tBcMw-#N*M zIwj`iZ`I zeJeTFET01v`Dn)prUnqHt>RLCIrawyxxJ`9%-{Q0uY$Aw;;!}wI`YKxr!}hLu>J{J z_rWMn2&sAs;ehwY)n#a)*e1pD1kz%=O&LlLSB`^$kNyk@Sh*X={x$1%2V-$0Oyvlf zxTVlQCf9!(nMvPtzOIxzDd>?Gq5evNMf7{GU+)Wc4P~d1mqG3;hv_vSl!HZ{nv&~; zUlF}PG2smc5aH<$@N*=4JJEJ!gxk>n_0DMW{J7okrazb%#%mn_#8cF&1k-$}9^Bf{ z(H~S?+M!|>2zAPFvE@)vkJ6bj&K61dMm6>iU(JYOi8uv8+a;GDz6Kv2x_Um2Xu z4u5<`b?L4Sd?a8$g>M#yd+|hikINS@RtH_4w=ZUSdOyne8XvbT$FO|rm_Gn*?NT|k zPd&aj1*(AC@anz_`fSnVT&zgNl78C(VXWK26;)GtFTGK>?eoT1! zLhVfrZe0{RkHgkq3CV5nB=^$k)VHB6g9wAYPDJ3HMcD~7knLwmm-3uGqq~JTP*lH9 zz0jwB3J${|RW4}{mxAiPF$*q-$GLXaM!w;mg{|=_1GZU0pDrnhYF6#_CE8@3xJE&} z!{I9$e>+_DtLk8p3Qw9zI#j^8KxQzApXldXIPB)1i7~>89kM|r^&|i z-SW*ByiI<3l!B(Q`%=}(g;0-g1RC~FVCmOS$RC(b#;%WXudokXq$IYNwzEjE9;^iQ zBk-`H1be>oVzMZXqL-SC*MrxxLM@njMgcJj({GXV6wGc}zGq>RbKw8Dig2bhb)p^v zI!A~n#>kaNoq_Z_Bun)|+9vZ(ssv>ipP)b*%u479oj7;v>$%6n~6K7S6+rC%T3Delb2`xS@S05 z6))l5S0#~yOPLc+!~&xt5wVG?ZeS;wu*zZr0}CANP@HL^9xM zP8de2Z1m++Ze1^sQ3_b5N6v^D5Mbj$z3D!g_8FJgq#{F!e>us;$XlK0xj>|_Qj|^D zLhDh96|zC8N8PxJN>l?xq;PEyw598W*u?`j&P)9Iz8S3#r=3d3#DaY@eDR?z1x3c) zBi+;hr!|I&NUipvhWzcVnTV{K{HOL7Oh+79tGGXxrRegZgV_K?^IFDgP37I=LzlPW zH^fWij2|$)PZOu4s*EWLo_uP*3s_%ClFZPV@ zo*9Z2Czsw2M2goCc?7R2KpF)QS!h}#g!lVYyP*V*Z68JLu%{(fNa0vL=Y3FSL3^~h zfAKwUo+)`)c;89offRfA406XtVx=IiIv$^HynS8l6Hj#8V;ovJ`MV5W6N;yo)s>Ut zKW&w+W67sUKhylXo60~4sbGD3!kn(+BL?q&!Mufl8sq=y-kF1ebi~^of$sVy!dw%N zS2B?aG1RIOu!$YXP6|6nq$+~s(^pA%L{+LJ}|Ze_4; zvE=IvJLp`9+==NvP`bgm{qM25pnXEt$JUc;153DxFPjS>^Hirz6_)y1y%KT|eJ`fU zVE{&!IiFJD(#R5qqF1;5JZOU}`}T8tetxBz3IVi3%T7l8pYW7GTd?`?FNrRKd$z*I zp&>q}UxCjRUH_h|B;jr)(r@f=aLHCSLUkm{kR^145%`EtghMQkQq1Gl&F^2wJ~?t4 zZ5Sw)auCUd>7nt*OI8n$T@b=QIVP$LSW@_`R|iQ&2Q4}Id(|a03Z4qT`b?N=5Qm+Q zgi0ujsXS)g@1Zv>sk0wQ694I{)H84ht|Dg zrv8<|ZJ2^UP`}S-H{3ufVGRYynDE8N@-|RoqDQuE7LD77!wLgml{xiMF_kv>WfniH z#fFQfgU~JN!HwI(zc>5QT=1(<H@0&$bF>*e3}q77%q zj5TU5_PEkRlYy=ipqOwH{7wiAr>UBpePD&GI(F5?EBslJ&_F|l4)UqBLp;w9Ijq za>O6K<#H)Q{7W53Q0y=z;Ht#dW704|{55Lj85#575s1A*(z2~`uwVXh$5=^9a9A^F z{^%=;`~Q>n!5HKR81$H|gq-Vxu+o$twvQMYB%WEb*h{j?= zoZnRn=l7(=MPPK7cVX#C^VPT3fKY2pqff3d@?En{g33F5VKX$d`Z(2SX^coIDQJP* z0@gU8zsc_R|0D1bn^yQ~*!Av%2t1UWD;@OKX5;7xyZ!dA477JT?6^m1v}jEsG+Mo8 z!zu^iSI<2ohDe>sSb$?+3irpEi5XI2j_@Bv|8OqP#K~_OUSF(HI2`E{b(JX@KB;6= zc4}2o-HxEcB*cvI)V*ZTzm}FKJnbQ30xR;=#2|P|0a{0>8%4fDG($tvo79dd#ykAHNQ20kefXm5$Unrz+`0_0!c{|{isY& zai&$FRz3dK?e5FX)#-k#Mf!OXD}xIEh|M%{G=UE`9}7(FC@Dd5hXvDw^F%)z6$Jhy z#fnAAL~;9LD1Kc~aMTT(ANIj8tU3hxMotMoIYF8)p7yd_mH}bH&4ySDt8`;iL3IZuJ%@^QVo25>!t08{n8 z@1hsgo!$W54Z5#)uCT(2;_QRt{74TX(kmcKB!;YNr9509?>)7`9FRU*`6iRcgOPkH z-#ajzN@Y#*`l9@s5ys2!C|=bLTd)n*nO_%Y;h7?>geqJRPl1D{Uto*-UtWKa4ZXHO zYYf4_%rE$qC6*xk>2i>@yLLIh^6tvR0DbYH+LEf4MAhu-sMd)cN*=2(=CC#Cvp%ap z>90?Y?3f3g(}`Vh!G|_3gUYWVkBH52E4zFWLYh9;p{x`yTxp@XGSg~{y$%BA#@N0$ zBgVyU;BDQ~3T#85GnV#gLT>_W-I3T|dX}L#6QOXIE4pOhNG2}i%h%kgq1`$q=wE## zSd}`i&+kq>N^5GUoDd@MotP1AE81c_d-yUduIIlcTd3QuuvFNIZU=myIq!HV7XI)w z&CF_2V;1g!X`YIz=S*=0q2bNm*R=~IN(3IuBt*QXN-$@@jw;drIDdfa`?Nj!85|~#ryg!UpXYS$Nv$@qfd+ zf#4II*RduU^fi7qgsPfFp{K*_Ez^kkPgkpeupiq&@<8hbyZUDck!o1*q>Cni|Cf~T zKgJ&m@sw{YJg5!XK7Suf9_YUy44^V?8a2MyyZ^NrbpBxS$*%`)-WVKXxx6oJ91)g7 z(}FpnPVis1M$~^hm>Wdt_FqN|hOL1|xSz?^9dZUQ+I7_WXSC<+Pi-t6pI1)(oKePe~kZ_kU&^UDd66XwQc&!LGrv4=p&=IJRJTqHb>Y-o5 z(b|YfKR~q`D&(EvoG;$FgTh!(96wh8>F^l94FxobO!_gU^)bT2|Cb3z3#!L9 zy|bWy4)P|*lu`M$C&QQ)brGTPbfRx6BA-Wo#{F~*l4N&12eR@vONxTVt5z4H1EN|mc!}Rr zgmfzjDKOC_`T9EYKiqKcNCoAloxaQqjb&1ac(2=OVM_h5!rYAgdj7gE=@;9exCZm) zP;Ddz1nZ>i2OVnk?x-;nro93gN#)5Jthx)_{xJ(7Z`_MWOc$mbE7N2 z&|T9eL7znzAx;6*wR3<+mh)h2y2cMR;%YkJIRpM~w$~&UjfCc1j=_*R{YlL+-WPQb z1e2fG|cciWXdnc1$N>gtBvX37MM-TsczJ+90ymUd{Yo28hJM9m(zIgb7DcmZOj1cKCB7zvq6eZi$!5{No zh{Y;B%o)&_)gscT=%~-)%jq*CNHm!HF@>X1r zIKb6+6co&%89@otk^~CtbwtU+A zQR*^$TjCQpjHRz4<}s#FB;j#IJY9_|=+vZ4wL6&BymAlaDp9FuD)~-HY3v!W$H%SU z*qgB#?4>mDut12y_&lfrY>9~u*>(YjB{Iu=-ihMA_TukzW4eExF;~jHanWjFRXU9Q z#sn=AqJ!>#>mx@ipW@o|hu5!k12OR8JU@3oa{?tDfCp!i>lI`k^(B+!gfq^3ku3po z(_rMb6}98hy7O`(qXO3TrQcKvU`mZ<{6$$D%>u*sDi;C**h~$OZW)f)KSz#MkZZy@ zf;8#+M^Fep&=2E`?zAU4tCK1N$lozKFzDVB5KZ}w0}DZbmO_z2bshRa7^Ia(DJMc5 zsM!4?Xb|66|AnIvA#@?0Hr8!Yp3V7B>`Ss_8H^Y2y>zao{`)r}qWmIi z;kSQL0{?XFg!z5$3dEGvU+)4J&{i0(;bP__ZAIbKNP zu>=4~0`pY1*5c(5iknF^7k-r|aZ0h3Ws8sA3jg_zxE}3J9~slG3BM%kKm#rWGta(6nnb`|!p|coJog zH{KK>uyR3l?|guh?lO?ryo*Cu;TH%;P; zApvOvnm?r~CAXos<*Xld=9=X)-o+|8=iH1Fv9b}s5V-4qfbmL~;W~UVNlMAZ}vziAS0#`FP zA)#?*7H9Q$A(|Yy2;d_D98}DyHQYC*0?3V*&z7BxqVVQOVU^EB82(fsW`%`P5{@$B z)v1@y399rjtNm{}f)@ zm!1^jE%V(6j;OQ41ntWp?oFOk=J-zMS>iyL-KNUu z_j)Uj>1&a<1`gC$Yi-kL7b>4&d;mG(aSzCboRFNRm4|Nn;dt*4hg9^gc5g4$bdpz{ z0zD^W;AzdDp32Mt`}#7o0(}O$hnMwTaH9??AcO?Wk=n_tuO-STygen#*c`StYMk=6 z4{-0rn8%$%nx*;W@RKv>ByQYyGs^LHs-(gw8UeFDt?BtSFb(+|MQ`Y)$K)d_B`nk` z=$6riMT92`I^9VuqY!SU?R7qzVJT(99J`-Al5=1mw^R&91v zQFZwpy%7EE0c*VII?>oQN4VB_=Ho&VOl$6{Ef0*i-o7g{+#we}zVvtS*7UhdmPqC} zyelUM5w$5PbI~;njUm?i`qE1rx=n+9(DaGho$j1muITpxe`V1P?M?7&F=!iX2pG1- zA2?m0KyayWTXuXu*wptPP`cB$F5|`AWO|)y!lDh`Q)!59Qwyn=fKt2t1dBabpmK;1 zf$+R^xhmxaUREi7e+WyMRH*lM=DF0MkPM zm0C$7Rknkc?y#aGb3w-!?{cE$DCfFy74OR?u0WKKv`k0NVb~aT8E50cMWu(-qI|X^ z`Pq}U8_PI3^@m>-Op>lO=t!nY-7koESnQCnOtmrS7U_fndVbT{2VxDnJ9eT#JKg2w z`!XgdXDQ>D_o%xWm>8-XJ0%0E9T26-kPxeR8cJb09~zoVnoEp3ZpK6v+uce};3saS zr6u=m;KHobHA_LNOic`SBM67$JN{IDISgV|2;(bwcfMVC_;L<}p?|+f#atKUx*YaN zT%&pdg$izNWH8;9B7D~`DQ2qD{uZDT-bRP9^y7PdxVn_n{mSq*ATc`gTme(4BIwSK z)fJma`=0=PLWn(l24_$g)hlGNIAV675m;jCj$QhTq(@suy3Li;y#^M=v!BT z{wwX1{M?fQubO69C&4GvM)Pc8F#@VIx&*Sn|M(825HH2Qagjqk zhH&heHCFu(7zxN7h`#r9t=}_?>-@_dbluzWnCM_kNnt?E&BJ;LFf>*(8*q3=U_IkN6-fVHb6?(icXx)GN| zWm@Q4uM;V7ZiOPtB{j(hu4Elf=*cp3UGq$mMBs51;RR9X9KFUW`@p(yCvhEi_ebSm zh|khM=XYp~;Ui4>#S&XX1-Vd(VmH|zqB_@lCalXLk3!d4{4g0${cbB7_m&T4$$&AL z_~4i0iHvE-ev|N*7JX@izm*0WX8KFr>x@HYOf)DEM3K2rToV5#T-0ScCAWwiUROVg zrWIMR>+0(y1fw|3?^SIEila0@|i{eB*9xQTGovf94G zjQ_w>v)bN+W{#r{)w(aNX#9?BTYH>L$Qi3qEcFp^A}FXWWCx`V@A0zEx!lWy!HMPt1O}RZQhZA!axrc*wTh$nh55;8L_9 zKKQ&sAAHSzfEF6n!(L}(`?zYobRDx}Kcv2IB-H*(aWt@W*}lW-%O)!9 zIC!yhV{G!cMdJXK_I=EW<+aXqY9@DVd%Xop%tCn>bwszicyR!Nc$g-i?XAm~TZ^K* zMV{U&?uQ%hJ(hdS%Fx=-Iv!BII3T7=oO>@V{9Ch4h zJlU21Y_UBKmpn2Rzq_N~##8q`^kg6pU|3Q((SN&dB`E0DG^4a*-_X|9NLQeN!VYCL-A3Flk#2DE&O#QjtJ)_r~C5MLt)64`&2{=eBmkR&ZZ4? zJVv2z(ywt{k%skD##>{^_)l6j(Q~=oL0+BLhhDH zA>pnpxlB738I8S=gU>UtiLZ%8IJKN0Vn%uAFpOx5o$%gN#YA|cxD4YEZC}3P z=tf^U>uYj~dkaJSN{r%o0Jk$;ZIB6Y0HipF{@cBGPP92?v^35eQOg0n&ZgMkG>%%e zMg9nbo9JHrNk+-PXSueJIG8kYIw`g8o}{#2F3>P&h=T_4MPyGQAp<|+N^OLfAA5`c z-nn#r;TE1>y1^Nub8ayrxrWv}fEm>BFP2XZk)x5PnD1TqeV5q2Y4)X&Y8VaC%!3}@OIN@&Ml_adAB{~2C@emBF4B}EagHq`1LOp#PX%V4Ub({32 zBlvg@U#8Uh!;eLNwobtKu!8wB)Z;UPYK*H-O$U`#jG^3dw`Kz= z&AabNceF?nN4yt7&)X@nrE8E4i?9i4V3>L_`htgn{=45JdcJ)cL>jNRRR}Z&@gI@6 zh}kpniSM~r&6Y{tMiG`sNJ6%x~&nV3`%Uji$<3P z4BXxDTC=0esFuuqht%f1Qm3gTK-{Cw8gu`5^$@%*j{jzW#wi82L?n z)NfxJ)1^YY8jdDbr?#``3Vw258{o@U-M4@WTBWDvf;_jzV+g^00*$B6j@N%__{8ha z_pOJQvRtUfyMO89iQmJ#m#7JyMuoz|PDO;+mO4INy_1{#KcjA1=LO0gYuX1z(py20 zXO_p^;>!CG>3YOd&qa}xr>i~IlG_`@Thq%)!FEr(#es*thYjmqrQbjmAVKCp_)7K+MPlQZygqo zXD``Q2U|Uc8^-=f+sSl1b)2Lide~t1t$1X5{R<4GYTCeJl%h^HeRS%kX;E+QEBp5y ze09Dvj*Nft22XGo-h0{xF@zqUC8oB2FLi)H3!%5+E7{*!sPcZw?NM6VMJu7bc_b>f z3y)fUGx72Dq*M$|99NQ1PB_PKQQS&g<-YIdjNwAb@fgW50et zsd}vP!##OeEN{$&avVnAs2PbkhVl7~1m2QlFoqqNVU@!BGm%__&_lpqo&7x;s8X4554un+3Oh;L;V8{hii7&`VcU2h@& z4?9D5POrUG_{61z5q|MMnB#H&R*|WjY2+xse>FWFJJ5;~S29Ojkum#ubUUkkUGO2p z@RoV_ZQzfhgK2)Tf6qiy$gY+GA!A->RuQ(0J&v<|ql6SzlVY9yCeomAw>e(3KU3lA z;5^%^3`g|3kzQCkh}^;MN+wl43a}n%U!@< zR+Qotc-L3M;rfc`5(O~fTgiB2)_M**4b7i=u7bwhXG9uF*7(+9J!8vosh#}1B^ht= zC#cFl6|P&`yA_|?bcx>mxhWuXvguMawjuh-b*OL0^2ssNjZHj$*o)#4KCs*``hU3k z%BU!#wq0ou=@u9|1nKTBX{8j97Ero7hwko1KmTZT*}_NCS4^$Cpm`#ZoY7R#zG#sCma8UgMT5t0mTIAgN>5 zdVgw8^G+b=A8z1Z_{p=4d2X1ukJl*uBt4C?g2VC3_L_r%%*9C^Pj&0{Loi&}f!RvE zaXcjLa!>qI$j5+Mdo(J7LOp^Ez;LB)cPGsn@RK;_Y&*L$>1wB6H7UZ7+i*wCYs|fC zdgM*LD2{Cen^(fpK+>&cF97IlZ~Cv(+vAJvj!ee4IJ1HYc(-0p1n^|Ou@<{)HBU|G zZ)PdaxeVXwCKjth$Z0yn^&~3!8=`%Kd|xNGQszKI^oow`0)u7%T_~n_=tHv4CYoyJ z{6=xRL)C4N*puy*^tW#tex|2X=1biVGYFuf4Fm5^q0ygXt{Ka*mrm{*a}^@nVM9AD zSiT)Chvl}Z1u2hif$1;#_dPKIc=uhbd;qVJ)~wCSom%^`n4sO`_ODT(W_Xml{kH5c zx%MrjuoRB=(+N3Mn=OxXiihOJiy>xj5!8aVi!i;M6b1*8166}BJ0uKc6vDTjqimuV zRZOd^51aQR6m3T=XW;2OGtob`Td#MoINI%IO=k3)0Zdr4y@b`K{nsIwbOOb9Rew}f z>~y{KDUhSP0hhXinUU)yd&tLK0&QF?;gv8*{MbYu-b;L!Gv00Wzm)I0m?4yun> zt*`P5S%U@&C>BvTbHXv5Ox4osV3G{(m2##6H8>@gR5V?8mJ;vF!gqu4n~|)QB534< zGgXoc1CccLQm}tXiEqmcT)!W|0`hmr%_4&@Ucp)*$(hTJ!o&*LeVB&|DS336tcQN< z4+AKxxLuP$RO&{7xOEu8#jbrdSPc!>`iXDI_v)gLoNWum$VcD+sle4a~MO|g^j;@2r2j98KxVn;$Y3jDD%_xScfaWC}D$&eg(p3Pnn9T=U;HAPLjpTIZ)zz+;cAajIzhAcqH&9;*J4D_CPylGlGFL zk@bD$#|i2739A18BE#t__65}(`7hkwrZ;~ds4!+#9qjZuDT9Kcp-f(R`DyG^8^OT) zA}jPBiy3Z_s=Vyk=kX(4&^tTS2+RoN>KnjnIE)CquYtjyR77lum&|A3KKKS>r1lxg zlS3p)qw1YitrfJ3(B^cH4rt!7YrhlV*n{u-BcUoUo~2fSHH)M}ni8kJn=0n>IhRdF zdLnu`XqN%C87VA`9qs3F4j^1Jlg_rCe+6Xgv{#BO1T(eGeB}8DJWj71)Jdh^kB6de@f+$Ua?eIdR>~NV4Hn~yalH0O)5=exZ;PFrrT zx)q;89{IVu+so$>gvDDguwk(%sNsDq^JK9?ue$iopm_Okc6-%#wRI$_FUMFohQZ-h zGPu}42Dtis`c5hG0jT41{(6nWwXM1Fy4=S6=*D1N;N2HcYjv4a~CD-TRij>foe4PS_PJ??RZ@8eXt z>qUn|;tnny5avi>z_xKJSof12Ht(5Kv*#0PW88s}>#W%14(`koj0E@--A>NWi&qQ5 zzBZmcqa!uPc{wfIl_DE_Ibw9=Lq@_#bW17?5~~x@*6QiFu8sw;D=xODALbb*n9ecl zG@U=ke4E`zk@obHq}X0LlvkhlZ1ed(Se}3Itfw8>h!+{T^C#l;Eho;0Pprk1a}4^el=>Kr{3!^l zH>UflPNL>C&u03)_ZObk{`)%lNVNL=hJ-{c9k5YMNp>ZjE4QJp($IQCpjr{{(N9C+ zY~DC-yP!B~^b{AiT>W+0EIVwGkizcqg&MHBNKM*6rBGy%yAh=Sk|U9-dV}q)<@!Sa zxgCo0NOZeJ2^ssok&%f|VG@+y1w^E|SS~hN&EZdNdJk9*L*ug)-n{P{^!z8rN;7BGnfS0JfEU` zt$6~nid+rjKW37Ei{18}Jn~)d3Of+zXqqW%4Q8eHTF0el^7xP#`r4>(c{`Up?k9Bs znWc}u-6MA7FNW#cE+2*FltxXM=kB~bjQO&v)y68-c-gy_c#!m)gCL=7_ z<{&i0Qw-EE!7V);m}E0e41n%wU5A?9A_Zmk-cdpHtYd_Oe}h#p`puKw9nV-^v2f2OC0$hOEA|M@*6*D_Iyq3p}w+FsdEz`tJl z!!hiXk_Eu5)BY^A`+k2K^SZxXH7Ux1FD0Kt+oS6Vzqvd?GWn99>0;4za(Qb!+Mk1A% z;zFHfChMN|!#MD++)wJCB@riMM5swO`Qt7wi^xFsCT*%}j3&ICWo~Y{k?doPY1Moh zldMKA0WmH;Q+K?BML@(9H$KqEDo6xPW6kE(RvgA64bC=DlDq;qV&}DVGzKc z<|u4!=hcHg?$d!-T;pxmF{!ZY=D2a!!TL5MQRZuZJ*HdC)h9#8OyR_B!Vu8>|zi#mAI;P zA;-BCFj6fp{;Uj4`%mBo=u3H-+pXg@avz-1{#f0d~tLjWJkY z`Srf9zTNEc=E#=g0cVyM2Gx8cRv(4{+a0g_aG&W=&_=m+u&wFTmRmzfx<0? zYlI7QVMh{>w|jb*GVV3ivi92-^m=P~n!+ymHg2o0PJ76$1^8Yye8wRC4^uQC^J8aE z@57vj^Ht6i{aa;w5~NrBBbL5@+4Nl=Ec-#~9c`%nD{rFlz+nZz{Q*!`LV|n~SmYYd z5{GH_z!S3Xed&I2G)~yOxETJoyhrgj&I%$%BD8h1zc*>2qsQM1LPc1LcSz%dCBCJh z%w$ks)S779$E&?Q^hjp>4|m%2wWvs?8c1(Q@0~8j>_(+@JHYg5LTAi$-YV_pd+3~I zsxGj%d$ZsP%H|Q_9un4a@UzlD-hOg;2{)}f=-&`5ucd=-2=Ye+E_>*}^+z{jzC6U< zMFO(dDKiBmrGyv!&oB=MSN4Mr(dHE$O6I|!0JtC=*kzmE&t(520n9Ssfd&1BONVg@ zc@gL)3@#Rvd)u5HQ5(hzuKOr1qkOL%iSGK zhQ4nE(sZT}xb7$uAZ7xd7K`d?3L$<;k`l%w>^{Wf1TKU7Q$2tCFJ8~r9hqZFx= z+BY&Y6e|3UF{mb!)uxh3w@+nA+3_~-D>zHmD(1YXdKu!e8&VLR{c#Cc<0|-}j>to> z3ea}8mvyj8`Z43YK6lbk<}(pnNJ5rQCk*mfT>s$hU*=sSOflgLic$1M&s>F&t79A5 zf-gNTaK?ZN&UuD3Vt`XvYKrgyIEBjVq>vZ+Rl3*`QS#xK{%6lI;l_h`$a-qdrK zoN!lW;vYsZ?eembo(a=Cex+GprI{lkv<+;rOY9@bD}DiN$;*H3OAomJ0lJhBk|^Yy zj2$f+iG=1jP4uekeO*(d;coxN6-ZFwdWy{UR%Z7rBhXEMN*aYA- zBA-2|3&$zSBisq2YJAhKv1Q8q@A1yN`g_Yg1@z zy?{L~)YidDl=aE$Hhg%bJX&;i>9IjKeKSV%3qR9}>kVun2UhdM#K-JCI!oZ3mLhVy zGr~g0>Vv@-=Dn6c!8iBWHHsvA;?k9Ey+t_CpEQ+2>K$C{qYU<5b4o|yB165joHrAZ>SFG>w`<}7+ zh}nGF6Ok+PQ?iSQpK4Mkx(dYzfBBKjTC)ERE>G2Zft;Qs5s3CENGjJ7pgYH!c;dHS zArwZ2>JvfK$-O!*%td+0Cl~;sGpox2GEI61+WoK0O2CiHN4wHn~Nmg z<-(Gd)-0pOns6)5K{8Yd*_=zVNyIcg0j@c6l87~5>{0TIU_d2jJcOBg6NAnL^Gw~L z)lwr5@)SW{RK%t50>H*#u4oXvSPA&@kE+36#sPhqJa-^yUbm}o$h z$(P1vJPdxLzcSHA&{$L0l)ZvxQy^d!&uny1ZT|fWd3@x2&>MKiqf?nX%LRNqO^i)! zo3f3*AE&L!k9d?YI6lp0pO%ahqa}bb-CK5(Ignkbv(s5Xzl0)D<;Mo4=W90=hdWy* zpg{_91jUtGga6RjaxQ6!-(=!`dFk;%n&SwqPws1Fr)TcnT@EG!Kl$Eh3;NLfTe z;f;a)C8?;oUDTakwr~glBI?#ms`31{q%hkKu`G1@qU;HNsIT*S1JL5YC!OZ|AJtvc z!oyEHKyesx{{0|6X|o}t_bw*xlan$%$f>(KeM}d?_&?PLkfuoUcD;Zc#|RFUJtU<4 z62c!xhu1awbjFF%4Cl(&ocZ;W+AU&iBjwc2wAtdE?14$X!MmV|e11FXY4RT?+_Kox z%0cyo#iY$7=6}~KX%RTw$+Al?z5ADkmiA9+M(xk>f5G}ZC6G_n-{_qrW&BvV{SlLH zJ8*x&b1ltUM{_ldVB=-tc)h6_pCjB7C~&nVMX+pkE?voH;NEz9ILF3w@^~S$J@m7k zZhacZ3b_5YRK;Lz+gm2K{+2FhfFc7>e7$(Fm+M-=9AcL+G1Fsw%dY@c=*+7U@d8bca&a)&!;Lknz_^I za6X>#p_Kt1;ka)TI281UgozUuJi*I1eSDnlSGx@9%}d*bGX?WLAxo#w=AE_`3J@lq z+aZoz>gr8ZajHqXoS0}OT_;7>^%v+YR-3I;kh;?3Qv(J6wD9AKIicm_x$Wwg$Lsq? z-V4PWDim_V&yTg{sy@d!#RtFI$As_b*g9%&Hu}Y!&!@wGj8_`L9;CR$%5PBGt=nAw z&VA>5q+BbSv-5$~OwIA~uZ{FW7FG=8rF!XA5X~Mn+NUv44HFlhNSQ1g$-@xmG@xlQnUk>*N zfcBR3#G2+LA5ULUJfBpfu9g3^4FS)UkpuT1r-CtDNhvWG0)lE&@I_cTJ1`S=gvWb1XRwP9)Mb>G%F^LTf z_AWb{UaaqS#gcg<*I%^70x3 z9_AMD+VjQt_hOS~S@KVntcUh#dgim&>ia*((OU>NwmK|eUqx^6>`EDb6Mg-N%R9+N zJ5WXZrvPxU)6L(TObE%|?coiYHZ^cAJyiMNb~}gNM-RD!4_Gzb+Ut^0FX}112CC~Y z3qe}&byA-MRtc|GcoZhgWu_JnE|_!~rA-Wyt}9lOYM#%8eH&(Wy)>6MR1O(|jP zHeixPpt4i|cg$y~Zu{tOK5uAYHV)1}hsiVVsT>^xT&Yb&`QUkNrwhxka&6+k*&+<$ z&2BjQ7@i$Tj|pM1FzJ~b3+Y8fJjQvyo0>gNqs+*`x}@)`-YE-(i`SC&#rfXN22ua` zwWg9wAfk3dF^diy4UFkEXcMY4R{ukNcK@S3`FAGlZ{#^9Z}so((laO=z>O;MtgzX+ z(fYpS9uFOLKYEJ+M!jz z<_~4{HFV)~$jXgx-({%)<+RZCn>ED7rpUOTjI6_zO^H7E9=eiCwcA|RIo84I#jYA? zSE@gX$_YN?S&xwZy`58JySgBejH*|sq+eT}?{(|+s4{4LcEVbqQc`4he2jFKw> z%GeE$aFSJn!fyWw)NcbrrAq9iB3?*y9Jb~;`i<2sMHr5G<)+7E1`Xuap*)gs3^jxr z-U{^FC*}@rBsnBZP_)5Dw;y7B_!q?{R!yHsGg8DZ=eI)xp)qeChF#l7TOLnVMdl$O zpL)-M_Foq{G<Z#;05F5Q3Ju%FT-0R2Z>)A%PJK0hwrF)(RX zaQNPhj6~`A((^eef3^`n@t7hXWy`)Kc3e}w%5j^pJ93^&)Bb#l3GJcqqEse4iqfm_ zl$jvkYu_PP;T40uxYb`qz|!KN+x&T+SeMeW_xl{bW;{tR-i01<^qEIYV+ZCCdV6h` z8GS?T<3xQ){{2)`Nw&1gB%i^OLv=Ti$^6eVIKbRFsd*<(!kfMf)YfqIQB>YEzXJ;! z4f|l@y%)lqvR$k~4@KTazbfSyV4qs!bL;b#Za*swf8ShY7q6lhmMx`oR&({%NMqcJ zp7Rj%k3&*d(N%+JFsJma9p{ibb+hIxrA|d@`s65G7V!?&1#lsh(YK&h9#c=$ zglrEr{S%Py1!QI*mto`r=K@6ym99DpwBM-Bt9(cs-r3s(a4qEx+f-ubaeJ9Aq64s%ptLWdP<)!7O9SlxO7D0C*)b zDebSNh}Eg#Rb=Mer4&8U^EeO2)%vibb4G~*yjmY5EbKag9}N@#_m9=0OHG4CRB&0( zoPtc3>R`k^NACoubo!3p99npv0TuvLL8sah)_ke74_)+8D}B+ zLa)USvKQ3#c?7fE;*dl-A#lS7y<@4ncUGKYjOerq0E#Cl#08q80Lv7L6VPKJ)Ejkx zWSSEDYEh^q2A@v-*QK{Z*!n0p?>XXMhff(D0=X zl#;UQ1p^n=!Qrm#FQf06th2VKt|ywAF*)bAq;*~`*aNXqmi=BxD^$PvlL0|Cdw}Qq zH6oYPHhVYSdI-oZxA7!PmFv1;dGLw>|2hi9Bj0oSckmSaqaFrD8Pyea^1tn?Z&Oa` zickMw>l^^kT_@%${8wMLJ%J9)>ABt%@6ncf6AIoPpWTy@zpD>L%f#QD$=!FaQ_UX% zpi089BKkc($MZpKyW(+OWZLdb7&YmwMGQG zvk>yJKTQBe`xF(xW5jzScAvJBN>d=m;`8{;fMYx!nA)Mi2N;;lSLM--KW-HoagH$i z$!#&iFR;Xdl6!6yoH;GKO4URWeJdJYB!UnZAri(WuEQZCu z&Kvm${HMdH$`9?M-w~~3C-9U%O?<_H-&PpDQN1iKm@8n6(l=z-yMgD6khHC*BYANN zn}ZxzLk-&U=@bkZKs2fUCZX)wH13JXKh>-^Qj{EkEsszE67Vr#r7v09$nQ&Qum5ch z^@0D@=kM;m_>&R9{U!~;B@8YQ^t5ND`nc!nQv8AxpW`i>+yFc+c^<%zUD6(iQ_Y#L zBXaw$gb&f3T*bZ{0DRbU{hLY?a~Xqw+jjew^VR6BhUhn&Qcb0?)2foh!3+VUV7mE% zDe#0g7N3Vv&o8PTp`KfNMzK6*;k*@*G@p>_#Sgb<$=IG9g~ot4kzp?B(z)Xd1t)2t zmX8Vr(cCJ=8Rpy@YlAbX@bZva_R@};mAX(@+9~=?s_0*{ksUV`EWn!xf~!}P%codY zw)iU^EBA{l%^ZRWG_U^AnnSU)?*r}~{5nJ}f;V+Dsg;USP34JJ4g2$hetiF^aF$wv zPUt%HAn>5FQiTa^dTJX9ae><z z#uWj`&Duwdihr%KXb{kBWMZcl&Yj=zB@1kMhN}Uj8b@&ZR!~@r5Uezn9wBQi?Xn}T z|B4Zh&WnQeGwzs&eAOG+zRJvpj&wszJjMk>3HmEsZ~^))JO&-G*kjub-j(jFW06e@ z;J_yzLBATFDIy;OERk1h%I}GDrqga9gfb2K4DWNREs1V9mQ_l_@Hi_7SOvr-1TJa~ z0V@Fh7;ac#mYTHDI5KV}Q#`@cz6(u1)v+swk#APE*o;5k^$h(%xV!{Qs=~oIDJQhi z=BC?rXw5cJ6N;9L1ODzM7eq6&j%$kWObAtk0; z^)3X@Ye5w9YqJ0Tq03#!oqCSz#6t{irUIbSq*8Olziu~PNvyE1m#w0vIx-$#1+5yA zd38K)L%O56Lx!h+VT$ZhLN9Ig%-S6Oe&1$J@zu|6ql{yJE_0vvz4>_1-TwKh%{8OlYuw#zc@nXq@quhxJ%r2#Gv%!16Nu~f z?=TymLEP$T>%Ne-R6Qp>@YL6$cGoffz;iV-Ph3|a0?vb!Nmt=T(H$OXzQu#(0wMj^ zKc^o_^2NOT$k-Ci0!glZ)-Hd$Fc)5}cD3EW(z(moGdS6&iiay%FA%M7 zy-+~d%%EmKUZ@foW2Pj}hA2)rjQnSx48xr^xzW2(>fw|ie?a~t9y|DszP%Tmq1ff(8WC7SVoGKBq&dwZnauhWF(0*5f_$ zPaErjZa;nTS$};B+z)mU3!bwm2nf`r0jM2FfKOvjQhCI~khb#jZp{(>Gp6;YyqZOd z*W9g`hC1TLyj>W0xT0STeYo>_utg~=+RlxUsdd#kaaA0iC%ga_?oZY_Y*sUw29*f; z2E>PcCPdg-v^^`-)gWREtC)NtJ?&^SHI)F}#E*H|0s()*Sb_2`V+Z17V;QIK%!G-r z*yoHuIKp?DI($d(G=3Nj$EY?`ef2QP`3wk0E{7u0+oOzB*SAb%5nIrdo|(RH44TS_ z@_{*ggDo3fAwE_yLh5A+N*9Xt=@#lDO*GDtZd9S^gl#gQbqI*Y{nby|t3T9%PPu$C z#&w}>vEi>w!_arozlge!;{LTuDiyp`b!4SNMUdof`8Pww-M-I6rXshbrUkM;02D$_ zEi@7u%`a3~N;=X|s%RbpOv`XYGwOJVEDfQeGu@XaBqS8q0zpoHE_7#OsB00M>FiJG zSH{sTE1l6W0E5Xa!jYX-FiR8389tq(D!*hNPVAZ=&$dUxW?qxbYJB%^n~w@2 z^Q5JPtc$E^M~D>G;9WGuZ-j%g49_Rj2rKU85-CEXsd-y1C383wgUl1yDxVXSa^~gWVgOU+DE|(cDqr!^ z9pYar+pVS>Xq`3x*(e}KH0 zZ}Dy^sa2fQ2@HU~2qW*vSMS(1Ka0m7@7>TCm&sm0{ap#^dZH8FVqY!#o2d@(-S%}S zk+q?9Mpv4F)NI2iCZhFw6(lWFoAX(1)czTMP%)}LjjCxm?f`=TSUmI-5esN7!Y@>|k?nchXwk|si$nzfJq@V^f1)?>VrU)vc zlEWac6J9Cb1=*i2uA?Uv_FxV~8ICX=+R6S^&|Qab-vsuptPs9OefYDvCTegyZi2hn z1)WPG^Nqy^(#zD(1V*6q=q>GUO9NWN?%aHv_1_3VKIbFI*zz4(aeH0Jz*VV^`>VTX zhe%6Jys$#hgwna;%#9nTf#+3CF%W_CRu<%;BnuTukfbtNRt zlo}Xiz@AwxGD9#=J|Xuu9s}Qt>Sl5t-OqWabD7C%QY2?$;PR;%Wr5U zQT;2lFbKC9i7xn-q6$Yv%F5Z>C;58;6^-z(uZ7>SUFKzH6PEj3RRUcp+6>(JG! zQ{Y2>{d@GR9dxEUUQg!J{km%_=dfqAwqI`@hKtPkayWQhLT<77*6A-sbewT_4ap7~ z8ajNzxzy&T6Kq5ZmySTphOpb;a*yC!ik%$u$CDi~nmg$U_LvEtji{^T@rM)!k?y7Q z5)-PLn}{da^=NUsN7dKGY#b+5M9hG48#N7`>lx4@j=(HmYUOm$^AFRcs|=unBM~u; zT7YeB}tbFdOe3Z4NXDgKz3iD6C|9Yu!?yDH=z3L6D>M?%`GMX6+FlFDJ?@)-NVuG_%47tbZ;+Ty`D zOwU69f_(#1UiO<{n5JB#3$2qTI!-5qrR0K*o{~L+Yf<5*O)mfFS};F@!MZ9IIM`N_ zzR2G|FY@+Y+h-+n*BZwR2#OQd$%H8^ak-?bN-zL2kTl8|I;v$J9Sgu)uVv~`Xhdhp zwVYd!={3xHV-!mgmWA!azt+Sn3*C)MOv z6@l)K#hkjEGAR|^TLM~+6SOgdcy4iw?Q$U6pHa6y!KZJ^lz54FH{}`8o;W!V8IEPf5u~N}^gk-K5hP3(6V) z(*@A{3VhTLiYtpus7XNFf3bnKO=2;+F?2Bzhb}}pmjp$XBS5gPR(*%x4KJDaJT0Nw z_l?oq2MV1}wxrlGOLajgc48yjSXV0tGg^)#rx+Eu{j%1t_8DIqIQ-UV_t?ju*#lv8 zG1(UHeI!ycIDGR7YhL~)b7Kc-Gh>4(+*6^5;62G*H$3sR%tzE?4?It41$`4K5;K#E zh_HZ#C`~1eN(t1%hG*8|&mC142>|ZqsZ>lA5a!V9#w;FdFvYi%>RXTZQQa%bTk1pzJ9 zSvr1AmWJ%ibcLR?Va(K|r;c%bR(}i8(*v~bs5sFo1lt`mE_z_!+?zq@y6eDdHf!zB zDgRtdqYR=d+raHA?fP1G$S;**ob_h!sG?gmPVtEkHW$%$YCwN(K%2}Vc06N5aCPwV zfbtE8c@t@)iiSR5Q5siZiPzIwp)|S~ZtL!JIjZZt-elk}n{8M|iazQNjearYH{@$7lbJ}#y^dXC>L@W-_;y*A>nR&W0n5x$%qb)K$6pvoJZgAXme2s{8*)b4}XW6=}Nf^l!4cN@<1j2{uVAv z5jE^cu5H|y2B`Cyn5&~pX_XU0fV(=7bH(GGC;-iw9dwsd{5KPwBuG_6Arv!nFcx|D zFrfaPk^3;^&7F713tB6%`!dEmeXXuZKYel5ki&=g)BxQNLT`Ak*r_RBPmI}RHLp^W z$Bhsz1d{(^{zIgqm%~D$7H>l!MYrBF=!Ra3#*r;2kR!X?@CJXGL&&Tnx|OvL*w)TC z__C*hvVod?P&Sz!tQCV2X;Lv2F$TYlX1UCiFG#uS$nmqXcmTu13#(2uuY3zXz<17G zzJlRWaLp|xHu1v5bzQn$TFOG5YzmLK&gJl3bGl=V&wluR+OBp`1%1`K#NC`6QLp3l zY&rfMzd`@9A)TeP-3l8ETBFo*3<=PsyCeDmO%87kD(oc{;BiF)Qk8H2r7GX{1HP$e zrx3qdxsLhR)m0%L{L*?CtBHG-(m~*FgyAslyquq@m;Mxh5(TyRi4PmenD1WZcxyJ7 z4X3!HAIy{Y?3K?3yz(y9#&cDDsCcPH3+%$(CFx&R6&vpD-QbC|wILD^fWlZZI4VI% z)abMpT(w6?sZ-C0!MncK1h^cd6}JDE%a9Vxd%vj4E(_8~)8dFl|JWi%{S(Yeujji=se+9^6Y&1U z4w^xG?dk1T(4~jJ360gHeio((BDQ}X=OoZRLhk@H;3(BMu zU2Wg~hl7+hL)N=JuZzt$o7xY)>6tkMW9nS*5PJ!Lwo{ zhCF#@xk)VP8+Nn~!j&{VS%7Q~XrpYbXbDrgQ(|@XbRFLalxB+dkG#+*C@(46AQrpV z0s9DB%P!|%9!cTbNGcr;-3CyqjWUWOwF*HGReW88aPi1M*)3q*5Vdcnp27i4zC9&Y zHU1lGm$)A#0j=fdu(m1Yj`_B)N9V|^d~%^R%>7hy-^mU;U4cu#_3$7M)Qp7${fT2{ z4Mj2+f&&Mq{I`>Rh~Y^`V8HtpKPGCgNOpKF2qC%H{7fDTf?@lY9Ewi?{XychC@2kU zgjw1fx82Uo-Rw9YU_YW7UQzq~6MWHmI1U2C!hm?9@ItMmdA$_3#hsU7|EV}>B?DYo zM@N?s;EO{(q)$xM!N~L`=E|)Bvrp%s<~D-U?9#<&fZbS7;@M#*@4_zHVPT_Oi5V?* zbYl@p{KWz#d|%O|^9}cIpFK9By3%IpUk7=ZF;#}XZj93Wo2NY&$5BU&w3y9UCK9`E zji}4m)Dv9uWig1Hi*`f1F*Mf$vfIlFA+%=oDn2XnpM)OH1SfKuA1;&MB6`B!P@OeU zW!iVGF!jM(8Cx3W6%9yUg;r-V(f{ZU^Rbjw`ShH^<~eysc%IvR#b`TaG|LP9F+fRP zx;8-nC1MvnY)WhE1{yTt)ehRyZ_B!r5UcCfEZv_G8*L-gbj zDe)hb#liGm8rg-A=C^>eip;MNIC-39pdo!N-ig3t*KV)^eO4-b-2zj1evVth{oYWg z~0z7gjhqsJ=yom0Bral03lRYS!yqiIbRhaU4zLklRrqzQ+`R9bqWL$ z>OREfS%snPr0lr|rPcho^j`^h+($My*+-n&nU#Zi#208t(lV75GgyNNaFD?)@~^_H zgevKj-{maKJ7G_U>C4_rv%(NrMQqeGp((d%<8V}mlDOF5qti?V;pI$+1H9c@Hx~z* zxtMGh*Tu(y<|V1y<=Cj5;SY(T=kuyjxXg0mSRtZ*VE?oL&#pW;a(&1^mwz8kF9won z7oYV@Qo=uA4@l@RV>b)Jz~%X2ny)_u@aOfloZ74M%8@zAyI$n9Z0b24qpUL6Puh#0 zy1{ModhOL8ZG6hWUVb@?Dvy{a77^w%^+D7Hg?|2Lx76#2??$3g3N=k6Pl%I0fOiY+ zz1ZMP6f5W1&pO2Un@Ox_k=|@uVeHr5ewmRWH+F6wICrelesba_mf01opSSzE1R|{DVxSU1PQ9-;v`Rf_&KGw-X_pOkR!0 z#(KW9&~-z*y&P7&)W*t)>>=Gp`b;N3%{eu|)BgWIWl(S`?K-&p1uZ0{a8&*^d?kX) z9MS=m%&-xHjM}hYyi+kTlZki#z$M+?pNHJHYEJ!DiB+BJe)$2WJxHECbOCv|;3)cM zxrQ8Xn;y0aSAtiukWq56iNDYtWhktGzNMN4&;q5BDe*y)eSax2^cc}govG#+uI}Pp z2KTy{cL>hr_nT68V{jLG)I~m{g}>Jm3?=O;FZI2?thD+_3``S7;bJ-LT>LqPD5iQp z&^=``$$bYkl`GIT?n;;`59nevG?hc}N~U+heuAH0tWd_yx6S<0i%~+bmoRo;V%NLj zj~m&H*a6hIbDyzrK;~0bn1^?xd~z2J}HKh3M^nj@|PCy z*cb|@<(-lrzm1)n0-l{hm%KRc*uy|R?eF7F4?iU74_~KOg2Qr0UTGje_H1}G5YKtu ze5zWszXO-&ru5*H`X`tD_Q00mzaosg^k)YMRd*PUUz=Un97FEBRi5a92j`Jm zX&x89*+ljZc=r`U5$~$**#{x#L9h9OFaKMikUxgIfGD{(UJNvTW#At{-jKWy%`sKy z^=Y@+A~*AA1RR_70bxEOPcjNEAo_6im%)DnX3<)m*0QKMYE78IvCoy7a@UAInJ69c zR7|Pl@~sIEUva8^ZX4w{0>265HC**Ey-Yj{3FhVa}xCIRU%aZuyY2Qxv zX42{Q<elqdA9Oy|FHMW;RF$fzOB%mzJ}d?^Q?@ z!OnCL*2sDUQT=39tVO-RGbw=kzoY=%CVH^?TvZ4;t5}9xvH%RcDD}RVP5+AL7Ok(H z_vERk|EJHeAbQhLI9?|S>=8b|9+?aN3uJH#Ome66Azpot?GFvN6a@2gSd-FnS&aRs z2p>^#&ST(sVs2d*%eTF$RGr#TL6$gF&aV8!R*KsR*M$UxVb>9pH%xtl3nM2s09J+t z#a~9!el2|Pm#!83H`KkW*uU?P4>e`kNJ|IGez2j#-E745MTnk;*0 zfSC5(mjl@MsZ^J+r-~CkHicKOll^#4fs8!z#p;bPo&3>T`!;)e@&iBUpU7sx_69I; zO;AH|f0nbbSAAo-n`I$|V-J~5PENZQOr_$x72 zmqypC@&61>Nh8H{uW+XmV)1o*9^4BqdgBL(V0s3>?A&XDhQ1){C_n6-rSAO#iG~~T znp{)eg>`|{(Gr!0l2ak%;h40U*oSnx{9ncgHVE}k7rA)nZTVAS2tjZCteW-Ydk(^x zcr%D9-}V5Z|6nIL6Gy5od!sR)?(jRhFmgx9JFzQ@Y(cwk_HMW#Q%WvM>gBpLCN@@HZXkhkK9g@1{w^-8Y?dklN z_-`{>O0Y7ul-&I}?Hq+jy8u5ngoo0s`p!nTSSj{YK;Ks-&8kdyVo_P(jotfLK`J0U zO%MXzt5iMox_^oGCeuUsy(+Rffz&72skP^-3Htay^u#|+K`tAd);@$59yzO;?36l%EpwOGM>X;75oAu znOa9uZrV*vTP*usP+J9adGvuwF()cCy@`zM>y2N#q)kvcQRo}!gEp*cpm6Ny9nAc^!=seEsAB1X(6uoViOws|rl1q_u)z%vAHL*{!= zTj%`7)gP35+esw_&QRprZW)cb6V+?qk$j)43-qkUiU(X;QI2-*#g?E*rI!7!A z(iJgZd3I%<4bsy=EIo`W95tfgXqY`_To}dG7oc?_twix~%(A`yt18kIi5lGxUAL=iRlZ_06|@bfBl>TaZU8^gd8i@L4)Z7 zRS5G1V&u0xh+}rNcRz=9O1hjO7Y|({>yE=p+s;jRus>nnxNyZitU_k`Uv>bpCuw{h z5Mj^aSDcZW5NkJN-~mjw-42;j{QJ9Uy)1t+7MzQ$*e;x&KXPkYnCAMqpp1bZQ4E=y zU}T1WIOd?o!#i?^NWiA|lG@278`xrz-G?E}L29H(z5S6MXWhvthQHl6xImc@dkAm> zQK4D(0_`20)<*nBbX%UNcU8m0*%QF=&+wL^OeKHA(-9x!;Sd^n=eO}2_bXMxCDq;S zii1tNG;c$E2g&P;&EV&pj(X9*BEeAh$)6-5awR!AZpL;vS6+3s3a_)HVL=h;fIcieNp&KRhAx@ zB+HZWPQ(O%4;9|15|KTR{SgQI4a_HzYT-R)p{ODMD19gjDf6@JiH)WY$xko>^Z!f# zvtwf`qq_j&%5A3+@Z_&&LfTB+r08Eiw?H95By%F~f%h0#;^_p2vrwN|W8uE?3ngSm z*F8|9|LutEec$y>FQA?(R|)knW+oK?RiFH!Emh&bM^C9C-V*8Z6dX;1Yug3+ z5Uoq0W5}xz2f*rM)NKA#4Lb=13m@}kIey9c8r5W+GioI=vAqSaeB{XQMDaI)PA7UF ziUTf1@;hN!)VN%M?9Xb+&>{o-Z5Fz*c7^7??qec+TR6fd`BR3d`k=WOQoZ8s z-*`=!i^Tj3((yM3w#3If73U5rhL#DSosGxge11`35S{*?{PY>Rr1Q!i-Z~iS=r3s= z>7;vX(3*1ZmgHV9#bvlDK#M`Yq2^d8)7za^{JdueBKuxQ;D zk?sB{HQn?5d$j*0$JAdwB*zH!m4kAFcZ_F9>t*elw-lmsffx}<@Zyv%&+LxlsDo&oE(ur|_b zpUXOELn#)JwO$S{vB<6)SXmcz!G9X6Oan4vUmjeZvB3Hfd6W-xbMbq>a?H(H%x&!y z{=+xA8GO!m%XwRLbyfZ5Bm&0(->$n>1IzPoZz2Q zJd7h6)8K(0l1n{2NlwWc`zjein22Jp^0;A)v+S8saAGP3a6kgx6W=f+Z03_A;UN!w zJ!z$7i)&=a*n(N(Q~@J_n2g91|FT`QGvq+ zb`=YI^;*lyRauiA!&`C#-HicUry>$eo}W&twIm@xh*NE|q#@H@T?lmvb&=(9L$o@$ z5?d6*A&%|mDD@+~xuSd@isJbA1e~S_Niu*(XWLD&Igmt!@4)5Tt0-F}INE!BeRJh7 zGvfc?YR0^|nVEdbx`h)zIVyS6yqsWPuGGBxpD;0SGw7^VoQ4BF|Y=3?~6S9?NFzK;)lD!9c;_RR!$%RlbX(>q&_o%+Gm+J=c*D zM5EmEq1Y{jeN6hh)P?`=0GF!vkF!?oWn$Y)(L;uXw~xojlBkiKpf9nQonZGgJ4*_N zRsgm;AaYZ@DWc9n_(s0Wcp+KTK#rD*+pUE1;)#lzt5QRq5Rtf!p88zEGeZ|+=6Lk& zVV@F|K0-fsC4LU5M6W9DfW%rd+kUPm%*Jl>{EHW5__-0qDp?Ot+nFQ$=Fvn2B4XZ2 zx85pg$DnxGB!FF03p=$6v+#TTefrx#({lbdoT~5AMB}EypNu?G(3?ooq}|7D9(C{k zzPf|Ucw-g&>%fH)X=Gfj`ch6STxj(T(HuS|ZjNj9g{nz$qfC6bGI|pS!zWBNNrf8p zj9Gm0SKpIJ)VyfbTb?VCs6)7E6jTS=R}S_9%=%cO^P%taaseEJtvHH^;awBy19_k5EMURSA#5JCH!CyFm?E6 z9Pw)L>HXk!)1L1}62<0EHwI&#Ja3_l@R*DVbbVP{v|b3LAb5x|^rv1qPe`5GWPU3d zYtYn^4&o91tU69u#VNU_eqM(ZF8mV0lH?jNO$q5R(=+*=S1)b_s6%+K(F~O<7;(VG z4^X6LK2F>i0B<^_QYFvNvj_CLAM1CJ`})@4m(PR%T6NLI^*-OsZwk`q-9D%xRG&^) z`-(#)!Sjd}>EixjE>cMy-L&fv9Z1nTpUf&%UXEwtzkB>wf*(}E_j9GNr%y#x+%sKN z^yp?-qN>$he>tf-5xlR!N3u;5iF=}w{!j#(WjAVMVh@`;@vq@Eii@m&MqCGU&U;Qs zCTSbqfj(trKm)RP^vp|e>uMt;?kvCmWA{p5fjq)QLrAW!-ZvLi>gH&Y~$o zbCo6JuRPd~CIuTS7bc23qqETsq~&-@Q-9B3KVgC4#kKs3lN-l+yO%Bg73HIop%t50 z>Q6|<_$JZKe!U#oo(rIZ=0UUu@bI*KgAL}B z*vV9GYy6g%rOocL{RlxXuU5wbCR>{6OKB=3!f8P;oU@-R_%CKP$wb$y5Q7GT9m%9y zzkjlq!d~xvA(vud&NAVH8uqfUT)>N485M2hxm5*}&oyrd&(VLw;t#S{vgKj4-$!;# zRQ?K`6Sz!&v^GLW5Lr;jhC8lC(3Jz$Mc)H#H9z?$+`cde#-4XEeZFe7nc`=^qsOteG~**hv;CqnzeH=(ToxedEO21op zeoC66&t_5%X=h4_1m{AS&mv?!yS}T7AJlS5zKXI@R!ri+L&~aFI&Pj2 zM{$0h5=SeoHuum5AlEdpZW9wRddO`(aV{Bbk4IKV>Xeau9gG1G%mw073;{Uk`p~B| zxW+U(G-@+|lZpvQrgO$~_4DF!>d z1|Y>Ocb_Tmg14)9xf?Kktz-7G!@=3mAMdnxOizL^ z40o4cL&tJRB0Oz-qe+GdlLNH?lrm|O`<21#H@DY4tx;zj`HdRUSatyKuY;U=BZI+% z4M&vyp!}Zkr%X{-W@=)`5$p$kknECYr<)hN3jjw}%x)LeDF^fRg=ER?`5v z2|`iQQ3-9{C(aCnrvPYprhLKvcRT$DyqMV;IHS3GvIP#MYRJudGTv~y{-Ll*SQ^F2 zdhIH+sz39^SzT4yvnw0UMvp%W9!X+Lwf=KWY>!(J9ta~%OGw$*mW?iVDun14EjL&t zsYM=SWbW81G_s)Wlhg3WsW@>M&j0nrK6hX>pjZ0%9s0=rLOp-rdC`}}RQL|>+iH(`?gv+z2;fTVeKN

b~d-$Pj~>i0N+ZVBA z%zQSQ2{BBpZkyb710C&o@asolmHQ@(Vq`5h$|lQx5M%xN1Ut7>uqKXzjLA@9U&hgo zrj+=jA99(I_mdw>H1}8=Pz(DhfzLT6S>O|5M%A6M4=t=boWnt0TvT%5X^aBecJAK^ zU(zV|*Zgw>m-JQ6J3e87|BL!6Tsz&UI~Kk#WPMMuM57MOx~o2@^`fjEYw?T%vgSK* zl2P^vcm`p53k+Tg!7AF_{a8YPe(^OLMXl!H)}7R)<)j#rj(g9&-eNp#Os3(-)+A2@ zM128J#L>#g?Et`3_=h32-pG=ehIfUj96&BbcVlhv4GY7nO6_>9?GaGGEBO(tPeR#* z=0aMdH99X`lfGX@`CSR4ANyws36g_hy-z)y~2$H9Ce=EqB z|1wMBvw2Zy!=>nidG7cNOjNZV&jAlEUUZ;o%~37#@!q+|+LH;g(2Hvka3)sktx}v# zw^LW;t@=6#d$yoBZk}^66X0D>&+-wQ!TyFSr4$M8c10n5{@-LyiynC$6Ai9IyKK`^ zFRwzO)txczCt0_2vq(%BP+Ytuz`DvVbHhoFE)_?n=uM;<>mij=Z`rsKkJ3l`5S`DH z?-2ch-x}|)OL}h3j~%!SQ^Wn{K`!qZ48*pgb1loQvbuZ&qMx?>yj-@TO;2N~m5R(y zCL}@XStMoULUA%5*gBkbr@eQ|cE|lyR;e|JU!Mf#Vjk0Cbv|v=Ll^PH|4ZZg#OzK` zfJNO&ZD%_vnk?5>hGXBVHt=-nec7fCk&(NcxWI~@g{SAgg0D(8Euq%C`J)XTb#CCgmTM zf)W)T0eoGG*>LXP$G{9ICnx+AxIYrzB}yCenUY0!`Kg?s>oq>9ee&>>oea}pAfq$NlVDZTi^;+3b{KNd17a}?DL&B zFt(Bk&C#=0aQ_r2HqZ4DTy58$a`%^e+iWpb{9A@I+%C4=lKR>Uul6v3+%hFkJM8Tq zIJ8k~C!PYj+XIBn?ZRVTJnZ5`bfBI?isH4>WD1&;MJ=CF(3M;TKOiKE&Y_@aZbcfZ>`K`qxUzDgaDT#Ci0e4G)FDnwMXL_1Bols!^26U z2&mv`xRXyUi)M*~RH_UqzY|X|n~Mv5=%KECJx%CQ)G3+bND#4!TOLLEP!}uR1NAs> zfooEI1juA-Ti3Tz6S@}ErYD#3I~#qE^W}Cgzpv+T!b=z!J#8iT`49(^DZ*1OqudN! zuoYUsE{^KC(y?pY!|!C3vY2YIczAStAd$MW4= z*{csv1;zpO=^?^0^XzUs1t@38-Tz6Z96HoHiRal7zgQQu zxPX{gxVy}Gt${>E0t{zjZ2M|A24#_@1>hqolS2!Dphe8dHnC4X;PL+d0kEbS{|CUz zrK;pMguj?e<#Vn6t7963@myqe2C#8edcu5^g5Wz2CLlVr3r_c?!cg^k;gYg1sf@yv z*G@%h0~0xxT+X)Q%dflspQczV8nqg>RHmW4vzP=@v>;h!TfnVsSki;WMPDNLg~%rE z5G~HJ?8#9762Tx2{zdc&^?U!qEq%+i7(!)0Yy1i~6jP(Kxg>duYqvnimg(?LRt-Ei z##tLebN~ZFC33ZyG}Z~HB_a4Meg(iWr-M_=zmF{JU=lxMu>oF-(54w2%IDfc{IC?{ zdnwGTYS86W^V*C{PDq8e+%_(Y0*DM)bv5t^!u)IYLtJ^xy;ezG@I5#X6S=<}5R&qN z0T8EinBkd%+n0;bb4mFO7RSojx?lnAf`dO(@@jN2y0zhGtCxB^7e3HAAkBZg_KwiT9(cM{hxA@RwQcXGyvR+0nOq0YE{aLzkrwd4N7 zo){GS6?Bc*UxfC}Xp_Yc=Iu0;97;dYf*llcvW7SzLE}-+qPWyN{JV2v%GZyqRf0T2 zzV1!{flPFH^LqLa5=U%z#2`u(1+CoQ8cII>5}cO!y-UL)LpXljVqTvo+3o=j63`0% zb#LY*dc9NKEp>mRJIXE$GKM9op~JaiCT6L)xfn7>toe!pFb3 zR|thh_j?Xd4?R2w_kFGJHs8X4kG3K1RVVd87jHLCI&DtQF>T?04XaQo(yL9q8D)LMow4g@TK$&uK76tBChd zDD`tD(sXG2fQoyFjxqBlJai+`*B3*+lXNfKHvq!dh440^RcM?)06MREH^hUdLag$w zEiL|G*Rua$*RW&di&PgoLFk#tqh(#Y&$6y@9zx2bklH&f^<3>&dI13glC-16wJ2`+ zhS0lP#EwyIVr!MH;L5uqO_hDVv*Cs$h)WA8meUs|xbi1!g9ht(?sGge8trlj&{!(5 z{3`Jki~052MF(dFBq@(3&w*ZwtQt?J(B;3o;B_o&>Ms1*Ct!kj5}DB5)KR>K$}=Y z`17HptXk*7GIA*kpD?R3@Xwz_Je46l!a%%I$$?S|)5MGPub_OxS9-T|VBz9kXu0sP zYeA_Pb%;JF(YI?07G!Dxal23A(w3(CPtT9R)cWp`#K{P>zs@Crii{?PIo5t5C)iJr z+QGg(83B_SJ9X8k(nl}?`Vu5R5E zRvz-&++@s$PRsk_q}|-V^*<{}fnI;$uccqn`UD|*sNSyXJbq&C?8?v;DLEeZz*tU2 zd=l^E>*N0vKI>D~@V?RhSGQA;-S|1lMoJbR2deyo_d;$9{prKM{S#aqz*u9grf-K6 z^+Or>9hpgy4Eq_eN?ZU#4!(tgyO zx=8lLqrq1x@7GI`(P69Ynw;*?Nr(vrxbr~5K;E`gn6}4k+2M zwd;414`@p%)U&(2O(xo!3U=5(FSZbhk5(U#PtA5wvY<}B(Q)|Pd;W&=hp7l9nO~u6 zPzlKC1-6nuq~aMcMFmgQj|5FxQtNSHF9ETy|`Ecf@dWbRXb z-(EKCFxMUzG5VQm?SU0+^#%LM8CbQfVL0G2TtD0%{a;L$(G5~v)-}=6KvlBJS-yv! zg2>Tyd`JNCI5k`IL6b&U{>mgtHL>f8ZyGHKH;OCFsBv#K2fz?$5bi{ArRW~Po>1%y zvU&!EwZlm+Sz@I~d=(z53?4U-JjX5>I+UWHgnh`6PT{?%>vlz#)KC*e)U>)R zhCgwjBJiYAF8j@ga0H$=aG|^^-jnHdxSYlUJXbp1S(;rK$%jwi9~rDRJRQKz_o=%^c?$CDGF*KrgCu1 z_?_+B$w*%*u1%F_9W}_ma-7nBcIZRjK}q9Ot1?LTQAn<;`vni%TZz+ls%;bC!~Jx9 zQ2yX#<|{7-)|-rbQ^R-s8PffqbN_^VW6sAO3R)mfd;{W|?u&`jw@!X#Ac({1s4Z3M zz3O6T!QklGK=aOFUcL;|B}(F0WvdrQMJ7iVeR+EAj9K7qlpI2-o_|wfz1K2XmKV z^%&X7U=L{MS0I%boThu|^THRN1S@kIl7_*C1LNp#@*H!X z{Sdr6``GCa0y^{G`KhE{{ z9PQm6zM5(*3J}62R$&ayVyoF;(2KXCy(3nyInaxtq#Ro)?DfBWxxJiu7e8-}-r14C zG_tv?0*-du+K0hgjtUppyurCC6PU48=jbhOqk#wal1PvkVAbR-EK{0o4#JRJJ@Duv z6q5I`(J~yD!Mcf@NE_wlvgYxPIMq$(IDA>s=YFcv$Z%{JfzByOjqxl#cj7P!A;B4R zUv`&Ff78t#uMHY(Y=*+^S$^5P{o-ikcw1!`W2lm_~{h!#kaHv5cPbQZ6Hpc@Y{nbXdQJm*%zjhpN&9#BN|@DZ|u zv4#(9HnY;C4+ zFr6j{0jig{A!}Xx0g|;*o4Zn$2rB3;UL)3!Xbw>ymF$}7cNMwo(whA(V1#@{geFLY z+sQ>!D=03ZvUe$|F=oDTIv{JopcA)aOCc57>mQOM3=69VrN3Pd{17xQFSZB8N4QD- z#efmNK$BuGex~*36~bdBVY4C}BPcuhIBxVj%8C7ggi`Se``XL%@--Hlt@yyPjd(nZ z`_fzgB>0(z9MOfO1?`;w6XL#TWAs=&|ND(P6a#Xk6_%= z@8E4yUq}elknjCsJ)m}scjyd!eer(dytwrujsZH*cIBOO640DjzH7T8UH3%No3xbN8wP>v_#4ER_}NWXYZQ?(M~tC=&ABI(Xem&U zmN#Y^30Bqq(r!g|BQC;wleyA;eVZps5qOyeOb%`|LL{_3QM-lgUOt_vP90-;Ksf2> zsf9g6cbq@WoC+4Xb;pUurY0ludY71x)1;{I-pkmeqgg?W0ZM8_;3W3bM~aOB_zI5W zp3kZ1VNj+le2RBTKhM=DGR#7e?FAe_k~5|)P{WrWl#mj6C=iChMDyhS@NbBbnwf)NXq=y zUt*iKzq7cn^Q1cU+Xg48l~`pw=|8PswjQ;2wzTI4{=ou zMsEb>&B>CGV&a8S4AAy55_uQKtz@p6nU;RzAGnbuK}mx}ANDauHYTIG8(G%sUP$>xco>dj@Y?LiPh{EV@oy|k2zxmVBE$tIh0{;!L_XNfEVmSR zET=#uVxe1;67}TxUAbmZmVP1#R&EbA!I~EriH)=zOSwf&jlEW&y3t?Q;U~O1p}&)2 z7eCqJ3oQ}5z-7h2VznRvzUPJh&CBPHr$>0T{hp-2zwy5zk1^4=v!XF6#eC?Ot1@2Z zp2HRjU&nc0ktw)Ft0Scxyq%0WhYt{=v}Hb9|&;Z_Nu8 z<)^1igE#(sQJ0$VsGeb2y~$oKWbs|hdqm&VA1e$t0;S`K64Oc$kbVPBL`)>-#=0x= zHBi5dA7jGZwNLta)-(t;zOzI`@ow$KFV&I&)k(_Ikjb6E#j~6B?GMK9{B1^8XT57^ z8>7cnonM!ko2Vs2DxzYFmc`kQ8n4RlmS=x9Y|6*TD1CSEC7wWRn{$*n3%1bDE@1Dy zi_B|TsOluUKJRP5XtSNThSJh9vUAe>y}IUxEkip}!QP^P*`yj5qc&iz$E zX3?1JE=4f~?4wFi^aT$6IuxrBcf)1DVmO`)IV#5#2*srL8Tbs|;z<#lkWj4ch>mh| zxW7R{>U{8Q{7b$nA_GRHFc$b<6Bp}iy-Lpu^eJULoSv#4a^E15!58FY)c(xfa>tfQ zSOT_hmewpLaw=e$BuptSp`V{5LQ_>%>SO7n29~U_8jT{9`n01r2jr>nOWey!vAH9k z7dY~vI4pCxjL)!}%Bq>Ot_uj{1P3+x=R@m>3 zal~2RseB&y2ae%5niTNgpICat&SbzE`r-tOH?rBGjW7CWMJ`9crGusx44hS4O%ghL zmoi0a=30*(uj5{2j#{Sm?bwpU??iU7GhlnC>eLUK+W%gUKVd!fuZY>Znb88Rhe$p? z@SpdQbmpH*W|694w$p+=TNCN)#R5lD^3U|KD20`XU`o7>~(@TnjTO?0bt z_ClyRYdZ;|NTmyhA48cxf;&LtgiF)9U#XJ=x_T^i^%L}#g{nLBeDd$g2|xU~4qcMj zRKwX1!hOn*lR4V=HmF3_3c+>wBT;&MjNu{zhoOiZ?-#Y2Cl7=@%W99`_>cMLSNCcV zL<;;Ug;{SSOdzP^>rK~Oo9)+XgU=g{`*7|*^=Olx<8r%xjr?~B2@aX|U(KC5@^pgS zx+YGS>XQ}4FDOK6%ntj&-|nw{%dKLkdMGC9b!EhSbX1NbkRfJxJ&6{v-6u@lUK2x) zLZ|sJC&~Y?#2#8GlDBjG-URu-5ecx``ZpV>&f2!ZE#5{7FtD75TRa>iGne1?uMB>* zsUDKN`ua;WS_i9!U2TL^C0c*vk`#IoSf)SmdsGu-X8oc?(EWa`Bu_r$=kdWMm4@rZ zOgKtCSXJ*CX`|{aeJ<_IIroiXk9)y!U_-#?ztf;v1fB%0tlhGhp~M-IDNd0i2lj%lhDjjLD5qrWyweRbQ<>)G)$+w!uW;h)0F6FLZ)MvME zj<6G-CfBzA_Qo;s{#=8<*8^&Tn2Q%^yxJ|S;uJl_$r{oWAwt7}B`X7$Vs||;HoK?7 zpc=9WE#c{6zUzzlO95Cc|Fr(pjBp*jitkohI~U|;-Jz3U>KRVe)I6bj{KOcGcT_Tz z-kaN04fN`egT*ssd@Ynw{+Iv49q5F*xtv&-{*{=ey?I0i`T?8C5{Qh_TA8*hk>weo zN>7`d^K!|sFg)TDxoyyj2pZGOa=P1oDtclXmS6mS;C0+Kb<6vc986Kd>hh0%oXFKb z8p#N|@_g5qW9VPS-k}X|U&H~E)v*t9nNR*&&W98nb!^TP<*a6m1H&PkVnKG1Trh@P z#gMFro9a@rp?HGrbkZzL#nv0UI|@&Mk@c?O*g8 zyr`KR9tzpH5M4)YOLLN+pZc@Sew6aTy3_hiNrhp6LY;XtKkobKZc1F7?!&%@9X1~}^D}l!>d2A*8MN{fGE-aSZ>G9`p)C1fXnG%kdenmIZ z27SRRV_sBL3bs%B4@$HSx*7w=zh)@4B6(AGPs(a}0Ui8%%zb*g^L|LG$`i%l{ zaJ{aPOT(P<`Zj*LIUJhm?B#U35L zQ?xAdnM?jN23kH0vgL2KSsCt3DN`0cPSMeq0}_Ad2?^~XNsw07*vRqqWEwQC8g}FT zX7b#PN584()9MLT-0K9weR57vmei>WzVp)S3f#uM$-wzW)%GPbtW$o8kC6JY!*>01 zj?k|`{SEUgTRz;iQgh$wX!Ih1UxzL}+yqto_}V6)&keFk9h|O>u}h6QsqwCayRwmZ zaiw{Io)mzMy`bv+NmCh>PAV#?)vZ9exdJOtOYXvp2efF4b)Jelzf;CHQNK#K|2orA za!-&a_dLj#w99Fa=YBH+*I)C5)%gZ>_&!sz_B!s(Zdg`%<3201IoCyDZI&Om8oD$@ z+H**a^rf04Tg{Qh8Wd|NL{buPop{kQ`2yFTsbq9Y5?7O=K)`Or4qInGIY%gLAQ!7o~Z1)N;KRDX>o zW)H=-590aVhupdo-=ldAGfUnNqVH&QKx+kEvEja{)*a$(ac4+{PGaNW#IxZZ_dgt7 zEdmIuXgtlsmUerl8wKOB!wzx?Y(PGe|0fuu@Jw{wuQLDTyW(0lrjItd#`Ywbgcrrp z1zJOQay*{$B4|fxZB!$W0srSggKnmJV;I`Syd2HyD<$38I)P2tCuF@=7-uA=j4GfO zd2X1%)Ict51l*ruULFd*QOaOv#)!Vg9;X~3KD=s+YrpGOb`tw~J?~f;>YdEV3e_%j zfK7ITo{tFHI9PkQIqe5kF>SB{kd@DPlrbaJm4W(6)LlN7U{=hE6 zdIhUK)(gttCzAiZ!tsemz@D_b?!cv}+&p2OH1lxdS)XLEgxHZOk1K8l|Eu07B$96+ zz}`hG?B=ZHM~t2PzFZ**2?+Il14#ykeqJRxjOtl|P2QyzHDpx{2f0+R`5<364;V!% zG`9QT?bYCGGG|SeN8b|)aEkJ=x{27(I^>KLLQGSTAbCasf1O83>O&`LWPLT}%8yxb zFCq?uH;}1gkKVqb;PbUlJ27#`i|o|!A1ae28mn zCy>O51k($WJRL_)r@Tspdciotz@1|4cszU@xjVy&P00)s+vwBttB~03H@Ph5Y!o+~NIoeO#jM$tDeipg-hF0Ya2HdN$5 z8W{2J7G_Y?z}?|(_$F7L|GIqa7Cn&@_P^1U9Y$tvaY2}Yd*;yE*wPt;- zut6j+{GLm)J<>kep66t)Tf6%$J@1D(?v}M*fsr_0G+?T(#hoB$968JjnhG)IHy2k$ zRXnK^E8+*@DY(7jtj8Lw(d_+%q{Bzw(nm*lqpye)?{lYx-ip&91sPX2O3Z1hJv+_C zJE0&K2Cz29B12NNtE_q#wdzVif^wtOQrS_y8UjyukCsD{K=<%3_AUeEBG{X(tLpbV z3psjE3}#ZfHIgDcASs3HD8FHS=>)qAsXy{+4Oa8PeQ(1K-V6|Gw>1lp5Asg$>Ge!t zzglz~*A<1~|3-{qnD-PK<9Nb|VZ^DSd_N63zhTExlX{eN<*|3tyht&>-MjC3aaN=o z+SyaZLg+H?H=SeS>-0|g-V#c_y_FfE3y%|ndl?cRT~9}t9&0}J>H&I9u#R@j9bi&) z)XyAV6XC#EWBV_NkJxE%KKP_uRa6`xcvDPt&`1ED^HReT%Tq3A1={=}@hE1SU}=4kWYdl;?tu_X`1N1 z!~#o~R@(m{L2u1hz|Gij_xffV6sLy~q<5b>S7|Ku`E}y0b z202+$7fu^uEwx$54~7J+Y6wWm>o@IGJ5b~n8d`LSr|DV6Nr)Va1ZMDT985EOSJhw% zon)>&BT$SD-0$6X$LnXZ^i7=EF5^FI9IAF$By@1X5ySf2QLU%G$UHqc@gD7nv8Sfj zF|;(#am%Lkb=m+sO{)cak_}efo6*@vVO(!{)kort@k|Ef^4<)6P<-icE~biz8MA6m zj67@;I4Ao@)u^Ct$Lbc5$Dug{oqO72yN^x{qhpFc5TWStjGp=YDHnS$#h$AiKBM6SNK{$|_F4P~G12t$u7)N{ATnB8gKLWi zz{n>gbZ;QMZV=N;b6x?dmE&@r84aVTM`P@4H2r}Tx)|yMxsl#RM~M!GV|pNum{vmO z63b7IfQhuOBUfNGA)xSq4Se=pih|!VC$Z&83z8M-U$CLR?bv6Y9+2;QmVg@M%3D|q zn=NBPkG4cYn14-zEVW}wlEsLUHnrKSqJ1agf$2^FN^0M=-*vx?w#98HNp}gx?7Fd3<0EIe! zYB$TMvMSxqrMnmMK|OkkMr>C+G4;vxBU8G5(SfsY!5Xm`HGvlr%n9R&&6A7Ii$)g} z(a7$Ao(B?J-D<*?j&cDaC1q7DnYQ=TOP~5sZw~l=*=Ta~&8y?Z$ zq+~4Jb7u^(N-zH0PvFJr{b$>-pu$-5%01GLw*w?MN3K`scp`T$Z`{sWWUiE9jhf?& zYJ?D1nFe~c=ckUR*lT5oU%7PE6=hSP!x3jAR%{|z=m6~iJ---gM92VY>cIy z?z@G`G4;HphmoCQ^W}qt#GYm8(xxhR&d3q4m*%${^X^y)7kqgW7Z{8y6^{4rPY<{T zF1JnKXgv_hWcv?vfC>Iw@-9)W-(V(krV4~=7VTJbkX}aJ>^t^F6rF8zi1z!{6q6<0 zj_&Q26aOq*ei@zBSV)_ibM3$$Yy!i1%(eEynOU9brz~>yjwIy%v%<3bRn{JPQHO#~ zDDkOTwpfoZ$c6r`chTd+xIi`tzi_89r%m4rt@&fUC*w8DKg!HAl|M;(q(W4Xuy?$= z*gVLil(3H{`7vgkMJ)b9=yK@0SVM&jSF@MCOLs7OBq*rUOY~8v!ny9mo-VdS@iJ2r zkG#YMgL)jcCk^&#DSmb;12)S6qkF`pECU4;_X`U=W@Z`s^4^8$%m=e|4WCmSU{2X~ zwf!n__io;{f-G-rvJ&N8a_?09mRXfX2>qoQ!|fh!KWv&3Z71zzrJlR>AmshsSeao5 zEC`3^VM~onIJi(Y)hkcEjrd_g9Z3ZhB#}_G%j$PJCR$|qTu9zh`L)AhmOjBO$=d#y z15AFgz=1YyCY5#!C63tU1mep z%l_v&{$+XSgX81?dbXr8zQq1Ea^{va&UZv4>DmW;da5+6Rk3xAjr&!+)%cUiZ4_Ou zJ2mz8U!)9VJ!QX@t+RZ_h2a|TW3TikGWCx6L~cR(b6B-Tte988 zE##M#UzfQ(f(q!R#}oErSS%BhF)+ZkZ*sAXM1J=2&>^_|TT|Tdzu&cZX?#TxDk!#tJ2;DdhH;CDaqjF71qeo|ShwJ<5pMs!Z@ z#{8Y-0$btWa)s`rRDLTIn}x3J_m%Vb%!l)CypZ1rsfNu1b^?a+XZ3P|W_-i^lj#+? zQ64AlvV2~o9^iDV-Kh8AHq+6G)}p2O4-vJ@JG`*)SwD_3O@u|H^AO*H4yfflJF$~q zGpm^o_$f7G`&)mbX}*$!U!vWNNS=4(G9OG6{U*LVNsvYaMw-Y6-2biK5c))jzyBK; zSt$+knX^%(BBeb9*;a8T)JXtb^Na@f9BJfORM?wW#AOh~({(xKX_aCfGc{uE;G!;^ z7oG>4HDu&HIN)~T?8(2g_x8Us21Hp7u{JweBO~z6bat#B1RY@-++vFePOrIL zi=RYnCiE>9B?;x&tCy>Gv24Q;AkSaE7PHtO^Dbj81`$Yxax;_qkT`&LSk!8`jq_YS zsm>Ag#ttgQKN;${;vQ;ez ziBf@_fNrKKNXUVaQ7(7C2a~lHOqO+ya7LZC6J4NK&42V|i~hQaw=S$QDG(>4a9sla zqIrYi7b9)%Yu#z2)Qg(vUdzBlZ1;^9m!^Bv?lMY-*x%QgTV=wf(hK>FK(61k9xQW@sVG!)^E>I5DH&NCuR%t_twZh&1L4 zj5@qblr`3^=$0f1_0IRVCB;V+2 zBkFa~fYiiENW=YomI52zyi~o3GrH4Vy;134?X`J5qr1qm8&AlZ_TW(HNh(U zPbIe7K%xxiU&*fNXf7+E^XW|^+YJ4Se$|G^)KH-F2Vph@j6&~D@s3=vu%AGp_4Vi5AO5ykUNP8%nWGK8uuI7 zo#UrYo7jg-(IbPRr<1}P?!EYL*WtmtNyi)XNg+xz>$nW#M^P=kbSo&Q#zbsE+>py% zPo`W3%&t5VpLi>=kb%(XVa-6(r#Rp>b5e;zv5-eNU&?844lsokB43dWt%Yxan z7UZ@K38MQ8&{W9@bL*csEw-Ml&b%i2oWvwSMGGQnc2Oqfd*BAUwX-BZlnt)tqhcmG z!~C?mJvqP}dAX}|5oZL$-Is0RMeq>GV}O%tWObi6Hh_?VN-z0ny_YONaaM~qt5FJ% ztl64KaikRgEA;Tgt3Tw96(y>{VsF`K91|9;kSW{__aqq}nWfWRUm3T9L{f^n3K~eKxumU%H!PI z23QAsm{=G*k;6M4s6y)x%lZFUZc016CcJNu6CBWwg1TBQu`Z0`X4^y7lAz|; zl39rEj+bFx9@F5s5cWjqWvx&Wql(07n>NF$oZ#KFqRUkI`!lm78Knoi&DkdRM+s!W zIxw#u!@}@evENjCYgUsWmf0QRt>_oH*2$6Q|vpyAOA+4b+$$muN3I16B*{zNl#vC&WE&3ol=u|75=`9%kA3pWzkaJdK=D1LdX^l*m_jpoGr@7^KC8ThR zyi!|iRA}nWOTrTuk)0?iztEppFJS|WLs+U#3ssB?VayH6nW*hJy-Y<}e_b?hWB-&E z^My@jcO-v=oUimdouA>qgnN_!w7oOG>c@UkZ((kC*OL)gj4D-V*|5*fJQGKe#D>P= zIMXgY;2rGqWM~af{St#~kc1N1BB!Gu;k^i*A&rbIp!MB#>s>Jt+;A-U9N;dJ*Taket_pDoLZLuz z`xV;zDdv%={*%L~o78{asbPPabXYjM(_78I1EX%;gx#Pll^2(?E;2Ze-^BLcgkEa4 zwdeM$JAXxH2iAgelJ9T|IqK*1t!KizA2kptskqAdDm3EQ?uGMxtIB`5m7p0glu8D; zVhGtz^-I>YT9%lvn+I<=s!@fW2`fz(so@(Tufc*))Wrr5)bneTs4-ggl zMEOheZt7zxMiw*m0aZLj9kyFEc6IR0d!{|zx%gnAP?#yMPEib6S_U~<#t?}B&Jruf z1%rf>I8IFz58`9XXGY@s2c;2UF8F5Ww?Y#q{BGETbV96RIO11Qc_eAoji?>=pGNKa z_)G{eKX1BFBsKf56-Rd|)%!J?y1gTYG6@oXm+l+7YS$E3!phWY8DMt2AW$9_arBE^ zm5@NDbKr)FEt&vI?IvJ`@4PJb$IPvGS&HI|m5?ZHzH(-Yc_o{Wr-F?RVbz`Bg$NVL zR&5Gr__)~O|3}ta21NBnZNGGPNHe6QfPgd%9nv5IN+Y3?(%s!4C7pr+10vmB(%>L1 zAT@L|44ggsf6n{7=X~`Gu-*H<*Sgm4y4DY!zBCNQN4T!OSSi?ao^m(l=uO}%z;5_? z$r;D!o!OW~K~ z;}X%mz|ZYZuOwtW{=BE1N>d*?A>Olfp2pw-b$u0NLST!q^DtRwOV2*QzW@~@WGe%T ze49Zg_UNU@>YmvH?MK?fV%L!vAs2L{%H;j9r=tz+0(wyAYs+DF8VBc#z2j51X_7mCR5}FWS{p?V!fFKKxGbhD z6Rz|69bIZ#-@_2f&Rmv|;{Nl?wTyb5`pd`ru1aWr^eIfCz|6YtznL|{mBGAu&EH~~ zxo)H-Oe^=lk@e@_u>JjJXEANO&wRH{F-r_-D$RCd?BD2tzY`UEO~XSd7D7ngYn^s- zal&@Ha-=$QnoNgE5(NqT5v1EsSI0z!lL#OM!aq3pj8IIEwImvc`nNUA##WXYQ~^Q? z(OCmBojvXx2gU{g#3hU})fR^TS2qbP;!B>gp1&_Lp@ms7OBpsUr!QhV2`OZ&l@ z?0s?F>igNHeL$Uedl0a)&}6O}4Z3iioU;b2zP2>HRFKzq|8|$?2rX;$Yc&+5sovhC zdOZvs0}_AZ-@QrP)!t(cogxklX>EIUqLRkj8FAs(l25mPHzDqDIX4+c3GHbhvrn|@q~Y(RqiuA zA_0~%w&?z?_t&V)K^n5t*(GE;A1PbE1=|Eq)rDH!4wZ0pa3EK;&x9YFZ45_jhT{5= ze4#&%VgQIuqp@b!;!M;HraPEYr|ZS3;iO!cT5SEptMSAU=b)*oCSv%hC9WS z5*d7AfM7!fFr0~^KwSD+^i4F;`9TRq`=2B0g4BQ%-v@0@TUBCX;6l=3RU(;pH>gwX zvY8yF;yTE75`b_-gHqyTP(YO*=ul}q zby?KXL*|8a0;rqAMbz_ns$Jp>9vmK?SOin*gQqZ@a_T)*Y5HdXkdwfinxX2O3t_cC zTY1Rj5>3ycVMXI<+kMqB(MeLS(!k5FB+gPG6RHoB` zHAWMmC0F~@xGuf_nn+biq~W zEI+ITZ;iN&d&_4U)PgO#69u>){_cO5{M(=|v>vW-a2}w)$tKAPFM=f*dW;V`N-u>r zgc@&QWouokafvvLTxWNmi_!4&1E@ny)HX&nd4z4=2b;DZf+B%`JIEFKl-?wQntR6U zE{r{(FuTm(`MIh6X-)aT3?|(yD_s*)Y$XOf%E+CE<9`V9Ee}>=+kfrj&vC9aG&)4N zi=IpzP86kID80(-bsk#;eRiAIrmJ3H1bN<%u4kFqio87aT|)A$MV&+?^gC%TlHhU> zOENdn1m&9>g*qs%QqCgHKzs6+=LzZptu-RW9cu!_M_Xs-(y8Mwg%rP5Cmx6M?};`g zk{8pr9&~ueI+#w}ODd|{SZ~nrK2=0JB^c^yh4r|!7X;(NiMlP1btZ~hew??>eoQ({ zs&jUS9Er30!`m|hI#;4p0E!qQ1-y9jcirAB{5E((qRmFh$P+9fw-zkp!Oelt>-jTI#o`U}ds@3z zDX%K3LLOc7u+Z$^3`sR|bLr*BhF%iBW1=;^H9@+huOwC3RmNxQ@xWO}Bp^R>5?ss? zuL0;PRCOg15AT(#cDrZji>g(HS#86fu1-DIiS4*u73DyWY3*9AAL8SD?CZxcL;A z8q6a{W_9Mb0DO_Csd*$Y$t-b`jggy41Vt_JD%~BEJe`HG)~NPERH={ynB?TNfQCqH zammC9w2OrtnJcgXtvIGf7wSd|`X?r~amy6ur@MmDQh#dHSGVFKweL0lqjjSAPAtp^ zJc^b8QqAxV!RM;>yJjIv5;1MG`P~*ozVbabH`MY z)5IyED(`f}5GzHc-(j4lm)K@rH9u6#u@WpeAg=1&*kl%Vc*ysWwEQha+ZVQfBzn+M zwdPhP|H3&{*PY7!N9ub8?HQVj4yKDRv|_GdUmhmP^5LAwE$K8WyL=v+eaGXyaE$&M zP~U;FF~XKLb1TYlV_$``YDfa{PDQJ`oKbR(;ir$;he!Luu=ktY> z=i*j)L25N6OI01WDe3Z#DCZDz$o}2xDUF%6`*44`CitPCZ(E?YU(|%#GddAv2!N1X z3@k?WR0Ywr@mbg+^+9@z@OtC>jRVKBoavd%N3_lz;13urdVgZn3`widedT2@&?&6} zRQ2)0G0F>UAx2p=Wcn$msaU|Ey8HR&^SQLolqJ>ZX8od}F6g-COy+3-L)JzA z?Hd23EheSwNB`coP+%o;^ZooK)-2~OOBPr~oP#Dv=^*31FJEbmu{SK7McoNWNUv+G zC`Ob8VehM|Dj|0v0}pgg#L1>9pzn=*Fwkh02R16m0>Dm$8SO6oRSWU$*5$}^4I)rS z5Tca#V}Z!0K|)$4K;o>XzLCUPcozg%kbnzf!XgHzMT|3*fRVW^=~W0S08@w&du53O znppMEg;zH8a5<^>VUl?LhsH4MBv@v=i+==8?5Y51h=!F4WX_HMh3->@mGFg-R|@gl z7l@60=40<8t>(wmug=OaCQ>Q=Lhg?{?hk_kBzyyVnBZ2@Z`B{Yf3L;7hQ>g6s3OG# zQ8`q3|G3BXIhkPGzn+pAf*WUs45jb;f&cA6DwVz1ZdX+bFovAmt08Ok_Tb!}Kq#$I zJqaBQ4`3$z(QU0lYw{kV2_2CNn@H-sK5l9yCMAgc20-yuyU_yvPvBaQ1mOL zr-PTuo?BWIhS_vyK7DO`0k~X{ua@tD`F8cw!MmkUQd6j~#rR0XSEk=!??dwu*_F{` zg3*zOxyS+RG?OKPrHa5nU4hDkxPp>mG_J~f09wNU#EX7-=vI^t_V6(=ui5M&Rfz9H zF)0#ufrPlvggv<$`f~)j{Zbb|dp~p$<&Ji%jDXeteIjcf{Uz zfZoBM`<1#IJlMhSgiqn>fLYp0tBT#h8NVcUViDbj)AxPx_&+S?fGBs++E{Lv%ku^3 zU_9e`>`nfF;w#~i?0i=43dYap;zL_sX;`X?thZ%=jxpx{?ifQSxTUokN8d2Ea67z? zdtJuI(H&OzpYro3@@tb{vm{&r&hvFf!tldBx!G2`?Ia=A_66Twc&ptXN$JKFJnb#! z6A1QIRUo(NPir0>f`cxX!29q8pOcK2Usqgj4b{i8xd_>82C^U2j_ zRHp~}disQo(7E0g0kak3!m1h?`4t_y&#N9j)%&+hmjmBH!`|QFgs6KUD=tOasRZr_ z9UUd{BdH>aDN%Bh>R6bjW_7rDsCXuEPyoI7u=g^33|LBVt#M_6Pg;rL3yo zc#9pHNw#QE<+OKa^=T0)?DVl3M5;+uh2VI=B~fB zma@DaaF44@;MHR1ORuI8G=c6d)=Bep$zEzVtd>vqHN8tJ_n#q_OSUq%Kif;B1}?~d znDhGfMbxC^bWlRt8Ax8nqV@pz6AnD{I9c~uqau<75fR+lofAyws+8H|Dm>43I1m6mo zrF2a6nIGL`Z>ttp2@sAlqWq$kQaL58X<)DJ@rScwgJIP!pUl5->FR4=^&Rji?OB}t zj*#w?yaAb7zPDB6D1lPdevJZ5GIrtaMB_AiQnA|+K=Z?eHSieKqeciKBq*Uwo$2MA z7pOtc67C(r93jRIg9;}nQvJBu-$`Pq=UI>Re&bFvB;3h0qp&(8Nn!2 zGE#u=rN3``G1K!40rhcz;wn!lN$SzY+v(c?%oY7-i2JYbqk^7v`5>2&gxVEq81{h_ zfE4z_w&Y>>N20L-4-U}Rp;Y<8t(?*MkaVBh=Qsm268&lXb7N!?t-4`Ce;pg@L09X; z3&8mf!z)3FdAiUzPfV){SHvtIKZRnx1qaw)tIR`_0I3?rrlBgGuzrSBM1Tg1C5+Qt zpC)oJB7oysvQWR6lP;WZ8eFxVWO5qfzAVHO_Atn4UhUWv zB!(qe)3&HciJ=s5-aorv?x-eNl8$}UG<^jnU*rhtveqXi%y%jFo9u+J(*G^I9xB)H z3*R&m7h1jW;xy|OVHmO1@xA6xnUd*bv=HylmzM4Le78Y|mSMg^p?D{sY5Y-{ef`G- zV&nkpHPhE>PJI?wf6W*0)6O;mqodyTuo!DPPHdnmD67$-td5Fq8T7O<2LN%kUF^{7 z)6)DAF9U{N$DigVw&G2o4G4z6>}p~6*x)v`rSJ}QZV^y$nUO6s8_r5^SIIrDue@oz*ZeJhT8$R6sq0;=uwR zxs?Wv^QT_=+7D1qwYc2~GOrnaSQD?5k6Mpq_79ib^vPFktzm`YG$KhbR_^VK_$W9l zdvH-DN2>S3n=aS?OpYb(&RRDcyP&c0P~zQO{hDNN3v)3Cn7Tj%CWTV$iO70Xbg@ut z$^EA-Ufn^uCje+AFmTqP+Qr5v+EF>|BOhRB+`=i)*JCgSci0;w*4VbCX*q-0 z0|yn9G_1@AZ_EebuiE*~FN8N|5zJ2qY#jt;;`r82s6N+C>`Tep+ruzZ36UO-s4j9A zw4h&Lwja?Z$~&3Alz(n{5<-Y&^Y>;WH;Ge1@pi2|kG$x9$$*+3>6X5^tx1AxKc`T{ z%JJNu9f!4hGx+E`kM*;giC5j7S-gCCCG&Y$>yhBR^I{8D)#?^R`aP~ zbTI1jx>5ynBqgBA6!!PCD`Lk0Zbjb5^1XK#jcj9S6YH@+of+5O`Eq5+!XRU#t6yb0d!Y>AJbMPuoNRBDC2^C7r_zsXRuM;MLhp9$3= zx=&|iI(tWC{NxWZ!hA#RY0Wl1LmUr8>7R$*Mh2LH=PL;$L&YNzk1YlEIx4Ya!M!Kl z)yne-7Ha+*rrMxp230(#Abo|zJM`j)H8SO!U|(tZ98{!Q3|m;#%B z#PcB8qFUw(?NRX|M_|&`y#Ry!m_IhM1g6IX*irx=(SPBG(@tc{8f1z85EdiwAOj)j zDun;zpTgA~0ML`;nk$#}Hya9Wh#q2igZ-X3f+@W?=iJMoXCb_0z|SM?I9BG`Dj{50 z;DRdp!$L*pU*$AGtH0)+%yjL~X*8Zt{n%1n5OwB(NUmVu3o{-j_CJxT2{n=`^t4~j zb=28neWj6fD%$S6gve{1DT1X|Hl8&=t&qDv6mWa5n!TONY;4}E0LZ{P$f;k&131p4 z`u~79v7ZCT@`@>vZ!id4PiQsdvHeZ_`>u161aax@3Zf50=p*vgV6o@uLZJ6@L`QGp z%KmDle8U5qGAuY)Fx-4$jQ7>M9JpeWKe~y}r?-FG_Y^st3H?A;lt2qO50E#U<#Pe0@DzTpWq!n4qAj-d>f!v<1>a^&(S$oL)%$|;2ZDM1@Yjd!bsxzx z$#J@I;qn+nlem$;@!jV$&qYR{SF`3{ep6NciJrg?`i-`!Z{(zaSTwi{yNEf!U(tS6 z=Xmk{J!}4f@|)m<-I^tm9j(+D$#{eU?2JeB9hu1AF-Pn+xzGA$c|mf6jl(X>AEm{? zHL+sTxpC5b4kkFTIO18&lvEC`Gp~uN5dO+t zTf6ja$yY$A=P`PTLOAfg{MQ5<(o2g%K@Zl9tk^xbN{ep=<$A>~NK=!UV2|I)Y)CpD zdZiW#1Zj;q2xc@7cZyP3FQJ!drrM$s_e@_t(7d|vBd|GlR$F!o-#G!4RKMZb?S`iD zuQJl`u#3Kf$3EK@Yi(c7FmI$-l3ZbiHPy+(6Xv492l6yqnvm(bB@FAw0jWDx!^ATwfkN^?op#ZzO8Qt1jL&#>a7tOY2$g_Av zz?b5xxp}JB|0GemcViB$a&>FwaSxDp3R!PF@mJC2LA*GguR2WBo7??LlU7$qQa$2H zm&}*$GRghbK*ZJX@PL{X4$n0rq|?~pke)94G4M2n>;|kOj@jvI7jeyTWQsL-gz3g#FWm|F+TBzi^SgIYO58B%T!z65nMn6Y@3`tgOxJ&`BhfAY zSC6>bc{~{MELmfGDMTw#?;ngqEPyRSo`D;Q<#Bxh9-1F6v}h{diaJpE^#{sg1U5X8 zDid}mSQ=13aHWvCC?~h^bg2pJT1>r@@8qUI!|IX@@6Bgjv2!H>ir6#%qMSc9{G;=e z1&{o?^{xnF#ATc-S{Zs z&vqw3Kz#&^w1HF-4{_+jhU71Vd67hzY^jlJT4M4}OglJz|8fJc&R5kAtt*{sW;zjW z@uk%)p{k()%!dP+F7WoscN@wbUX5It@#DW=bWq02o*M?pRa~+&joP$$_~jfN2-S89 zSQDrC^1{wTrcpw8OmsZ^&dZW!&|Zpi`SWVzn_qR&aK z5%tQF%4E-+C-O`QNPU5PgwFJYdB-LPe(z3>C(ZlGyDzlT|I_Waex%j&Lrd>x^y*h{ zW_DD(aP+Nk`c(tYXpp`RRnw6cl^4jtYJ8V!At1y)#i3&b-p|L9X18MWWlJNneyBp$ z|MfaQPFA(BVB%vdExYYZAu6@JF8Pfg%_n+4I>=w3OQHa-j`o309_wK)iJQ{12y-l0 z<6s2GjVltS1{`Q(P(y&cM|%YpVALH_}%ISes(4)jK(=yV5h;BR^RD1}~6fi$9xkZo0$ji+>EUHP&oZ~XDO|Gs(jXhK>`!_Wk&7FJm>Zfx?k%EAU*B|p`&;yh>B5)G+R-!>JF+^{Qco|azLvn@tlc|;*q_b zKF5wN{m5}9*%p+R811C7}~dY2hnP1SE|CsEA#1Y94jFC(t6X zapo7uun5I{in5Nt;8wHu)l|0m?xR$4n=yvUcL%?L7O_%euh1FqF1ur5c8Qv>^gJCp z!vRgOHV&f2U0lKXzq-REe9czI-NrbM1<}uMF5=u9_-7F4>s6n^8uxGFMtC_;H#*0l zbJIbxMqtMOIzy1UMdJat zJkQ(WQpB-(Sy2puL&_~YBMZ^>)B=!P-B2a1pYli~dcmr+x2cklbN+h9&jQIn7EV6E z-B{t=Gu;oywkcB|b^pIsp`s+~4zQRPJRtPWw(ob0Z7PVt4h)%qV$O25YM;=e)Dp)c zDrz}t@MFOj5hKcm8hZyC2QMgegTY9}w3lKk=sJ%b&qwl!ZBvC?q_`X+;?o^fDDdD6hWJ(;YF^%B!z@BBL zx50OpgMk+GiH8tQ`t;8?1~m=SSk;5tX{^3{3oV^Y zY`7e3_UE{%|FR(GlE2nkefnLY21y5^HbQ{4v zo7SH${^ZJrwO53P8H@)p9RRJ8efK8 z(|;ixJ58fY?xE?ph^qCdqg}5Lanr>XT2Opfn6HKUv@@(VlV>NUmuUU@@|;}dleFmog(h{_p6p9I2lJ~p37QhZfBzvxmcm@vendHw~~M3&HE8SQ9V9-!R+p}rXCvpB0gAZOz`x40*%OndJyOHdT5*Ge>( zbPqm0+@K@I5Cu`UoF@}EY*7?}<$>Qt$=8J$qeaZ*G{KYtWWy-YGmJzZy4)Vn%q>gk zaB^XL3Z0*A)RjJ;?o*`PL z4D29SEIgp=l-;$ov%H9Bvh|S8%e^(~tz4_!$#w5plsoN97OqR7u@0{hIq*D^u(1oJ zT-c6y9iA8f{XVltD$`%{sF{EnVQ8AM&5@xmX_RymXK`NwdVLp_U%>?a{pCWNZ6H;L zdU*t%3^q>(wQ@d;;?L(fISyEL)LZG+3Q7}TPetdyV~nd+q0CDUx#KDZy@0)z{e}X_ z?REHcXnxVDlYuKrb~9Tzm#D~(GYExsq*22e_t#CuXBN0k{IhQwQRM$ZZb+n*adhRO zA1iP>9@Wg}_lb-OS$|MN<;B2>YM>!reaHZ3+9#fLT*N*-m;UlI$w{E_XG<>5Ney!j z#(XyN;QBj0RNiJqs#&pYCzm}7Poj2+n=FZSEge0L{=mGyKy1QaM<$?f68GSuUoUqp z#2=<~KrnlhlZ}n~zAP5K5{H;8UZ8eE@Sg_x+^1HV5FOe;Y2rpfyZquK5ic#i-IWEa zH-^6O8dVNL8X!|TfoV_bajc+uZj6sjTE(?lK~YQe2g$5=+z=^k<18AMR3BJ}qM=y9 zLR7_8z`SU4F+s8*;0fW`KKq&C#p&=rSpewf^Qp<-=r9;wAZY>hMY54KVmg>2Bf#AJ zv>f4VppuL}TciMdU*#8I?mhS`gvswqwR*K{1LRI5;0B_O$9Ud1zp!xexCcg}lzf9u zXtxvdVs$-Sgz79FSxd3Yhm!+EzcG_=qeV5z3MN_Nh+V<$!2KQIa2$+K=#zQ>_4~lE zUX_SD$Dw+A$WWJ9y%L6E@?hj+vbjbMEN2C}&Vc4?)B(iWs`}1Fc({QFFiK>n!` zFp&YzoJ4J$4Un}75*u)V5E)6WQGVqzYo(oO^Eth`nv_0&>r4@lExmYcF(b1DJsd?% z1?M6HhMxZtic7h^i0!#w5ExWK2RJznFlXu}7|U4Yh|CU&@4I~3WMW8faEkAF;@M8{ zH}<(Z&%zcn>brlzAfx|BpdgOu@&8NS90+j!VPobpQ@p_Lh7727*soN$-oDim=V;2~ z-_6%|egGA2HOiHoe%)GdanP?k?X}5@12~dN#S}THWBDg+M3KWWw_ks6#!rl-!`LXW zAnYh`#e}lJ`Y)XQJ2`3KcGQPCm15mu_2)ZnfWH(@SI;W^H{drnz99GE70TKS9Glh# zF*}byXOu?c8dG{)-xJ{s*~1Hvn9P$?Xwq-x4smE?%s7r#t0tXj6OFb4M>wHMTX--j zvQPjF8+X*j_GvA6TBlH|)Y&glO_rmhE~A~>Bzbo>5;&?!OHA$rmWCT`?~+`2YsgyM z^mMl|m;ou6nT>f2YQ5n<=ylh8kN0S~dDVZBnMU2zW;G|SSdoo)^dEt9bk-KpJ$+ch z=?|BV^uK+X+Mt{M561EMH)Mq2A7FVV4fW6q1CTVyGoV6nWv^)0e#i9Z9kro29zXnd z0q6Max0^n0T1tX1lK(=zY`p}Zk+LWw{d&YTX=NcZ#8b(;&%%z}n39Bv)(tM+MSNPI zGo-)}^_0V-FXaB?lj_>GR7u8G1{^=kfWM9}+DW`r5!x3LgDNkfVs!KuLMr(Gw~yJU zy00_qtsL&5fuEX#3JWBji*a^%N~L937=R3ZkSPDDA^hcTFlN7qF&3}OgeTSAC3bi+4!B%4X(zq(%0PnUMQrLV8m^S<`=HclsOHhzf>#(w_amQ=b?QG()^e z567$IWhQjp88070H=WqRy`cp-~0G*3rRufrZO-NfDIc<+Ml z1L~=|l4k&fi6~XyX~wsq{~}H5@o7MRQ*;`7d#S^N<$$l1d?3*P-C=+swXd3Zou-9= z_Muf&2G^^+QgY@47whqwc4u8|M3^b*^W9#vRVmjp>B2pslwcZIyk`*fG`J3nGUKMS zsKmLxAv>#jVz=5$Sg@+Mu?Q6|?`HPN#aeWYk9Sgj$k(#kwHG5y1w$Z_q4#^T@W>@e zqt$rLT}0Kb2;h>8!?fvp=(H*G{WRK_av|IUJR!CTcgEG&3f^6#vVmd?`5RokU!1e1 zdlAr!P~}XWV;GZbc|6;^E}~$SHDJa{!&kjVWp72FP#xp^Lju_$yp3Tg1P8jAEpxju z_M({p^U@@Mf5{y2$hPzM><9Yowv?46rft#$K=w1@a0mmqlW@9tjY6agWXN%Y*)7so z_Wo|RgSzcw$II|4CZFVGYrKcSZ{A3^s*Jh%(R-cLqYuWcCi9YQQ=zrYp`T}H5>RA>SaRspGk;*3{*}LxnZ1v>E>bZ97IKD9dyU}~aqt~g| zqUbwdxpjW`vK1GSOHb*I9>k?L_oIy!+)sOBH&n3qDX3*oH`vrr`nJA?aecU^^n!-l zlJgH?N3)FiKqiYIh}QXaHxB;B#A)dHW)i!WR7sEh8@^FGaUKx|`9uKv2?-M4H_t)Tao8I7?qK5xNza{{l|8FLy<2RF`rG=-WADh1Yhkd;*@RM*p ze3#{uGjTwCf!X*XGwzvtE`J&S#1<(-yfujV1{c}Z6E;IOuPY%Ne25`pWP;AH8`^_B zoFGR6j^JLQFBsE2GpoT21A!gS+RUJ*H{p036SP9=KLqSXlDc3ssOy&wBZK>Lj1IBy3bl94dfV(F zAe|#|s)a&E0#A^su<(? zV$shB1!4mv3-q5Vmi(lUpyt>MizeW#L56G=j12&32tF&xsh$_vt1VC5BCWn#YKts*IQukLI!;}vj@ixEO z8tl5;CO>OP-#m)0U}allcy%wz`Qcc6K8ZC=5Yo|;CNVg}2}B_$Kmb$Z-qOp|f~d%2 z2N0fwJI9v3s_&K7Mbv%YrvtHdkr1|PF19XbZ> z-f5xrUCub~<|94c`AMfHx;lh$;A*To6Ktdq0y($k7jgM?_;iUk!4<4Qo(6a+q3$KZ z0)9+`A*alT;olIlpx}l#2WQ1}4rgvmy2KY0@-qqnalv6yGylnrp=6M0n0Lp2&6;C~<%g76(-db-*P3gcnR^5j!M{$-;s;*J z$+G-9S0LYuLg*u5)*pQY*xeOTNXYEe0Ab1kpeQCwSV4-YY`Bu*v}NtgBEUAwzk?WTylA zwp^zhd&v@ZJ8`S#_jv1|2z>+)bMnEr8Jp&5XZ8C<`~zU|2S68iof9;Co+2JFNZki5 zXv0clFEiX}`h3^JfnFeNJqswkylf%`1d|+H@&enK2}!ZSfkV5Bck5ICo+`W*J8JDLix;gh>cl7}aU zbC~D+sn&;gK+ad*MBmfnDRp3!1Ny6l-r2&vNz>NX{#c;FR61_S@j0ajnHjz6 zucSXvfqUl1_D4=iqhK+Gou>XC5qKnmcs~HD{H+r-JimSTB=_$IOX^M44h`p)pL>p} z9Be}WNCDP5v+9P-9WyPLsK825ZTYx8`vQ$S7OEoB@W7g4I$%`E)|}9iP5i232ruF3Sfa0P{+w!%*7+5tb^x zTTSS(zQjTsqHl38#bx?Z9*FZ1x~;uUGV-j@q zV>q~4wZ7B<>)oF$7A^`}bphYwBAHJgnBzyS`6tU8wpbOJ6#MT!pv;BSg9w16rk#8o&fvhI~%7||$jN_#ohaa{nea&4R zf{x^VDeE&B+$)2PyAB`3Z+Dl69OOO=DR+iYD&ArrBEmxK0WAQlA!jW-WMyJgMr;wp zWjQT}6U|f%=oi@d38p#;Da#xlta_AFn)fbzK++hMjpz(7n*x+-3Mxzn>aNEOSA0&VDVWdC@~2E76Uwny(jKiOE;D6mI!T-v=<6RMAPE-62p0;5UBS3gP6vicG& z$Qgk>&!%jI$52Y*OBK9QSCRANvyVnR>V%qM=9dYV>dSlCjKw@jg1ZM+8)}O8eQF9S zBs9W;7idGC*hQvQ1GuiyBpjHh^*-T(;5Z1t9%Zo@88f& zGUjevB(j6dq5|rV#oue^h`4~G!8_SOv{Unq)G6)zBj={B`R&5c7lC495SzlZ60t$| z|MAftICF~DtJtXFRsaH2v_D0qSlYWzS7ZjX1gD6Z(`+N4KP>e6KO z9qlZ+X48?|8>2qVS}>p9PI1uGoxmO-|2%f=j;J!%JVr&ageq((-Q1vr^xIwvok>bv zN3s=uYLlL!RN6isFtb7$9?^r5)XrA4LfD8#!@~w+Iv;;0)Jb!&POYGBEBiICy*|@| z`2NesnOl)n-jms^E!-VC1-SUW&S#ffgs4Y=4(*%YRmzl_;VDhgEju_(Cg{fMDZeQt<&cAX{my<_=sjuw(9Iou0AWQ+KyxGK;7U1X0Wh)RbbAU|y98R*)CMkqkq+Zaf#6 z>EH5>zEjvDu(V=?qYzK80i(&-R<9z)7T*~}h!e>iP?_Q*i+*|aQ6$4U5DfsVf8*v> z#D+s`P-Cv~4%r+qNCIE4wr;d`0TF~aAj>bjEC9o5!MbWIW+}Achx4aq%lm|?$sJ?_ zq>m4iakVrBZ2J;_Ep#$h1+ToEJ3aBu7ugIL-dNGz%*14G`TFq-__FISnn~;Mv63ft zVigEG$vobO`~KwktMLp;JmBe=5?#6;><(tT&V-!BDXMK9ZOL)FoCT^G3*D+^FD1M| z2FUa!vpP8Yu?r1%@^)+Hk>dMbW%B zXKyVN9u+xW$%;;EAk~_=?W}}lH^iRF*0%~)vKAKj`WvsEY7pl&Q+AEi^)NZ{ToBII z3PI^TMMB5me{nju)(dSo)0lhvHLb>r;NYjUUom-gH>%bPV2LCMw$1~3S9^iScV|Hv z3x*LNh_hZiHlvUk#5?it0z?X~(g<1rmhP9(BbG!*x@{Gw$Q*B;JXY+9v_2tXu90?1 zBtNBU9OlUKKIoZS1Z2v#iI!h>?`C}u9E^X-$v*pXS}j7y;OdMBZb9@Y^+ zG$T_>&Vv#QbN}Oc!ev6YrKYq=fJLxqNiNSeS~sqGkj|lbp1q;jSl8+xE>4nz^x{ZY zn0PJtO|O3t0mhFQI6^koa1xL9Fz!!NrE=wA&MtAp>4zSCwHotTY1W2wiV$Hf9_R|A zGf#xIWUVgFqYK(0Z=a&fQNUeEum_O)p#&2fB}^ z;BnX!DK8~H8^=h0)t%ZudF0UaDx3k{JxTRu6JNBiE`hKQwb^0hrjm{=p@Bx*JGB$z zu3wgM{%Mds(`*^)O;D7}Etj5-oaqtTd;DhDZwm)MnJ<^!~Y`4TD@bx#KBzhsqPo3WBREq zGF&>mZ_t=r$8ebjM!egX$h<>XHT}|xTug|OBbR-6J?Udu^8XlN%FTH%Wm*xfS}Rb5 z<#GovV(}NpUC;?|JF)^2B9!WUt+q2bbrw}tjOOnhdJw+V+$85k-A*ApjGY2(=6C^q zWDzjgHD=_L<4ocVuITvqn@AfHBtN@FDAARFi_NGzrD4KMDGHy9pE&*e&gp6BfJWF2IZ$$ zEd{U%0g-o-KCdn7iJl^6@mLUy&GPeO!oEwOiVdHp0l!cY-R(ZW!2(!(jSf{VF6yPR zv(BRx`<+Y2DI!sxAAMmgKKOkC=h_iIeVUs1@ojD{z4p8^7?7v_!u5e|ZA+zlI~VZo zjw8R8qCH9QKgTfn-F<;-P*4J@uOVcsVo7s9Z1*ej`u-9v=BOj*;hJwo<1 ze~s-Yp6uZXq_EIt)qyyAGJH?h#y@l|b<(Bk^q9pz*Hi7KaHYRN$%WzakI5TsTid<% zF9#BQFVIxgBic;u&=it4e&2hbJCy%ytIV3!^Ms5vsI z&zBagwNkt!5DoP=k|lChZ?qbyxsQAK-4Z)g@0wN{zr7M$7Yx+;UW_e;?&C5aA)w*A ztD=JsZ>G(Al&depc4n?vmLQL|K9@UJ<)WP`eQ>9P-`gBYb(V4se_smMjzMGL7LP5C zMt#geje=gxNREZ^tuQ*8k^E112s&1()mW@}T(s{QC)TZ;5<52&4kyb~5}ApPf?ol? zpWgaPjEPjaLTiTviX1CgHzIp5Q;zHQI zUWgE|<>+ngqgmmUK^-^NR;M{m$)CYp=NTgC+5BHU9=vYjCY|XF$dK2>tZ1T1Nt)ak#Iix7cmz14{Pi)Xqf z)8%}#PtpyVf^zXBQ0P8h4SQyY5>YK6q_QsupP0<75_pt7VW=9(w>u@&h4{D<4ynUm z&dAut@cFFGm!xuon>&_wt~zfzvzyn$DB3&4`#QBc5KdlxlJ=K{d5qvn54f}rJ;-uF z)GCyV?q=F1*s$(X(b?3sjvW8{?S0C=tsIlEO9>fg_5Dj%NJ1^oHAU#l^?-|zQm$i?Iihu|R3izW6Qj{u6uL3Gv5a}eKAR;9+=~bln zPL$qzF9AYm(u;s}2t^1T0#XBna-KM&Gv~ZB@BHWMIp<5RT#zT(d+oLEb+3D^Jn7r) ze}~M`V%#=I?wk@*!n5+EAT$flRlkp=GJcp#oIiiWNR&?PQa_CJ=AT8M)D8CkmDOwO zKI@w1#v;aGDcQJ!eQZ=CR8wKq@^v%tus)qNar}1lirjM~ea8H<3Z&S=$+fey{DVp8 zDOenJDVRyxXn32cIhVe@Znb|bK zEYgB=w}1XRxUbA11%J|tvOoLqAl?1+%9yw`pX4qHgKC8&8Ny5Y8_%Qq*VZRHt*g|;O~{|`$*LlK5KmNJ-B@v!yrXT36fV( z?(*W{c!lfNI00dlz2)UJ`-Z;6SHUaXd04QKx(~LP;UuQ235(IJyM!6&?A{UCC>FpN zirmA%cR$vNZsVdTCEDS+^{*$SW9_0LC`i%X$dn-d7aMa6;uPfCLh{Itpy0qTn{J(^ z50*C~ba}6pwKj?prXl_&QtQiZ6VnDrk)%MdpVmdUf&r&@SNNU zn=|F9ZKS_7aPwzvixrd>)V5cl5$aPTCaJk`SWnTp0?9vfX;s`2S52CJ#+7!))Bj9l zwxfS(=lD@-=E!W-nF2tqnKu|e7hBG5)fo&VOKo*rCJhL=Gw0}HG?Wo9h-yAlDGtFn zc3Pm-{Eqz>PQNJycS3pP??E6c#g1^17n{y+W)R}itGOsj$NMc^j=60^wfc|oHo|M~ zcgpFcQa5@EdZsQCot>>2Ou&2ab!&$Ggl9Ya#UT{%_WXn6?H+<1!EE@+Lj?F~VyKn> zUhJkY{s@&0heX&>T|97y_nzf13%#SDzpR>+{$_cYO8J8neg@5z1w=mbn0zMS`05Ag z%py)pW4XBRW^ReW*FG+*=kBbEci-X%&o(r@dMwB0h)r(Z5gc=2MzSH(uzMKdmlt~( zi2820R&HX5li9})Q_HOO-CNg`2T8RVy$oXq0$MQg_Dylr4{x3b?VEl=Gk{~=7H@}Z zBU>=}qS1_`UtT)0%@kTW@!7!nC*;j7Wg)ljlqirCPf2+_F`tqs1}j+Xog?o-OKHQ& z^ohH#G1TXb_VD#^*RHsnmP12zd4-r4ok*RP2a|$-DP7u~HbZE^O8Y8dwLnbIhD!eZ5bBDMh5J@=IQdh9%S4u>RB3588eA3BHn-ANu21V^YlvJH;x4T zVZ?0=T`E9DK40iuor&Ek5*z8z8u_ua9kt+G?NCs+*U?@#9_~~DnF8y36WbJr*Od1^ zE`!+BiL@;LCH}%)G{@GOaYP-H|ABb->vRU(PHuBUeI}53T`1y}bijG&D|ZhcPK;J6 z+0u3d6+_*0`Ab;FmOtqUmS@^)aZ+{{aa1<56A#Ncj2D?n4W^)(+QzcgG-dd{NCYK6 zCLv8yjp30>+fxU1ZK;QJKMU^(#uUh$_?iEQm za<|E9yNK5=@D-E!R#H#zk)&scdv8Bf*PkW~onzLP3MWx<+zURepMkwldlP^IXZYZn zF6z)_4fvQuz9Y}S&JA{i`kP;r&OGY|lY+VyZ}7AL9(;Z*vvibnFy=TWFfwI#aDcB( zHIjWPf)m+uS&7!;uN~Z3Xj?~s@(+FxW@)+67VNp)?2kY+`!9Y!p09ju zlj7X_9$C=7^z<7EjfQsrzY!Y$Yq24vFD5)|VXMP$Il00j5Xs@%QwRrJ zw3TJeR^8PV$6t96);*T)4GvD^bUZq}Bau#xXXPcsV{y9YzuJ=5)d*6{Q ztX|aG$sIn1cH#~nK=yc}QPC?wF=8}fsm=iBsJ413lsKY;^u!p?!kL8zckm~&1Xw{O zIkTi!HL29YV8riNt175Y_pV=FK61aK{Mt7tL|j_fYxmY`9!Y)#03Y*q9zPK5YjSA6 zIUyN82PO%<8n3KxPPeHOj>$iF0LG0HJ@&jI@Yp;hQJ|;4`rX5lYlfGstj*cy&eJIZ zL}PR16X%^9dr^|0yL1DOZ+N6G>YsXul)VyG6@^LdORcNcJ)7n0@t;1H+GbolOyT)P zl>HQydw;AwcP!4i9>t2x#?KB#J&RsbDpjhaS*xjb<9O{ zBAitVxd#xD{4q<$ViC1IsQ+mVKL^ zlJlFm_%Kc%1x=ISZt2FP`?O32cE1k!@PQb}qtzwaQ2rDoUd6=QjLJGV_@EwE%GD{c z`=WEDm^Y9?K77FNuG04;w+AWIUt+a_>pQv`O0u347l0~(C2|v95wVtjAlWoSQdC~@ zO@WTF6CN6kR*!uAf+|l5ViJ&$NETQ(x5j`8*Pb}_4czY4(-cNOZKb!9^G6R7p?9`D zMP~cq7Q~`SvgiRN2k(|;q8w*wyMwI|R58SOFX?p>O_FJ_;96d3L?fLDgXL_f^C_8U zfb(fAI&D-k&4>FIHnwUGT~ZYnH%9&Ayg!*7-5*j_V}=+BJz4LijDIA$a2d$(>1!aG--PiU^P1c1xp7vxHMwkgjFI1Mn6Krv_i@&+8SY#T2D`r;Qgov~48HJn z7vW7FMB$HbPXF!If|Eli+V=XlPOu7kx-`6UJ77k#28rEshF%lK-Y(|VL2phA%QqPg zJMZ|3w>y#r3#tJW-k1K|pN5Wykxid^vXK6}6mIEhJZ zLmb+v98CM)6!Mj;0$Yo9483s|rrv!DX8uOLyn#QrK9#a09A(j8ZfT<@ZhM z=yL4Tg3L(%^YM`$s&8Gd>f@sw_7HPB%$Z)o;mSYgDFx^F(P~wXOY=s`>zvp2`-S|r zqfUkURQlqqe|n&dHga-pty2Rb@4fa8a`f@Q>bb%*hSp>|JoxaB(GGaCtIo6=;wa?M zUOvLOdIynkRI#W>z27WwTb+5`2stVE**w_EQG5BQnRJWYgCVqnCo_g#L&N1 zqaWUOTwDz}UNELU?c{orIrCUCJ%m8!q1#YJ^K%cpeP=$cYuQ@69W@@i=xeu}KKc6@trbIQXNk$K*&)4HWJH^mnTeRKU2nUL;0fX_G`5~lb zJ|`bKg7ybGyrzmf0kv}T#kw=C7}RtE6+e*pnnWBuPPvqs@mGdU!AJWv;8%8aQqQhPM5C@HR^piQf@U8=L8vBdAnxHE5+GN5MlK(U z8JO)wqr8#%8S8C1YYjk1F{!2uI!j1C*V8s?4j&j|qX&LwQZdn~$o>52M5JbBX0_T) z0V@%D%`xf9VoI$SN*Ai$Yn*|0Qh`~u9F2YZKom|bc=2Or?(Is?eY@qCH6LOfif6Zv zu0lGOZ?H2?tDZ>ORdGjT2JIWwN@oHc?}_Y7j0C_fr4ZG{B;UFVF|}qAbR5|EFz^XV z+^QT!zbQQGaKDjuo(jLd0cVB{aRDIMf>2A_Vf$`bbWXGTc^b}(c0*n8=hk-avnS_W zhBpB=wxSR{-T{6#3BPLXfCvktdHBxJ)WRZBfAst^_4*C`=K&>kpIYz>A(_;%CF#-( zH|M)nCFBH zP&^YPHtwIsia$h!M^w4g6ENJ|CDy;q+qf2NEe?eTTAp6%-FpyK9Z>vJmdpB3p7dCf zkxC!)2&j9WZmRk0k}M}r5mnjb!Gk^PoAMpJ8YJ3ii9=5wk9b1gZqS@m#^pk0lUf{8 z85tOTwyCXmNUBg*kg`%V$19Ng^W3IC!@>t{bgmTDocMPF6k;|m7}EiRO()sm^Gv`h z`tYgMII8FE)Lm0<@jP}p@RKV(cFfs%bfNCx(uM{K900p?KSJ`}*)ZJjk0O(+re8U= zQQ$uLJ~(?hcSywk{;aO0hvbnk02P21;{V9a>LQKRhoM>`x}O|5?a~Qw0z~AO_MHz zRJ(&+Fxo*(4tcFP8!r_~5xqh}iX=EALN>T5i^0Rdhb(6gs^`!!6`HB+1adQQy^|QO zj4LneVYNT@cTD+9&&j@#XlJ{y#YOFWM$>X&ug@g4{=$y;otMX+6j+%TOPVxrwjY=?Z9CaV#dXHd0zZg6@B94UFLoe3-azHEm5G^MRb&Vid90knhJmsTF=QvV3U<)7ge_{1?+wV}RC zfD(33yx+iNCAetHcvc1WObUdE`K3>U(evaSBYqw)7!B9f5NupWe8<&hqPodg>$Y3)tIK;mLyJyLifU!7ltbO#Qo__REeuPz6@1FC{p|txEf~fPJbkk?QWof?O^OO zpgvLP($#^RUNvoF+?Lh>1y0r6mU*mS!83@Cs{#UkG;G)b`V`(#Ow9SLo%n>fihK%+ zzAd0h?ixm0k`!j;N`pD%D?-k7z>m}q`d5>Gl}Gb?UtuQ*o1J_I5?1|^lEx>d_ATL1 zOXy{ABqTr0F^XrjuICc&9)Hji^!ZFx`4s>-fw@ulH?8*U2 ztkgKz3G8@wFmBolI^J|1H?u5QV-}Uja`WS*t9O52^skx5nR z#%U~y$PohVvq|f_W!83A6U6PZnTxBIotq@Zc<`VXn^8)Kh8HK}Ns${FAw1V*cvJ>; z`&gN@#m!a*3Pvt-BdeJH$;YY)b-LPzf`^&KK_%N)Ot=@P-e-pS->Sg>k7s0bm8bE@ z$QN`gbFv}LqO?KqExeuE>bt~;l-94s6MBOt1E8JV-~!dzI;|e|rx*9;p`l=ki~Blv_{)Ru=S6>%uoK`e)`_cIzti5SiZw0;op42fC>)FTp-rd2Ns3Fe zzl1*1Pe6o7<;J<$@y@*XCl~hl<-&$uXJ)rmzYyWgY#aj~?0eW%-OZNB@*qeC7oY!j zHNYtnUQ@8^EK2Yn`WxXRz{dcQECSyLNK=@?q6t`-;Bi?rwRpz{EkEGaV))|J#Q z1eaB1u&p7ojKtrpEb9#}2~+*~gngAKLPggJ>rR+T-DL1*2-dBScbC4*N>11ht6`&L$$#jSO_vV%lbr}HC4$+eUEDUJR_QZql{k0=Wo4LN8&R{R2ZS)!IN zDDzACe+q5oPal0j7A1A>-Z4QNgu^JVt7N?BxpT8DvT$Q4*rC%j_OlX_b@6)VQR>C1 zsic&Uj-XsB_w??e^kah5s)&Dt#|g_vxe`e;Q@=7pjQ`2-P_W&-`pI{R2gsY|KL6Xf z0Jh@1qCQ`qB|Yi&g-wWP8xs(Ub{aKi0W#-1Qd z$f3oLax#jYQx9+bf!ZgGS8v)KNV}*7Y~gvN-Y?9ibhs51Y0(_0`oH_elh-s?Sr#kg zc!=D;R=CxTntt6U;?n5KrpoE$2uF%RAxw+#!zl|N3+|9=t|7Z=uqtXc{2%z?K^{r0 z>vu42*i_1)z3OUzkt;RBxUR}jXMd~icsa3j5VR`(zvqLSp9Q`52Bf3_paKHoa=THQ zS0 zf~AV-V`L#oc6auU1hY&@H(xf(-}2YLJ%>U6OEM*bu{qF=uLT-iCU{!N1n!XnMaJz{ z9>JydK!O~|hwaj(6n$8J$z1djnM_9fC;oG!pYXh;v~noaSIKnlQ6@Z^9hBkWEv{{+ z(*HjUOU8?%P9w8tK>_>JzLH$U!U}!&dTCe}X}+Wz$#IPYJ9Q#GlrN44y!=@>mu}es zxS2%WqNVIJ@cT^r5`e{fM&KS?UeW#sLqEjx1+nqbTD%$Mwsz?a61q!emv7S!o>LT> zbw+tDnxtDiSsabKv-Uf#bnXKe5VKBjOUaa2A>>K^?E8Uy1exz;OA4a1*sHel7lRPWnUQT*=yf3B#!3!IbTIsha~Dv;mX`8VLv47m1}Hp@*J zKafLl_%nm^&67`ZCGft$y7kpEvcE%tA*b92Cd$ z7V7MFWq-P99rm@`@%KBwQ@F&W-Ly|`chH+S^{;L8=dT}$?k+wGn$#gKWaC~8cDoe< z2N`BZa`v~G{(iT+Wjcg+7uPZJzynmMTKYeL{H-TlCKQ$BR9Y&px+pPy2TY5>`9J^q zZJTE*xTOUU01t?Kl0RVnukHQ$k_=DG=dkLs0w*SINoj4a;yWHmB>3k4h4z51va^&gHe4Il6$?z<{{3aK(Y+~un$TETvx%#(m-i`##}WdFXeL3ZFp9z*?) zd_iZsIf8$z@DG&zV>`fyUSB4xQ#KMD`&yvjx)}Z1Lc_+R7=ZliZ^Zt@z-ml0F1pla zimg31Bn!cBHh@nBJlz=Pe!RQ6URc@>o3;a_I3oIhKTi3tH{x+KGScFkz<6Igw|;za zMGwa$kdl%V2sPNRt!IKc6#?H+QSZ|1><5fqkl7~rd+k(|z?RM!NdLPXarlBN=T(b; zFNF&a*y@Rd{C^WDTrwq-Ho02A*Aaj7*E+cVn{`kzja$~f;{0t*r9d3SkWu|NI1>_S zAvm2+`P&6qpW%m8N0`S=0AF*|bYKfsalB_^msUkCGI z0*TWf*L_Vy{-kSkyG5pJl-K${CTF&fk-aSMjLGf3`HNNmW?5yvzryl0(|;3|gmv#) zllA@ps|+qzyOmA1ylMJf+$O`HlyPXPYI2a4bm9Dz_H@GVM^b05OF8*>8OOcW9=Z2q3T7trA{Frg8Dq z_VqBOZ?avQQh}3yr=gz(0dOB?1Mx62X@4Q$!(qNsT(iJ9C}vG;zoM6?*UAlve3uA; z>B2f_EVxFu2CWFWXf6v)+sHc3`%%AJN%iuC^^0!2O|))waqQKfwfkNb;r}m)L0J_* zSrX7YvRwiLUVOxLBW+Fy6n!QAgAvldtzE|(c)>d6$2|ZTF)ZfTrVDJ-X1=P2d48U% z=Wfho!?wrv5KJ(tQ+%0k(kwSwi$(JYQ97_?6Cf5l)r!#|A|U^rivMt!<_wmP zkruE3eBe~Q063=){A0$xU&+DVYF(zp12ZF}-{^j`tcyUvAz*Q@1o&i%UcQg7nZ3Y>IDZNcI9&1#Plhmp-Srcl#yn3D-3cA~QaJG1Ti%st=Jc`tD;$>YZr#`_6gKfDRv1<={alN-L2 zy1S@%6xFnv5%MTmh~h)`8ypq#JlinLO*CbY>k`flS zBw7M3Ea%vWBx2Gg(7B}?9BJ|9p|(8}R9p@a1T|R$aiSc|a0j@3skJu@o_=#%F2r) zl^9NpqOdqZSX@1(_xL@Z=5M0#Pt5f$kf7g*k>0fXwg(`}+>=urN=RVp21qD-?)k+} z2g(kg3!_yID%q~@|EPGd%Cu!+u$Qp;m6(?++6umwBTMFljMu(haaD5qHn!?&+3-`s zqOxD+S|zs&TMmn~;7_EqC6g)fqd%Yoca3IWbTYVE9)>$1GB0@oG5sho#tP6*DUtj0 zt&Hb3hyFr{^eTuCi6G%ZiP+q6|0LkAsb;#*g9Nt#w0cY7DS}wn1a54)6KX09&$Fb~ z!lG*o4}nX|-Z!1No$ho}?@%6G!F}BE;{ox1RKW z$ew0KNWwKGSa&0%Mu=(1MQ$pFdybgpDN+Zsvib@1pC~p! z`U0+8+jKHo`i|Fqo><9`>)lQ!Z7@JM%YIY;KOpR#jVrA!BdBFcT+RvW;3Q9p{75B_ zelW*8eWoXqq4NHhX5xFn#Mivq{a2WAFJnrYXQf&wr6f z)mg^5^~|5v>OPwy4iHQMF+g7?p?>zDWRkk^r(b$S{FFZ|G+wXiJ@3`KWwpOh{ix`@ zObHGs-sG1H#%k+BsY{5aJj0o@BQ>J&}Q9-f7yf>R|Ar0|*bZZLL{T}lLp z%GddU3p5>v6xbI8gCwuthfR(n+j;?)*q_I1c|B>4#%k) z1Dzz7`69Ysh@q(KUwq|`LkbwWQV@IGHAED=y01(GTu@n+V;7bWOBm{YWRgeP*f_I-Cp!JHzb2fkiV_*MA3 zEf~n9w3W&}ntE%(oe#P1g&BVMCh%pdWTQ5IeuKhZrQzpS;?~boZ(~$Gp`)c#kSvSQ z)Mk8xPGd$lT)!wPc^7yzmaK|&<>#j8@jG?WJN3N~p7&*zT$hDzAbJP);sFaZgkLMP zc#ceSE5r$cfh`Bg5Boi&k?;k3Kpdp`C-LZagmBU0fYq&N|5W}>l4(1tY8udHq@JD( z2;(br0&sZv_TaA0t?(Tt5U|$PA#w;?V1lon3Km&oZ<`&;F0k$kGOy+db)6^)`dnbs zMlSbOj^06I;s9v(G~IO2%pPsUa+cIGEC0|$8!98&y5I91gurkNEA^M`mcGTe&(6zD zAtWEl92NNViI88}j3d${;jYsixh~cyP59g0T*-rc<*%ti4QncsI2LqwU5y@4zI*xW zxOkKGEzA81=_?l80Yo*G0(_$Kali1rn48Mdx5g;iR^9Y^^Vb@ANr27})X>u<2TPSK zE1E;$n}0FjzWlgS0yF)Xo2?Cn#e?MCvdjNQQH#r2164_1e6|#TkVkIXM!134$fUuo z?21Dw$@zudTTjh&PnzL$@ZOeZRI6qHf8Riq&?Yb8N*-gq=S{%CjLNENq z8gJcVv=IhK42x7k=Uc^N1WLvQor5khD%&b!?k1OF9$!n zHeX?gY}j%rC0_Zm@!rD0!1egUk_*6I?ilzUFAFt&=?>Z2_Qcfx-1R$DNZT(mmEb(p zeVBnZ8+3S?K^~R}U`G7}cT0G9O$oUusaX?_Ib2h1fOjY+Q3L>~oRdx;;b~4e& z14v-WYo#3TrvcWs-Q{^uXo$}jJXMnR;b}^`;b8@I)L<@F>$I9btHhe({xPPg?REWT zh05G5C)4x98MwO1xQ;J&C3aPnbUV zo)kboOepLg6ahr5Md_f|@O(F&^?@eF+6#-!Fh4UG+w<9XQy6~^PHi8TZYssOr`S{v z#{~|>eo`d1`CO+sm%x!q1E9SZV4L_QPO}U5{~!U@(@=W4 zuByy%SQg+{MWL;jwU)-WLJ;Q!A5P9;c6I{m{0}B^>8d}Ft7zU0txypcp1QxCa;TT| z1<@;Pq#qa&l`CDaOROopS$F~&rp<7@SN(t=mm!4WnshLoG0`eAB{`B^v`{u~O39P& z5u_@g_?HZeunH)b*an1e89Hh0Nuy>TAS*@s?vDAUOYugKL z+|M?O@fBDb(lKw+IbGuQdN7pD*d~8#3r-OGup?cuE87Gfw=hfs%YsUB?TRe73Mdf^gO_rfSt(G8f{Y(e?5$Z*XALtef%={{VoLC~UykT`R% zN6zpBlCVVE<(c<3Vz&~L-FLfLZ9|89*XbhfWEGC5X(JXWCru^yzGURN&1@KaiI-HB z*t|`&OQwlx$1Vk}hzz*A__?qI(bT$37!>uEzD>!fJ?AFxp1}&qDnQ{3ZdUQf<({3> zkBlir?8={J3-;0u<=y?B(jgajQ+eU$k~PK7>a;7`!cd>WE4;M;EnvyiIY`Gs7z<@3 z2*MQ;9eSS{PpAA00q+Ma${SWW<~epCjZzpNF1Y*V^Ok08|C?C365G-} z&2j1RI6a~ThJ!pg%0$-Hc%7b%O(VJ8d4OOW-=xT$BXXVOlQd;n4ae8xdCqJb^pc*1 zF3d06VFliZnF_rJ=4=8A+uG|~zva~5`3p!T5;p-s^2%ZY2Un3ySDaLqUf-K?!n*x5 z^%yBvoqPhQs}E=vZ~tSt`EEh5nfO|EQ1tkcb#-UDnO72Q!?c0EBqW?|z60zpYh7%y zpmwG@cUo+rdirGU)*Xknjl(s_4vr8r1tEmqfBK*<9lGC9FYdQmjCQUlQ=->4a4~Vd zqSI@$%H*E-P~o|m$L@0`Ymx-S=QcYfVtSdp+GJ)jF*C9+g9vfK5B0sbtG@TKE9P5z0D~T4FzqtG3-R7hGh4Uhc#1pPC5)sCB;juaYtsO+JMxz2n52 zNnshDAc1{1=EF;xp3F<J?Wv@IoqlkY&Vt%1|42=y8Fa zn;hiF`!*Ha{&jf9or!X18_h9TyQI#XAtLpn4&pCYdS=`8dLw}B= z@dDI{SZRyd-d+Cylq4=rWxMOl1Zq{v`@*j5_wZ}ZXeQ)hNdQ-3=iK$clsm2@??n|(v z9-^0^j_HA~yt>1>IMfh+)doKIeaO5Ag%w*GmPqdKM`%=&WQLb_L{Akh?ZvV!mFyII zZq(k_2+HlCv|E$pVMx?FLC2N4o2+7iQe@-da}6iDDo|QOv1au%GXX0H_jcXhsI?Sv zQh3C;-6zFy!B7gjZl4H)!0*n&J8idGC5%8h9f9%eVXeb3OFC*pUl_>!xO)T8t?(D!oG~RzG;)nAcDit@LJ!gtp3o+xeWYGzcT;H` z59RmuQ~3d7sJ4j!&*D5cDa|Vm?G;~fOS8WgoTu+YI2QF*9SoK>#B`*`clHrpDB8I@ zhij=Nx+h!XA1;H5f#E9GoV%srG}K19JH-Lzwu9Rv6JlD7GCU2_Z%Ykb!^zzyV((84 ztnF_uGm*K-PlF_XcRc?|A9`p4)G;|XYSWzo4dmnL$2{-xK1W`v2v9lueHF{K76jY% zO$DX{3N`#9g}l+Krh-0a{iHc1q9bYdr2f={Cu&Nvq1RmpAK*pfgEZIpZL^8)H+0hk z6cB9eczTSnyycqx?qjaHdbU8_MA%z%A3V+5UigV^h+kym=1TsqXO4Zs(cq&0Q;>r+ zS+)QvIUE{gg^HzUp>po8?-T9w=2(3J8pERK3S3urT4PT5m6>Xlz#SBZK=a(mf2n`+^|O z?aVi_O99V&70+gb+MeVnWyv>v5ER7v*(UJWjj5ahC@Aeq8Mx^qnA5*DaG-7 zJA>Y>b_QjEHA}vr$4Yl8LPipv-b_f+qD8rp5^V@fa^v}Y+OlSOKI~E8^HgMwr52+( zsc|X8jf(g$7P#s*R^$1p1dsPit~=u%Y6z}4UyT8`**!%~rRkl7aYW8U4x`2HWyf|( z?c2x&(YCvk#tKQyTjeW%5&7DuG7u1%+i#Bv0@aJk3Gmai)1wRxi|N@v7Y12UXym%G z;r7$0a!%DI_=>}zPLz$b(RG3|tEii5I4;IYcyL*6vqDelyO}rTogjf1dYEG24#*LltZa7Qxbsp7U_9O%kMs8eiYId`+Oy!|JxBf_WEU<;gZOp$bu+sW&N9-s zOemPafY2hHmr3-v$<|QQoGUz^f?5Dw%JF!XY6Y5mPle+B0@(VN1%-xno}%v|fRNc; zg67Q6$qEjr5It&xS?Ru7IDNhKijm6oRT5JI?s5v%qW4YC4-kN+&pXQ#Z_^Van^5$f zHir~|71vv5Rl_fcyZOuSM?pU^^jOuSVe^#?(-sv2Oz&Q{>#Z#i87z%w<+53@S`IzB zNl~}P?dJC~Lr9|eF!8Gqw{5I*uhJJ^rEQl1x39E&9I`i94fbewu$ zJvSBTJ{mWDhG1=9pmjML@ragJ@9xy+qlnVrO~dwq9gi zl1?bo_w(d!_mzcn1v7ib6do7nj=xM}+YEN!S?uT|VHyWu%;2v4h+r1LFfV#T)Myry zg{V%m*V?{+l35zni5V}S=uLqcdLA#$8w?w`SF5B18h?Lw}(3hL} z1bmf-sS4IfCL^Gbn{Bg@M$qc|aHIQ*%C+~*-!8M{#&upH`Vwo2<>p^1x7=JK!IVZ+nnj~R2QMMxzQqi#xwqcA{wO7St@7!Cd~Eef ziW}AF8dI^j`uibp4E^q%o5aJhY9{x?*q+?3;tyb(9eViSxt^db*&gNMnM@2A38?|+ zi>h3DuRhf)lx2OF)3#4_$F_6GWhI$9-tXmKySr&7_kf9=ocHAXx-1cRqEx#-4*`|q zk#Zj;(Gie*`(kkw{m#8bn&p}2z-Z~l#FbdZs4nTt`+$7$*|}b-H!(uo)9jHxgMz?3 zXUhvNo~R#Uho992b|lvso?$e~O}QFw-sFwBGe?%E0v`zSQ(kMUonmg0KA9=NMrf#I znN&DUnXx-nkD1e%XNVp8FS*s~04y-oc?e_>*>>7|g{%+P%DnBcI{WxgoDJ_O2o`R; z>CyF9yTsviwx^AQzejr^xQ54F(|+m6g)r8gi%iX3aWjtYqrDEOFO@6j3HGmL4d26kms@ zbiYb0v34a_7#Aa2SC6nbkswdi|3@qU3bFQ*0}CZx_Bc4m%pok$=cIIrnssc%`a#e& zY6@T;Pt#a_+yE?VjA!7wwZWRKqs&DX**FVmq^cyn2zar>O5kvt)*NJ~S`S;`+dY+H zuwf4#-@^+~0Ih(vkRJxuj5#9`MCJB#13nsYk@@RMPBI;Q9n;eBi|oDnKV9BCkqT&z zS4yN1)-503TQp|~+-3e*Xn4kf;Nw)iQl5Lw1w7;<<+qRbTF>t9`9if<31#caoqq4l z%W19Labz3S69tg*w#qE8bbJHz8WSx3*`0%*K-b38;qwm-1C^?VMOI#0KEE)=RX2*V ziN8EnUv*_WDr#h#a>`I zF3k`(^0U-{>pM`H>uG5-u(IB98hmSs;ID*f6V(;8QLOpa?grN(9yb8&oy16gp;5I=OHzhEvPq<=X%&IkrfdDs25S_UqD!+PHm75|+{%Lj^HH}8e zGu`#nT?K?aFe@Nxag$z0C(DhDh%7;v`b!KM#n&~-nvh7Pg-^~81SlUweSW$Pk)dYN z-uz3`#2OfVkhaVnfZ+2%d_gA==JcQr7tKg*rl8|}EXzUJa5gt&AhSTwSzn(?n_~>% z2J5O^bVaUA?G8CgGVASBGvnCySXigbQZ{-B#zFo9Kx+5vn##uHMyL7^9yzL#7}1MP zA_}SXB~q99FnpQJo*@_O(oV%;Kh0Y{3Jk3u-=k%pm)2J6S{cz;uBNA5hku?t^JP6bc{9^*qFY+U}C3{gL7bJ*Oi{&jAt5X z`Jq(iKO{$5sE@m7PaV?PyAsv0PR9~*A0XEF%SS`B^)g2BfO)gmzel|OF^|v5_R9yi z{^o-PjDfrGER%!V`(?rg{jDNP*$QM`2aZj?2IY4<%-$N?_Eq_TG?zLd-}TQESoDC1 zQc_~RuOg0@9nkL@;-WG5Hn?^*Z0lw3NE_JzwNIoHWVEfEVXE*#Pw}3C6%)FUt$DHC z9GH3STl|(`5$O~Rl(P5V#=KVkTF$ThDXLMU$};`aRKd=2cR`h8J8CI-2sO>Gh1y;3 zh!%h5JoMmDo_uB8wBZ3-Apn>msdNk);^zfMXJ6x*^D0nly^~%8v}d8B*R10zlc8~ouZ7!(?l*{@!DSj3^j^@RZ#5&{&NW0$dB~8INOMhJPF>#5-)qd_H4#fBunX~7QIw1#8^PYnooCAK;FfePZ^}; zZiqrtaAg^kB6zF8zMvf?QVzLKF1+NkS~rIQ@UB>jlT%u2&k%vA`osr9J1d>dzQG{* z6!e-z%)_Fnqby(0u6behFx|T6_WSPdPK|rXFKCK9OJ`1(g~(EohlWAOVEKgpIW^n! zQb1;NbWn*byHC1%35`8ysNYD<2V@ibace=QG4-j!%lv@aG#-l*H-Dp0UMx2|GZW@!8T| zm?$tWU9x9oiu|CqcJMX&Y45K1xFFEnR0_8LowNT4KHii*K)RY_Fa;{aQ*ygevNl{# z=}Ww_#+{{kc?P=Ec*|s`TxW`W^94W~^iWFlGqUwmS$!|!y|3bwJqcvR)+=frV|KJ_ zcHUDA1QJK$K$lQP*L7F|JjWcJw+Jniz-$AL!otxllmRnezSwXjK|0 zv*5;x-4X|P)f2c%h!e7QT0ObF?Yo!)Zg?H|t8X%Cb7g2{?{ZP{R^OR>Z05zWs0bx|l>kdGj8rmE#Zk^Vd~B|yurcyULCw>>L`b9l*u zHF(VW(D_)6n>at)yWaQ6b<2JCFx$j_SdD!#VZ>q90l2@P1A4@%ADCitGbL#fIY{;# zub&kNbUG-K8L(W)rX;tcti>^%KTh=br%zts#t8!O{x(kVob0KJ@B7QZYy(#Rb5~4W zx3z6&9Z$pl&|S|V-)Odrh3-UQaEx${nHNZFbcN?wF36hS+Z~IXlT^N(UrO;VOi$}O zWbjd_UieFCh&{j@E>;uv|q z?J_fW;vLltZ6Y<6&2Whjv$ZldJl8z_ixrb^aKbuu-p3rW5PMx7w^+1YX!Ufu_=K?h zrQD^4+f%^-!2dxJMV>!;#L9fB;X*2Y_i1_!BpV?51yAJwVHr1;^~G0^)IlbWzt}IJ z9|^lqoYQ(rF*m?z$k8?;=*N*$9;sxeKA>6ZzQkE+DzTwEH7eRwSmv21Tmf0gHMImzbr$gj%E9a^PXhBhSS z_B)c>DcGOu)Cq{&U8o`M=nE>!2>T?tRz>1W5@IknWI> z?ht8dBn3qH5F-7drKG#0rMp`}kWOi7kS^)&-@Z9VpYJ(ee}6nP?;r2X`_3?DICJLc zecyZUwXU_+bzPeeeGb75)9A&SV&ohc2GiB31*+$yOArizKGqamBl;}y!@w<-v)7*~ zoj~K>`}xnTbj&&KeXc~M!JB4$Wq~4Rg09Sn)#Ti}o2+%xxy8(%4nD(S20 z#Y9ELq=C7MVkO>nK;LZd00(V$Ar_+LJ$~?$U3nBv%DXSk?pu6+_!tm4p76elrb4Vu zCPa{-mFnFGV`8pxz>S#If;tX3*FmN}C%WaS*~o6w zFpfN>h!oyzxTv=8U_k|hRhV3tKfD;s*s)2Snr3&V?=;aJ=%~5++ce?S}JDn-AAfGc+(wdD9;H?B~baO0nq03)>n&E1z{fp)XW)K$4lQ zWlZjP7|+XD2T=9{+NX&P&imrU@4e zrY7-9tbGER!J^lmc=IRfN@*nf(x;sY?4W9*KaJo9C;%1nlT)1JA#350*I))O^62IX zkclo|l!mxdCg73`8>KkB%#}zl(2d~Cy4twegjzen00p4(?G3++L|*|SP6NeqUCcqW ziiKujw8%Mh0p7ycE-Q6=uP}tix9wT7xVfHiWg;PXK_n2}FiO!dR~vfJ=$L*L>@-g% z5+sjy7CuXxs+T4~f;_X=vKyXsHed8gB%VaO;ccuGT}$}qofC>aHLW91d0#_C@qs#Ctz#O_q9e6B>(h?YFS&VQz%1sK!$_C7oQ&} zsZ{UI%^BRDW0_B0-7j=?uAv#X>fvi-vB$J+61w5!i%9Od)ju+(Loq-0(&Ju3zn*$Y zzmODl#-XVC6aycQtd0R_kb>#12WxE`hU0#J=XE^{Zzatnhw)Gk!1_RwZzhvZ5UllEn3Gg^kUX6?a`@l*%_v2>CnT(DVasrM_wBi?x#ZX6h`8Lo;9 z3ds42%-^!6ZD4VFB&yhr)_Fc(LDM<$XB%1YU@JP{Ncm*vKdX>zqd*JXE`Kq7iD@eF z_&!1{BAJ{w>{+wGwu=^>zMFha;YR7$M+%#{P2TgT;cZ+8AL->nFyYP9Vmn=UOv=2z zYc=DbDv^$P_AY%oew!~Z(fpYcL7ip2OrY)BIgra{15ERd~c7}b;_i#!?`R|qhO{nSP8T#OeDjHfSoP9{v3}251D7_vUy#S&t2M>zIk8S zIZANehb*WKP%R6+CM!P;-bz zn3z%GxtQ1ibD>gFYkXj9G7aTB;@Ov04`m>RPrxQ8Tn(q9 z^HO@O^2+q+`6gGASY=e1#jmrL-K7-!zv$VOl`!$t6&Y34-5yxZnK2Cnm!ne4Y=HwefG>r6tq8=w6sOsHp5F9~`qCH}fDCK4iNfS!Ba}xJ*=JhG!En zgtI^1s$kPBFO5m0Qe`zK0Vt@4_ zu5?YE@iBk#02jVL*SwiHlcQ0)LhZ=x!u*)uv$6O(V?~fG+S2u@lND-|5^MS;I8)Xl zqRs|J{KgASd<$ssgYV)eK~#gIJlC?o8rC{#db z3@G339G^!NQ<{qL=Xf@2tkCCH;|I6<%7=uAw#W})4?zp5BX?J&hhPvjp>(BONSi>> zB5Q51_QDA{frj?F}Lz1H)L@MP6G@~z| zRZFPD)XSB2#A2c#{)5t_eh?xuMu5Vdh;{ms6Hd8e^N zRL0h-YTYL_myFe!Y@&l~dau1eBQuk+LN=RZsS9q5$zi);}J7uq2&2LpC5By98G>7$_%k=VWbyTvb! zBkGMY17_P*>>ZC9aKAhsir0(d)m@f>d0D&LDdsOE%EkPGaQMd)mq+tbZ?nbosXlf8MiM`WgS0{^_D z4IC`CGk%y!lX`PL10j5D@XMfwM7%a^VNz7T#>}Ug5sX=643vExVs`=@19ES@|0IyB zo{^V*4+6#uFC?_5`-#8CwfGc}S%iGt^4B@jLvM$jDu5~YS#%YNHaqi%;mHeqZKA*& zQP-9Jw-(yIKj;&U=tyB!7db)f!i?!a`@pY)DQ!HSMU2LekF|rcjy}ESsPT|a$lsH} z!l*Ono`(csqXc60pm^=`l(pgl8jIc$jNv`}^z|LnXcoWSj3huV=(mQQ4J2JyqZ?+7 zW2-va@P#k6aW3N%e^sEz3_9d+R;k9^YDvt9-7x}1Y=4E9_LA~@VNmg#eLqYU>$0kj zyOgTRUQ6}BTjt5{*i9TzdJ!0SqVV{&~Wb zsKAUT)>F`LQ5t$U8(Sm^ptg>=vw2zHQ&<@KrU^_;Im34Vq7fu(2QtgZD&5wi-g~Z& zW;NhFuxNyXvB_L4-`mU~#)!KGcktK2x}T$H zuEqm`csrdZC9aZpRB^~sWX?y9kbTM$_bAMr{%Bh&-H1b+)uC9%6{UYa=) za~j$-3+EZMZ6foiJU<`LQ;12$x5otw)9!@UOC7RpV=BT%F+*x0()i94{xmBML>3sQ z@C-rJ=tO0|UCaB?5kuy2FcvxS31~toy^1_!a?Uhq&*5x3^qgW0t%&M-h&?~L01+l& zv!7}6qfjFZne4YMduw0Ne(PiTkaYgj(EHYdZ)AP7+TZbPm{zT`WrB+jq%>n3O#FA- zcSECOq-q0J38D|nJ}q=oBo3Tw()WU9W{%X9;e4_T{i-{!3@oPWDBUBSc3we%A}wNz z5=UBTADrp3vUKeqS$B6n=0zjrH0YsQ!t$0sWuCr55`KEy-Yv>|9KP}_U709>)rJ(^ z{=5&<%_8Jb#GW!hL_@`_P&b_OstuL2n&fiXqFp(Aaa!s!u&f@zxV>_oY6^DRp0^@Bf~catk46mY$qnMXVp7YnNVR5WWDz)ODdV>xi?vI zzUVyl&D(pZqdl#_oZA^@$m5LAG>m4ycGAq`B7c$?p~~pXC9b7I@nL}V(fJ!&Jk_@J zv+dH`(Nz8+bQxd&BVhm4c@PwUq$-W}N(`U}+71|+M5GQQSx7jy8R$qtW#foR0zFxy zwH;u^W!_QmEsUU@YR8po8hr-F-I0YC{vPf`q$b%>Y(@%FL@j$yYj_z~%oeSMW$gE^ z4Ppg??#C%z^s@XXelN|~s-b>FNZOVmLBudr3hYs`9;Bl?Qc2aSNR(x?V|xLvBhP>( z8!Y76PtZbQU=LQ;Gg1hc^?k~qoR0Lxx2ri2v! z45_m$Mm~aJI8YJ{+`ngI4zy%5te3>s+(xl__Z5JLPW|J3S0KqEOMD+9Ro*@xLFv1I zp>Sx4`bnS{Q|3fA?1&2$({qhTh~#2J*~y=w0#PclJvUIaqZm*8&szFv*vriQ9!zwo`++JNg=04tvJ392?+abUwRS9!9cgTa1j5J28aO>SR}Py?v?d3n=2I=k=OdpT+azXcFU_7_ zRFH;MEESF=I^+b_b|2%7N)BdD6RPh_p)r@qG3h?zB`Xe&cC#kZm^?J0;X=aGXL{{W zE!;riYeN*`IPF)<1U|SdL^6GVD?h@XH^%Zj8PI~l?^|Z`al7sb`+lQ9iqX3s+?00G zU3PhK8oWTlift)@n6UtR@{OE#r#KY-*)$jCK>9R~u|9tPTEW2@+$6it>yGc(AZqQF zKAI}#mgLL4=_&``bxTQcI)8NF2+mkSdGhM;Lgb zHO*ns%aut1E5Bdr5fthB2b2{)edm`Uge` zUN4L*eM)jGDI=AlLk-0Cl{wqucJUF2DAMz2;#D^m5(SAubxgj4eWt_`<+X*03#P07Uw;iq(ENGEG9s}lB{u_HV^9t$3 z=u&9Uo{;2ve_kuBbFp2FF?{bUFB3##wDVj_!$`PK2<_cI`c%N4psIO;$tX30VY2u5 z_O1Axz}T~Rax&jFHk|uSFZ7=$BC>_1SAKa?{IjyITqm4m#p^9V6Xx8V<1tj6L#_R($|$^Y>1JK_(HBPZA^t!u zB-HsQGUwm<*8R}Q-TU}5qv{9DvG?nwdO^n^$LiTqaFAH|wLGcgaOvFQlwD1;09WxR zL*ULo*VRnXoRf!C(*8rj!84rB*_~vC%{%xR7m|3?ees@x1Bjnoqyp%ALLepyPaq#s z)ZW8Mp~Q3-paqC@DRr2x`o2DJlkHq39HGj~Q$l+wZj2=3peB8Kc`ni1boG}PK;rNT ze`u9l&y78;jr7R4)klVPV|iAZHT#q4n_jTMT8lApqW{&@t@jhW5{a=uUEP&9pHe>h zg|P)@2`Peu2YbCLonKe-6>H^>L1Tg3M|Z43$Xr@rFB$D#JIAE;fHdPVgXCWj!B`~v z4D7NYio!cgF5CW%uhg|Bdt5JeS&^zIdf4)bL{~Xih2RA9Uj?NEIQJOl`$fR@hWtCB z!Bt3+DrSQZE0xjmr*{(%QS3|oko)FSYiuNV(?24#Y4{YFB1C?AOc z>1R%jj*KNeOi$RH)+DTy(THVrH|f#|=G*#d?UEJJB{rK0Ni+{x@g#;g0Y=T+6&aV?3`xlbPZo5g zIwJ!xvuX090wcs3{0ZZA+y#rn#cxGY$UUMJHln8>T8R9qowi_9PIP&i?VPM5!SRvl} z_Kx2-ci5H>mpHy`-*Zt-f9dlFPUSVXAP{P7Zn4kI1K8pA9jW?taoLP#Fl+NKE1jZi zV2F-$%{(9vVApp~aS)|rz+X#qGXo9=?AX`s*}o&3E6;!f^U4;KiJy&e$N#q&5!zzh z(BobIem@Lwu)Vn@+q`^C?xqHj{@qiN3V_}P4ew9y0%&#Z13N&&)AG|7&{oTGGoAj| zxdywrNErMLPsSSq!1}mGh9F}Mn<7w^|NYK5(2}1MA^q*{QbzLj>uuaukeX3S0+M&X zr^uCh=nIX2K9IU~GS%^dHELwxlh!mVA1X1coMaz2OmZ%PdyD z?WaKbFMw@HG8?;IpJw~lgVyU^>1R{j{!34mB_iZ%bc^oSj}`v*n0Z+Y>Y1U2>m|~1T2+?HZlHNtC+tm zAl89e23SD+$Gav4n91Z$H+uY+-|7Fg-ZlRpH75E0Esd`K?KJjhOQZjXwnZ)J@IkQa z8QB0@KP12%ht$yB9MimzV=Qgx1bi-V6dKq|4|_mL&2i)0{F43e8igzj5C71~{tp*N zDiXxvQ6ert3R{o^>i@rj!GA2aaK4=akB65B8634V_xJo%Ye*dda^tg22HM5CQs7i; z|MSeBc}~vtWZ);T6*I9tS;@rh)&Sm>rHXQVPk_jM$j|KLEwHjQ1PW)(gJd*k>d%X@ zCVtKckDT7x_6i|jTkr?Sy$qYPIa9Ij938f2Zg-%3p@N+c0pL+GqHUj|wd-hb!HhY{ z5BJ<)kJcm(S0M=j;Lx{UVrFDDZR~Gvx>am7w^={_TkOS+i+gbOK{+{^P z%lJcCD0m6bceqcMQ%eE0R~*@$emhhYi!Q%Rf!a_ZeD=x=1QeLG8qoMi&UsaFlpByl zKH4(A?-D1l5M5Rri}L23CmAhnCDIsk>J!5?0BbZ?D#cixR;CpS@peZc7D4j5>9Xug zg}HLa?n$dN&=>F42K~o77(b-6cfx+c0$ z!98x#N?1x)Si__ITlmfV`*i)-cDU`+kP(Y=Me=7`xxwZ7x zGf|Z_1_w1ud`#oOsmA@<8-NpmmCvj26h~Dp8)bBh1pCDp-EqMBj^aCRm;1&J92AK; zt6KRsLU%fivYDywY{wLsKX(It#n{i{U}w_< z;BQe|vXNdQ-$^Dd&8Dkd_QdfU0$&17v9iz$7pv>BUp1Y5s+Iu8UR6|4hsX8 z{TM7Wkbuc~KUKyNyzlAifUY-T6rtu>2nu&$)~XyQLguXwv`TBg z`M*gl*KTDa7bz_BcA|BtWe|A3hp zBG5ZlRWM)!k7k9mUv{!Dy}-;mcUmMk#3bm@mn!iCur#_L+3EG>XX9D?ps!AdNZFjr z3`u*1P%>+&lAJ6nfZvW1RafN&Ff;mgFlv}oR41|bq$DKKt_)jdZz!)~UAHF4PIT<< zLJM83V?i@%+uAtKcRe1|$>51S%Q7w;|K{-VJ?iHye?*9}0BUz1RFTZbGPoN5@>6_? z1OeksA>aVidV0?sE^+`AlANO2r(?sfAz|p8TUOkC+~F&OmP(F$Xc~|^{d!1dIpDMo7EO;2OiRe#(PeGzt z^+J^5!(e6U+=_D$u0{}>^F)lASK`K-V4oKJ6sPxPZL(GiHC{e++8d9{HEA*${AP^{e+NOzo?tVF3g&bkJ<)ILPj1i&?vF`#+5lz4v97ZWnTZFh2sme4@Qkh zN*ScpkMT6SYwU57{V|=B;Y;7PgqPz0=bO1QLxs5~)(#g*M30^JQXk!$19f*HiUx(x zz;P<`xhEAbiR=_$9Ic)L z$J@#{;^k{4J_Lfdg0`#KneQzjQy${yN}@|&yTLav((1g+KZ_BJn6z)M^g_)27!6Yf z@<;20d}^eZb^!Ml>mW-L$r3VGh;Gq|uagbI%{19PhN3$Zqwj3mzwy|a1fCV&AeW|B zkRyoHQW)IF-~9^@BM9+ZFNTSCBk|UO;=ytx@!}NB9Aj7Tv-K&Ga~sXxSjGLo*oM5> zEEw&lIa|Nl+XN~l;0x&Gv(r7xo8Q$;YDJP6HXB+oi7!|=1P|88d}VA$Q&?!P=e(Tk z{Ti&RYUb+zD|!XFH_&pF&IJqbpMpd}I5xkg5zXG7nsRai?1DIa?1qq#u2+Io*<1K| zVu3N?L`?6GH7+SM&l*n+0{Q$boA9@5C}?T{*H9#q;dtsLqRXV(!*}5+&n_?5P<-6| z?q*^t-S7Iaa7&IN2?;AhQR!Bs(G8^tYHC^{YRvn$m~~s;y|_+BiShweESUABu-vvw zqRz(s%S#vBLA8N#zR6M^p2iKA#9@=l&$&6dIn&CMSgWi(z!=0f^pX5G_uI${_E_7v z&D$ZR)+-9TU|`UUO6zB%lHxYEViL$7#elfj2}Ya$#nIniv?u}2|k9VyoD zW~iLdL-%ibpo@tl=KHcWh6&RWHp4(l({$g*#3@*K#&QEsUb@cZd?I-gGXq0t;&9qE zDRSdcnaS|CyAH;~1?yCX2T9HcFEkLe<7QFNgb>ZpbzXKMHHa;;)SM9;Z{?S?^#x#Yyni?b zO!e|UQpFPuqY87?bj;*4L?7#l%&qS9EZO^C+XlOyZKLzL!1Ow+oncR+S?m*&#V{6) z%dzn?n0|9;OjiWY#9BZnpz=iT2Am&^_e=o57Q=$LfVZoOgH04^NY?Wu?EtS6x|BfC z*}mm#f;3(WI1oL4##-v|&eDJ-t#C@2h8MoA7w7l)Ck~PN&o_r-`t`qmvaVf6s;0eGNRTPnW{^jnty-uZH3jH9 z@kqPTo&!4fTgmRdKg4Llh9?Nu)C+TJpvXPhUFxYky%4A);vFqB>TBq!NNm_r@__qp znZVx*zbpm{rm@~vh{gaTFgT(TId27E9^8#o)@`~@6d=pHE&9*_Wm5&7JHw62`QsYh zn9w`7xAjN{4J7DD*po>LB=pxkfw?kGWx^ac4eUu433P~*pof-4XZ!I}EnpiGQ2Twc zJ5FO$1O9_VlZYsU2>!zj1)+soCs{g7tsS@TaS$AH3?Sd11j0_@0$WuFJDp61Cqk}B z$BP=8JY6zW+_h?j@!fHjCmkhgOBe@7kz5xiO7tH1D zNcb6C-O&YLqsbw{J^Y9VbHMZAs{>-$gRgbK&~j>TWuSFx6LAoJ=WXGfJxZ`P;`oGf zOHGqL_6@o`-nn{vL|Tj{(xz0|4XZJ;-j8nBjF7w4;<$NTde#h4(5|}?a?{!FX6BaF zIPSg$_pI^-{0-~W1RAiROq_{XY;uQeqEeoH+m!sGkFkNJ39qG=OM=(dcc$&;w3uMt z;BUwwWq%z+I@a9pIlNyeb^6DhO8OiN=~O zq>0$*Me>~VOk)I{g1Dd|TsHQ$)2;jARB{zVp3S;0lRkWm)$^Efp2Rmvo*sz|0XHXo z^oW2UK?T>o;P1CeFneNEyvz^ZTWskkGC=k8G z*bvdS4+ir!D)UyW7lH5IGm$~0SQsS!?LYCU=FS<|OmOxXon=Z&Q;Uh~#A zKNx~S-s4$?b3J6g9BaIh@^&;!e}lCtNiE`#zW;pNf0x_`9ho^|6BcacEVAW+h_a0* zEbbZM*?{tplu|U|0~5h+XF4H5VzG|`lD9A1wk6=f3tg`4@WThZtTAMsHhZ^SUE(ZG z{|aGZ&Vyff-@6<&DD@kDi;vmvuL8-=U;_vci`n$$v-p{#Jf*d2;Kj9@NUm$1E(JYw zDtV7R=@yZnbscIhbr{k8IgXKT@qhs3Vkqy&2R4V0mYLr>M4zi4C7K(Ume_Vx@TT;Mx{i#f@fM zowBKzwr6uIiy#k{&pzpBwSPk@iZ6WqmWgMZ2(MUMLD5XDA(%{*SsvGRA`{+hV5hqiiQ3~GNB6m`Tzy)t^o6~-?C0tG<{=UHlZ`<$y`u+kY z-7zVCgCpr3(JEX6pU+!}UKj^#PQi=DtwYgIsl`V%ZI~~Yk*y+*Ih;@SSY|m^1&=(B zP(%cm9ofmc>kg=|V;ERISf6u4`bv6(vZhmPQtHdw61&Z*MR#Pzwwx%(68+X7_IqeX zK6xoWryMuCJztBW<8a9Gx>gkyQ-38~fwj0T(QEf_-M#&&ro^i`cF^m%Cz0CRELT$O z@^CXVYpH^1buOj}zI%rDutDp@tN> z&lD;B=`sfjni!&D!y?nv(oRvcJ*?Iald&`hj?}B1du3FUDB@)paiN|-F*CuiLj78!UtOvTY1K9pu0G=3r z_6+HlY6A4G5rL++v>z3K#STee%>yUnu-8_E$6(yp;oi z1wWo=Pqf;A53pQ}cCEvUWgmXc4|Qqs&puOccuVSECjfWDOYHw(UIMVNEc1u6&ki6? z>6ncO*Ch&XlFc50XEs|di=TSYST>AfeCb)O<@r*@*rexwBZ)}>RSjK$Pvr{E_N z4cD8fJRdiraxZ@j!1L$&HsS&n`_A?Lv*X=P25Tw0SnBUp>FaX+yrsSFuGNdVO!HEh z?LTgJBAp}Jfmdgc$crFPu~;WwZp_8rwF3^xCBut5Bb4PLF=fKlY&P;q=I{@5M2%7e ziD{1$#o>dE?@=CvA(a|oxx2y&CnM3!kvK+D#QddMW;VA9mi)0bn_1R;GMsG9@xT|D|FoR!aHUh?7B8^1A>CJmHW07MvUcp{7 z3XXX~r0Ueon*OeMt^tRZ7og{7`ou!dzl^9tvl&)n2RTPP(DmnG>i&MHz33nAu(yoy zkefxO7AA@{sF-IVHIT#x_P!&dF47DG=r@R{vhCY8cp|Yo!N#z_mai6Nb9s1CCGJZd zK9*eY*GGOtatY+xsC1s9_01zqFCx@f*2`OmBu>g;16|8~sil7CuS0uNJD)dGIwfmPJWH8+?1bjY2Y2v%pr94+<}-%mH|1m?VqLASR2aD+0>RL@JX z>kyPy)9i#4QC&-8T969CK4qS9cRHSV2^F?NAyg5*?YmzURM~yii;%Os?-i%bcVoH z%-InOgqR4lA}^uhBW5x7Oe1&=O}7tS3S(?F#xSuR zQ+y$=lIXJq9jFxC6`MB=GvT5vF0fcQBY?xN&Ymg2ir9m)KrEVM!Z zw)6rV2HioZ=5>U5W;Z?5#3vIa(q$c(P#ugWSCPc*J975JN>7Ki4uwCZjvh3unpF-y z#o?LtA?pIV40AC!z#oT-Z0X9^0Qs#didX~bgh&^ zDr%%CTQ^vL5W^6%)_nD0q-savP!Zpa*rqYwq&0=NWi-Ik^=jQ_tAnqh>+@$i=fglf z02{~%A$?1*B>0?sPRki^KLW8^idOO0r5o?Mb`QJM@YKccu&-_oa^_ zrCehCT^H!!P@C~tBnTtEg?fUwv<5khdOudphOWr|bgx<|_`Jaa^}t_Mv+4PhqiMK6 zQE7(eUNCF~*x?!TAs*YLO-_TNyE|Cm!ss?RQ|+F@*g!`Flnbo%sFTs>o<_n>!)+56 zFr&IYFgH5DQnVVh5-mGue&S60m6L~)HB;C+$p1>eT>U^<(x~undr1<;8#H6Ix z0^Mr&bL99O54t>$x`#WpV@>2A{HHSipBXu;9r~o}%TjI1>KFg1k3QZ7ck<*`c_@W@ zX_AQtv2jd0mEPueI(lmbh7uGFOoJ(K1wMF( z_yTZ$Z3T-xM`&_(wEbQHrAHe+>sLa~^eR65H367RUK-ROvcvkD93J=^7p8!F3>3q% zdd#PNjU?g(T)zO4C2i$ZzMT;s&&Sn6$%cvVC1f5kOH5<~!35&c%yvf70iYxrjNksN1zsk$KVb;N?_ z{<9MMNB(DE$5xGk$q?!3(=0k+ZQYv)sAVLDq{vUnwc#^fi&s1e&=O+tBn~K{QOr;a zMYESDnSLfWr|WO|tslO*)6D5}2T=x>$~}3iN8oaTcy=qW=skQ@C{1knnJ1ZNpnnNy zn-2wm7RYOi*!3nXxh~p8Q7kxL<`g zS$A$nf-^V9y@;5h*?_{QfDgrTy(W@UAe)&iV%8uN!)J;!i`DuNXr#+gEn3l?Sw1#MYC7$Or;IQS~&nu4nu0%47 zCIBYkqlS;xoP9Z#ka6hSXfQ3WA(vApDg`s;_#zvKAC-Wn?^Mypy03R0swFG(KVow@ z+(^KXN5OkszqdXNGh!r1grz0S=%``tFFUZHqX*$UoS7 zM_aey=}415)0YuHj;#w1pQcKHc1CMJ8-SgrAgJ1EDHil($Me*R8{S7Z4M0Qb@a*^O z=zcH3$i>%UW{Kst%I1Cj2_srF*RaKyHP^7BdBA7tfY0P8W(Em;^vtX(!bn658uX@0 zcWPph&`T!=2NTzopdqC!4ZsJ_-7`@8{?v`{WzA;fy_h*hYh)b;%&6Cg=dN#OiR?(z zZldu%o}=lF>|7d~zi_HTf)Jfj{Rh_7PZ1o;*Yc~WhDDe=!o{uwaj&l zHV8mZIMMP9=L^l3eo+YJuRZ_^j3}1yyXWv+34(jrmDnsKi+XNxUQSIsaAxDNGMELA z!u)qNQ(N~mO?S_?m3N_aN7MG)3iBfA7k=fHNl>$217hl8`LH%C@W#$M1}kkAqp59c z>gMALum75g``!rYI+C{Phnt8===DyZS^2{7sV@(82w47H>PMSeh-DjJPTx4Lf*bb? zTJr!@&(Ljrf5!rO%H=g^JfF5dsn54s`c^>mdB2%0;;YpQ0MKMS?%eAF8f-KT0s3kL zL{|>8u`(9jZ#Ycare1VP&j=C6wtULLZI$C8fdyan0v?)Ol}T3TvSjqI;erGbYw{M} znjh}Sd4dSZE#Sf%*d_Wo$@|8KxKr`{@aj_RJC}bYOI5irYKCk=RkY+M7*2X{L;WB! z#tDGSHA9>D=lVKvkxAY_hUxiBoEyvyas7{`x4N2Z4jIS{_G4Ht}d_6_mwDBGXn@@4p z?tq*?`EURN%b~$-19Z(9hG0Xjk^X?2OT2r%A}T(M-&z}qg;i@Fu$W_z?M&DWKciMp zjMFWS<`FQCTXT`b+&=~(>=Sjch0AEwIp{&P@o%eJ0qeDqLzF$=-Z&q2yGa{Wo+uxU z2dYcDffo8xEEg<)PQU1G6CfmXbZ3@WP1;3*aKR26`dv@_ZdYUzRd0oP)FV9PcdF8r z7ifnzO9oLBHAEVDih?oB;VBAFY{y=t-Ov=pCgibY1M~!wR~WZY;q}6|+z|+Wf(uyM zF&RUnzBl3+6g$<}0jOb@0h&)Lp2e#_moGKmRHyG7i*QyIkx5^ZIv)y71uC1A02=w>+ zyI=z|Mi}T#eA-&|%;cYLm?{Zd6($(ZR-|ggWwv;an=@8!qJe>8kRptdQF~Cu{%naz z@Mpv;sHD%wWlm(!70L3rMsKQXuI}=z{q2h&4ATVbehC$}c4oatR7JBRm27i@z{Qc? zZdR!d)fEtGhB?kpLEitIlvtKzEs&0l*e}Z%Y$0*}_88WZ((5d&^I8Z+I z>8L%Ss_e?2yT-&f>Odf0v%^Ur2@lD=KRA@}J0VAsUKPf<8F#B8wN$B5A1N{qqp3Qa z99oi!#3YxKc83oQCOyDYGajk-X&w8R5gFZ-@Voco@jLiawTQXTp79!%8xOGn@^2gj zmr%5o5eq>UNE$WuBxX=Adn>li{s>JYJ|y^%v4bp8`2IU|WZh`dNG?lOj_j{9>1Hej0{JYe zp$xVqcC=-)hW_@Wbirzr1yt}Cq+Ks-9rmSn7rV`l>Z?l9rNuqHmQnhy zB~NZOMHZ6eB?p0&$Zamv3aVlA+bHnovuEV0osoQRjt{7GR4f+k-~8wctOFRL%W?wT z;W6u{I%-|hjnNWj@u~*nf~0{qc-!EbyYww(&#i#FWNL{HomQx%#Gaf!dGN$7?+P$^X(NRqRUJ1R$9$y@Mn|@T^|4YXXWVh%_^?znaL;{zi85Qe}i+C=pF2GUhd?VY)Lpx(x3{}Y6 zbFEACh0?#i{jb^%-R%i9ib*FV`@b|yK$*g5UjENs7AR8aCV4plBd4pu3)yVucy}qf zlg#8(l#=AXVYj3R^crvNfJ^4Wv;R30UWpZ~S5hQh8MSmnQdVDQw0RFRm!U;XNrtWQ^!*oefRD=~7=k+aWz@{iBB)ckIrqtOzQ_#NgEjUa3~XE zTBbLo3IFSrls{a(67PTWN?9l*s>20Z-LuX9`Ol1}YV7Z94*@DCOxyL`W*5vg)V2WA zqyU6C=dLXIRA@iMSv}^zIMQde{i(JK?%?{655=2UGrAdN*x1djow zmrfTn3jUW-zpQEMSV6djUyS2JMVbx>6YsCjhO|P5%u-VN49A5+_O7Us5mhFoS!V_(f3*rh~ z|Fv0%!mp7QWF|UvXlsIrjI<556?o;bW8lLBJI=NFwd!uPf>*&k%u};@A^-b7O15h^ zzAWc}8<9PUYc5XKI_a&QAYi2R*>(}MAxds;gMoi6nAIEJ>!@BzG$C?1(v1Us0CFqf z%l2x4Y)d#|AE5H_y<`#ZSO6*ca#2VgaN*9Ww+22m1b5&i75$EAdzbTkt-LosF{arzNK`nua zuVJ7$Q!^C%k7zCUvBXOg0QeH!d#Off4_KPs%aWU~4rYJXkJc%WiDO>`MINiq*R3pU zoR{(k(7;iT@gSIU7SU?Ge7MA99Sru_;av^6-@$E`uU&=efV#KpXBSSP799EXY`3TT z&O_6e+V%_Bij{9BrTKX~a|T;H zn8+*~!^UQFiZ2&&svObA2Y{f?pI{+g921;@9>{}2ZNyr1J+8($TPe8#DP-R^I?s|s#^p_VNmOv~S7fL2R#>NZV|2aBfy)nUMqb4#v zHylBu*x_ln_wX|~9ViO``hX*s>{7vNY0&qtPp4#l1172&Bxr*PHu1vKayAVRf*ZB+ z|1*>(xtbdk{V@%yfi@kTY5^O##;RJVcR{1{b$1uIb=4eo2r3~kM|*0%VUsEaV=A_Zp`2e^P7wPFjUz|_=(eL`@{j-d+I3;`Dh zXOWQSGUDE_fQr2MwE99Op0h9DA;&kInKQSW2(PgV=}Dre+raTLCUV*mVtw6(w>xP! zJ(>r$Wo&`g=huD!MR!20Yog5Bimvu#LZoV8L2K$?apfuw4fzO?h-#vWE8|@4!Q%gJ z4}N&8>s}4$x%2^FJrLrE_#DXHxi)KdyFi>bs|E<*+k3-3Ia<$0kgn*ZK5d5xS|?y7}-(EU5<&TcowWfGD#dCB5+bX#N$wbMV0dmE_UGw2X|Z zQ^);b*OY0A9pb{yow!9G=>Sxmh{1&k?QyFd=94G^jGg;{olNYppUSqB*c@t zZ3(*8_`;Y4Kv`&T4V2B7EaxZttc71ra=Lkr=fllL-+mQFtOnPrk2eWYoKO- zGcm$07R&0XVVG#2!Iw4(!1!nS&tfR=4H;2_wZLTt`J=!s>}T=iCIBW+;N(0PM|1h_ z@>KHGT`I6Ylc+ZWYi6*W@|^w|Q{N%xJ-BuB)i=)xT7gHE!U+^4s&3C%Lakm5WXM<< z(8>LRGJtpmmCy*{e>k*15COsb@^J!>U4?eVvqrihAPsq4F=?w&3K&;$=~B_LV*WTW zfYtV4p)-1XpkhQ1c^4uJfPUR4W0rC7vPVvjje3ba>hGpLs&zbM2PF6;=xRo&IJi2@ z8=p7%cR^cGWAi0&vG7>wO%};`^z-a!E|`5Cj5aG*;Ond7m4&dr6fdE?@|Rz4czEY~ zKXMsaSi0PN9WKLO+`2IhCd}P{1h+l|{=_#92R~u>Y(_8ntiB5Wvpyj$TEq%z zqdUZtXp4-KGgy*rQ@+;F)0JSDxUFd;u3WueAtM7AWGN*PzyH6Y_fQwP>gJ#D{uUB1 z1d*0|lNUiVcPpIiP@~+~prB?)(qoyXqXS$F4Gr+rj`z18=uT8wK((EV=2nqEtT8%ekzVs%R)dcF zYYVGDEz4FTZm06u)@-f$ZXYHIwiSalIa0M|t=)u$H+FE}(}|{CBH?5!r2x{Wgc?{|b$ z!6EI2W>XMAv^;FVm5uxy_M-`!yd3yH_lGJr$UI_d=p5v2X86hpSS%9}cFXAkpv22w zJqEXa3qa0$8qC9B3T=j%`{7_h>0VaIudMi2;a-m~@-f5r6F7|PgP@7!eil>Dnjs^n z+__@7_ZVP78D$l(-$?j7!4kh%-oCn%JLb6<&}~I>0ZK-PrYb=+%Wb-lx8Myyd9*l!zZKR8 z_%3$`GZanm-O`T3BXkDf7PUkBF_*waA{MF%P*))8EWAZIW7{bnlvw*MyI?+O5KB5g z(G|nW+G_HDxccg-DBG=XMU+w*KspChlZrT(?v_|>2j)=pMxS)@KKVG>F`r>YMp{i zeIgQ$2St|Y=|cW*wrx0SSB|>W*i^X(63#(;umC7YQ5>P1$Ps#t-Vz*E+P7;5hz1XL z^9F1O{X_yD6IDGJwBH+C{m%yaOBKFPz<+Qnk3;M0J6yfcaXaO!9}(IaYwB!N8zeW3=-p(}395>|W`bSF}Fe z9C#KjtOnacF860g&yT&AyR@^CTWHB&P!LGah_?>hhkHgg1359CAd|kNK=Rc?Z45EP zJze#S2npf7(%1!^-#0%O^qv^Z3_K^FS7Q`&e2>PdpDzRBdyp@q^<)hiGYTjv!PSQ1 zlX9J&#KGO&Jm=@1hqfU(Tu?2GLH#tF0rCHNds=U0Er<#^awi{afbFI^r&A8vxa((4 zS4h9lRoD&pl-W)3xO6qAQX^)LT)%S^>)d8DW&e_<7AO(tv)!v=$i{0te-WDT<&D)j z;A@3(5bNN4Mwx&v7r4{PAM|K3{$;&&cm6a`{4ux&>U8KubsOE}6x$13t5mnHPw_@C zaO4qlba!r)>G>P@>swCW12qFKf!BLMEqjcw2wg)oRCeeF=7A=FuC}=+0*DI6*T5eZ zmiOI!7ua7t>3o?Z+X$Qu0)>>jtHYI36ocTr!V{)i91y~*lQ~^h!-=4U!49v}t8&cH z14Kc1zj*oMd7>L|TP>8t7uY?+|3GhlzmU}c-`i0~NrZXziPOD(%}J2L`s{u?reL7Xs_4MkjoDT>p3w&vaCWbb;>f1{VsqtjS3o~?uUAePE!pSPy?F4R z6)!I=MgNi0O38oDslQ)5PX%+@R+lRPgIJepXaK~vPk=tUFZqSk+zl91Q_1lRsXZ3 zA;n$gKbP2hB(9F(@xj&O;|}>*o_Sk^Qr7j=#7tEiW+5!$vnfit5RZbNivN7pKx@T6 zpH(U4DT=>s2R9VT0;@e)WGavA6q3uoyo}!zDzqZ33;`zqKU5ni$Bdz`KS#Y#eGh}@ zZKqJQ>Y^kX-Bxt}y+Z#v0lXl0kU3vqZn29g!jV-tbd-z;&3e%0IU9E8sr7w*hw*{m zg!qa!frf(aDTz+~j}i;k0O4<0Iqd-QulQuR&KrF8Mza?Vto~;NlJE#ZQMjj|xk@#yFy-7ie6Tb7G1IjU_keT>5`6i}?S3r<2em=@G@{y~ya1 zkgH^DI;7{pDCo5PtkgJHJ7zxiZ~ve!_(xXj6#u$20T(~AfVMf;I6jB zO#pYUZ{uthE`ENU8qREAKBzsvhkp#@=E=nh)Mse@8F}$O!TLG0=k=+k9c9EPs$g_xj(7f6GA^1j2f)rYu$4;R!{dm47+UgKGO2LCU`D?inkpD^NdaHQ}x6P_BrL-6|>`gOS=Y) z>ML-yu)r`_M1TLYm$;@gl|WdlJ@}f4YWGEe#JU9Ui%RPXV*&2g z{R6?JJ>IB4_j3X4-Z(_}VH_8KS1Inuoz|d|KX3%V>gXxX`;-EhLHDUs5)!88%poMy zJY{CA9XM^|p7rmgKDmRfD;onN+{_^k*J>uo<48CWu}_k`WzB3ykn zL)SjVEY(yA@l}PZjW9E5HU%e=IYM5vG7fsi0Uf1LIb9U0Vhw!C#fJ^i)|vPr2wU(I zKCBCdFAlWF^vRTXf-vRYi0ua9Zm=xSVe?Kkhl|CL>q%VAhDnS@E z(-!hhh~lX8g~N9062f55)UO9K;hi--zSstWy+f5$!taR421J2GAICTlt;C7PJI|-e z1bgLYlVXNTskonx>_dRep&RzZbT&;n*}mF(VYGXdaoj4NRk@_?{CCkTYfUuASroQvm*n*`c5Ah_vc}*3?mj5|Z~4B}i^g~-nkDF;A2vmw zA1{+4a+Ur?6lq;ov>+8EO6n+~ zi@L7gs*CTq!l0aw%0t!jCnqRT)9RKO{%pp8Bsm;N9VHmfb5h*i#mX99%=KW_DZ6?M zl)-k22KIeID-v5jgYMntdWHbJNH^H3wrX+*PJnb*NVV?=Ca`)CBgD*vOD4}#^qexk z#>xy!nIjK|PMVm?Yy>@5EckBt4Iscaz#a|9VMFMT0{T>4WZ%l|e@Srm)-&PTAl^G? zl-&i+onjP4wgR{9S7P6WOY1m9Qzc30Zt3)T2bw!D6W591h!>u_HV=KDWU27awnlbx z#adD7`ttoXMo#7AXB=ELd_qVbn5YzX%;JXu=Kq#GzLodrA@f2k5OFCU4K?qy_{HPN1 zr(4NtL?Pi_E?>C8EifUqAk=HeK1sazb=GrdVN|@u>45e=N;b^~Rh(%H_=;lIk2$cP z91YqsLMX zGiBqcCbzwiEPa(>J?Ze;q2ofUiD+D_<*UuQr&yENiMU%5+xo@J0EP%!D!QSI`e79gl)Y|}_Ba_7sl>SPWEsDgtx zq&w8KpIyGQpL11;0D-&I@S}{w#}N;ZVM} z4_0#Gm0kLTN1~ij0)l&)v45KB!H7T5r#h9@fq8N9Z9+8manKUMH~{hUY4A4Lk?v*~ zcW1~Rtr`OjQzV$0^7!lK*&&=5CRdDNv_P2v;h^>C20-Izx1u=djZzkTX&YbS#P4Cg z*din!O3~N~6a$?#1n$GBWG5KpUpL+GX)DeD{M!?5AILn!taI~{>CaRGR*&oY z3qqOXHQ!BsUyjy|Alh8S4$U;n&#_5|lNY>>@3gPNT*2Y7`uJqyAi>V`5aYB0=uv(| zDXVL$1E%6lmE#70q#SBF8!i-Ia@hx(U?E`mPQU7MT}?EK1TzXzfVOXOKa%W{S*X|{ zF9R;vq#n5u*H(%QW+RUc!p2XM;S>#hLx4X_+xpq$8-fi-M>Sj!*$5J_M(B70UDzl$ zYAY?(CO~GNcBlFgOCbEY;`!3088Y^qSL7poWHnuw0F-zOfmhA)w{$cbXj(XnoNK_S z5CZSsudkD=dGIv|X0ERRC(~UD`>5)zr*qBn1_Wt4je9@~`V8g>O=*x!b|94Rf$ga1 zle!?iQ&(R~?oR^YnhoJjs3MWen+3JUbyM+Gr(h4Q@PIw^C3?cYi$20LxKb+OxM|CB zjci9^Cq2f|iV3PccczGH-XU~A)m#^!MF+Qw+EOw$Ir?g}0qYx>pHgnKP$z5q-M1g~ zmpcHXq($l>$alCmCL1I_P`qR1nDguwyl{PD6}=%d7RcYlt9$B8fXCjP*Mn%?Qt{A6 z9X`n!_B!9a>eqEC!YYsA@yw%$MUqyjHs7eN>g5{UG5piqKK!3ypWk$73DrY_UJr!A z%Q7VXrv>RyW{Grv?<0Kfr~R0ovfG3E*5GVM{#_hpBT2q-Y)ym?bTSd>Nf43RB(tU` ztQxCuh~KH%4r~57kXni%ezvWslpE(?VyynSyT&S=f0qK@3_G9LSr~INx63^)e__YN z;HvSARM#hH7oc)v2!Vr^xQ4F**Vy{=lb3%K%MW>~$(+X0O0762w-!boKBmoOM51yi zxav%N?)(1w_-etyyg(%SN_Yf~aY1!(@U5+o-1c}5 zseYE6HD2|Et@5|^+EiO}PW}t=ei5 zv@SwfGY~oh#{%2p6zJHP=(S_Y?nK|gX~hItDW=B5j0uhrJI<4-)t5Ib35(~GH;Y4B zY+-az$E`@d$0#mB@lZ@6G4z!~aMkU`hd*@|F5umOGlj@Ek@bWrK3{xvd8;4Pq-o1x z{!%{olw{?m3{k}@4JPdNrsMCnE|Y#FbB}>In`&G&WwOFIvgSXUAt||MZp6mNDnzNo zOmLk+w{`sS`Pr$U1qg<4ZlYNdV+tsf=G7(0*DfenCaOM>A$V)B;nGmMn5f0-owPCO3eI<3guBN6T;*|LpTF&4X~roM65 zQ~D7|wlJ)FVkZ#_sAiiW2R`MZBM>S!@+>VF=HbiPOmnoWxXwmAFD(aa7fe|c&*Yg( zSgf%;G~-DK4K6}G+*%8T(kR@aIfHlk|5C(%m{7GKY zsU#398+;v@&nCZ=c+HRLo6B=9a8`9FKi5ih(;0f1N`>%6tafXWxKUpTcQsU# z`qcQS+wXY=S_mQuZ4WD@2yFQhKz+4~t4xXL!REPq+w-nite`Ow>u7G>+J`B}OqyT5ONVX)4}o^nBEQf_*1oW6|X3n4}JiRS&jQVU}cWCL| zHB&>uc{ohL{-9HneC;N;?Qvk}ovozYRX}63BMar{)O4$X?gVW+8-5Avj?`uE@CmrU zdZ+P1mM}gkVf3^zGvr{cW~V16`*@gfe!0Cj`YE>U_{~mW@Df3Te5_MJGW!56Rp8C? z{;wXJ(*!JPV_(Rw3tZ6%c^!0o(TReJN@V8MRgGARDyRf&nQkof#;i|-ClytsLh9Sw zk-ayt-*5`ddxds$WJ9qKXWfC6oy*qpAy@fvh9`@rb8OyRjWf4VO;yBmK7&b_js9#k zr3A%0+UE~1HA^Cm=JX*Ci?=c%^tuNs-qdqcWV>iA@BM@2D3 z1MH$Xcsgp7mi){Cy3*^5`tA#MmC3orif-UCKKme5uCr;B)w^O$y2CjH)bPVuyhq2GDhI7` z$K^uodDodW9cCYO)p75a<7M;KA2r7LKHFZ&levlO5 z*(XY8jXLdox9$#Ooh0B-)Pxmdq-N6}o>|)yQIQ$abV%(JD_GTy+IbtsSqs871Otq5k>JHJHgsg2~0=|=O3MPYcvlyWdFKbFL^?|@& zhyDn|h9JUTZC_W?Q{dmI{!qiOak~fN3vF(~8q6yQY0SSx5~8aV2C3s0yxoaOGP~in0*3D1g@Wb>td$wkOoj`6&1gL zQ)`wVuS&O3`8lFG2TIMRTv#EXtt%MK%-RWlP$<~jfe3r=RQCh6cQ6}>4P`8?Yksss zGxOmC9vKBZe;2P8zuzHEqt#}xvNKLEfE@FLQ20O>+v)8e6C+|o>^J{wHBYO)QAUFB zp)(H4ee?&*eZrE~q-5+FEDmF}CGtEZL=O?y{jOc8-U`{;k6e{Jc`e_qCZ`KoI~yfU zw9Ejx3^CXA7+W(mnnEnM2ku(5dSUcQ^0T?&)TSEn0`DNm!w)=$Zod$`^sr||+^gqo z26F=@a+ht!3-W21kufoUhcYI_OJ>liWu($VX%O`9$Sr#=Pj)~3Maed$!0=H-5D5jC}O!rPlqw^|*=)i$>x5~gW7I)?N1d2+uaJ8E0EZYM>AW7}3`yseBirL6ZJQU!rFHzE%lc(uHwmeI<$Jcd;XUA)7^ z)pIpH`C&>JVZ0Snh&s`hY06ezQ!s}VNPH3qG}QqU;`?~!GhzN{XQy$WMYRm0)&82a zPuIF>J?tJ7*5M;gRZ6M^G?q222htt9s??koLpzuMm$Nt`zsLC|j5A)%OWLBTdA8?T zJm+9Bpe|VJzZl~9OEq%CNFW$suu`_VHRyRnD>YQ5_yE3UK#6QX%wd#Ec)~6#QPD}_ zn|h8_*nv3UI}%*4B)?Nr?Mfcox@Z?Jy}q+Q<(*E;Z-$gw&ttKDQ18;?t~Fx!IoRNo z;40s*>h!chb`L&*rF~zy^WxRps(f~MJU!Z1NNkiDCr3lBL+uQTmc}yVz2j5MQ+Iwd z^vmc*G=O8gDM;}h0TbfK!jzbA((VgO(i(rxGlyVnMua4rZ8LLFOR9Kp!P6hxVb68` zkTfi}fCAugAcs0XmC1qm#X8WZKv2`xA&RC}i1LOVNO&8fk2rkHP`sjU_`M^Iczp_Q z&bLxhCO@CfHuLUNIYJwll&KZL=CZ+osE)B>0a46L60%ShE9`WMncJ{xft~d5+p?lm zZLF+6M4jJVS8VMjrUt7LTSx})^^|=m5&y#+kZ!i~$)t=M1v57SLs9B)lr5Z!~ zenHusFeAz_EJv_1H|&s$6t>f<7kdy{g6x?)^GNf%FaH~L?^*+0Z*%Q7hwJT+0L=y{mXJcVHsPQPy}Jff z@yzdxVuX&q9csA6X8WUiG}8VX_5GIgh-KIVUqdR}XF^7ZP+xkdH2#KJF$~T_M=OH3msnxYm~>~(+1DFNXd}R{+pJsme6SJq&?-DM zpY777?k{gw(QB8~o@fjm{%FcW5k+hFcKi4FH85*!gl^W05?nULoxa^J+LLNT;TBRdbl=$ z$J(>E?&H3qF2{@>2cwopWy_X6kQaoKq6fjw(Xtn4EGDKmI`iRY5;9-7KjBVgS+_sp zE9GJCo&kI)^)tN*5MgY^l9no1?tV9+9pC3IpT$k#-?a4>{Wuk{1vVpWkl zDm5V;ZSeSb(&3GQG5Uz&UFZc8QVY~%ic@-jI$&x>c@YTGXaat&2PX?XO*^#vBCM(l zwGN0D_&s3&&&i+8^CMpZqjX8OK;>5ZTq{2B)3WeTF5@4w@Gdf?KB-E=_^^adQDd%| zZ1#1RM+IuJ-NODq=h(}Y{h$kIo9voiB@e%!LyL5awH)bIb6Prv@3stDd}LWxx*R$` zeHsmE;~N%-^&$#PrGl6}(M4Z17U#&bx9iO6rn7MR0<-)0|es2cys*IQG&8NNqyH#kvtGd@h(SDpD zTy>z<5R!xqU{T0$uqk=nN$N?nCs8q7KCBYm|8@MK_!_pUi?Shp#wqUR+|v_`nTst; zN|SDc1g4pyt52?qjQR{(VD#y4Qp*3854t&+=-`x^3!uv zrG`nH!b>3CLJ0K*WH?G7VY5Nd@Q%9pLLb-=9}j|9zuNV)9xq~Q|0(v&63CV!Y=*qv zcPu99PKRDP{b*bkQ#kJ;HIQoar)qG+e7+iOF%m&5$i=w_icnJ*fHjra$Scoui$rdH zYT$41t}A0+GCUApv9w(oE@U280ZW&fnxjRM3Vt0nZwtn6YNs^A$a+lKs7+ld~AA;atDw@>EdIh%2qjc?Mhps{OL=_OJJ z0k9&~51(arAp74$C4Q(2?tDxAF3vS7z3{*F=O80Wo@M!XAm_yK>6`bQ2GTxP*K^9S zcRt>wkj|!Q1B$yKXCHcU=ay3b`=FKb>izPC3Eh}ONO@pc1UXn@i%x1|@*UursS=>R zM)yor`ctl?kiY-AuglC_YNfvta5dyYu=K}rpSScONbIz>%FCLZ>CX~d>cY4hGNxS zbATYXuhZ}IGL;|^*cvEPSJ zJj35dN~@(y{~|7juvZ^O-XX$JDUHKiuxTOpR$qN1;g{(l8pp{L&Q3S|^_^&Des1gH zs#&!crC|L%lDyx0{86I)Z&}b>%IFe%Oygjy`g-~3F^b>St;KGudH;ueuHQ&Y1<(XL zDX!Zr%ze+T@tnQiRjcjP2-JoG&=*AY5>7MCBVKO=oITIBd%6Fhh+svQmSu>at`7L^ zLLCosNIE?D$;haKJhn&Og0Ek?uYJ3|q(!emnfQO=g=B@dKP4M`7z%^m_2C74O&d&3YZG8cXUA6P{XH z?en4XS3?b5hZicW!NRl%u>a{s5vcxPC#XfwWA6+1WFPjY+u6%Az3{rxPp&urX!>8{ z(xP(NyCcs^m-zDf^tnHDH{BUdCq-N2-F8ynAn~$xhb-mA=x@ z4o+@c=X*R>gA)jV$N-CXpkj?=KElT7+ZUTLao|)uVo{Zhwje8^VlsJ6u2}|oned?r zGW&*%t^R+?R%$~qN4be<-~{^&A=c=kopG)2I-I?k^FH3kKeei{?#s$sH9U%=K+s`> zr3zIHCRBORMxA`iv(*dyWG>@|z66+FXM3+X#|tdTnscj3wl_1UY$w=ZX%&!L`Q0k+4<#!Ta6yO&2}XGe_-xa zV=<|GLiTk*a!eda@QQcUhhOkW(*wH3HsJNH*=4;iF_{mv>f??vUB%}$j!oq{(Q=$*suNB`G25>!3bGtc%f}y96@95vv)k4AA7d1pF=)PY;V^-b=i2({*FSe zycY=K%uxNPd@;LKyW}xP8Zxcs+gl_HYVjw6B2yNc!I1ERLi?}I^9~Dn(>horUSk0< z)#vNtu7kX#Q$|%kQk=IrNDaTP*CmVd9Kc2L8L1H7y6n0+j@nwm2BpkNb|HC2gv-Aw zqnCeWM}Pe&FkS}d@tCRXth)wJs<7!x2?OhNv_JJobpe7 zat~L93VeXanSihz{JSVR$aM%u9>|0Ww#|Cxb{IbEWZJgGFdR({g>eD-e_9GL?&OHZ;A0NK+FrjLt0yz%ZX&DsIx;#RXWIH4?%0)Xym zP4J?1Y3zaGJq5y&Q=VsgAOT)m5JaMRuX(fW6o$V3L$6cTJX5{8{s)&Pfa|mV2or!W zfW%wVA$cuen$L&$w?M8ya}5Uq~5MH0GA98bb5ID|9w@7_^l z3cLwtQcC2NU~^@geChLWCeR}rh+MkT$VK<7qHtm*81QCP7-*uvh$o0q6?!#vd*`@A z+Kl$VAINfs3=e_f^{sF;nViIy0RYkMXc`?E83gyS7Zd=RH`gAMWivcgdv(0o`RpsO zZ?8)=ErXi115re*6WV?i!%Rh0-*BVQi)JU{kkJacJ(t$v{A<{0@okiBEPpdFuUg`a zxAaeAddup_jQU@7K+**)akc-cspbH~3E+^gPVP@fVidVme>{+OxfZQ%`bP+dIcjVR zPFMsoppauqkF{uVRv3&wggf2pBd_dyVoPbKUPkMWLF!5=@Zr`=BYcn=h`su6#}aSIZj)Bl5GE&Ud+bz9y1% zzZ#ZpE_Nzx7+}x!!{4TIR(zgc^6aSvNOPpw)uOwoGxs^>)ja(NfnPkv!V(YvM>UCu z-;v=N=Fm-Hf`*gb=iw}kJe@Sz{hoV7v+~(Pmk?(sOT^^F0B=!nh*UnRGc_)H`isD- z`{~`ey#mQiq3|F+TAIe(ROgeK@$%zur~Anmc^ywrvArtu?xH~wTV(fvORiSNBM8+m zr~OUSzzMWQITXBRgoco2u^sB~oX(HVGNr=j zQ4x(H)B=qaP$uXaHS0UKA-y&#u<#XKkql_AKPd70sB0o4-@GpFTz>kI7g!g56X72L zG1tNmFYm_Hw+?l$a{vsra5gO^2qkLT!zGy6$R{8@Qtxa%IAAy*Sq!BXsSyb7-Y1tg z62qspMpwPwgqxHw3-3di_f`fwi7(y>f}XH-Wde3{nrs0`{wuQihLG#>EOX-^!ovJ$ ze>0uTn~w?vSN#qjfdru@5(H^>0uM3tMjeFnOK`zA)O&b)eh{9?;EOlQp7CtT`u$ov zo?N4$UcA-&PX1-!ey*OJn7b9KetIdw69fN+v5VmQj1!}G_SkNX1v^Gc+}(t^SP*}l z@B}%CC1bsm9Ap8sa6v1L+3D?(Bi34+T#lvvs=r*T)IGu)B8uB1#d0}w`nVfle>H53 zw;9Ge08|V97$Nu-KcGbuNqij#z^RZI_1tp-%kb?hLqua- z=T5wF1!O1mh#im&(^=nPVi^D+_!#Bi})}NC&gQ#^|>9IH`o`5g`X;QQFinWP?xenb*?7R zy#cO4(I1Dz`4gY5n+@jkzs8zUDPJZD-Jf(RtnHF+fU6fu_c0MN5LEO^9jAzUyDg<% zx(@rMLR@#^I<)a#WC7gWrKV?Tq;T#bpfBz0u+aw>1lM!77gG&JoEZumiEhSgZj0p3 zTdP(z(k96R+CflAxotL`o?bOG=2#c)jz zD7C{kz1QyHJ;=*9Q^=Scz_51v+T@u>-#rE3T!HT`N(Z62j4N+dCGKL|55uG;fOWYG zs8;jX$*H!tJ~qIAgJ=Llr`7KSm{13>Q{tnPuh+O2Bf7k=*Q~O@oT(_Y^3{juyu-|j zndDS~0^JU%_ca;=Y)mxhFzp~pw50j+*=`Yy+PyDg51)?gDVi2sZ^i3X1C_;l%5vyR zMlb4RkpXlE$Wr1xNh?7GPY?5Hpy_2tXwQ(6k(#m9IAPql9-uHs|`G9<~M~|Gk19O-7B7Mjmkb^rpk43el_y8fVKp;^E_7ee<3#3W> zVgGfw;=+fWiDus*1QL=`W30r|=5qqXm$v1Ef!GO3i@NqmKbDi1GMo9PfzLY)DHfH3 zvlY5f?DSXpKkUFQD9Fz+F;}5HH1o5sq6 z7xLf+NLS9nskJDJ8}q>klrE-4FQubQIs8wkPmS7r{8xvm-PS@CZ>2BNvMR!=_(j{< zeTux5)NemXc_1;|X+szSA&+@BUSW4_#yo9*LK2ZND?P{5LZUZvN%yhtQ~kpg|KJ1} zO)V5o^TVb3EtCcqL{L$?ctrMQ`{WVvZ1s_I`DaV~Oa-m8TOm6xj5{#*g?N|a`{Ow- z_gxmzATz)J)Hl8`|Gyza+1;Ddb%HZ1C%)$|nwFi~c%t3M1O=>zJn{mZy>i+8#UJ)lMdN_WYO_A(&+m`U+d(vO#X?G;WuaRIxs8 z(V@XC;xJjGiMb)j?j>ohU}m%xxFJo)rE1{Q$D(gly3pO#^-W&qfEtUrQb^LssFGaG zVXIO&S*wz663{&QaytAdJKbxHY42*C(7N~Dre{IK`1a-H^UL))zl6$6?)$~PUS0ao z^(nU=<-T|{ZqsIHZvT|=XtrcpXHuEL6A7~Om|fW@qnkz z((l*FL^$s=&k`)jBt4>u#%=jt@&GUPhLd(-TB2>8ti%zDO^`%Ev^&9c&l>G;dunRy zvJ*11#&KBW3#H{=Ch6KHR{cyciB@@^iC3vyI}n+x;J9~az=A%;5s}> z)SA0$BzS0!32o7<>Cnvn5mtm2L>LPru+s`Eh<<2=_FZ z+wGZ$k*9&b#ZBO}k(=Pv2aypj0Q;cBzptTOB6NdU^WrDzqI0akU-g{zvDg$RN|ZbScygF$(+D3LP0L#U7;us z2i&J2QwClqCQpd0WRfOS3TAmY1Ft1KZZs-9*@Hm(NRjR|X1wg}PV+y@RVk4@!3mDR6wyIjCHvhfX#=*Uoy#a^O&mJvh3)WL} z=}xojHL#dHv9eB&sj+tjmglrq!KUD2*WIH0C7L6*`7tZ$?i6vs3PL=QqY@BwsehYG z)s21ogFspX3g3k`t*y!kP9M77GTo*DvnsmNYwULj?@ou;;B>4`c+w#5A5M0DNVRu$ zY0y|eN5x@Hk9Ke053T?5!M`ND5q`mj?4+0q zbIuaHxi-Pm z?LJbn(BS$a9!qwhUgd^dWwZx@zk=hop(Ys9Ig1Zw{(7gXMPh>=#+MiBbL$V1-TPhp z1r9D}m-5E>kr5_F@o@&ereD2Ga%=ce(zB=K_VXoz^VuzB@>*^N71$5M`1(!0D;HSbLxvh!`EGY zHQ!%&FG7G`19_kpQ%OAmZG=>wy6v6|hg#u}6Y>6Wwcf);6b|GNKmNhJqG<)Cey@9{ zP5*i({i0&a#hdtyo0qmCS_%zkY&&A_S{h*eUXdpBK>Aqj$=wNwhc0F;ff-pvyMVN_ zxX55i0?o#120G5Iu)ubJqiQ2e@1o>n5X39EHqe4NfAVg#a33#K-&Vv7>_q((mr5qT zgVB4nN|Nj^<&^Q^#N`cDMe6j$7)V+a);{DtezX6}oQ-V?p<6JaQ=T3{@BpFK2{A~Y?-H6kwMPkny_5jkZRK?&HH_tI` zHN3M@u@&N`!?WUXtJS^FP3vE|t?knetr2%y*iuyfyRnkRe{laLv)P&G4?!`Pslg)| z5hrW=hkARzipQ&6b#w-b)8lW;7}S+S-J1KtRkFMS_=VR< zb3J|Ll`<(sLHEh1HnMw*J>|LkRea4zdf~G05UzVt^vDg*lj13PItFGgudB2Y&023q zRclSd605wN@X3DOZ-5&lv!q-!ePMF$Rg|-fT?_37v*=8FX%U#q3j-_>Ar9x8Q|G-5 zkQ2JI%IR?E%D1n>7aL|~cpKtNyf0%ke0HStg`ca-+!-HVt6Al7H@ygbS87It*1j@R z^+AG}37M*QE6QfX@u5q{=j=qoK;sTxGGfqvl5{sL`v9hY#`*-w#=O)i~fxrBc!4eRmW+Ow{>r} z0q}5??|{PUX&(t|>K*=2PMt39G;^{lmN&q3>#3SyXi%Rpg~gCMF${;?`TRP>7 zxj;jqz<@;k4pv9aLM&b@w>OCOYC72+Eh8*ur6kj86XYpr>6`CNhhxp0^49pDF;t1bT!BwKYN*_w zAyjC&#*+1mLf7}w3u*@MOu=G(xAm0St+wWDCq=Qji{VRqDbE+bPx*)V2&stD9GFa` zuSbdv{kyi5-1b#dgY57*#f>1g0BOc;%po?)l0(P8u) z!RQ&?y5qR!)Rtu0Q0SFP`LJElo6B`~^;aA5u)#6L?s#v#djjoZ=N$VwJOX&-lc3bb zDf8V>1JX9&{HjlMJe_ObLU9xd{S|Tk$v^M>DDY&06%w8ku65w~e+8^2HJ<7-%DS{1SDEfw|3z3lQ~9;*Ek9;5 z9WevQPlszYAP6}K@9J8&V`C{$Z_QR=Vq@p$#D_ExN)mOaP3 zF|R~5ol&7`4+h<|brYu>DmVT7OQ7U?;e?5^95+v9Ub7&(NqXz2->86xqf!%Q$Y=8Y z)UB4&-~p7{m*r-2`$Oe~cw?Wt6z~|=8sguijWQcIP8tthv&0fsSV0OF;}R>!Pq8wM ze5z?;eMMDBE1{`rFop5yY*A0@CAG^ohk9dwqhs3N0<7ENc2G&ic^ z{`VPvOM39_RbJ*1b??lI*vw-dC%keA-wd)L6^4qVY=V;_b=+Ka=Nh~IzvGu7_$CWO@_a-?yNOL<@rce#^-YT{PvO- zmANCL-0jWz&PS!dMoDj17GrnTJ!~xcOLf(9|4*XWDCGx=ufbK3KOi7}P&hJ>A6gUk z_cnRYhqG2+Z7VCUY5^fcKgpkngILNtc(8}n?&~j%{0=R?s>6T=%w@zh)PgGFkQ|p_ zE;wx95(%AvhJVM!wlqi<2yUPI@AX_#4P%WQw@~O(co%^ZH<6Z8yg{*$B7P~52p>j~ z)fAC)hr^PeKn118mr7J>c73VgBCFDgEZ@Yw?+&l;@rxH$mR3%cRvrtVryR1XCks^7 z_Sg1QWsZjcT{?$Lm+=6>Xh(Tak!ZTV;}X?X@qc>@8oyc$wxcL7%WKK6@Ep>%xMI(Wnirg=GU0lL&(n54uhPZj77$Sz z$*}5Nl(tH9uTHo5sTCU0JXmbr_Ux5UiOx@G8*-=|&@|KrYQCMV?`HW32l)fMH>$@| zJvNy2Mx&U8+8O&6Q4*7^xuLj0+W~NV2%5O>^Qq^aBSB2=-e`#up(b5`i{So%=r7kN z&LeL?f`|?GdAjS7Kx4@z-s+{y4WOxZ0gR&B&*9rbYcrOKwhh1xT>=sQJB0TA8exJh zC9^IA>G{+S~AcX;rfTNh6a*)m#@Toid(Blw&PGeuc)XGD@cGx*MZlxWKRJh9E<5*f!~@{PSCLguMK& zjlM3HMqTk}=%+K4jva5fzD&6O)V#px;oW~nm;W;)dPOi`wAAYOSN}e0@3CxP9FYzc z>A1TJ39GZUo_>5j`#N0=r`^oxxcpqlg2rqd&vc*YgzkXz;41^ge5C5Nq;K-(ZPkKj zUB9!S6vs@1z2ziKG>^_^NIdpvt*R@hJlmKT-6d@odFtkVUh(Z(gW=w$Gt0~NcN=om--s_%KUJwy1vpg$^PfZ`vs54|DAFC&)ZXXAUwe~k>1zl{;qY~a{f&vS5~Sh z87M8T_Z;a;=8<%h91ji(vFaGcaNF0S3|gEz#&d784x1)ow%RM+QClc>9h`mL{FPDb z{S{~a|Gp&x3K(N*V_)GWD@@19Y$h+aewm~BMt!fa-4NGuC;p$c6&rGaRi}DlJp+RK zYn1Nqg2VkvvKHigXb$NkF{TQ)Li?5(swa{@pN+-T`n`l_C3)rVUHiM*{+TU5@B|NV zJ*n}PjaLoO&v+;b8$I3cQ9T(y8m*}^G@Mu%c8hG+8b*>7GRNfdrDrar9a@EaT9HWi zokS11nfhIZBnVnXeLec3u`$VSJ^>~`SjsBDsYPh z+)BLs=b2ek$j&{8uVPwR3T}VL<56+t|DL3}C%)@cY9Vr`(fVy!SxO6cmb+NKJI&kX zPlsXUwxa@5S+D+Qx93pfTY{mHga&WWnkqBIm$}17eFig779~0iq{q*Vbcu26=6`5^Z$Jy-1z4Ab>z6AV70F;$m1;* z1YULGbLVo~mow^&47uvgRCISzS01|Qu{jUk`n56)mWkAdOs^$4k0wC9bf1gt{ClA1 zw1IQ=rcVhPYODi@zc_L1oM>*HcZ@Z43*6!+q zNf<76Ni_erxc{8fUh*ajUH^}@FAt}>U)S%g-b#g1h?3GWix8EuLgpcv77LL@<{?Ao z1`&$PQ^qodC9`EL5|(+M6B#lVLYDA*zNB6I?0wF)f9L$Ouj{>bSFN=^pU*Sg&;8tY zgw9By3Zr)&k0m;TF3)(8dxh<2aeMW!9(|Rn*$4WJjnZ-7jZDb_`O`KXbbb1rPoQjN zB>uWGEt{WdZRuw9$!~}lrp0VOo{U>$VByX0AC3_F>%-{@`9-`=TfN7w%ebyLD~_^Y=Ho(@xtn(9V~m}2 z0nzS^jcU{5liNq6auGQ@t{u*&UU~@{z&#Vz`Yq6;aO{i^r#$I+tiZTfvB0e}e}%~u zjWMSz&Ma7YwP-R>l$YW2Gs$inZ(lA&odY>=Fg++t?B%&*>~+>6P>q`*Ec5_lhLz?* z`iO7ekD~O$_{l(v#i?r}uVM}hZy!sF6_OTob__kFhtJfL^ZVl@oW8kJ&E=hS|7=qS z*K;HN(BVk67MCbB^R}YQE?M)b9J4kiH<}OIf7N!FQQs-*x*^738u5-XKvu&1NP$Y! zT`YH=x#pUAnMsryhS6fvvzV%M^9O3j3c_b6DAoIB=Tx}{OVEYrq|@8K%vSVh7u+f8wi+Fl z#c?2vL~H1rFOwnKd_FW!zIDH8RQ@i%z7FKDI^eJ*@(ULkY$&U}b$%VzIpnYu%Y=Vq zc?p%TEk#8MI^d?jR=G&9;`jS=O6mP>xe6b0ZojFrexHV%@PXpA{BRTBsCU@BF=Nfl zq_bMxCaM4Y!DM$jiJ*+@#5qaSnXJ(n;k8;!POOGDp$$3tWbOL)%|k-Isg2a+tL=Y; zhXm&BXF@3hadzN{CAsVLX>v#pKmJS)hnig-a1_<@&HF#;ag@0GCwDZ>PN|xfRNU$;hS5*9M49B1UVV~k_40gYr)%k$ zR>p)Odv1N6qyF}b~qWEI>(dhy%uYq z?rImnm5#I;T0CPzIaZ1J^*leqtts6%t>-WN`3k%)(LY|-!OhnNZNDpC1}=_CvAa6m zdog2K>r#%SqAD47&nWDFd0l6|HmLLF?BbMvd{ zEu{C5N{X4)ZHEVB^$nZ8$deQbQTz>Su*YdH%T=1IvvN+v$JTt zQN6;E$vic)>MRI;n+gQu<=}@&lK-0R^r$mqerBijuRp#OdlnzO>1s1VwT6;t!L!Ou zEKJIv>x@)GH$TB>c6P>3LrdqR$lZ}3uFI(vCE{At2NG9^OkvuIRxoUu1s(o8HtU^-?t+A{HptlvKL$!q zn>MHmQtpxvb?`b!GmI#ScjXuN%hn6nFQ-DfS~0MJC(grsbOg@pk~q!s*RtPGk}6Q3+f&jVXL(Y zn{nXs%;9sa>^iqjgx$kd&9-IukD)nYI8iohAWE$>qM2%b{9hf-$FvQ(1sXgRNF1@z z6v}s0Ki`<`V$4S& z!b_QLmE~GwpZ!o;Os|=>R8T=%7w`ra)n*XWdH35O(^+B)^X8}IyfaNVpE{gt+KD*2 zPl0G`8?`cQ+Sq}xlx|Fn$7W89!|V%xLP@W9;zB^(uze*G#7%)%FO6}_F9jOf(00sZ4;=MyCGcrzKPJa2 z@{sRC?al*;-IPTHHq;sdjO~4$`pu+y-{y3jGvvf4eXe*STIfj?gL*f=F?(oH`qP>a zUy(mc&A76|k0m&3)#FRBZSn6CHM%>w(S1o7{Hb-luRc*Md5?FfMm_m&YnKz*UeFp> z&2dTCrxQb6KLZijelNYt>%H)ui}9fHa&)i14yEEpP`bATHQ=QaOZ|5gll7=fHD%^# z(kDb(>9>CRo4e)ev-3Oj`e*C-nue)-O$UmnuyYzC%32H4Cv_{?^G(zjro-}M{|wMO zcDJ57cWct!g=+QORA^F$c61GPXIMwC5!4nM$Nc^4h}CmNX1_HTXPkb;ks&0GlbVU_#8@>%U0BZ4Z+xR$>$eD`ydtEZ#-Vcz*H!D6)@7DX3)i&GrCJP@ zxz2l;a`&BWmz-|^M-7)SAnD>=LFZ3tIo+}7Lm8MqC5t`_UYp4zlU<43_%XM4U4}g) zI4?SqKNs4>?=MWjepAaNHPNK#ZpPvUaPeG|cxSvkXVZ;aDmAe#k)VG*)f`{Bb1viQ z)U~PRyblQy2MVUM>zKUe)NyoLwYn<@-N59*0ulYgyoG^ti>rVuLi3}+U~4yPWW zwZ^>g*1ijrb zli{PRbGV7u8XM=-x}esulP~;AJdEGJpvSo#B@S63&B5-auae}>-|i(Vi*wd80#!fS z86sfm3B7i{_8u^I`Ut{qN4s81A35O6DeUykD)6-mO675w45$gM(R)Xp6tquAEC-o# z2*81w^3p{t?)o7SgmR?Kuts%&J{Lyf1Y#}sL&QX)7w5rC>3xhT7SRo#P0wkZpZhLP zlM|fx85oyKtC=elmpe6Xkvf36CLRz!E}fUX`JESRMx+K6-TS4;uA|*nM%U=uB0rer zH1xwg$JMe)h5h8#u9hcpjjg@r(b?D+Veitj;9dBB92pCZ$svyeJ z1z-d5ed4=(R}J8>Q>e&^1NT~9NEY*TVcHyygD=z#L$<0|$1xf%ZEgD=>?{zu?ocd$ zi)arc2OV$wFde55Q>9QSkz z!Fm@~=YZ7YlqB#z-@LErA(=o89Z2F?fL@?IaCbuo*J1ts%lK%2#Ho~6dG}G?l%@gr zQWNi=9uIRF%hRPG*;pzl$AjkJT^jao1D@17Es$stQNBU-*!zfr-vAiyDs&}!zEEx9 zHmOm~kR9h#ClM6``k^iGx^ChuM3xBbncti0K$v(mlYA;Amb-|b9QcGIzARA55+mYW z+l>@>lHER}A#OV6g+rd}MqW75{hJr8UHGq6niH0+n?X>cUtev?A<)OfIW@zXEKjvB zx1rz|LzvX{--=WOES7sCjytz2tjy>}pZ+V=qXl7ki>|ugl`-aN=Dodc*S=9Lc^h`1 zj|8MOHdE#4i{lc`wUBJ*a~UQi1N4y7@1HoW$oLoocHPSlg8eS&Ue8YlYPwKuGh?k0 z^muh$1J&vnYYAo&CJu^+ocIw6L^lnkFMn|`NzfphNxHMyoeJIZ`q3QGET#hrva&w+ zjkSyk)3p|BU?w}apiHkdD=oz#s*i{%$73~7))pBGwRnar6EMxIo16zxIY&Ge@m82C zJpFbYycSXz6jBG}FAR(zKE~zXnsQuVr!~)1oePI9F47zy13Ozg3h(`t(jpZ1 zDzZU36_0pBc%e4;l7^-Y1Wv45f-B4N)lkF9x39z_5g?Ysm}0M8<2zRMmX*L~1r__* zM_{aCOz2XT09c z_2Zy07zHZyJ@sv@0$=Ef^W{oCCTSTzKx)oLT2v7heymm9%hEpZPwj8M76| zjw-%+mwwm#oW=6!&yU|U1W z4)CVd=?kFbO?AF2_m>Ig6za24ZM;}4Uv`<>SWH=Cg__k!Gl-ADro)5Eb-O1|k=jJa zm%he7JNY%ZxF%6f1&HurUL~M!Dd>F&+=%c^R*BOWXxW;x<)kmt2-v24NsDg_mY0>d z+5onkACs3MYZky*^Sd!=Lm~V&tH!0Qw}MdYb?;Hul6^tv=7@?d?!;)C;K5}7ET z>YiFiat+-9l6$DwDw#QiZ7*x11yY95FZtQ^naMyz;@jzluN(=5hws*QNwHn#B-BH@;^zmuTy4J4okSZ_r7G)6W0@|aHiU^i`BTON!}7i;Z< zVlO;*b@|Je99`B^Lt`K~AwSmRk$u6te1r+B6tp9mLzgZ7SS|=puEO2hGxKmn01KNZ z+$4%>s6DL3>KIh;gl3+ZKEW*MPIj+J+R6}nRi^)Okz{M4-a}`A#1j1ipb^s;qE6=E<4&{ z*tx+&`I12x6Z2N$U6cqoHsyo{KOk2%PHirV$#kg?PyS}5D<*LvyiZOySfcmHe|}Mh zR#lCk65H5jbQg@T=DWPz)^86GdopZbBam72p$q)Dv5JKGuJ3{T21Z|l4^;#1q^`4b=6>ZvBr z-2eM9UatA-$SZ%NT)pWd4C<8^6{i`ulPx0(q7&zjuUC}tz8DIP^G73mP)BM72)0M5 zNM)0!rPwH#&%0=1_8dI+@ucI(VfxNzSf~hHt5gGh#80pNbxHr-%=Pq!j``Bc@rzdL6>mqXbD!9iH$J+BGkKpX~j1H3qxVj00TGOvp1* zHCNb4w=3H-NE;B=7yR9SR4#(oO5_D(CBm!A_eB_g*yk{9o62QExGT+3F~u z5B(*vnm%+?6;=EB$2*CLs`DyIKDa2}#*1er66$XTI;#Y`%DH}`un_CXM;%3bSDhkJ z5?DWXCW?5{{l{D_U&?6`J|TUL-~hRvx98i(ZR*aB2b(L1?eLW7O2{|o3ELfej$Pdx zbD`Jsn6$`^mP0;)OpJbyMj>S{(8O`5eeTT?!B6UoJR~|M-FY!|L)A70mPpLpXFR4< zIt6En0V`3Z4OO1Mp>fq)X+CbZocDFT6@a?e@8+RPfY~M^p6|GR#?mB6tjqQ?6n!`aBXjn`Wi~ zf>Cp6E!NNP4tv+Ki5-^h>HrU$p!zlsgOjxm6nBE>q=t1_K6&UX0Vd$8#^w6<5H;!E zyDbvbD^|FAT>>WQ^kr34QpDHsU2mg2dk|ST7xAtr9v^fnRN>08*v>!}mRe5r!{j7N z{2m7Jrp#UQRP1BCcVTqoY%NsGmlF<1};?CfZ%YE`}#tx$kDoodZM)s+C{c=@rW$;fOR!pty$IuZf>f5K?)Hh zGqKoFo)zBbP3O0Y8_vIu>Kas%lWo$zBDS&T2FqxYYA7P836#kW`ls5C!_pLw?h%qbV!47zPg&lDe zJ{a`zMZ&aH*2f!W_8jF87(To@VwdZqpG{s0wlE^cpAn}np6v_nwZ6XR9CqgoZ?A(- zR>w@5qAoPaq6jxtZr{CzH4^yNbb2r27pXF~Z=gx1c`f;38`^HC9B!?iI>>|huoN~# zRc$T-jazG-o6t}NsAEL8EWj~H2wN#S`?``$+MXwh-mtY*DJEaIp^MK@U#VyV$auq>K(lj3scR^D-5h^#bTWFr(eFeR*OsF!f61mF0 zCj^Bj2bzYzSNa(AE>({?3)1p)4L?S3wJ0>mIqUbR`wDqKq^Go4Bf*LjTLR_*-- z*=y7jqAT`n3!fqxkM=4SZ5|M9T1%^idE}OLRtw$FUu+edL9xP z_iolc4cub4K**5vu#b-?83xJ~bG7SsENQpDOVzzQ%Ef`N@sqDCX8oiVZ}aZ3WFhoi zoetLrU}N>A^Xb2sCR9c|-n~$YyS|4NE7rz$-RwF)50>#pOLHVeQ+f%2ByKSxT6jv2{l2E%qQ(h!ow*u`LxYT-kjhTE$1Mq+#Q*1MF;*s(xHsz z%3_JETEU(=eQv8W2yVQ8R+_sftAY|VpO1?O`gxkKg8fV-8r=r%!}A;VsMRxVhE!3m zQfNopbrVgnKH%#raa^E1OGVaj(X9J5>WD^RAec54p3U#B5WU@g&KCT7_8E;op9P7f zwr9a?fzhEF`Xr(mdxIbCJ~o)@X&GO5%hx2l3X#t=l4$)JNvH|UL;xp|Pl00&;ART) z%_0*fl?s!+t=6WcdaP;(TMs=89JJNx%QJ>) zUqN*SJ_B6Lj!+eR9d>0M>-7%v?yGXy16J2VyrB~d-vH$@AhDVwwx5JTxanB3aWp;l zL$>k}Z>5OW!SKAqtWBg8*gHsEm}aCoRQKdfx>5BweS*weZol`0)xEZJS!&;^I>9ON zqu0}pCOjFPKsU!0ZYu>T5j{6nQ8*Bm=3iw;|B|A!Q<1yWHZxA68%Ao*9n=9+>GfX- zsS#ehY~$p`uX_jECYK3ynT1p9KO{Zm*Yi^a1%mW~w~@cCDl8aO_F#^j_$6Q8n%yET z*0tbd7n5OXzHz{TWU;`NVZGSi7?^IEC-7;}GpIM*ZP|t!@9#$nvsr0!`rXhrUh>5- zut!Wm`60`5=TYwQ3l`H=2kLx|H0Dg`XWvTAH1K)hC%{&l^fJ6N^YnPAuAAeAWWxHz zaH!!8SM)wY;VmFaS4J7+$})X~Q)?i1Ng@F)@9Qn2sqjD((9*Q@VSr(m(2vgF0zd-i zzOk-K^tg|#Huy3HhMnIXgPm87o!lL6CCnF520O9?ppQI}^RlWgqj1;Hg|!DZ?DY!n@4;aBKu7Lumb!5lX`_PF7Nwq0|P zQXWG};b2E#Lu=nAbNc=l5aG23jQGVDwp3e~R^)f@?4TfR5}4vx2042a`MS9TkwLak z*-&InE@3Og3IL|)Q$Y28rVQiCfg6-y(=%VYYAu`fI>VW=N^V$LTUQ+Cy4))muw0Gh zX|?~{eZ@=TwNPN~MZuBa8?N+gCy(3DeSNSNLGlyl-8${_au90|W@z}Z7Z@<8kC88L zsQc_PjM@&xm*bLlbNEVuA+Tu?%Nq5)dlp9)TOZO3e`IwCs5>P6{Fw&|eXaGG-+)i{ zXO<`hj8Cm!BG#64d3K;r+6E2tiPHKUSi-tH$BY>V`^GPvg&%j)3#@%>J7UZ{eM4^P z^jUUR>CtdG`v+E16;|4Fxt`hwc*(04?&R?a82~x*hg~ZulEluisF$Cs4Dh=H;ykq- zXT2X)5~^C2AvB}k?o{|(GWDY`FK(*Bhv$s8>tct9Z$MQAf=}!03_A8=^czhtD1Q$C z2(3Nd7#-~=y+K1owFoafu+R=6<5h71Zjt;%UhQgGU{SDi`sNW^vAjiKqB_f!r5D|% z%!Bhj)C)8&faV3sX;2K=K7T|=N9VZM^JyO-PIrHe(M)2Zh!5@Ji;uq%hOv=OHgkBD zag^eF1vH>etspty3`R6>zT*gg2%|hQ7LQ-(&}AtYXuQ0>+=c|~k<_CB?5H%o$@3$9 z0JTJWRK~Ay95Xye3n*M&7{1O^3NdZcP3EB-Web!;1*XD%y7n3z8Hp2LGm56gCi?&l zF}N*CayszwLltw-5%6W<3N$LY$Ar3GQmV28j&mh1ZIaR1 zWKR-Hkopdk>D9&el~SF(?==o@7OX12Pb4tqVk#BAMAoFR*&$VS3-hXWes5VmhA_#V zn;#D0Y3ozO4NXSSQ#kWGRDFTKdV)?G0+NATxW zVza-ea1>8xJLaf*KlD6*gX(Muf?`1mvvKSF01u51L0oT+m5-~U>~7!9!APWE=)Sot zS@cjY9ce@I25P@7caK-Q=usb35X%iUZAubLS{?-nnis*s?CK<5&BsOEN~Yjd062*l z5Hrt7$br?jIhQ!i0pTYcs5c|p#(p$}l9#8sRMj+%8Ic5hqV#!F3O0g(ii>zg;iU$RY?~7hyxu?+sN`8SfjH z!!Yi8EO)&?`+K`Pu#rj}V$D+^l}Js;tjIu7R5nVqs>dhQl()ZY;5fKy6q@{+IDos=`M^x*(b~;}wS)VLCMP_U9VJn!IVY zGb3sPpY$G%@e6(TRQcgM(((Cau$+CGX6Fr>@%%wI=O~FS`k$TD<>g3(>i{KePT}mM z?Q^A8**sSu<%)CqXTL2uZNnFSqw4oZ*Us>lIHx#Hv*fvt4kd$nOUmbc+q1Mp3ZN1! z*L#sa`1UNhA6{mO@)$cM$pH##8%p7C$ace;k|Q!vr>8o5(xyK97HeDR$Qja7YHCt% zdtf21d=Ta7hOI!UBKE2e0sv`V)`@t0jlYQK$@#BE}zEB zEWpyx1XB6m8RRQ3qS&uVi_3sM^b++YaLWE+Wf7S=bY>aa^5<(P4$wMLuz+1H1>>yh zCp4d`&Q4*XcidX@Nv(|Ee*kL|h`J?qWiql5W(aq1I>W7CQ@JMO&D*O^nn+!Dd8new z=gN@XadN)Y#YYV49Hfu>+Mf9jr%gG-6TEZg+7l_mE;!~YN_Etf5GdKY zVdA3PWj5QH-M*?39AmsJr)BhmWnAj#_KR`L#cJ2yReM*Dx>|dkBJo=f40Po5dL_MG zi()cVn7=+^=z4R1SLtiRI?qKo;$bgh`!jC}e!J+~gGY65J>_%hf?>voQuw$-`sg-9 zNW~eZ5U$fOaBU!#VC`Q1wRtvqGMAV8f1S1)eX2*^;te^jfyy+s{$8I{bBeG@8A^Ov z!$Iftp+|kW=3y(P5o`WOPFnC;4%QRjufZe=r#hvk;Lgk;wIV9IMxQ)5$eyQ}8h4K# zcN_xj+pX?)D|IIVq2%faTUDN4jq3hMvm@I$`yL5oxZFm$_2{Yau-8Az7^TrnF{fpL zuOg)rXs_&gc859E#ir9cT-Z4ufiGRtrGuDio1M|oJWs7^1hHk8mb!1{6g|%LOehA+ zyr8=r&$0aX(j9_dHE6TGL46~we(9i?@e1#)IO11BY|juN?={6XbCXKVQbt!zT9 zbdj9PW$|bY=_omir+MfJj84X$ZlRNrE3o4H3AHQ)XgGRU8}KZ|eKzP#Vk-;`W98+0 z8Y>v2zckC`vvsg_XbTQy57}nLUNKJw(?YlF*kWgBj?xYauR!(eG|?h1MEWpwh*azn zZ}7gnY)n`3Fk(^IW~2>xrCD>{5#AJqj|VQX9e8e_Bz<2m;9H8TQYV+RzJPlup1uBK zl9|1~2r&hy7abKMh2c3ZZ*DM#y zpz`k(+KxS=vv84@%0Feq@)XTxPvK@CpIJqrxy^Mj8^pfM+4#NHMOv0+jCk_E@qr?{ zRBN-EINvo<8AF4gYI)y#4>7^sBvi*CGn;*6Gg^sDSU&$8KpeKf<8@Shv;!1F-Y~|6(?|f!2PG0Td z_PL*rzJ0OGYQv1UJ%5)ctxG;VJx__f*(x#>soZi&DU{ROuveEbBR;ffi*oLg~(+Ia%^KIex$DeymlS3n@Njh%)1Iq_W(& zusTWADbj(IJI^vbXbN%%vyQzST134-A1>GCC8x|ICln>E70%@M{jkg2>rQyy0n?|c z*(vA-QQ{L$&tclFo9x-#?x+J$gK!&6pc;e$Nvw5LOP<8hl_#9Ata96v_qkE<%QWvx zW6hn(9#^!N0l;5iUm~a_1uD9!#NKHV?pkh%5^;7Vew&NU14UMW=v~-+S{M?4IfIw! zdBYJEbv9-1Bs7l1=ZJ0#N%B)3awEGL(?MVYe{#3KJs@DzOHT4I)VMkSOuS;O9c8Ue zAcLJnuCC7%v9nC(Vp|irbV4uJ){OC`*dOuGKV>T(uARJ|QJ6=0Lo2V8fF9{}$Shs^ zVz?Glvgp@05VyXoKV6OqhrxPZd)iO>!qR5SaJ}c0I^MFrbhboptYc%nRz#h?cDPH& zJz9%*p;$n@MR@kjCt@+ICop%J(YLJ)ydJ954qGfnx!Qlo3ZowrBpC@WTz`MOKgoSn z%kR=Zs#bV!&0m2$dDpzP_GsgYF%n zA~{BJ{o6A(j=-k#n7BsWGX1{JXZP^gfumZD!xRM|5IY*xK{}M8K-iI_H!L@wwdj$z zB-Yb}dThK=k+3(QgXEmvhJI3rxokx0D|P~p9XJ7~51rs-zI1K=2_Ly*dXnGMYjK4hlnYOR>m7=bm3n8-u#jEu<&T8e?_dvsWyjE`b)j~*`)JtW4 zL9DkjfDE;HG5VqpHP!S##7A)4MC^$2UZIi}(ql>Ej~VmAoM$-Nle=C$_^DiVqMJ3V z+Q%E7g0+#fL{?oesD4OKP!>%aPMAS#M!j=sn+oz#s#u1g&(fP)1oyu|JK{=*G@8y> z>(w>dEmVO#b1SGxV_vae8KEeKH(0;6yu4w!J9Sap-#p)*DEXAD{Cn#_U~SnY(@qXM z>nY3EWyOqVN~=d3>O~#DT}tpDXBslCJ2{|TU=dZ^n1-87`ms6~F|B!_7y@lKS0@{< z+^}|p-dn~7FNugkvVI45W)f|Q<(0iBY~!Ya56_kpO+1~a1FHMmjxc?9Bv$)W$G9-m z)-NiL(KEZnELV%hJvm{GW(w+38T?W&N0l`i$uXXMq5q~>*Lh;{5z&Viey6(y|Fv1Q zDP!J0#w5ly@^9Dax0N;lE$vM}i&Zi}R-93fWmm&X>7c;$3)h?;lJZ+gp0M_SiQ3G5 zA3;qWir|ya&@G2^Tk<%z3tsB++ zkO_MMhztH4BfKug`wB4dF^89T|d~8vZaMkx>ALh&%`|>n@7Lq zIN7OBBMU38Or4<;3Tuq6Y*R5jbE6cOJCZf-E4tdrn|xO7V0vnDj0HP333WMr5nq^X z5>^%U+PJ2{fu~1Q-&)P}T_SWSC(YXz-{;Wq|YzgxN2AB9>*uTBVq&DrNG z$jrtxP~M{>2(w62B;oiV$+l z)&jx~f?zC=;ni>V2`~rpLV8?%752{Ws>HYw&5qnmWMd`hP1Y%z!u{qik`{6mhnJu? zThSY|Jz=eu6^UEOT%y*R3G(c2SF&{)Jx;~lmCtc2@?GTIr)qVY^>bZ3c9b`$xV$X^ zut}%au?DMV+*}fX)&W8^l?P)<1{y?LNANK+8y8F88+qCN(e@ zjI6!U2%dG6*IG7j7&z~Ky{~3eSsA)M){Cl~aQdznqxHjnNpxdkws={D{-on5rA1o( zmzCGwdfoQAH=UxHUUc|?W4M|6HqxJID{C1;y5J#Ey1q$*^v|qKBarIHd7G=+LaKu!h-RVcYS@xSm+?&NC1oHp- zwQ&XkQ!CWEDLno0Ug3^yUwy(3mUmxJBpA#J6)vCVuj`Ur79<$o6$|P6Qc{@_b?f4% z4MUBlHQv7Db#A@X#L)S*#U%}Z9Gu*;jOiJ%`anX4 zX6!LWUZ~*v46;jiNvvsU=o4|-!PS23Jv82akHD6a0X8`h;eAX8 z-o3hd=JoCJZx;%#xrKAzx;F3NTvC1j%Og}^(n0VKjGMqz<$D43lbGrcjb&m2OMJ92?xo?%-HfLY;N<$^G{;38hdrW$)IK2V|J7D|B7SA;N- zPWu5NI3tjJm!_51Pn4GQ0fO*1{u+)3ZVg9Ug-cATGM)kno1qH`o$kCe#hf+;gZ9Pa z7MARpCE0!HQ-(Ox0*hHo?c%W$HrHMEo^XB+LyU2=tc0m65BD0q%&N>Gp0U9W#cg%N zoA9C1X-IsB@G{n^Q5vdJBg$iEh3Q`(#B|IgXJ2rb?eAf|p^h)cx}T43Wgm>Mn#e!d>*7SH!om|b8!Fh00tiMN_xBOJ&~$y@C-9ZFC>h$b z41c{QOKQ{w%UL3wU2xx*duu`A@+WNH{54xD{RN%#nFvfAyN8NDB-Px-aU3Vk|H44w zVSD^+eC&>-0Ua7NT6z;)8nhp1lMxgT*By_7i}te z&^Z;^Uv%IPimu;^ZYux&z_fKF(;JgN+r+GBpNZwkQgB(JTn4#7e60I=k0Bo5-GONP zF&Z4myGT!eE?esd*lDD%nw)k7EPg}l+0VBahp4_fI0{>VkB|M@R79G@ke@-&{7Blo zHzso9?OuA6dm44IKdq)U04-^OA$9O3R5_%H+msC@o6URi;J15m4g^v~#T9Z48=w(2 z`$%?a`knF7%TSW-y0s4m!CUr;kFh$NL zDhFFmaR0SqC2&`&$!!%C!$10)w)3eMHxzVNC{jBWFHM^EtHQje_}hf@%i~r*=FkIE zG9&vh%=djMFRli%y0-nqK0wO`SJ26^)}DP18*70U)Y=z0csV|qm$`Oyyy&OWvWTcp zo7l~uF7Ms)lhutZti+x887T$$v)E#57NJKkir_WkY{nsjC4?xCuIpVogwKB63_so0 zaf={JvdhyR$U4zKuX;X29(c>o2QFK$yb1k#YrUc@uy>`x<7n*ij)&0XYmU-0M}KzO zSo`8u)ZB-}cf{&y5ZnEA$f8tmm{g(HN@ zxX@ERoxp5U3fNL3vE6p#o8piu4sY10pAV2H2gk2RmD03XHVZ=8{9hL&PuIn!;JEbCnm?ryQLfsy>+($eqJ4 zj^keL|I{eFdZPS5U>z!Al&#!g=~fWwh5E1dIM-EsH}~{G7~)SZ_1xlGcIV|?#IC`T zLL<9}F%6y86n}>KT)Mzfe2kORgEn{T8^6VcQ%bWxgW%IBjS$5VC*Zpce2L&_IG{|W z>tbD?H)dJ$x*N{-D%7^kW8l{exdQae@3)b}1|wQV!%dj6{@vLQ zAFW~$Ukq)+*Jr!P4tnx@7>ITvPFQ#|z9L`--Iq%R^_ovD!+_I?Y<0TWU+`0U&JWw~ zYR4J6#)FuPOYQp_4rt0pp0{>*im%Qi7>xPUEi?&#A<{dilUtTol39Fbq&Bjl33tE&9G{gvNY4`7EPycxG?(K9f!w9U4pi3HQfb5ju z)DzzRhvY(^)d#XA4s<2!>K3#xMHPT(F#wR8SsgPsP-6aJfnL88V#3-f|k!-LM&tzT+3g{fV9LKq#15bw}U% zfT!_hT|VcL$7tg{M0rNC=s2#p?Bn|Fv8-ykaUz|oN~0TyvZM;S)*M;}+Qs;D%PXX3 zFWI!KT7)P>a|E~FNS3oMp2<#Y!yl}B?aOH+INQ#Cko%9;Ci`c-j$~7cE{+7v0?0q~ zXC?OS9kVTxCu?g=+H(A0t8C0-T&@#$#(#1=6l{M=(j0%ZRP$7Fk=flDYm_IRvSDNi z-;UcbRb>(T83bV|T;@u&`Szr>IS$S<(Yfe9ee&^-G3y`KU4q*AV7KMMoiVwtT=b2C z-pRD$Dk|;s)5?Jp2ynY*(vtm%eoq##O!z+dgM?FIlgL^UpegFh>B((5DhdkM$4Z}3*}h^PlZ@i_O_<$s6HA-jPwe=hYR)V~*`|FYWS^ndyX zTyr_@{?Bj02z&7VdW!NNeT&DKlgEEi&bH<>yUuL20kTy8$+iBsZ}c!;i2t9M_j|5w zVFF&HJ$b9!d@i1wR{Y(bg{}wp=Pbz??HKSQ`f3Db{Klk(5 z8T_9-yW;_Mw?6&$i^9Xcee-9UuVt_qjT3R4H@Kizv0HQ;7J-^tURa3rnHNMOhVfJO zXVU4m$8`yi=P94QQWNk*DmjzCS=oPAUAasJw>kSk#I^sAgF4X;gQ<5XTE2-%LMMYv z<%!1)eYfif1GxBvitFP~H_PehPlmg;{~x%vlu}5A(fqF}jQ`<#OSD(}(|>_cU@D7d zwj20{ts7&VRBJ=q!mX>FCx?{7PauH3jOPZ_dp-R`IcCA{d}!Y4&xanA7gqhpLF_s`oitzxapfQ zognx685U$NcEP@^knldSQ?5I|ly8*v*>!2Jc~YYd4qpKBNmrrur*94(XW=%GMsAi6 zT>s-Q_LJOt+Qxg|pOjV>=AWM@2KhW7m<8)={-NJZ8*&TO+e%3#aG__liugJ;&Y-KH zdHyW2GIHdC`}z-5e)H7>cvxrt9+t!!BK8q>SRK6R?88MrB5LB=R&W2dbNX7oPE6AR zj@cT2Z-M2P7{L0U_pL$?*w5c*_Q|k5d6Hr>y-#Gb@h-u&!M0H$5FqhC6n9GkH>I5f zAS;2lkq(JVZ=}e*58>za_4oXq&Z)wYwsil0{L#?SHIz7{m!EwZq+pX{1aKW}%-6yM zT}_WVsV@97^t6Oyf?g2rUm`D_vDw|?{YlW2O{|OlqcR{vDuXj*Ta|$%$h)=txg$h~ z_=!naisK$T_3Eqk_W6<(^cu>Gb7mk^4?7@DWb0ZYkD+{hk*fg6LF&bHt|Z@pgjkGJ zR4`91lAzYk?ZwX90USmDqX7xi*O?BJ>_CuoEpUZAFx#lE>pFVg;ARxRc|U_M zhw^JnTtsgt$oT&VGo`iont9N21-gb}glxoXhKQjxV5`<&)g;D~^Bqj^a|O%8I!y=M zwJh+0*US&^hGqZhB*oZSgzwq~mQwmutldTkkN<8p((f>aY9!p$HH4e9=#M;u@pu3G zAIDB#wY{`43LZh`g89+j%kmPO-r@-LboIwV)0zolUQ+;D590&xB@+V1A~Y9>{4Z3=esDJ_){@ z2wQ-eBa|ud2<$i4jV*zpG<$Cs+1ECwAfbGCORM(&Cx!b#_ThQ=01%*N5i0D$c+>LL zC_mGj2L3zA&uwHF*h|-mQ*O5j;O5aLtD)(A%Hx>5cC+qT=O8+=@)-;|SYDYq;#uwKtXb`LTYb?s%$RDJ+6>&&fz zjb`q@?>iwvaRWCD$e#d)G}`#Pq7s`I@>mahZEet;v8j4@dz+k(^qxC*j&2X4E-{}mx4QR))l@SqfIlA+b1|-(RDgxy(jQ952*ezudwS*z!FIDun&7lcSxqc!8wv^ zur68ORmEq~-@UdFyJ3q6Jcft>O9{)MB>k8WMj~6$0|E0(m?)6a`t`i%Lepg#dafNe zAL(;n?HhcattahCP`B?jW_AFlWI=DGhkMDF(1kXO9c5AvdSAUc6hbca^`78j`;BPv zS1zN^#K`7`o59v4rbD7qZ)vKlsoGC;{Vp^2B&3p>$s_!zH0fhG6gu=&zEiL?(QIUL z;1fZCF=7VJg|t#NsThgE;3_`yT&ghWqq;Up(+js6X{H+iQp{s`9~8H=CG39d;Ce)o z7Od;Js|z9OqgIdFi;O?N(+>nUSE=W=vj`afTDCJ6RVYR-e4hOpNb;n_ZemJ-)Oi4M+^MMn-Z zWJ%JzaU)JJi^}qVKJk}XM2?dgFVpJxj>om*N>diQH&y-S+vS;=|uP%nRFKhx{zndOlf0S?x$gYG3J z46!igvVIE7wg&X6RvVT`MYO`l(qb1?wHS}$bKS5D%1fzW<@+ACxd)6!0MbfcTls#= zTa-s$`n7TkOuj`}(>f7>3Csd42;LMe1qgV>b^d96R6gK*#YKvuYwcbrb#sU^3K8|T ze(%KRW3r#8e)}>w$hs@ihbM~FH{9nPpWsPSR~FW09}nK+YT3sEWXC0KqPfE!J2YR} z>-d*k9lL2{qj!F0_MqD;9`T0d4{MLF!3x>A5ccIG+5@LWL$am-{#~p?2(}_x>f!Pn zXqqEX5S4CmNnY>01|UD8kogZVAVdr)cpv{Pc>kw#jnrobSHwA`RgpzF_P}t11pf?2 zaHrKNQ&wa079@02l7%I^5n2-uYKGFu=wHVTtpr~&uJ9mn>!77l;!%8lojo|(#v2QQ zLDEUBuLI}G-tCMUlRd=4O*m%!ShQ9OW)_R_ptsWEtH7_Dmu-~l?~x4Ll$9YGP+(Yl z?c1cx^w$?;mocy#kvE9sH;?=Vf;WHXm3SsUN#rJ_bVS(iqhMn@3Ze`I13LbAJFU=c zmxLgqNp}TM73#Q{9H)w=aA_6N=uVXLgg`SNYED{=!c*dEIH@4(oJ=M47+ck2Op%4{ zNtN@q2_Cr`xK_LVWJUTW>+4YE3&wR#-kF&WTT5#3kyd`xZU74VEERS>F*v~vdpx+}iKHl( z8)$!2`3M_PU#chnyj+aWyOf3tgF+K*wZ>_pUMEzpF=0!5{zgrm*sqIh$sv*)4fE(6 zR9LEq*gPZM`g0ch+f|VL@K9s$$cAUzO~`Ud>%d@RKK^Pomvuw7i1ePoqenwwzHVBmqcjruGU?8-1GhE#gAXv48>c7$%}c3#6R38ZzJC~Mi$4`oM>ipW;VlSY zuJChH zv7*J8+wE8m>;TAH@fE$hyMPq*&^cTWkWHbo9`c zqzrCm4AK96#%QBTYyF^OTiC%*tumq(hZs8k^C2=qbfl4%x^I$wl46_+U~~pcc*|n`soeD#7>VBN|lB zr+-59pps`Y@*&vWBZw#20NJ}R+P=4zKOm>`S#0lx5U7lVO*QJ_Cx!RKaJUV{Z&E1z zpWH`laa{N@^KDdOYpC`d?lQs#B!YrKO7cH$)8m@Nba}#umkIG?piA`0KoHppg-@{N zqP4RF-ud(Tx(kRvLJ`shj5S0R13B~TL=uN;X34ydr6~C6T6CzY%a3&!B%Joa=v_;W zJYkB6eIW^&Ls=$3HZTT?nZ_vYTb@n!A=4V?t-*o|VS;k9Yicoc!EAIIQ5-L~z*_X( zd`Oy|f8+v+)a0&G2*_CU89TB+#$0!sVMNXbO2^aLz60dTPTlXDl&zKfm7($Hrhyq zt3f`yvmmCez+x#M$VcJFWA1>k&0Tr&j%Df`#xP8)VwlWG>$AwU)nx~Oon`&>KxfWQ zK8oKC*UKzNMm3}=!Z(?jKhz)YC¬jm;SdKzJ3>>xQ2uueP-R;Oth`H@Tup-|Q| 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 Nz2&jP7>hGM{|{8ked+)J literal 0 HcmV?d00001 diff --git a/docs/static/img/web-subscribe.png b/docs/static/img/web-subscribe.png index f60a865844580d11258c9a6ac8d4e6cc9d727fa4..50db6763e427eb94d848d9f9deb6958cceb8d1b7 100644 GIT binary patch literal 300865 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Ü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 b!MXe!~=o#KPPyFt~ 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∈=)zMuGKG~Ey!`!A!p3$e9Z9FYP!9# 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

HT=0ZO(Fyy95lq3%0uhR-EXz^#n;W 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 uuPV-8pGrs}PL<;c$ diff --git a/docs/subscribe/desktop.md b/docs/subscribe/desktop.md new file mode 100644 index 000000000..652845436 --- /dev/null +++ b/docs/subscribe/desktop.md @@ -0,0 +1,12 @@ +# Using the web app as an installed PWA + +While ntfy doesn't have a built desktop app, it is built as a progressive web app and can be installed. + +This is supported on Chrome and Edge on desktop, as well as Chrome on Android and Safari on iOS. +[caniuse reference](https://caniuse.com/web-app-manifest) + + diff --git a/docs/subscribe/web.md b/docs/subscribe/web.md index 5c2672f07..a563f8b0e 100644 --- a/docs/subscribe/web.md +++ b/docs/subscribe/web.md @@ -1,7 +1,41 @@ # Subscribe from the Web UI -You can use the Web UI to subscribe to topics as well. If you do, and you keep the website open, **notifications will -pop up as desktop notifications**. Simply type in the topic name and click the *Subscribe* button. The browser will -keep a connection open and listen for incoming notifications. + +You can use the Web UI to subscribe to topics as well. Simply type in the topic name and click the *Subscribe* button. + +While subscribing, you have the option to enable desktop notifications, as well as background notifications. When you +enable them for the first time, you will be prompted to allow notifications on your browser. + +- **Sound only** + + If you don't enable browser notifications, a sound will play when a new notification comes in, and the tab title + will show the number of new notifications. + +- **Browser Notifications** + + This requires an active ntfy tab to be open to receive notifications. These are typically instantaneous, and will + appear as a system notification. If you don't see these, check that your browser is allowed to show notifications + (for example in System Settings on macOS). + + If you don't want to enable background notifications, pinning the ntfy tab on your browser is a good solution to leave + it running. + +- **Background Notifications** + + This uses the [Web Push API](https://caniuse.com/push-api). You don't need an active ntfy tab open, but in some + cases you may need to keep your browser open. + + + | Browser | Platform | Browser Running | Browser Not Running | Notes | + | ------- | -------- | --------------- | ------------------- | ------------------------------------------------------- | + | Chrome | Desktop | ✅ | ❌ | | + | Firefox | Desktop | ✅ | ❌ | | + | Edge | Desktop | ✅ | ❌ | | + | Opera | Desktop | ✅ | ❌ | | + | Safari | Desktop | ✅ | ✅ | requires Safari 16.1, macOS 13 Ventura | + | Chrome | Android | ✅ | ✅ | | + | Safari | iOS | ⚠️ | ⚠️ | requires iOS 16.4, only when app is added to homescreen | + + (Browsers below 1% usage not shown, look at the Push API link for more info) To learn how to send messages, check out the [publishing page](../publish.md). @@ -11,17 +45,16 @@ To learn how to send messages, check out the [publishing page](../publish.md). -To keep receiving desktop notifications from ntfy, you need to keep the website open. What I do, and what I highly recommend, -is to pin the tab so that it's always open, but sort of out of the way: - -
- ![pinned](../static/img/web-pin.png){ width=500 } -
Pin web app to move it out of the way
-
- If topic reservations are enabled, you can claim ownership over topics and define access to it:
+ +You can set your default choice for new subscriptions (for example synced account subscriptions and the default toggle state) +in the settings page: + +
+ +
diff --git a/mkdocs.yml b/mkdocs.yml index 4a7db3665..76d39299c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -82,6 +82,7 @@ nav: - "Subscribing": - "From your phone": subscribe/phone.md - "From the Web app": subscribe/web.md + - "From the Desktop": subscribe/desktop.md - "From the CLI": subscribe/cli.md - "Using the API": subscribe/api.md - "Self-hosting": diff --git a/server/config.go b/server/config.go index f7c1813dc..d5c876722 100644 --- a/server/config.go +++ b/server/config.go @@ -233,8 +233,10 @@ func NewConfig() *Config { EnableReservations: false, AccessControlAllowOrigin: "*", Version: "", + WebPushEnabled: false, WebPushPrivateKey: "", WebPushPublicKey: "", WebPushSubscriptionsFile: "", + WebPushEmailAddress: "", } } diff --git a/server/server.go b/server/server.go index cba742801..72e9c19ad 100644 --- a/server/server.go +++ b/server/server.go @@ -77,7 +77,7 @@ var ( rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) - webPushPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/web-push$`) + webPushSubscribePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/web-push/subscribe$`) webPushUnsubscribePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/web-push/unsubscribe$`) publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}/(publish|send|trigger)$`) @@ -535,7 +535,7 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeWS))(w, r, v) } else if r.Method == http.MethodGet && authPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleTopicAuth))(w, r, v) - } else if r.Method == http.MethodPost && webPushPathRegex.MatchString(r.URL.Path) { + } else if r.Method == http.MethodPost && webPushSubscribePathRegex.MatchString(r.URL.Path) { return s.limitRequestsWithTopic(s.authorizeTopicRead(s.ensureWebPushEnabled(s.handleTopicWebPushSubscribe)))(w, r, v) } else if r.Method == http.MethodPost && webPushUnsubscribePathRegex.MatchString(r.URL.Path) { return s.limitRequestsWithTopic(s.authorizeTopicRead(s.ensureWebPushEnabled(s.handleTopicWebPushUnsubscribe)))(w, r, v) @@ -985,7 +985,6 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { return } - failedCount := 0 totalCount := len(subscriptions) wg := &sync.WaitGroup{} @@ -1029,12 +1028,11 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { jsonPayload, err := json.Marshal(payload) if err != nil { - failedCount++ logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") return } - _, err = webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ + resp, err := webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ Subscriber: s.config.WebPushEmailAddress, VAPIDPublicKey: s.config.WebPushPublicKey, VAPIDPrivateKey: s.config.WebPushPrivateKey, @@ -1044,25 +1042,28 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { }) if err != nil { - failedCount++ logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") - // probably need to handle different codes differently, - // but for now just expire the subscription on any error err = s.webPushSubscriptionStore.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) if err != nil { logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") } + + return } - }(i, xi) - } - ctx = log.Context{"topic": m.Topic, "message_id": m.ID, "failed_count": failedCount, "total_count": totalCount} + // May want to handle at least 429 differently, but for now treat all errors the same + if !(200 <= resp.StatusCode && resp.StatusCode <= 299) { + logvm(v, m).Fields(ctx).Field("response", resp).Debug("Unable to publish web push message") - if failedCount > 0 { - logvm(v, m).Fields(ctx).Warn("Unable to publish web push messages to %d of %d endpoints", failedCount, totalCount) - } else { - logvm(v, m).Fields(ctx).Debug("Published %d web push messages successfully", totalCount) + err = s.webPushSubscriptionStore.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") + } + + return + } + }(i, xi) } } diff --git a/server/server.yml b/server/server.yml index ecb899947..e747e264d 100644 --- a/server/server.yml +++ b/server/server.yml @@ -40,7 +40,7 @@ # Enable web push # -# Run ntfy web-push-keys to generate the keys +# Run ntfy web-push generate-keys to generate the keys # # web-push-enabled: true # web-push-public-key: "" diff --git a/server/server_test.go b/server/server_test.go index b9f2912d4..f264d0966 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -22,6 +22,7 @@ import ( "testing" "time" + "github.com/SherClockHolmes/webpush-go" "github.com/stretchr/testify/require" "heckel.io/ntfy/log" "heckel.io/ntfy/util" @@ -2604,14 +2605,35 @@ func newTestConfig(t *testing.T) *Config { return conf } -func newTestConfigWithAuthFile(t *testing.T) *Config { - conf := newTestConfig(t) +func configureAuth(t *testing.T, conf *Config) *Config { conf.AuthFile = filepath.Join(t.TempDir(), "user.db") conf.AuthStartupQueries = "pragma journal_mode = WAL; pragma synchronous = normal; pragma temp_store = memory;" conf.AuthBcryptCost = bcrypt.MinCost // This speeds up tests a lot return conf } +func newTestConfigWithAuthFile(t *testing.T) *Config { + conf := newTestConfig(t) + conf = configureAuth(t, conf) + return conf +} + +func newTestConfigWithWebPush(t *testing.T) *Config { + conf := newTestConfig(t) + + privateKey, publicKey, err := webpush.GenerateVAPIDKeys() + if err != nil { + t.Fatal(err) + } + + conf.WebPushEnabled = true + conf.WebPushSubscriptionsFile = filepath.Join(t.TempDir(), "subscriptions.db") + conf.WebPushEmailAddress = "testing@example.com" + conf.WebPushPrivateKey = privateKey + conf.WebPushPublicKey = publicKey + return conf +} + func newTestServer(t *testing.T, config *Config) *Server { server, err := New(config) if err != nil { diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go new file mode 100644 index 000000000..80f37e3ed --- /dev/null +++ b/server/server_web_push_test.go @@ -0,0 +1,212 @@ +package server + +import ( + "fmt" + "io" + "net/http" + "net/http/httptest" + "sync/atomic" + "testing" + + "github.com/SherClockHolmes/webpush-go" + "github.com/stretchr/testify/require" + "heckel.io/ntfy/user" + "heckel.io/ntfy/util" +) + +var ( + webPushSubscribePayloadExample = `{ + "browser_subscription":{ + "endpoint": "https://example.com/webpush", + "keys": { + "p256dh": "p256dh-key", + "auth": "auth-key" + } + } + }` +) + +func TestServer_WebPush_GetConfig(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + response := request(t, s, "GET", "/v1/web-push-config", "", nil) + require.Equal(t, 200, response.Code) + require.Equal(t, fmt.Sprintf(`{"public_key":"%s"}`, s.config.WebPushPublicKey)+"\n", response.Body.String()) +} + +func TestServer_WebPush_TopicSubscribe(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, nil) + require.Equal(t, 200, response.Code) + require.Equal(t, `{"success":true}`+"\n", response.Body.String()) + + subs, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic("test-topic") + if err != nil { + t.Fatal(err) + } + + require.Len(t, subs, 1) + require.Equal(t, subs[0].BrowserSubscription.Endpoint, "https://example.com/webpush") + require.Equal(t, subs[0].BrowserSubscription.Keys.P256dh, "p256dh-key") + require.Equal(t, subs[0].BrowserSubscription.Keys.Auth, "auth-key") + require.Equal(t, subs[0].Username, "") +} + +func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { + config := configureAuth(t, newTestConfigWithWebPush(t)) + config.AuthDefault = user.PermissionDenyAll + s := newTestServer(t, config) + + require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) + require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) + + response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, map[string]string{ + "Authorization": util.BasicAuth("ben", "ben"), + }) + + require.Equal(t, 200, response.Code) + require.Equal(t, `{"success":true}`+"\n", response.Body.String()) + + subs, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic("test-topic") + if err != nil { + t.Fatal(err) + } + + require.Len(t, subs, 1) + require.Equal(t, subs[0].Username, "ben") +} + +func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { + config := configureAuth(t, newTestConfigWithWebPush(t)) + config.AuthDefault = user.PermissionDenyAll + s := newTestServer(t, config) + + response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, nil) + require.Equal(t, 403, response.Code) + + requireSubscriptionCount(t, s, "test-topic", 0) +} + +func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, nil) + require.Equal(t, 200, response.Code) + require.Equal(t, `{"success":true}`+"\n", response.Body.String()) + + requireSubscriptionCount(t, s, "test-topic", 1) + + unsubscribe := `{"endpoint":"https://example.com/webpush"}` + response = request(t, s, "POST", "/test-topic/web-push/unsubscribe", unsubscribe, nil) + require.Equal(t, 200, response.Code) + require.Equal(t, `{"success":true}`+"\n", response.Body.String()) + + requireSubscriptionCount(t, s, "test-topic", 0) +} + +func TestServer_WebPush_DeleteAccountUnsubscribe(t *testing.T) { + config := configureAuth(t, newTestConfigWithWebPush(t)) + config.AuthDefault = user.PermissionDenyAll + s := newTestServer(t, config) + + require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) + require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) + + response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, map[string]string{ + "Authorization": util.BasicAuth("ben", "ben"), + }) + + require.Equal(t, 200, response.Code) + require.Equal(t, `{"success":true}`+"\n", response.Body.String()) + + requireSubscriptionCount(t, s, "test-topic", 1) + + request(t, s, "DELETE", "/v1/account", `{"password":"ben"}`, map[string]string{ + "Authorization": util.BasicAuth("ben", "ben"), + }) + // should've been deleted with the account + requireSubscriptionCount(t, s, "test-topic", 0) +} + +func TestServer_WebPush_Publish(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + var received atomic.Bool + + upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + _, err := io.ReadAll(r.Body) + require.Nil(t, err) + require.Equal(t, "/push-receive", r.URL.Path) + require.Equal(t, "high", r.Header.Get("Urgency")) + require.Equal(t, "", r.Header.Get("Topic")) + received.Store(true) + })) + defer upstreamServer.Close() + + addSubscription(t, s, "test-topic", upstreamServer.URL+"/push-receive") + + request(t, s, "PUT", "/test-topic", "web push test", nil) + + waitFor(t, func() bool { + return received.Load() + }) +} + +func TestServer_WebPush_PublishExpire(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + var received atomic.Bool + + upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + _, err := io.ReadAll(r.Body) + require.Nil(t, err) + // Gone + w.WriteHeader(410) + w.Write([]byte(``)) + received.Store(true) + })) + defer upstreamServer.Close() + + addSubscription(t, s, "test-topic", upstreamServer.URL+"/push-receive") + addSubscription(t, s, "test-topic-abc", upstreamServer.URL+"/push-receive") + + requireSubscriptionCount(t, s, "test-topic", 1) + requireSubscriptionCount(t, s, "test-topic-abc", 1) + + request(t, s, "PUT", "/test-topic", "web push test", nil) + + waitFor(t, func() bool { + return received.Load() + }) + + // Receiving the 410 should've caused the publisher to expire all subscriptions on the endpoint + + requireSubscriptionCount(t, s, "test-topic", 0) + requireSubscriptionCount(t, s, "test-topic-abc", 0) +} + +func addSubscription(t *testing.T, s *Server, topic string, url string) { + err := s.webPushSubscriptionStore.AddSubscription("test-topic", "", webPushSubscribePayload{ + BrowserSubscription: webpush.Subscription{ + Endpoint: url, + Keys: webpush.Keys{ + // connected to a local test VAPID key, not a leak! + Auth: "kSC3T8aN1JCQxxPdrFLrZg", + P256dh: "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE", + }, + }, + }) + if err != nil { + t.Fatal(err) + } +} + +func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { + subs, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic("test-topic") + if err != nil { + t.Fatal(err) + } + + require.Len(t, subs, expectedLength) +} diff --git a/web/src/app/utils.js b/web/src/app/utils.js index 0f879373c..bf09bef37 100644 --- a/web/src/app/utils.js +++ b/web/src/app/utils.js @@ -20,7 +20,7 @@ export const topicUrlJson = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/jso export const topicUrlJsonPoll = (baseUrl, topic) => `${topicUrlJson(baseUrl, topic)}?poll=1`; export const topicUrlJsonPollWithSince = (baseUrl, topic, since) => `${topicUrlJson(baseUrl, topic)}?poll=1&since=${since}`; export const topicUrlAuth = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/auth`; -export const topicUrlWebPushSubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push`; +export const topicUrlWebPushSubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/subscribe`; export const topicUrlWebPushUnsubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/unsubscribe`; export const topicShortUrl = (baseUrl, topic) => shortUrl(topicUrl(baseUrl, topic)); export const webPushConfigUrl = (baseUrl) => `${baseUrl}/v1/web-push-config`; From f94bb1aa3034e0530dee8ea15f7addcc2d1f48b1 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Mon, 29 May 2023 22:09:40 +0200 Subject: [PATCH 03/74] Improve web push docs --- README.md | 1 + docs/config.md | 49 +++++++++++++++++++++++++++++++++++++++ docs/subscribe/desktop.md | 16 +++++++++---- docs/subscribe/web.md | 46 ++++++++++++++++++------------------ 4 files changed, 86 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index cebf55be0..c8f79c88b 100644 --- a/README.md +++ b/README.md @@ -178,3 +178,4 @@ Third party libraries and resources: * [Regex for auto-linking](https://github.com/bryanwoods/autolink-js) (MIT) is used to highlight links (the library is not used) * [Statically linking go-sqlite3](https://www.arp242.net/static-go.html) * [Linked tabs in mkdocs](https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/#linked-tabs) +* [webpush-go](https://github.com/SherClockHolmes/webpush-go) (MIT) is used to send web push notifications diff --git a/docs/config.md b/docs/config.md index 3aeab6140..7e1ef6c6e 100644 --- a/docs/config.md +++ b/docs/config.md @@ -789,6 +789,55 @@ Note that the self-hosted server literally sends the message `New message` for e may be `Some other message`. This is so that if iOS cannot talk to the self-hosted server (in time, or at all), it'll show `New message` as a popup. +## Web Push notifications +[Web Push](https://developer.mozilla.org/en-US/docs/Web/API/Push_API) ([RFC8030](https://datatracker.ietf.org/doc/html/rfc8030)) +is supported, but needs a little configuration to enable it. Since there is no central server (other than the browser's push endpoint), +you have to configure your own [VAPID](https://datatracker.ietf.org/doc/html/draft-thomson-webpush-vapid) keys. These identify the publisher, +and are used to encrypt the messages before sending them to the push endpoint. + +Limitations: + +- Like foreground browser notifications, background push notifications require the web app to be served over HTTPS. A _valid_ + certificate is required, as service workers will not run on origins with untrusted certificates. + +- Web Push is only supported for the same server. You cannot use subscribe to web push on a topic on another server. This + is due to a limitation of the Push API, which doesn't allow multiple push servers for the same origin. + +To configure VAPID keys, first generate them: + +```sh +$ ntfy web-push generate-keys +Keys generated. + +VAPID Public Key: +AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 + +VAPID Private Key: +AA2BB1234567890abcdefzxcvbnm1234567890 +``` + +Then copy the generated values into your `server.yml` or use the corresponding environment variables or command line arguments: + +```yaml +web-push-enabled: true +web-push-public-key: AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 +web-push-private-key: AA2BB1234567890abcdefzxcvbnm1234567890 +web-push-subscriptions-file: /var/cache/ntfy/subscriptions.db +web-push-email-address: sysadmin@example.com + +# don't forget to set the required base-url for web push notifications +base-url: https://ntfy.example.com +``` + +The `web-push-subscriptions-file` is used to store the push subscriptions. Subscriptions do not ever expire automatically, unless the push +gateway returns an error (e.g. 410 Gone when a user has unsubscribed). + +The web app refreshes subscriptions on start and regularly on an interval, but this file should be persisted across restarts. If the subscription +file is deleted or lost, any web apps that aren't open will not receive new web push notifications until you open then. + +Changing your public/private keypair is NOT recommended. Browsers only allow one server identity (public key) per origin, and +if you change them the clients will not be able to subscribe via web push until the user manually clears the notification permission. + ## Tiers ntfy supports associating users to pre-defined tiers. Tiers can be used to grant users higher limits, such as daily message limits, attachment size, or make it possible for users to reserve topics. If [payments are enabled](#payments), diff --git a/docs/subscribe/desktop.md b/docs/subscribe/desktop.md index 652845436..b13d11a45 100644 --- a/docs/subscribe/desktop.md +++ b/docs/subscribe/desktop.md @@ -1,9 +1,17 @@ -# Using the web app as an installed PWA +# Using the web app as an installed web app + +While ntfy doesn't have a native desktop app, it is built as a [progressive web app](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) +and thus can be installed on both desktop and mobile. + +This gives it its own launcher (e.g. shortcut on Windows, app on macOS, launcher shortcut on Linux) own window, +push notifications, and an app badge with the unread notification count. + +To receive background notifications, either the browser or the installed web app must be open. + +Web app installation is supported on Chrome and Edge on desktop, as well as Chrome on Android and Safari on iOS. +Look at the [compatibility table](https://caniuse.com/web-app-manifest) for more info. -While ntfy doesn't have a built desktop app, it is built as a progressive web app and can be installed. -This is supported on Chrome and Edge on desktop, as well as Chrome on Android and Safari on iOS. -[caniuse reference](https://caniuse.com/web-app-manifest)
diff --git a/docs/subscribe/web.md b/docs/subscribe/web.md index a563f8b0e..e073bec91 100644 --- a/docs/subscribe/web.md +++ b/docs/subscribe/web.md @@ -7,35 +7,37 @@ enable them for the first time, you will be prompted to allow notifications on y - **Sound only** - If you don't enable browser notifications, a sound will play when a new notification comes in, and the tab title - will show the number of new notifications. + If you don't enable browser notifications, a sound will play when a new notification comes in, and the tab title + will show the number of new notifications. - **Browser Notifications** - This requires an active ntfy tab to be open to receive notifications. These are typically instantaneous, and will - appear as a system notification. If you don't see these, check that your browser is allowed to show notifications - (for example in System Settings on macOS). + This requires an active ntfy tab to be open to receive notifications. These are typically instantaneous, and will + appear as a system notification. If you don't see these, check that your browser is allowed to show notifications + (for example in System Settings on macOS). - If you don't want to enable background notifications, pinning the ntfy tab on your browser is a good solution to leave - it running. + If you don't want to enable background notifications, pinning the ntfy tab on your browser is a good solution to leave + it running. - **Background Notifications** - This uses the [Web Push API](https://caniuse.com/push-api). You don't need an active ntfy tab open, but in some - cases you may need to keep your browser open. - - - | Browser | Platform | Browser Running | Browser Not Running | Notes | - | ------- | -------- | --------------- | ------------------- | ------------------------------------------------------- | - | Chrome | Desktop | ✅ | ❌ | | - | Firefox | Desktop | ✅ | ❌ | | - | Edge | Desktop | ✅ | ❌ | | - | Opera | Desktop | ✅ | ❌ | | - | Safari | Desktop | ✅ | ✅ | requires Safari 16.1, macOS 13 Ventura | - | Chrome | Android | ✅ | ✅ | | - | Safari | iOS | ⚠️ | ⚠️ | requires iOS 16.4, only when app is added to homescreen | - - (Browsers below 1% usage not shown, look at the Push API link for more info) + This uses the [Web Push API](https://caniuse.com/push-api). You don't need an active ntfy tab open, but in some + cases you may need to keep your browser open. + + Background notifications are only supported on the same server hosting the web app. You cannot use another server, + but can instead subscribe on the other server itself. + + | Browser | Platform | Browser Running | Browser Not Running | Restrictions | + | ------- | -------- | --------------- | ------------------- | ------------------------------------------------------- | + | Chrome | Desktop | ✅ | ❌ | | + | Firefox | Desktop | ✅ | ❌ | | + | Edge | Desktop | ✅ | ❌ | | + | Opera | Desktop | ✅ | ❌ | | + | Safari | Desktop | ✅ | ✅ | requires Safari 16.1, macOS 13 Ventura | + | Chrome | Android | ✅ | ✅ | | + | Safari | iOS | ⚠️ | ⚠️ | requires iOS 16.4, only when app is added to homescreen | + + (Browsers below 1% usage not shown, look at the [Push API](https://caniuse.com/push-api) for more info) To learn how to send messages, check out the [publishing page](../publish.md). From 7b23158e0a2580f67aee6c98281917abbcedeae4 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Tue, 30 May 2023 13:50:24 -0400 Subject: [PATCH 04/74] Cosmetic changes --- server/message_cache.go | 4 +-- server/server.go | 17 ++++-------- server/web_push.go | 59 +++++++++++++++++++---------------------- 3 files changed, 35 insertions(+), 45 deletions(-) diff --git a/server/message_cache.go b/server/message_cache.go index 1d7302afb..140271fef 100644 --- a/server/message_cache.go +++ b/server/message_cache.go @@ -270,7 +270,7 @@ func newSqliteCache(filename, startupQueries string, cacheDuration time.Duration if err != nil { return nil, err } - if err := setupDB(db, startupQueries, cacheDuration); err != nil { + if err := setupMessagesDB(db, startupQueries, cacheDuration); err != nil { return nil, err } var queue *util.BatchingQueue[*message] @@ -749,7 +749,7 @@ func (c *messageCache) Close() error { return c.db.Close() } -func setupDB(db *sql.DB, startupQueries string, cacheDuration time.Duration) error { +func setupMessagesDB(db *sql.DB, startupQueries string, cacheDuration time.Duration) error { // Run startup queries if startupQueries != "" { if _, err := db.Exec(startupQueries); err != nil { diff --git a/server/server.go b/server/server.go index 72e9c19ad..ebb8b70e1 100644 --- a/server/server.go +++ b/server/server.go @@ -55,7 +55,7 @@ type Server struct { messagesHistory []int64 // Last n values of the messages counter, used to determine rate userManager *user.Manager // Might be nil! messageCache *messageCache // Database that stores the messages - webPushSubscriptionStore *webPushSubscriptionStore // Database that stores web push subscriptions + webPushSubscriptionStore *webPushStore // Database that stores web push subscriptions fileCache *fileCache // File system based cache that stores attachments stripe stripeAPI // Stripe API, can be replaced with a mock priceCache *util.LookupCache[map[string]int64] // Stripe price ID -> price as cents (USD implied!) @@ -227,12 +227,12 @@ func createMessageCache(conf *Config) (*messageCache, error) { return newMemCache() } -func createWebPushSubscriptionStore(conf *Config) (*webPushSubscriptionStore, error) { +func createWebPushSubscriptionStore(conf *Config) (*webPushStore, error) { if !conf.WebPushEnabled { return nil, nil } - return newWebPushSubscriptionStore(conf.WebPushSubscriptionsFile) + return newWebPushStore(conf.WebPushSubscriptionsFile) } // Run executes the main server. It listens on HTTP (+ HTTPS, if configured), and starts @@ -979,18 +979,12 @@ func (s *Server) forwardPollRequest(v *visitor, m *message) { func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { subscriptions, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic(m.Topic) - if err != nil { logvm(v, m).Err(err).Warn("Unable to publish web push messages") return } - - totalCount := len(subscriptions) - - wg := &sync.WaitGroup{} - wg.Add(totalCount) - - ctx := log.Context{"topic": m.Topic, "message_id": m.ID, "total_count": totalCount} + + ctx := log.Context{"topic": m.Topic, "message_id": m.ID, "total_count": len(subscriptions)} // Importing the emojis in the service worker would add unnecessary complexity, // simply do it here for web push notifications instead @@ -1017,7 +1011,6 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { for i, xi := range subscriptions { go func(i int, sub webPushSubscription) { - defer wg.Done() ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.Username, "topic": m.Topic, "message_id": m.ID} payload := &webPushPayload{ diff --git a/server/web_push.go b/server/web_push.go index fe9f51492..2fafb2a86 100644 --- a/server/web_push.go +++ b/server/web_push.go @@ -6,11 +6,10 @@ import ( _ "github.com/mattn/go-sqlite3" // SQLite driver ) -// Messages cache const ( createWebPushSubscriptionsTableQuery = ` BEGIN; - CREATE TABLE IF NOT EXISTS web_push_subscriptions ( + CREATE TABLE IF NOT EXISTS subscriptions ( id INTEGER PRIMARY KEY AUTOINCREMENT, topic TEXT NOT NULL, username TEXT, @@ -19,60 +18,58 @@ const ( key_p256dh TEXT NOT NULL, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ); - CREATE INDEX IF NOT EXISTS idx_topic ON web_push_subscriptions (topic); - CREATE INDEX IF NOT EXISTS idx_endpoint ON web_push_subscriptions (endpoint); - CREATE UNIQUE INDEX IF NOT EXISTS idx_topic_endpoint ON web_push_subscriptions (topic, endpoint); + CREATE INDEX IF NOT EXISTS idx_topic ON subscriptions (topic); + CREATE INDEX IF NOT EXISTS idx_endpoint ON subscriptions (endpoint); + CREATE UNIQUE INDEX IF NOT EXISTS idx_topic_endpoint ON subscriptions (topic, endpoint); COMMIT; ` insertWebPushSubscriptionQuery = ` - INSERT OR REPLACE INTO web_push_subscriptions (topic, username, endpoint, key_auth, key_p256dh) - VALUES (?, ?, ?, ?, ?); + INSERT OR REPLACE INTO subscriptions (topic, username, endpoint, key_auth, key_p256dh) + VALUES (?, ?, ?, ?, ?) ` - deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM web_push_subscriptions WHERE endpoint = ?` - deleteWebPushSubscriptionByUsernameQuery = `DELETE FROM web_push_subscriptions WHERE username = ?` - deleteWebPushSubscriptionByTopicAndEndpointQuery = `DELETE FROM web_push_subscriptions WHERE topic = ? AND endpoint = ?` + deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscriptions WHERE endpoint = ?` + deleteWebPushSubscriptionByUsernameQuery = `DELETE FROM subscriptions WHERE username = ?` + deleteWebPushSubscriptionByTopicAndEndpointQuery = `DELETE FROM subscriptions WHERE topic = ? AND endpoint = ?` - selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, username FROM web_push_subscriptions WHERE topic = ?` + selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, username FROM subscriptions WHERE topic = ?` - selectWebPushSubscriptionsCountQuery = `SELECT COUNT(*) FROM web_push_subscriptions` + selectWebPushSubscriptionsCountQuery = `SELECT COUNT(*) FROM subscriptions` ) -type webPushSubscriptionStore struct { +type webPushStore struct { db *sql.DB } -func newWebPushSubscriptionStore(filename string) (*webPushSubscriptionStore, error) { +func newWebPushStore(filename string) (*webPushStore, error) { db, err := sql.Open("sqlite3", filename) if err != nil { return nil, err } - if err := setupSubscriptionDb(db); err != nil { + if err := setupSubscriptionsDB(db); err != nil { return nil, err } - webPushSubscriptionStore := &webPushSubscriptionStore{ + return &webPushStore{ db: db, - } - return webPushSubscriptionStore, nil + }, nil } -func setupSubscriptionDb(db *sql.DB) error { - // If 'messages' table does not exist, this must be a new database +func setupSubscriptionsDB(db *sql.DB) error { + // If 'subscriptions' table does not exist, this must be a new database rowsMC, err := db.Query(selectWebPushSubscriptionsCountQuery) if err != nil { - return setupNewSubscriptionDb(db) + return setupNewSubscriptionsDB(db) } - rowsMC.Close() - return nil + return rowsMC.Close() } -func setupNewSubscriptionDb(db *sql.DB) error { +func setupNewSubscriptionsDB(db *sql.DB) error { if _, err := db.Exec(createWebPushSubscriptionsTableQuery); err != nil { return err } return nil } -func (c *webPushSubscriptionStore) AddSubscription(topic string, username string, subscription webPushSubscribePayload) error { +func (c *webPushStore) AddSubscription(topic string, username string, subscription webPushSubscribePayload) error { _, err := c.db.Exec( insertWebPushSubscriptionQuery, topic, @@ -84,7 +81,7 @@ func (c *webPushSubscriptionStore) AddSubscription(topic string, username string return err } -func (c *webPushSubscriptionStore) RemoveSubscription(topic string, endpoint string) error { +func (c *webPushStore) RemoveSubscription(topic string, endpoint string) error { _, err := c.db.Exec( deleteWebPushSubscriptionByTopicAndEndpointQuery, topic, @@ -93,14 +90,14 @@ func (c *webPushSubscriptionStore) RemoveSubscription(topic string, endpoint str return err } -func (c *webPushSubscriptionStore) GetSubscriptionsForTopic(topic string) (subscriptions []webPushSubscription, err error) { +func (c *webPushStore) GetSubscriptionsForTopic(topic string) (subscriptions []webPushSubscription, err error) { rows, err := c.db.Query(selectWebPushSubscriptionsForTopicQuery, topic) if err != nil { return nil, err } defer rows.Close() - data := []webPushSubscription{} + var data []webPushSubscription for rows.Next() { i := webPushSubscription{} err = rows.Scan(&i.BrowserSubscription.Endpoint, &i.BrowserSubscription.Keys.Auth, &i.BrowserSubscription.Keys.P256dh, &i.Username) @@ -112,7 +109,7 @@ func (c *webPushSubscriptionStore) GetSubscriptionsForTopic(topic string) (subsc return data, nil } -func (c *webPushSubscriptionStore) ExpireWebPushEndpoint(endpoint string) error { +func (c *webPushStore) ExpireWebPushEndpoint(endpoint string) error { _, err := c.db.Exec( deleteWebPushSubscriptionByEndpointQuery, endpoint, @@ -120,13 +117,13 @@ func (c *webPushSubscriptionStore) ExpireWebPushEndpoint(endpoint string) error return err } -func (c *webPushSubscriptionStore) ExpireWebPushForUser(username string) error { +func (c *webPushStore) ExpireWebPushForUser(username string) error { _, err := c.db.Exec( deleteWebPushSubscriptionByUsernameQuery, username, ) return err } -func (c *webPushSubscriptionStore) Close() error { +func (c *webPushStore) Close() error { return c.db.Close() } From 7f3e4b5f473d66a70453fd1d6eb9ff3b01537716 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Tue, 30 May 2023 13:56:10 -0400 Subject: [PATCH 05/74] Move stuff to server_web_push.go --- server/server.go | 229 +++++++-------------------------- server/server_account.go | 4 +- server/server_web_push.go | 142 ++++++++++++++++++++ server/server_web_push_test.go | 8 +- 4 files changed, 193 insertions(+), 190 deletions(-) create mode 100644 server/server_web_push.go diff --git a/server/server.go b/server/server.go index ebb8b70e1..35d6f47d5 100644 --- a/server/server.go +++ b/server/server.go @@ -33,35 +33,33 @@ import ( "heckel.io/ntfy/log" "heckel.io/ntfy/user" "heckel.io/ntfy/util" - - "github.com/SherClockHolmes/webpush-go" ) // Server is the main server, providing the UI and API for ntfy type Server struct { - config *Config - httpServer *http.Server - httpsServer *http.Server - httpMetricsServer *http.Server - httpProfileServer *http.Server - unixListener net.Listener - smtpServer *smtp.Server - smtpServerBackend *smtpBackend - smtpSender mailer - topics map[string]*topic - visitors map[string]*visitor // ip: or user: - firebaseClient *firebaseClient - messages int64 // Total number of messages (persisted if messageCache enabled) - messagesHistory []int64 // Last n values of the messages counter, used to determine rate - userManager *user.Manager // Might be nil! - messageCache *messageCache // Database that stores the messages - webPushSubscriptionStore *webPushStore // Database that stores web push subscriptions - fileCache *fileCache // File system based cache that stores attachments - stripe stripeAPI // Stripe API, can be replaced with a mock - priceCache *util.LookupCache[map[string]int64] // Stripe price ID -> price as cents (USD implied!) - metricsHandler http.Handler // Handles /metrics if enable-metrics set, and listen-metrics-http not set - closeChan chan bool - mu sync.RWMutex + config *Config + httpServer *http.Server + httpsServer *http.Server + httpMetricsServer *http.Server + httpProfileServer *http.Server + unixListener net.Listener + smtpServer *smtp.Server + smtpServerBackend *smtpBackend + smtpSender mailer + topics map[string]*topic + visitors map[string]*visitor // ip: or user: + firebaseClient *firebaseClient + messages int64 // Total number of messages (persisted if messageCache enabled) + messagesHistory []int64 // Last n values of the messages counter, used to determine rate + userManager *user.Manager // Might be nil! + messageCache *messageCache // Database that stores the messages + webPush *webPushStore // Database that stores web push subscriptions + fileCache *fileCache // File system based cache that stores attachments + stripe stripeAPI // Stripe API, can be replaced with a mock + priceCache *util.LookupCache[map[string]int64] // Stripe price ID -> price as cents (USD implied!) + metricsHandler http.Handler // Handles /metrics if enable-metrics set, and listen-metrics-http not set + closeChan chan bool + mu sync.RWMutex } // handleFunc extends the normal http.HandlerFunc to be able to easily return errors @@ -160,9 +158,12 @@ func New(conf *Config) (*Server, error) { if err != nil { return nil, err } - webPushSubscriptionStore, err := createWebPushSubscriptionStore(conf) - if err != nil { - return nil, err + var webPush *webPushStore + if conf.WebPushEnabled { + webPush, err = newWebPushStore(conf.WebPushSubscriptionsFile) + if err != nil { + return nil, err + } } topics, err := messageCache.Topics() if err != nil { @@ -201,18 +202,18 @@ func New(conf *Config) (*Server, error) { firebaseClient = newFirebaseClient(sender, auther) } s := &Server{ - config: conf, - messageCache: messageCache, - webPushSubscriptionStore: webPushSubscriptionStore, - fileCache: fileCache, - firebaseClient: firebaseClient, - smtpSender: mailer, - topics: topics, - userManager: userManager, - messages: messages, - messagesHistory: []int64{messages}, - visitors: make(map[string]*visitor), - stripe: stripe, + config: conf, + messageCache: messageCache, + webPush: webPush, + fileCache: fileCache, + firebaseClient: firebaseClient, + smtpSender: mailer, + topics: topics, + userManager: userManager, + messages: messages, + messagesHistory: []int64{messages}, + visitors: make(map[string]*visitor), + stripe: stripe, } s.priceCache = util.NewLookupCache(s.fetchStripePrices, conf.StripePriceCacheDuration) return s, nil @@ -227,14 +228,6 @@ func createMessageCache(conf *Config) (*messageCache, error) { return newMemCache() } -func createWebPushSubscriptionStore(conf *Config) (*webPushStore, error) { - if !conf.WebPushEnabled { - return nil, nil - } - - return newWebPushStore(conf.WebPushSubscriptionsFile) -} - // Run executes the main server. It listens on HTTP (+ HTTPS, if configured), and starts // a manager go routine to print stats and prune messages. func (s *Server) Run() error { @@ -364,8 +357,8 @@ func (s *Server) closeDatabases() { s.userManager.Close() } s.messageCache.Close() - if s.webPushSubscriptionStore != nil { - s.webPushSubscriptionStore.Close() + if s.webPush != nil { + s.webPush.Close() } } @@ -536,9 +529,9 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit } else if r.Method == http.MethodGet && authPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleTopicAuth))(w, r, v) } else if r.Method == http.MethodPost && webPushSubscribePathRegex.MatchString(r.URL.Path) { - return s.limitRequestsWithTopic(s.authorizeTopicRead(s.ensureWebPushEnabled(s.handleTopicWebPushSubscribe)))(w, r, v) + return s.ensureWebPushEnabled(s.limitRequestsWithTopic(s.authorizeTopicRead(s.handleTopicWebPushSubscribe)))(w, r, v) } else if r.Method == http.MethodPost && webPushUnsubscribePathRegex.MatchString(r.URL.Path) { - return s.limitRequestsWithTopic(s.authorizeTopicRead(s.ensureWebPushEnabled(s.handleTopicWebPushUnsubscribe)))(w, r, v) + return s.ensureWebPushEnabled(s.limitRequestsWithTopic(s.authorizeTopicRead(s.handleTopicWebPushUnsubscribe)))(w, r, v) } else if r.Method == http.MethodGet && (topicPathRegex.MatchString(r.URL.Path) || externalTopicPathRegex.MatchString(r.URL.Path)) { return s.ensureWebEnabled(s.handleTopic)(w, r, v) } @@ -578,55 +571,6 @@ func (s *Server) handleAPIWebPushConfig(w http.ResponseWriter, _ *http.Request, return s.writeJSON(w, response) } -func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Request, v *visitor) error { - var username string - u := v.User() - if u != nil { - username = u.Name - } - - var sub webPushSubscribePayload - err := json.NewDecoder(r.Body).Decode(&sub) - - if err != nil || sub.BrowserSubscription.Endpoint == "" || sub.BrowserSubscription.Keys.P256dh == "" || sub.BrowserSubscription.Keys.Auth == "" { - return errHTTPBadRequestWebPushSubscriptionInvalid - } - - topic, err := fromContext[*topic](r, contextTopic) - if err != nil { - return err - } - - err = s.webPushSubscriptionStore.AddSubscription(topic.ID, username, sub) - if err != nil { - return err - } - - return s.writeJSON(w, newSuccessResponse()) -} - -func (s *Server) handleTopicWebPushUnsubscribe(w http.ResponseWriter, r *http.Request, _ *visitor) error { - var payload webPushUnsubscribePayload - - err := json.NewDecoder(r.Body).Decode(&payload) - - if err != nil { - return errHTTPBadRequestWebPushSubscriptionInvalid - } - - topic, err := fromContext[*topic](r, contextTopic) - if err != nil { - return err - } - - err = s.webPushSubscriptionStore.RemoveSubscription(topic.ID, payload.Endpoint) - if err != nil { - return err - } - - return s.writeJSON(w, newSuccessResponse()) -} - func (s *Server) handleHealth(w http.ResponseWriter, _ *http.Request, _ *visitor) error { response := &apiHealthResponse{ Healthy: true, @@ -977,89 +921,6 @@ func (s *Server) forwardPollRequest(v *visitor, m *message) { } } -func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { - subscriptions, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic(m.Topic) - if err != nil { - logvm(v, m).Err(err).Warn("Unable to publish web push messages") - return - } - - ctx := log.Context{"topic": m.Topic, "message_id": m.ID, "total_count": len(subscriptions)} - - // Importing the emojis in the service worker would add unnecessary complexity, - // simply do it here for web push notifications instead - var titleWithDefault string - var formattedTitle string - - emojis, _, err := toEmojis(m.Tags) - if err != nil { - logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") - return - } - - if m.Title == "" { - titleWithDefault = m.Topic - } else { - titleWithDefault = m.Title - } - - if len(emojis) > 0 { - formattedTitle = fmt.Sprintf("%s %s", strings.Join(emojis[:], " "), titleWithDefault) - } else { - formattedTitle = titleWithDefault - } - - for i, xi := range subscriptions { - go func(i int, sub webPushSubscription) { - ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.Username, "topic": m.Topic, "message_id": m.ID} - - payload := &webPushPayload{ - SubscriptionID: fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), - Message: *m, - FormattedTitle: formattedTitle, - } - jsonPayload, err := json.Marshal(payload) - - if err != nil { - logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") - return - } - - resp, err := webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ - Subscriber: s.config.WebPushEmailAddress, - VAPIDPublicKey: s.config.WebPushPublicKey, - VAPIDPrivateKey: s.config.WebPushPrivateKey, - // deliverability on iOS isn't great with lower urgency values, - // and thus we can't really map lower ntfy priorities to lower urgency values - Urgency: webpush.UrgencyHigh, - }) - - if err != nil { - logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") - - err = s.webPushSubscriptionStore.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) - if err != nil { - logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") - } - - return - } - - // May want to handle at least 429 differently, but for now treat all errors the same - if !(200 <= resp.StatusCode && resp.StatusCode <= 299) { - logvm(v, m).Fields(ctx).Field("response", resp).Debug("Unable to publish web push message") - - err = s.webPushSubscriptionStore.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) - if err != nil { - logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") - } - - return - } - }(i, xi) - } -} - func (s *Server) parsePublishParams(r *http.Request, m *message) (cache bool, firebase bool, email, call string, unifiedpush bool, err *errHTTP) { cache = readBoolParam(r, true, "x-cache", "cache") firebase = readBoolParam(r, true, "x-firebase", "firebase") diff --git a/server/server_account.go b/server/server_account.go index dbadb81a5..0336f8161 100644 --- a/server/server_account.go +++ b/server/server_account.go @@ -170,8 +170,8 @@ func (s *Server) handleAccountDelete(w http.ResponseWriter, r *http.Request, v * if _, err := s.userManager.Authenticate(u.Name, req.Password); err != nil { return errHTTPBadRequestIncorrectPasswordConfirmation } - if s.webPushSubscriptionStore != nil { - err := s.webPushSubscriptionStore.ExpireWebPushForUser(u.Name) + if s.webPush != nil { + err := s.webPush.ExpireWebPushForUser(u.Name) if err != nil { logvr(v, r).Err(err).Warn("Error removing web push subscriptions for %s", u.Name) diff --git a/server/server_web_push.go b/server/server_web_push.go new file mode 100644 index 000000000..d3f669cfe --- /dev/null +++ b/server/server_web_push.go @@ -0,0 +1,142 @@ +package server + +import ( + "encoding/json" + "fmt" + "github.com/SherClockHolmes/webpush-go" + "heckel.io/ntfy/log" + "net/http" + "strings" +) + +func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Request, v *visitor) error { + var username string + u := v.User() + if u != nil { + username = u.Name + } + + var sub webPushSubscribePayload + err := json.NewDecoder(r.Body).Decode(&sub) + + if err != nil || sub.BrowserSubscription.Endpoint == "" || sub.BrowserSubscription.Keys.P256dh == "" || sub.BrowserSubscription.Keys.Auth == "" { + return errHTTPBadRequestWebPushSubscriptionInvalid + } + + topic, err := fromContext[*topic](r, contextTopic) + if err != nil { + return err + } + + err = s.webPush.AddSubscription(topic.ID, username, sub) + if err != nil { + return err + } + + return s.writeJSON(w, newSuccessResponse()) +} + +func (s *Server) handleTopicWebPushUnsubscribe(w http.ResponseWriter, r *http.Request, _ *visitor) error { + var payload webPushUnsubscribePayload + + err := json.NewDecoder(r.Body).Decode(&payload) + + if err != nil { + return errHTTPBadRequestWebPushSubscriptionInvalid + } + + topic, err := fromContext[*topic](r, contextTopic) + if err != nil { + return err + } + + err = s.webPush.RemoveSubscription(topic.ID, payload.Endpoint) + if err != nil { + return err + } + + return s.writeJSON(w, newSuccessResponse()) +} + +func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { + subscriptions, err := s.webPush.GetSubscriptionsForTopic(m.Topic) + if err != nil { + logvm(v, m).Err(err).Warn("Unable to publish web push messages") + return + } + + ctx := log.Context{"topic": m.Topic, "message_id": m.ID, "total_count": len(subscriptions)} + + // Importing the emojis in the service worker would add unnecessary complexity, + // simply do it here for web push notifications instead + var titleWithDefault string + var formattedTitle string + + emojis, _, err := toEmojis(m.Tags) + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") + return + } + + if m.Title == "" { + titleWithDefault = m.Topic + } else { + titleWithDefault = m.Title + } + + if len(emojis) > 0 { + formattedTitle = fmt.Sprintf("%s %s", strings.Join(emojis[:], " "), titleWithDefault) + } else { + formattedTitle = titleWithDefault + } + + for i, xi := range subscriptions { + go func(i int, sub webPushSubscription) { + ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.Username, "topic": m.Topic, "message_id": m.ID} + + payload := &webPushPayload{ + SubscriptionID: fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), + Message: *m, + FormattedTitle: formattedTitle, + } + jsonPayload, err := json.Marshal(payload) + + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") + return + } + + resp, err := webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ + Subscriber: s.config.WebPushEmailAddress, + VAPIDPublicKey: s.config.WebPushPublicKey, + VAPIDPrivateKey: s.config.WebPushPrivateKey, + // deliverability on iOS isn't great with lower urgency values, + // and thus we can't really map lower ntfy priorities to lower urgency values + Urgency: webpush.UrgencyHigh, + }) + + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") + + err = s.webPush.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") + } + + return + } + + // May want to handle at least 429 differently, but for now treat all errors the same + if !(200 <= resp.StatusCode && resp.StatusCode <= 299) { + logvm(v, m).Fields(ctx).Field("response", resp).Debug("Unable to publish web push message") + + err = s.webPush.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) + if err != nil { + logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") + } + + return + } + }(i, xi) + } +} diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 80f37e3ed..3b8863d4e 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -41,7 +41,7 @@ func TestServer_WebPush_TopicSubscribe(t *testing.T) { require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) - subs, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic("test-topic") + subs, err := s.webPush.GetSubscriptionsForTopic("test-topic") if err != nil { t.Fatal(err) } @@ -68,7 +68,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) - subs, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic("test-topic") + subs, err := s.webPush.GetSubscriptionsForTopic("test-topic") if err != nil { t.Fatal(err) } @@ -187,7 +187,7 @@ func TestServer_WebPush_PublishExpire(t *testing.T) { } func addSubscription(t *testing.T, s *Server, topic string, url string) { - err := s.webPushSubscriptionStore.AddSubscription("test-topic", "", webPushSubscribePayload{ + err := s.webPush.AddSubscription("test-topic", "", webPushSubscribePayload{ BrowserSubscription: webpush.Subscription{ Endpoint: url, Keys: webpush.Keys{ @@ -203,7 +203,7 @@ func addSubscription(t *testing.T, s *Server, topic string, url string) { } func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { - subs, err := s.webPushSubscriptionStore.GetSubscriptionsForTopic("test-topic") + subs, err := s.webPush.GetSubscriptionsForTopic("test-topic") if err != nil { t.Fatal(err) } From 9e0687e142e213e08007f36fd49b4ad9f8ef5f35 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Tue, 30 May 2023 14:23:03 -0400 Subject: [PATCH 06/74] Random tiny changes --- go.mod | 2 +- server/server_account.go | 4 +--- server/server_test.go | 10 ++-------- server/server_web_push.go | 34 +++++++--------------------------- server/server_web_push_test.go | 17 +++++++---------- server/types.go | 4 ++-- server/web_push.go | 24 ++++++++++++------------ 7 files changed, 32 insertions(+), 63 deletions(-) diff --git a/go.mod b/go.mod index dda58c9b8..96ffff98f 100644 --- a/go.mod +++ b/go.mod @@ -27,6 +27,7 @@ require github.com/pkg/errors v0.9.1 // indirect require ( firebase.google.com/go/v4 v4.11.0 + github.com/SherClockHolmes/webpush-go v1.2.0 github.com/prometheus/client_golang v1.15.1 github.com/stripe/stripe-go/v74 v74.21.0 ) @@ -39,7 +40,6 @@ require ( cloud.google.com/go/longrunning v0.5.0 // indirect github.com/AlekSi/pointer v1.2.0 // indirect github.com/MicahParks/keyfunc v1.9.0 // indirect - github.com/SherClockHolmes/webpush-go v1.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/server/server_account.go b/server/server_account.go index 0336f8161..b42496dba 100644 --- a/server/server_account.go +++ b/server/server_account.go @@ -171,9 +171,7 @@ func (s *Server) handleAccountDelete(w http.ResponseWriter, r *http.Request, v * return errHTTPBadRequestIncorrectPasswordConfirmation } if s.webPush != nil { - err := s.webPush.ExpireWebPushForUser(u.Name) - - if err != nil { + if err := s.webPush.RemoveByUserID(u.ID); err != nil { logvr(v, r).Err(err).Warn("Error removing web push subscriptions for %s", u.Name) } } diff --git a/server/server_test.go b/server/server_test.go index f264d0966..76f83eea0 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -2620,12 +2620,8 @@ func newTestConfigWithAuthFile(t *testing.T) *Config { func newTestConfigWithWebPush(t *testing.T) *Config { conf := newTestConfig(t) - privateKey, publicKey, err := webpush.GenerateVAPIDKeys() - if err != nil { - t.Fatal(err) - } - + require.Nil(t, err) conf.WebPushEnabled = true conf.WebPushSubscriptionsFile = filepath.Join(t.TempDir(), "subscriptions.db") conf.WebPushEmailAddress = "testing@example.com" @@ -2636,9 +2632,7 @@ func newTestConfigWithWebPush(t *testing.T) *Config { func newTestServer(t *testing.T, config *Config) *Server { server, err := New(config) - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) return server } diff --git a/server/server_web_push.go b/server/server_web_push.go index d3f669cfe..d8a25e618 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -10,15 +10,8 @@ import ( ) func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Request, v *visitor) error { - var username string - u := v.User() - if u != nil { - username = u.Name - } - var sub webPushSubscribePayload err := json.NewDecoder(r.Body).Decode(&sub) - if err != nil || sub.BrowserSubscription.Endpoint == "" || sub.BrowserSubscription.Keys.P256dh == "" || sub.BrowserSubscription.Keys.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid } @@ -27,12 +20,9 @@ func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Requ if err != nil { return err } - - err = s.webPush.AddSubscription(topic.ID, username, sub) - if err != nil { + if err = s.webPush.AddSubscription(topic.ID, v.MaybeUserID(), sub); err != nil { return err } - return s.writeJSON(w, newSuccessResponse()) } @@ -59,7 +49,7 @@ func (s *Server) handleTopicWebPushUnsubscribe(w http.ResponseWriter, r *http.Re } func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { - subscriptions, err := s.webPush.GetSubscriptionsForTopic(m.Topic) + subscriptions, err := s.webPush.SubscriptionsForTopic(m.Topic) if err != nil { logvm(v, m).Err(err).Warn("Unable to publish web push messages") return @@ -69,21 +59,17 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { // Importing the emojis in the service worker would add unnecessary complexity, // simply do it here for web push notifications instead - var titleWithDefault string - var formattedTitle string - + var titleWithDefault, formattedTitle string emojis, _, err := toEmojis(m.Tags) if err != nil { logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") return } - if m.Title == "" { titleWithDefault = m.Topic } else { titleWithDefault = m.Title } - if len(emojis) > 0 { formattedTitle = fmt.Sprintf("%s %s", strings.Join(emojis[:], " "), titleWithDefault) } else { @@ -92,7 +78,7 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { for i, xi := range subscriptions { go func(i int, sub webPushSubscription) { - ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.Username, "topic": m.Topic, "message_id": m.ID} + ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.UserID, "topic": m.Topic, "message_id": m.ID} payload := &webPushPayload{ SubscriptionID: fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), @@ -110,31 +96,25 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { Subscriber: s.config.WebPushEmailAddress, VAPIDPublicKey: s.config.WebPushPublicKey, VAPIDPrivateKey: s.config.WebPushPrivateKey, - // deliverability on iOS isn't great with lower urgency values, + // Deliverability on iOS isn't great with lower urgency values, // and thus we can't really map lower ntfy priorities to lower urgency values Urgency: webpush.UrgencyHigh, }) if err != nil { logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") - - err = s.webPush.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) - if err != nil { + if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") } - return } // May want to handle at least 429 differently, but for now treat all errors the same if !(200 <= resp.StatusCode && resp.StatusCode <= 299) { logvm(v, m).Fields(ctx).Field("response", resp).Debug("Unable to publish web push message") - - err = s.webPush.ExpireWebPushEndpoint(sub.BrowserSubscription.Endpoint) - if err != nil { + if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") } - return } }(i, xi) diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 3b8863d4e..569365292 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -5,6 +5,7 @@ import ( "io" "net/http" "net/http/httptest" + "strings" "sync/atomic" "testing" @@ -41,7 +42,7 @@ func TestServer_WebPush_TopicSubscribe(t *testing.T) { require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) - subs, err := s.webPush.GetSubscriptionsForTopic("test-topic") + subs, err := s.webPush.SubscriptionsForTopic("test-topic") if err != nil { t.Fatal(err) } @@ -50,7 +51,7 @@ func TestServer_WebPush_TopicSubscribe(t *testing.T) { require.Equal(t, subs[0].BrowserSubscription.Endpoint, "https://example.com/webpush") require.Equal(t, subs[0].BrowserSubscription.Keys.P256dh, "p256dh-key") require.Equal(t, subs[0].BrowserSubscription.Keys.Auth, "auth-key") - require.Equal(t, subs[0].Username, "") + require.Equal(t, subs[0].UserID, "") } func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { @@ -64,17 +65,13 @@ func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) - require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) - subs, err := s.webPush.GetSubscriptionsForTopic("test-topic") - if err != nil { - t.Fatal(err) - } - + subs, err := s.webPush.SubscriptionsForTopic("test-topic") + require.Nil(t, err) require.Len(t, subs, 1) - require.Equal(t, subs[0].Username, "ben") + require.True(t, strings.HasPrefix(subs[0].UserID, "u_")) } func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { @@ -203,7 +200,7 @@ func addSubscription(t *testing.T, s *Server, topic string, url string) { } func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { - subs, err := s.webPush.GetSubscriptionsForTopic("test-topic") + subs, err := s.webPush.SubscriptionsForTopic("test-topic") if err != nil { t.Fatal(err) } diff --git a/server/types.go b/server/types.go index 6eed5eef7..bac4a4782 100644 --- a/server/types.go +++ b/server/types.go @@ -41,7 +41,7 @@ type message struct { PollID string `json:"poll_id,omitempty"` Encoding string `json:"encoding,omitempty"` // empty for raw UTF-8, or "base64" for encoded bytes Sender netip.Addr `json:"-"` // IP address of uploader, used for rate limiting - User string `json:"-"` // Username of the uploader, used to associated attachments + User string `json:"-"` // UserID of the uploader, used to associated attachments } func (m *message) Context() log.Context { @@ -476,7 +476,7 @@ type webPushPayload struct { type webPushSubscription struct { BrowserSubscription webpush.Subscription - Username string + UserID string } type webPushSubscribePayload struct { diff --git a/server/web_push.go b/server/web_push.go index 2fafb2a86..8969af683 100644 --- a/server/web_push.go +++ b/server/web_push.go @@ -12,7 +12,7 @@ const ( CREATE TABLE IF NOT EXISTS subscriptions ( id INTEGER PRIMARY KEY AUTOINCREMENT, topic TEXT NOT NULL, - username TEXT, + user_id TEXT, endpoint TEXT NOT NULL, key_auth TEXT NOT NULL, key_p256dh TEXT NOT NULL, @@ -24,14 +24,14 @@ const ( COMMIT; ` insertWebPushSubscriptionQuery = ` - INSERT OR REPLACE INTO subscriptions (topic, username, endpoint, key_auth, key_p256dh) + INSERT OR REPLACE INTO subscriptions (topic, user_id, endpoint, key_auth, key_p256dh) VALUES (?, ?, ?, ?, ?) ` deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscriptions WHERE endpoint = ?` - deleteWebPushSubscriptionByUsernameQuery = `DELETE FROM subscriptions WHERE username = ?` + deleteWebPushSubscriptionByUserIDQuery = `DELETE FROM subscriptions WHERE user_id = ?` deleteWebPushSubscriptionByTopicAndEndpointQuery = `DELETE FROM subscriptions WHERE topic = ? AND endpoint = ?` - selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, username FROM subscriptions WHERE topic = ?` + selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE topic = ?` selectWebPushSubscriptionsCountQuery = `SELECT COUNT(*) FROM subscriptions` ) @@ -69,11 +69,11 @@ func setupNewSubscriptionsDB(db *sql.DB) error { return nil } -func (c *webPushStore) AddSubscription(topic string, username string, subscription webPushSubscribePayload) error { +func (c *webPushStore) AddSubscription(topic string, userID string, subscription webPushSubscribePayload) error { _, err := c.db.Exec( insertWebPushSubscriptionQuery, topic, - username, + userID, subscription.BrowserSubscription.Endpoint, subscription.BrowserSubscription.Keys.Auth, subscription.BrowserSubscription.Keys.P256dh, @@ -90,7 +90,7 @@ func (c *webPushStore) RemoveSubscription(topic string, endpoint string) error { return err } -func (c *webPushStore) GetSubscriptionsForTopic(topic string) (subscriptions []webPushSubscription, err error) { +func (c *webPushStore) SubscriptionsForTopic(topic string) (subscriptions []webPushSubscription, err error) { rows, err := c.db.Query(selectWebPushSubscriptionsForTopicQuery, topic) if err != nil { return nil, err @@ -100,7 +100,7 @@ func (c *webPushStore) GetSubscriptionsForTopic(topic string) (subscriptions []w var data []webPushSubscription for rows.Next() { i := webPushSubscription{} - err = rows.Scan(&i.BrowserSubscription.Endpoint, &i.BrowserSubscription.Keys.Auth, &i.BrowserSubscription.Keys.P256dh, &i.Username) + err = rows.Scan(&i.BrowserSubscription.Endpoint, &i.BrowserSubscription.Keys.Auth, &i.BrowserSubscription.Keys.P256dh, &i.UserID) if err != nil { return nil, err } @@ -109,7 +109,7 @@ func (c *webPushStore) GetSubscriptionsForTopic(topic string) (subscriptions []w return data, nil } -func (c *webPushStore) ExpireWebPushEndpoint(endpoint string) error { +func (c *webPushStore) RemoveByEndpoint(endpoint string) error { _, err := c.db.Exec( deleteWebPushSubscriptionByEndpointQuery, endpoint, @@ -117,10 +117,10 @@ func (c *webPushStore) ExpireWebPushEndpoint(endpoint string) error { return err } -func (c *webPushStore) ExpireWebPushForUser(username string) error { +func (c *webPushStore) RemoveByUserID(userID string) error { _, err := c.db.Exec( - deleteWebPushSubscriptionByUsernameQuery, - username, + deleteWebPushSubscriptionByUserIDQuery, + userID, ) return err } From e8139ad655da9d60a263ecb2a1c8cafa46b25a81 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Tue, 30 May 2023 14:42:17 -0400 Subject: [PATCH 07/74] Move web-push-config endpoint to config.js --- server/server.go | 13 ++----------- server/server_web_push_test.go | 9 --------- server/types.go | 6 ++---- web/public/config.js | 2 ++ web/src/app/Api.js | 24 +++--------------------- web/src/app/Notifier.js | 13 ++----------- web/src/app/utils.js | 1 - 7 files changed, 11 insertions(+), 57 deletions(-) diff --git a/server/server.go b/server/server.go index 35d6f47d5..12ccee5c6 100644 --- a/server/server.go +++ b/server/server.go @@ -104,7 +104,6 @@ var ( apiAccountBillingSubscriptionCheckoutSuccessTemplate = "/v1/account/billing/subscription/success/{CHECKOUT_SESSION_ID}" apiAccountBillingSubscriptionCheckoutSuccessRegex = regexp.MustCompile(`/v1/account/billing/subscription/success/(.+)$`) apiAccountReservationSingleRegex = regexp.MustCompile(`/v1/account/reservation/([-_A-Za-z0-9]{1,64})$`) - apiWebPushConfig = "/v1/web-push-config" staticRegex = regexp.MustCompile(`^/static/.+`) docsRegex = regexp.MustCompile(`^/docs(|/.*)$`) fileRegex = regexp.MustCompile(`^/file/([-_A-Za-z0-9]{1,64})(?:\.[A-Za-z0-9]{1,16})?$`) @@ -496,8 +495,6 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.handleStats(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiTiersPath { return s.ensurePaymentsEnabled(s.handleBillingTiersGet)(w, r, v) - } else if r.Method == http.MethodGet && r.URL.Path == apiWebPushConfig { - return s.ensureWebPushEnabled(s.handleAPIWebPushConfig)(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == matrixPushPath { return s.handleMatrixDiscovery(w) } else if r.Method == http.MethodGet && r.URL.Path == metricsPath && s.metricsHandler != nil { @@ -563,14 +560,6 @@ func (s *Server) handleTopicAuth(w http.ResponseWriter, _ *http.Request, _ *visi return s.writeJSON(w, newSuccessResponse()) } -func (s *Server) handleAPIWebPushConfig(w http.ResponseWriter, _ *http.Request, _ *visitor) error { - response := &apiWebPushConfigResponse{ - PublicKey: s.config.WebPushPublicKey, - } - - return s.writeJSON(w, response) -} - func (s *Server) handleHealth(w http.ResponseWriter, _ *http.Request, _ *visitor) error { response := &apiHealthResponse{ Healthy: true, @@ -588,7 +577,9 @@ func (s *Server) handleWebConfig(w http.ResponseWriter, _ *http.Request, _ *visi EnableCalls: s.config.TwilioAccount != "", EnableEmails: s.config.SMTPSenderFrom != "", EnableReservations: s.config.EnableReservations, + EnableWebPush: s.config.WebPushEnabled, BillingContact: s.config.BillingContact, + WebPushPublicKey: s.config.WebPushPublicKey, DisallowedTopics: s.config.DisallowedTopics, } b, err := json.MarshalIndent(response, "", " ") diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 569365292..e6dda63e7 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -1,7 +1,6 @@ package server import ( - "fmt" "io" "net/http" "net/http/httptest" @@ -27,14 +26,6 @@ var ( }` ) -func TestServer_WebPush_GetConfig(t *testing.T) { - s := newTestServer(t, newTestConfigWithWebPush(t)) - - response := request(t, s, "GET", "/v1/web-push-config", "", nil) - require.Equal(t, 200, response.Code) - require.Equal(t, fmt.Sprintf(`{"public_key":"%s"}`, s.config.WebPushPublicKey)+"\n", response.Body.String()) -} - func TestServer_WebPush_TopicSubscribe(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) diff --git a/server/types.go b/server/types.go index bac4a4782..9f436152b 100644 --- a/server/types.go +++ b/server/types.go @@ -398,14 +398,12 @@ type apiConfigResponse struct { EnableCalls bool `json:"enable_calls"` EnableEmails bool `json:"enable_emails"` EnableReservations bool `json:"enable_reservations"` + EnableWebPush bool `json:"enable_web_push"` BillingContact string `json:"billing_contact"` + WebPushPublicKey string `json:"web_push_public_key"` DisallowedTopics []string `json:"disallowed_topics"` } -type apiWebPushConfigResponse struct { - PublicKey string `json:"public_key"` -} - type apiAccountBillingPrices struct { Month int64 `json:"month"` Year int64 `json:"year"` diff --git a/web/public/config.js b/web/public/config.js index 7bcad73f4..63bc97bdb 100644 --- a/web/public/config.js +++ b/web/public/config.js @@ -14,6 +14,8 @@ var config = { enable_reservations: true, enable_emails: true, enable_calls: true, + enable_web_push: true, billing_contact: "", + web_push_public_key: "", disallowed_topics: ["docs", "static", "file", "app", "account", "settings", "signup", "login", "v1"], }; diff --git a/web/src/app/Api.js b/web/src/app/Api.js index f731e61f1..c3effb927 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -8,7 +8,6 @@ import { topicUrlJsonPollWithSince, topicUrlWebPushSubscribe, topicUrlWebPushUnsubscribe, - webPushConfigUrl, } from "./utils"; import userManager from "./UserManager"; import { fetchOrThrow } from "./errors"; @@ -117,27 +116,8 @@ class Api { throw new Error(`Unexpected server response ${response.status}`); } - /** - * @returns {Promise<{ public_key: string } | undefined>} - */ - async getWebPushConfig(baseUrl) { - const response = await fetch(webPushConfigUrl(baseUrl)); - - if (response.ok) { - return response.json(); - } - - if (response.status === 404) { - // web push is not enabled - return undefined; - } - - throw new Error(`Unexpected server response ${response.status}`); - } - async subscribeWebPush(baseUrl, topic, browserSubscription) { const user = await userManager.get(baseUrl); - const url = topicUrlWebPushSubscribe(baseUrl, topic); console.log(`[Api] Sending Web Push Subscription ${url}`); @@ -163,7 +143,9 @@ class Api { const response = await fetch(url, { method: "POST", headers: maybeWithAuth({}, user), - body: JSON.stringify({ endpoint: subscription.webPushEndpoint }), + body: JSON.stringify({ + endpoint: subscription.webPushEndpoint + }), }); if (response.ok) { diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index a005f4609..c9e3c1827 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -53,7 +53,7 @@ class Notifier { } async subscribeWebPush(baseUrl, topic) { - if (!this.supported() || !this.pushSupported()) { + if (!this.supported() || !this.pushSupported() || !config.enable_web_push) { return {}; } @@ -71,21 +71,12 @@ class Notifier { } try { - const webPushConfig = await api.getWebPushConfig(baseUrl); - - if (!webPushConfig) { - console.log("[Notifier.subscribeWebPush] Web push not configured on server"); - } - const browserSubscription = await registration.pushManager.subscribe({ userVisibleOnly: true, - applicationServerKey: urlB64ToUint8Array(webPushConfig.public_key), + applicationServerKey: urlB64ToUint8Array(config.web_push_public_key), }); - await api.subscribeWebPush(baseUrl, topic, browserSubscription); - console.log("[Notifier.subscribeWebPush] Successfully subscribed to web push"); - return browserSubscription; } catch (e) { console.error("[Notifier.subscribeWebPush] Error subscribing to web push", e); diff --git a/web/src/app/utils.js b/web/src/app/utils.js index bf09bef37..69132b2e2 100644 --- a/web/src/app/utils.js +++ b/web/src/app/utils.js @@ -23,7 +23,6 @@ export const topicUrlAuth = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/aut export const topicUrlWebPushSubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/subscribe`; export const topicUrlWebPushUnsubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/unsubscribe`; export const topicShortUrl = (baseUrl, topic) => shortUrl(topicUrl(baseUrl, topic)); -export const webPushConfigUrl = (baseUrl) => `${baseUrl}/v1/web-push-config`; export const accountUrl = (baseUrl) => `${baseUrl}/v1/account`; export const accountPasswordUrl = (baseUrl) => `${baseUrl}/v1/account/password`; export const accountTokenUrl = (baseUrl) => `${baseUrl}/v1/account/token`; From 20c7650e515df910d6cc15202f16f12ba841a107 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Tue, 30 May 2023 14:53:23 -0400 Subject: [PATCH 08/74] server.yml update --- server/server.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/server.yml b/server/server.yml index e747e264d..6b921bbd4 100644 --- a/server/server.yml +++ b/server/server.yml @@ -40,13 +40,13 @@ # Enable web push # -# Run ntfy web-push generate-keys to generate the keys +# Run "ntfy web-push generate-keys" to generate the keys # -# web-push-enabled: true -# web-push-public-key: "" -# web-push-private-key: "" -# web-push-subscriptions-file: "" -# web-push-email-address: "" +# web-push-enabled: false +# web-push-public-key: +# web-push-private-key: +# web-push-subscriptions-file: +# web-push-email-address: # If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory. # This allows for service restarts without losing messages in support of the since= parameter. From 44913c1668dda3ab80039d72933db60c0e97bf77 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 31 May 2023 18:02:04 +0200 Subject: [PATCH 09/74] Replace if err-nil-Fatal check with require.Nil --- server/server_web_push_test.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index e6dda63e7..0c8526b17 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -34,9 +34,7 @@ func TestServer_WebPush_TopicSubscribe(t *testing.T) { require.Equal(t, `{"success":true}`+"\n", response.Body.String()) subs, err := s.webPush.SubscriptionsForTopic("test-topic") - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) require.Len(t, subs, 1) require.Equal(t, subs[0].BrowserSubscription.Endpoint, "https://example.com/webpush") @@ -185,16 +183,12 @@ func addSubscription(t *testing.T, s *Server, topic string, url string) { }, }, }) - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) } func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { subs, err := s.webPush.SubscriptionsForTopic("test-topic") - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) require.Len(t, subs, expectedLength) } From 4648f83669d97aee30d71b6a4c7d0e75a85e337d Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 31 May 2023 18:27:32 +0200 Subject: [PATCH 10/74] Format emojis in the service worker directly --- docs/develop.md | 9 ++++-- server/server_web_push.go | 23 --------------- server/smtp_sender.go | 24 ++++++++++++++++ server/types.go | 1 - server/util.go | 24 ---------------- web/public/sw.js | 16 ++++++----- web/src/app/Api.js | 2 +- web/src/app/Notifier.js | 3 +- web/src/app/emojisMapped.js | 4 +++ web/src/app/notificationUtils.js | 35 ++++++++++++++++++++++ web/src/app/utils.js | 43 ++-------------------------- web/src/components/Notifications.jsx | 13 ++------- 12 files changed, 85 insertions(+), 112 deletions(-) create mode 100644 web/src/app/emojisMapped.js create mode 100644 web/src/app/notificationUtils.js diff --git a/docs/develop.md b/docs/develop.md index 09215d9a4..49ed8dbcd 100644 --- a/docs/develop.md +++ b/docs/develop.md @@ -261,8 +261,11 @@ Reference: 0 { - formattedTitle = fmt.Sprintf("%s %s", strings.Join(emojis[:], " "), titleWithDefault) - } else { - formattedTitle = titleWithDefault - } - for i, xi := range subscriptions { go func(i int, sub webPushSubscription) { ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.UserID, "topic": m.Topic, "message_id": m.ID} @@ -83,7 +61,6 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { payload := &webPushPayload{ SubscriptionID: fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), Message: *m, - FormattedTitle: formattedTitle, } jsonPayload, err := json.Marshal(payload) diff --git a/server/smtp_sender.go b/server/smtp_sender.go index 759ef3967..9093687ee 100644 --- a/server/smtp_sender.go +++ b/server/smtp_sender.go @@ -1,6 +1,8 @@ package server import ( + _ "embed" // required by go:embed + "encoding/json" "fmt" "mime" "net" @@ -128,3 +130,25 @@ This message was sent by {ip} at {time} via {topicURL}` body = strings.ReplaceAll(body, "{ip}", senderIP) return body, nil } + +var ( + //go:embed "mailer_emoji_map.json" + emojisJSON string +) + +func toEmojis(tags []string) (emojisOut []string, tagsOut []string, err error) { + var emojiMap map[string]string + if err = json.Unmarshal([]byte(emojisJSON), &emojiMap); err != nil { + return nil, nil, err + } + tagsOut = make([]string, 0) + emojisOut = make([]string, 0) + for _, t := range tags { + if emoji, ok := emojiMap[t]; ok { + emojisOut = append(emojisOut, emoji) + } else { + tagsOut = append(tagsOut, t) + } + } + return +} diff --git a/server/types.go b/server/types.go index 9f436152b..1c124c7a9 100644 --- a/server/types.go +++ b/server/types.go @@ -469,7 +469,6 @@ type apiStripeSubscriptionDeletedEvent struct { type webPushPayload struct { SubscriptionID string `json:"subscription_id"` Message message `json:"message"` - FormattedTitle string `json:"formatted_title"` } type webPushSubscription struct { diff --git a/server/util.go b/server/util.go index be724c76b..03eb86617 100644 --- a/server/util.go +++ b/server/util.go @@ -2,8 +2,6 @@ package server import ( "context" - _ "embed" // required by go:embed - "encoding/json" "fmt" "heckel.io/ntfy/util" "io" @@ -135,25 +133,3 @@ func maybeDecodeHeader(header string) string { } return decoded } - -var ( - //go:embed "mailer_emoji_map.json" - emojisJSON string -) - -func toEmojis(tags []string) (emojisOut []string, tagsOut []string, err error) { - var emojiMap map[string]string - if err = json.Unmarshal([]byte(emojisJSON), &emojiMap); err != nil { - return nil, nil, err - } - tagsOut = make([]string, 0) - emojisOut = make([]string, 0) - for _, t := range tags { - if emoji, ok := emojiMap[t]; ok { - emojisOut = append(emojisOut, emoji) - } else { - tagsOut = append(tagsOut, t) - } - } - return -} diff --git a/web/public/sw.js b/web/public/sw.js index 43a2e3b36..70ad9a7dd 100644 --- a/web/public/sw.js +++ b/web/public/sw.js @@ -4,6 +4,7 @@ import { NavigationRoute, registerRoute } from "workbox-routing"; import { NetworkFirst } from "workbox-strategies"; import { getDbAsync } from "../src/app/getDb"; +import { formatMessage, formatTitleWithDefault } from "../src/app/notificationUtils"; // See WebPushWorker, this is to play a sound on supported browsers, // if the app is in the foreground @@ -27,11 +28,11 @@ self.addEventListener("pushsubscriptionchange", (event) => { }); self.addEventListener("push", (event) => { - console.log("[ServiceWorker] Received Web Push Event", { event }); // server/types.go webPushPayload const data = event.data.json(); + console.log("[ServiceWorker] Received Web Push Event", { event, data }); - const { formatted_title: formattedTitle, subscription_id: subscriptionId, message } = data; + const { subscription_id: subscriptionId, message } = data; broadcastChannel.postMessage(message); event.waitUntil( @@ -53,9 +54,9 @@ self.addEventListener("push", (event) => { db.subscriptions.update(subscriptionId, { last: message.id, }), - self.registration.showNotification(formattedTitle, { + self.registration.showNotification(formatTitleWithDefault(message, message.topic), { tag: subscriptionId, - body: message.message, + body: formatMessage(message), icon: "/static/images/ntfy.png", data, }), @@ -106,6 +107,7 @@ precacheAndRoute(self.__WB_MANIFEST); cleanupOutdatedCaches(); // to allow work offline -registerRoute(new NavigationRoute(createHandlerBoundToURL("/"))); - -registerRoute(({ url }) => url.pathname === "/config.js", new NetworkFirst()); +if (import.meta.env.MODE !== "development") { + registerRoute(new NavigationRoute(createHandlerBoundToURL("/"))); + registerRoute(({ url }) => url.pathname === "/config.js", new NetworkFirst()); +} diff --git a/web/src/app/Api.js b/web/src/app/Api.js index c3effb927..377dcccbf 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -144,7 +144,7 @@ class Api { method: "POST", headers: maybeWithAuth({}, user), body: JSON.stringify({ - endpoint: subscription.webPushEndpoint + endpoint: subscription.webPushEndpoint, }), }); diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index c9e3c1827..0ace7b390 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -1,4 +1,5 @@ -import { formatMessage, formatTitleWithDefault, openUrl, playSound, topicDisplayName, topicShortUrl, urlB64ToUint8Array } from "./utils"; +import { openUrl, playSound, topicDisplayName, topicShortUrl, urlB64ToUint8Array } from "./utils"; +import { formatMessage, formatTitleWithDefault } from "./notificationUtils"; import prefs from "./Prefs"; import logo from "../img/ntfy.png"; import api from "./Api"; diff --git a/web/src/app/emojisMapped.js b/web/src/app/emojisMapped.js new file mode 100644 index 000000000..d823bbe01 --- /dev/null +++ b/web/src/app/emojisMapped.js @@ -0,0 +1,4 @@ +import { rawEmojis } from "./emojis"; + +// Format emojis (see emoji.js) +export default Object.fromEntries(rawEmojis.flatMap((emoji) => emoji.aliases.map((alias) => [alias, emoji.emoji]))); diff --git a/web/src/app/notificationUtils.js b/web/src/app/notificationUtils.js new file mode 100644 index 000000000..b385f4817 --- /dev/null +++ b/web/src/app/notificationUtils.js @@ -0,0 +1,35 @@ +// This is a separate file since the other utils import `config.js`, which depends on `window` +// and cannot be used in the service worker + +import emojisMapped from "./emojisMapped"; + +const toEmojis = (tags) => { + if (!tags) return []; + return tags.filter((tag) => tag in emojisMapped).map((tag) => emojisMapped[tag]); +}; + +export const formatTitle = (m) => { + const emojiList = toEmojis(m.tags); + if (emojiList.length > 0) { + return `${emojiList.join(" ")} ${m.title}`; + } + return m.title; +}; + +export const formatTitleWithDefault = (m, fallback) => { + if (m.title) { + return formatTitle(m); + } + return fallback; +}; + +export const formatMessage = (m) => { + if (m.title) { + return m.message; + } + const emojiList = toEmojis(m.tags); + if (emojiList.length > 0) { + return `${emojiList.join(" ")} ${m.message}`; + } + return m.message; +}; diff --git a/web/src/app/utils.js b/web/src/app/utils.js index 69132b2e2..906a88a4a 100644 --- a/web/src/app/utils.js +++ b/web/src/app/utils.js @@ -1,5 +1,4 @@ import { Base64 } from "js-base64"; -import { rawEmojis } from "./emojis"; import beep from "../sounds/beep.mp3"; import juntos from "../sounds/juntos.mp3"; import pristine from "../sounds/pristine.mp3"; @@ -8,6 +7,7 @@ import dadum from "../sounds/dadum.mp3"; import pop from "../sounds/pop.mp3"; import popSwoosh from "../sounds/pop-swoosh.mp3"; import config from "./config"; +import emojisMapped from "./emojisMapped"; export const tiersUrl = (baseUrl) => `${baseUrl}/v1/tiers`; export const shortUrl = (url) => url.replaceAll(/https?:\/\//g, ""); @@ -56,48 +56,9 @@ export const topicDisplayName = (subscription) => { return topicShortUrl(subscription.baseUrl, subscription.topic); }; -// Format emojis (see emoji.js) -const emojis = {}; -rawEmojis.forEach((emoji) => { - emoji.aliases.forEach((alias) => { - emojis[alias] = emoji.emoji; - }); -}); - -const toEmojis = (tags) => { - if (!tags) return []; - return tags.filter((tag) => tag in emojis).map((tag) => emojis[tag]); -}; - -export const formatTitle = (m) => { - const emojiList = toEmojis(m.tags); - if (emojiList.length > 0) { - return `${emojiList.join(" ")} ${m.title}`; - } - return m.title; -}; - -export const formatTitleWithDefault = (m, fallback) => { - if (m.title) { - return formatTitle(m); - } - return fallback; -}; - -export const formatMessage = (m) => { - if (m.title) { - return m.message; - } - const emojiList = toEmojis(m.tags); - if (emojiList.length > 0) { - return `${emojiList.join(" ")} ${m.message}`; - } - return m.message; -}; - export const unmatchedTags = (tags) => { if (!tags) return []; - return tags.filter((tag) => !(tag in emojis)); + return tags.filter((tag) => !(tag in emojisMapped)); }; export const encodeBase64 = (s) => Base64.encode(s); diff --git a/web/src/components/Notifications.jsx b/web/src/components/Notifications.jsx index 2faf2fd29..fe9fcc485 100644 --- a/web/src/components/Notifications.jsx +++ b/web/src/components/Notifications.jsx @@ -24,17 +24,8 @@ import { useLiveQuery } from "dexie-react-hooks"; import InfiniteScroll from "react-infinite-scroll-component"; import { Trans, useTranslation } from "react-i18next"; import { useOutletContext } from "react-router-dom"; -import { - formatBytes, - formatMessage, - formatShortDateTime, - formatTitle, - maybeAppendActionErrors, - openUrl, - shortUrl, - topicShortUrl, - unmatchedTags, -} from "../app/utils"; +import { formatBytes, formatShortDateTime, maybeAppendActionErrors, openUrl, shortUrl, topicShortUrl, unmatchedTags } from "../app/utils"; +import { formatMessage, formatTitle } from "../app/notificationUtils"; import { LightboxBackdrop, Paragraph, VerticallyCenteredContainer } from "./styles"; import subscriptionManager from "../app/SubscriptionManager"; import priority1 from "../img/priority-1.svg"; From 0c25425346a43b3f5f56d1293194d315afc46198 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 31 May 2023 18:30:20 +0200 Subject: [PATCH 11/74] Use readJSONWithLimit for web push sub/unsub --- server/server_web_push.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/server/server_web_push.go b/server/server_web_push.go index a465764ec..bf5b92b92 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -9,8 +9,7 @@ import ( ) func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Request, v *visitor) error { - var sub webPushSubscribePayload - err := json.NewDecoder(r.Body).Decode(&sub) + sub, err := readJSONWithLimit[webPushSubscribePayload](r.Body, jsonBodyBytesLimit, false) if err != nil || sub.BrowserSubscription.Endpoint == "" || sub.BrowserSubscription.Keys.P256dh == "" || sub.BrowserSubscription.Keys.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid } @@ -19,17 +18,14 @@ func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Requ if err != nil { return err } - if err = s.webPush.AddSubscription(topic.ID, v.MaybeUserID(), sub); err != nil { + if err = s.webPush.AddSubscription(topic.ID, v.MaybeUserID(), *sub); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) } func (s *Server) handleTopicWebPushUnsubscribe(w http.ResponseWriter, r *http.Request, _ *visitor) error { - var payload webPushUnsubscribePayload - - err := json.NewDecoder(r.Body).Decode(&payload) - + payload, err := readJSONWithLimit[webPushUnsubscribePayload](r.Body, jsonBodyBytesLimit, false) if err != nil { return errHTTPBadRequestWebPushSubscriptionInvalid } From 7aa3d8f59bab59bed6c14fb49ecf878e00b08f13 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 31 May 2023 18:43:06 +0200 Subject: [PATCH 12/74] Hide web push toggles if disabled on server --- web/src/app/Notifier.js | 2 +- web/src/components/SubscribeDialog.jsx | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index 0ace7b390..73bb51ac3 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -115,7 +115,7 @@ class Notifier { } pushSupported() { - return "serviceWorker" in navigator && "PushManager" in window; + return config.enable_web_push && "serviceWorker" in navigator && "PushManager" in window; } /** diff --git a/web/src/components/SubscribeDialog.jsx b/web/src/components/SubscribeDialog.jsx index 57281661f..60b698637 100644 --- a/web/src/components/SubscribeDialog.jsx +++ b/web/src/components/SubscribeDialog.jsx @@ -103,6 +103,7 @@ const SubscribeDialog = (props) => { const browserNotificationsSupported = notifier.supported(); const pushNotificationsSupported = notifier.pushSupported(); const iosInstallRequired = notifier.iosSupportedButInstallRequired(); +const pushPossible = pushNotificationsSupported && iosInstallRequired; const getNotificationTypeFromToggles = (browserNotificationsEnabled, backgroundNotificationsEnabled) => { if (backgroundNotificationsEnabled) { @@ -138,12 +139,14 @@ const SubscribePage = (props) => { const [notificationsExplicitlyDenied, setNotificationsExplicitlyDenied] = useState(notifier.denied()); // default to on if notifications are already granted const [browserNotificationsEnabled, setBrowserNotificationsEnabled] = useState(notifier.granted()); - const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState(props.webPushDefaultEnabled === "enabled"); + const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState( + pushPossible && props.webPushDefaultEnabled === "enabled" + ); const handleBrowserNotificationsChanged = async (e) => { if (e.target.checked && (await notifier.maybeRequestPermission())) { setBrowserNotificationsEnabled(true); - if (props.webPushDefaultEnabled === "enabled") { + if (pushPossible && props.webPushDefaultEnabled === "enabled") { setBackgroundNotificationsEnabled(true); } } else { From 4944e3ae4b89b6e593fae3dd454bff400c2c4446 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 31 May 2023 21:08:46 +0200 Subject: [PATCH 13/74] Remove webPushEndpoint from indexeddb Rely directly on getting it from the browser --- web/src/app/Api.js | 4 ++-- web/src/app/Notifier.js | 31 +++++++++++++++++++----------- web/src/app/SubscriptionManager.js | 25 ++++++------------------ 3 files changed, 28 insertions(+), 32 deletions(-) diff --git a/web/src/app/Api.js b/web/src/app/Api.js index 377dcccbf..398f80888 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -134,7 +134,7 @@ class Api { throw new Error(`Unexpected server response ${response.status}`); } - async unsubscribeWebPush(subscription) { + async unsubscribeWebPush(subscription, browserSubscription) { const user = await userManager.get(subscription.baseUrl); const url = topicUrlWebPushUnsubscribe(subscription.baseUrl, subscription.topic); @@ -144,7 +144,7 @@ class Api { method: "POST", headers: maybeWithAuth({}, user), body: JSON.stringify({ - endpoint: subscription.webPushEndpoint, + endpoint: browserSubscription.endpoint, }), }); diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index 73bb51ac3..47c2fa1ae 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -47,9 +47,14 @@ class Notifier { async unsubscribeWebPush(subscription) { try { - await api.unsubscribeWebPush(subscription); + const pushManager = await this.pushManager(); + const browserSubscription = await pushManager.getSubscription(); + if (!browserSubscription) { + throw new Error("No browser subscription found"); + } + await api.unsubscribeWebPush(subscription, browserSubscription); } catch (e) { - console.error("[Notifier.subscribeWebPush] Error subscribing to web push", e); + console.error("[Notifier] Error unsubscribing from web push", e); } } @@ -64,21 +69,15 @@ class Notifier { return {}; } - const registration = await navigator.serviceWorker.getRegistration(); - - if (!registration) { - console.log("[Notifier.subscribeWebPush] Web push supported but no service worker registration found, skipping"); - return {}; - } - try { - const browserSubscription = await registration.pushManager.subscribe({ + const pushManager = await this.pushManager(); + const browserSubscription = await pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: urlB64ToUint8Array(config.web_push_public_key), }); + await api.subscribeWebPush(baseUrl, topic, browserSubscription); console.log("[Notifier.subscribeWebPush] Successfully subscribed to web push"); - return browserSubscription; } catch (e) { console.error("[Notifier.subscribeWebPush] Error subscribing to web push", e); } @@ -86,6 +85,16 @@ class Notifier { return {}; } + async pushManager() { + const registration = await navigator.serviceWorker.getRegistration(); + + if (!registration) { + throw new Error("No service worker registration found"); + } + + return registration.pushManager; + } + granted() { return this.supported() && Notification.permission === "granted"; } diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index ae4bf49ec..159589145 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -68,16 +68,12 @@ class SubscriptionManager { async add(baseUrl, topic, opts = {}) { const id = topicUrl(baseUrl, topic); - const webPushFields = opts.notificationType === "background" ? await notifier.subscribeWebPush(baseUrl, topic) : {}; + if (opts.notificationType === "background") { + await notifier.subscribeWebPush(baseUrl, topic); + } const existingSubscription = await this.get(id); if (existingSubscription) { - if (webPushFields.endpoint) { - await this.db.subscriptions.update(existingSubscription.id, { - webPushEndpoint: webPushFields.endpoint, - }); - } - return existingSubscription; } @@ -88,7 +84,6 @@ class SubscriptionManager { mutedUntil: 0, last: null, ...opts, - webPushEndpoint: webPushFields.endpoint, }; await this.db.subscriptions.put(subscription); @@ -139,7 +134,7 @@ class SubscriptionManager { await this.db.subscriptions.delete(subscription.id); await this.db.notifications.where({ subscriptionId: subscription.id }).delete(); - if (subscription.webPushEndpoint) { + if (subscription.notificationType === NotificationType.BACKGROUND) { await notifier.unsubscribeWebPush(subscription); } } @@ -240,10 +235,7 @@ class SubscriptionManager { if (mutedUntil === 1) { await notifier.unsubscribeWebPush(subscription); } else { - const webPushFields = await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); - await this.db.subscriptions.update(subscriptionId, { - webPushEndpoint: webPushFields.endpoint, - }); + await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); } } } @@ -261,19 +253,14 @@ class SubscriptionManager { return; } - let { webPushEndpoint } = subscription; - if (oldNotificationType === "background") { await notifier.unsubscribeWebPush(subscription); - webPushEndpoint = undefined; } else if (newNotificationType === "background") { - const webPushFields = await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); - webPushEndpoint = webPushFields.webPushEndpoint; + await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); } await this.db.subscriptions.update(subscription.id, { notificationType: newNotificationType, - webPushEndpoint, }); } From 47ad024ec786da91ece3e2050303326230387534 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Fri, 2 Jun 2023 13:22:54 +0200 Subject: [PATCH 14/74] Simplify web push UX and updates - Use a single endpoint - Use a declarative web push sync hook. This thus handles all edge cases that had to be manually handled before: logout, login, account sync, etc. - Simplify UX: browser notifications are always enabled (unless denied), web push toggle only shows up if permissions are already granted. --- server/server.go | 27 +++--- server/server_web_push.go | 38 ++++----- server/server_web_push_test.go | 85 +++++++++--------- server/types.go | 12 ++- server/web_push.go | 38 ++++++--- web/public/static/langs/en.json | 9 +- web/src/app/Api.js | 36 ++------ web/src/app/ConnectionManager.js | 9 +- web/src/app/Notifier.js | 53 ++++-------- web/src/app/SubscriptionManager.js | 104 +++++------------------ web/src/app/WebPushWorker.js | 64 +++++++++++--- web/src/app/getDb.js | 2 +- web/src/app/utils.js | 3 +- web/src/components/Account.jsx | 2 - web/src/components/ActionBar.jsx | 2 - web/src/components/Navigation.jsx | 91 ++++++++++++-------- web/src/components/Preferences.jsx | 2 +- web/src/components/SubscribeDialog.jsx | 82 +++--------------- web/src/components/SubscriptionPopup.jsx | 51 +++-------- web/src/components/hooks.js | 9 +- 20 files changed, 293 insertions(+), 426 deletions(-) diff --git a/server/server.go b/server/server.go index 12ccee5c6..a3170817b 100644 --- a/server/server.go +++ b/server/server.go @@ -67,17 +67,15 @@ type handleFunc func(http.ResponseWriter, *http.Request, *visitor) error var ( // If changed, don't forget to update Android App and auth_sqlite.go - topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No /! - topicPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}$`) // Regex must match JS & Android app! - externalTopicPathRegex = regexp.MustCompile(`^/[^/]+\.[^/]+/[-_A-Za-z0-9]{1,64}$`) // Extended topic path, for web-app, e.g. /example.com/mytopic - jsonPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/json$`) - ssePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/sse$`) - rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) - wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) - authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) - webPushSubscribePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/web-push/subscribe$`) - webPushUnsubscribePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/web-push/unsubscribe$`) - publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}/(publish|send|trigger)$`) + topicRegex = regexp.MustCompile(`^[-_A-Za-z0-9]{1,64}$`) // No /! + topicPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}$`) // Regex must match JS & Android app! + externalTopicPathRegex = regexp.MustCompile(`^/[^/]+\.[^/]+/[-_A-Za-z0-9]{1,64}$`) // Extended topic path, for web-app, e.g. /example.com/mytopic + jsonPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/json$`) + ssePathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/sse$`) + rawPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/raw$`) + wsPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/ws$`) + authPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}(,[-_A-Za-z0-9]{1,64})*/auth$`) + publishPathRegex = regexp.MustCompile(`^/[-_A-Za-z0-9]{1,64}/(publish|send|trigger)$`) webConfigPath = "/config.js" webManifestPath = "/manifest.webmanifest" @@ -96,6 +94,7 @@ var ( apiAccountSettingsPath = "/v1/account/settings" apiAccountSubscriptionPath = "/v1/account/subscription" apiAccountReservationPath = "/v1/account/reservation" + apiAccountWebPushPath = "/v1/account/web-push" apiAccountPhonePath = "/v1/account/phone" apiAccountPhoneVerifyPath = "/v1/account/phone/verify" apiAccountBillingPortalPath = "/v1/account/billing/portal" @@ -525,10 +524,8 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeWS))(w, r, v) } else if r.Method == http.MethodGet && authPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleTopicAuth))(w, r, v) - } else if r.Method == http.MethodPost && webPushSubscribePathRegex.MatchString(r.URL.Path) { - return s.ensureWebPushEnabled(s.limitRequestsWithTopic(s.authorizeTopicRead(s.handleTopicWebPushSubscribe)))(w, r, v) - } else if r.Method == http.MethodPost && webPushUnsubscribePathRegex.MatchString(r.URL.Path) { - return s.ensureWebPushEnabled(s.limitRequestsWithTopic(s.authorizeTopicRead(s.handleTopicWebPushUnsubscribe)))(w, r, v) + } else if r.Method == http.MethodPut && apiAccountWebPushPath == r.URL.Path { + return s.ensureWebPushEnabled(s.limitRequests(s.handleWebPushUpdate))(w, r, v) } else if r.Method == http.MethodGet && (topicPathRegex.MatchString(r.URL.Path) || externalTopicPathRegex.MatchString(r.URL.Path)) { return s.ensureWebEnabled(s.handleTopic)(w, r, v) } diff --git a/server/server_web_push.go b/server/server_web_push.go index bf5b92b92..fcf0dad67 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -3,40 +3,36 @@ package server import ( "encoding/json" "fmt" + "net/http" + "github.com/SherClockHolmes/webpush-go" "heckel.io/ntfy/log" - "net/http" + "heckel.io/ntfy/user" ) -func (s *Server) handleTopicWebPushSubscribe(w http.ResponseWriter, r *http.Request, v *visitor) error { - sub, err := readJSONWithLimit[webPushSubscribePayload](r.Body, jsonBodyBytesLimit, false) - if err != nil || sub.BrowserSubscription.Endpoint == "" || sub.BrowserSubscription.Keys.P256dh == "" || sub.BrowserSubscription.Keys.Auth == "" { +func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { + payload, err := readJSONWithLimit[webPushSubscriptionPayload](r.Body, jsonBodyBytesLimit, false) + if err != nil || payload.BrowserSubscription.Endpoint == "" || payload.BrowserSubscription.Keys.P256dh == "" || payload.BrowserSubscription.Keys.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid } - topic, err := fromContext[*topic](r, contextTopic) - if err != nil { - return err - } - if err = s.webPush.AddSubscription(topic.ID, v.MaybeUserID(), *sub); err != nil { - return err - } - return s.writeJSON(w, newSuccessResponse()) -} + u := v.User() -func (s *Server) handleTopicWebPushUnsubscribe(w http.ResponseWriter, r *http.Request, _ *visitor) error { - payload, err := readJSONWithLimit[webPushUnsubscribePayload](r.Body, jsonBodyBytesLimit, false) + topics, err := s.topicsFromIDs(payload.Topics...) if err != nil { - return errHTTPBadRequestWebPushSubscriptionInvalid + return err } - topic, err := fromContext[*topic](r, contextTopic) - if err != nil { - return err + if s.userManager != nil { + for _, t := range topics { + if err := s.userManager.Authorize(u, t.ID, user.PermissionRead); err != nil { + logvr(v, r).With(t).Err(err).Debug("Access to topic %s not authorized", t.ID) + return errHTTPForbidden.With(t) + } + } } - err = s.webPush.RemoveSubscription(topic.ID, payload.Endpoint) - if err != nil { + if err := s.webPush.UpdateSubscriptions(payload.Topics, v.MaybeUserID(), payload.BrowserSubscription); err != nil { return err } diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 0c8526b17..757469182 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -1,6 +1,8 @@ package server import ( + "encoding/json" + "fmt" "io" "net/http" "net/http/httptest" @@ -14,22 +16,10 @@ import ( "heckel.io/ntfy/util" ) -var ( - webPushSubscribePayloadExample = `{ - "browser_subscription":{ - "endpoint": "https://example.com/webpush", - "keys": { - "p256dh": "p256dh-key", - "auth": "auth-key" - } - } - }` -) - -func TestServer_WebPush_TopicSubscribe(t *testing.T) { +func TestServer_WebPush_TopicAdd(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, nil) + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -43,6 +33,19 @@ func TestServer_WebPush_TopicSubscribe(t *testing.T) { require.Equal(t, subs[0].UserID, "") } +func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + addSubscription(t, s, "test-topic", "https://example.com/webpush") + requireSubscriptionCount(t, s, "test-topic", 1) + + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{}), nil) + require.Equal(t, 200, response.Code) + require.Equal(t, `{"success":true}`+"\n", response.Body.String()) + + requireSubscriptionCount(t, s, "test-topic", 0) +} + func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { config := configureAuth(t, newTestConfigWithWebPush(t)) config.AuthDefault = user.PermissionDenyAll @@ -51,7 +54,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, map[string]string{ + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) @@ -68,38 +71,20 @@ func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) - response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, nil) + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), nil) require.Equal(t, 403, response.Code) requireSubscriptionCount(t, s, "test-topic", 0) } -func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { - s := newTestServer(t, newTestConfigWithWebPush(t)) - - response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, nil) - require.Equal(t, 200, response.Code) - require.Equal(t, `{"success":true}`+"\n", response.Body.String()) - - requireSubscriptionCount(t, s, "test-topic", 1) - - unsubscribe := `{"endpoint":"https://example.com/webpush"}` - response = request(t, s, "POST", "/test-topic/web-push/unsubscribe", unsubscribe, nil) - require.Equal(t, 200, response.Code) - require.Equal(t, `{"success":true}`+"\n", response.Body.String()) - - requireSubscriptionCount(t, s, "test-topic", 0) -} - func TestServer_WebPush_DeleteAccountUnsubscribe(t *testing.T) { config := configureAuth(t, newTestConfigWithWebPush(t)) - config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "POST", "/test-topic/web-push/subscribe", webPushSubscribePayloadExample, map[string]string{ + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) @@ -172,15 +157,29 @@ func TestServer_WebPush_PublishExpire(t *testing.T) { requireSubscriptionCount(t, s, "test-topic-abc", 0) } +func payloadForTopics(t *testing.T, topics []string) string { + topicsJson, err := json.Marshal(topics) + require.Nil(t, err) + + return fmt.Sprintf(`{ + "topics": %s, + "browser_subscription":{ + "endpoint": "https://example.com/webpush", + "keys": { + "p256dh": "p256dh-key", + "auth": "auth-key" + } + } + }`, topicsJson) +} + func addSubscription(t *testing.T, s *Server, topic string, url string) { - err := s.webPush.AddSubscription("test-topic", "", webPushSubscribePayload{ - BrowserSubscription: webpush.Subscription{ - Endpoint: url, - Keys: webpush.Keys{ - // connected to a local test VAPID key, not a leak! - Auth: "kSC3T8aN1JCQxxPdrFLrZg", - P256dh: "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE", - }, + err := s.webPush.AddSubscription(topic, "", webpush.Subscription{ + Endpoint: url, + Keys: webpush.Keys{ + // connected to a local test VAPID key, not a leak! + Auth: "kSC3T8aN1JCQxxPdrFLrZg", + P256dh: "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE", }, }) require.Nil(t, err) diff --git a/server/types.go b/server/types.go index 1c124c7a9..f1f15735b 100644 --- a/server/types.go +++ b/server/types.go @@ -1,12 +1,13 @@ package server import ( - "heckel.io/ntfy/log" - "heckel.io/ntfy/user" "net/http" "net/netip" "time" + "heckel.io/ntfy/log" + "heckel.io/ntfy/user" + "github.com/SherClockHolmes/webpush-go" "heckel.io/ntfy/util" ) @@ -476,10 +477,7 @@ type webPushSubscription struct { UserID string } -type webPushSubscribePayload struct { +type webPushSubscriptionPayload struct { BrowserSubscription webpush.Subscription `json:"browser_subscription"` -} - -type webPushUnsubscribePayload struct { - Endpoint string `json:"endpoint"` + Topics []string `json:"topics"` } diff --git a/server/web_push.go b/server/web_push.go index 8969af683..c48920d87 100644 --- a/server/web_push.go +++ b/server/web_push.go @@ -2,7 +2,9 @@ package server import ( "database/sql" + "fmt" + "github.com/SherClockHolmes/webpush-go" _ "github.com/mattn/go-sqlite3" // SQLite driver ) @@ -69,23 +71,33 @@ func setupNewSubscriptionsDB(db *sql.DB) error { return nil } -func (c *webPushStore) AddSubscription(topic string, userID string, subscription webPushSubscribePayload) error { - _, err := c.db.Exec( - insertWebPushSubscriptionQuery, - topic, - userID, - subscription.BrowserSubscription.Endpoint, - subscription.BrowserSubscription.Keys.Auth, - subscription.BrowserSubscription.Keys.P256dh, - ) - return err +func (c *webPushStore) UpdateSubscriptions(topics []string, userID string, subscription webpush.Subscription) error { + fmt.Printf("AAA") + tx, err := c.db.Begin() + if err != nil { + return err + } + defer tx.Rollback() + + if err = c.RemoveByEndpoint(subscription.Endpoint); err != nil { + return err + } + for _, topic := range topics { + if err := c.AddSubscription(topic, userID, subscription); err != nil { + return err + } + } + return tx.Commit() } -func (c *webPushStore) RemoveSubscription(topic string, endpoint string) error { +func (c *webPushStore) AddSubscription(topic string, userID string, subscription webpush.Subscription) error { _, err := c.db.Exec( - deleteWebPushSubscriptionByTopicAndEndpointQuery, + insertWebPushSubscriptionQuery, topic, - endpoint, + userID, + subscription.Endpoint, + subscription.Keys.Auth, + subscription.Keys.P256dh, ) return err } diff --git a/web/public/static/langs/en.json b/web/public/static/langs/en.json index 53b8c3f55..2d58311a6 100644 --- a/web/public/static/langs/en.json +++ b/web/public/static/langs/en.json @@ -52,6 +52,8 @@ "nav_button_connecting": "connecting", "nav_upgrade_banner_label": "Upgrade to ntfy Pro", "nav_upgrade_banner_description": "Reserve topics, more messages & emails, and larger attachments", + "alert_notification_permission_required_title": "Permission required", + "alert_notification_permission_required_description": "Please click here to enable notifications", "alert_notification_permission_denied_title": "Notifications are blocked", "alert_notification_permission_denied_description": "Please re-enable them in your browser and refresh the page to receive notifications", "alert_notification_ios_install_required_title": "iOS Install Required", @@ -94,9 +96,7 @@ "notifications_example": "Example", "notifications_more_details": "For more information, check out the website or documentation.", "notification_toggle_unmute": "Unmute", - "notification_toggle_sound": "Sound only", - "notification_toggle_browser": "Browser notifications", - "notification_toggle_background": "Browser and background notifications", + "notification_toggle_background": "Background notifications", "display_name_dialog_title": "Change display name", "display_name_dialog_description": "Set an alternative name for a topic that is displayed in the subscription list. This helps identify topics with complicated names more easily.", "display_name_dialog_placeholder": "Display name", @@ -169,8 +169,7 @@ "subscribe_dialog_subscribe_description": "Topics may not be password-protected, so choose a name that's not easy to guess. Once subscribed, you can PUT/POST notifications.", "subscribe_dialog_subscribe_topic_placeholder": "Topic name, e.g. phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Use another server", - "subscribe_dialog_subscribe_enable_browser_notifications_label": "Notify me via browser notifications", - "subscribe_dialog_subscribe_enable_background_notifications_label": "Also notify me when ntfy is not open (web push)", + "subscribe_dialog_subscribe_enable_background_notifications_label": "Enable background notifications (web push)", "subscribe_dialog_subscribe_base_url_label": "Service URL", "subscribe_dialog_subscribe_button_generate_topic_name": "Generate name", "subscribe_dialog_subscribe_button_cancel": "Cancel", diff --git a/web/src/app/Api.js b/web/src/app/Api.js index 398f80888..b763346b0 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -6,8 +6,7 @@ import { topicUrlAuth, topicUrlJsonPoll, topicUrlJsonPollWithSince, - topicUrlWebPushSubscribe, - topicUrlWebPushUnsubscribe, + webPushSubscriptionsUrl, } from "./utils"; import userManager from "./UserManager"; import { fetchOrThrow } from "./errors"; @@ -116,36 +115,15 @@ class Api { throw new Error(`Unexpected server response ${response.status}`); } - async subscribeWebPush(baseUrl, topic, browserSubscription) { - const user = await userManager.get(baseUrl); - const url = topicUrlWebPushSubscribe(baseUrl, topic); - console.log(`[Api] Sending Web Push Subscription ${url}`); + async updateWebPushSubscriptions(topics, browserSubscription) { + const user = await userManager.get(config.base_url); + const url = webPushSubscriptionsUrl(config.base_url); + console.log(`[Api] Sending Web Push Subscriptions`, { url, topics, endpoint: browserSubscription.endpoint }); const response = await fetch(url, { - method: "POST", - headers: maybeWithAuth({}, user), - body: JSON.stringify({ browser_subscription: browserSubscription }), - }); - - if (response.ok) { - return true; - } - - throw new Error(`Unexpected server response ${response.status}`); - } - - async unsubscribeWebPush(subscription, browserSubscription) { - const user = await userManager.get(subscription.baseUrl); - - const url = topicUrlWebPushUnsubscribe(subscription.baseUrl, subscription.topic); - console.log(`[Api] Unsubscribing Web Push Subscription ${url}`); - - const response = await fetch(url, { - method: "POST", + method: "PUT", headers: maybeWithAuth({}, user), - body: JSON.stringify({ - endpoint: browserSubscription.endpoint, - }), + body: JSON.stringify({ topics, browser_subscription: browserSubscription }), }); if (response.ok) { diff --git a/web/src/app/ConnectionManager.js b/web/src/app/ConnectionManager.js index 952c74aff..7cb12e903 100644 --- a/web/src/app/ConnectionManager.js +++ b/web/src/app/ConnectionManager.js @@ -1,5 +1,4 @@ import Connection from "./Connection"; -import { NotificationType } from "./SubscriptionManager"; import { hashCode } from "./utils"; const makeConnectionId = (subscription, user) => @@ -52,11 +51,9 @@ class ConnectionManager { const connectionId = makeConnectionId(s, user); return { ...s, user, connectionId }; }) - // we want to create a ws for both sound-only and active browser notifications, - // only background notifications don't need this as they come over web push. - // however, if background notifications are muted, we again need the ws while - // the page is active - .filter((s) => s.notificationType !== NotificationType.BACKGROUND && s.mutedUntil !== 1); + // background notifications don't need this as they come over web push. + // however, if they are muted, we again need the ws while the page is active + .filter((s) => !s.webPushEnabled && s.mutedUntil !== 1); console.log(); const targetIds = subscriptionsWithUsersAndConnectionId.map((s) => s.connectionId); diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index 47c2fa1ae..428b89796 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -2,7 +2,6 @@ import { openUrl, playSound, topicDisplayName, topicShortUrl, urlB64ToUint8Array import { formatMessage, formatTitleWithDefault } from "./notificationUtils"; import prefs from "./Prefs"; import logo from "../img/ntfy.png"; -import api from "./Api"; /** * The notifier is responsible for displaying desktop notifications. Note that not all modern browsers @@ -45,44 +44,20 @@ class Notifier { } } - async unsubscribeWebPush(subscription) { - try { - const pushManager = await this.pushManager(); - const browserSubscription = await pushManager.getSubscription(); - if (!browserSubscription) { - throw new Error("No browser subscription found"); - } - await api.unsubscribeWebPush(subscription, browserSubscription); - } catch (e) { - console.error("[Notifier] Error unsubscribing from web push", e); + async getBrowserSubscription() { + if (!this.pushPossible()) { + throw new Error("Unsupported or denied"); } - } - async subscribeWebPush(baseUrl, topic) { - if (!this.supported() || !this.pushSupported() || !config.enable_web_push) { - return {}; - } + const pushManager = await this.pushManager(); - // only subscribe to web push for the current server. this is a limitation of the web push API, - // which only allows a single server per service worker origin. - if (baseUrl !== config.base_url) { - return {}; - } - - try { - const pushManager = await this.pushManager(); - const browserSubscription = await pushManager.subscribe({ + return ( + (await pushManager.getSubscription()) ?? + pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: urlB64ToUint8Array(config.web_push_public_key), - }); - - await api.subscribeWebPush(baseUrl, topic, browserSubscription); - console.log("[Notifier.subscribeWebPush] Successfully subscribed to web push"); - } catch (e) { - console.error("[Notifier.subscribeWebPush] Error subscribing to web push", e); - } - - return {}; + }) + ); } async pushManager() { @@ -95,6 +70,10 @@ class Notifier { return registration.pushManager; } + notRequested() { + return this.supported() && Notification.permission === "default"; + } + granted() { return this.supported() && Notification.permission === "granted"; } @@ -127,6 +106,10 @@ class Notifier { return config.enable_web_push && "serviceWorker" in navigator && "PushManager" in window; } + pushPossible() { + return this.pushSupported() && this.contextSupported() && this.granted() && !this.iosSupportedButInstallRequired(); + } + /** * Returns true if this is a HTTPS site, or served over localhost. Otherwise the Notification API * is not supported, see https://developer.mozilla.org/en-US/docs/Web/API/notification @@ -136,7 +119,7 @@ class Notifier { } iosSupportedButInstallRequired() { - return "standalone" in window.navigator && window.navigator.standalone === false; + return this.pushSupported() && "standalone" in window.navigator && window.navigator.standalone === false; } } diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 159589145..3cdaa85e8 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -1,20 +1,9 @@ +import api from "./Api"; import notifier from "./Notifier"; import prefs from "./Prefs"; import getDb from "./getDb"; import { topicUrl } from "./utils"; -/** @typedef {string} NotificationTypeEnum */ - -/** @enum {NotificationTypeEnum} */ -export const NotificationType = { - /** sound-only */ - SOUND: "sound", - /** browser notifications when there is an active tab, via websockets */ - BROWSER: "browser", - /** web push notifications, regardless of whether the window is open */ - BACKGROUND: "background", -}; - class SubscriptionManager { constructor(db) { this.db = db; @@ -31,6 +20,11 @@ class SubscriptionManager { ); } + async webPushTopics() { + const subscriptions = await this.db.subscriptions.where({ webPushEnabled: 1, mutedUntil: 0 }).toArray(); + return subscriptions.map(({ topic }) => topic); + } + async get(subscriptionId) { return this.db.subscriptions.get(subscriptionId); } @@ -47,14 +41,7 @@ class SubscriptionManager { return; } - await notifier.playSound(); - - // sound only - if (subscription.notificationType === "sound") { - return; - } - - await notifier.notify(subscription, notification, defaultClickAction); + await Promise.all([notifier.playSound(), notifier.notify(subscription, notification, defaultClickAction)]); } /** @@ -62,28 +49,25 @@ class SubscriptionManager { * @param {string} topic * @param {object} opts * @param {boolean} opts.internal - * @param {NotificationTypeEnum} opts.notificationType + * @param {boolean} opts.webPushEnabled * @returns */ async add(baseUrl, topic, opts = {}) { const id = topicUrl(baseUrl, topic); - if (opts.notificationType === "background") { - await notifier.subscribeWebPush(baseUrl, topic); - } - const existingSubscription = await this.get(id); if (existingSubscription) { return existingSubscription; } const subscription = { + ...opts, id: topicUrl(baseUrl, topic), baseUrl, topic, mutedUntil: 0, last: null, - ...opts, + webPushEnabled: opts.webPushEnabled ? 1 : 0, }; await this.db.subscriptions.put(subscription); @@ -94,17 +78,16 @@ class SubscriptionManager { async syncFromRemote(remoteSubscriptions, remoteReservations) { console.log(`[SubscriptionManager] Syncing subscriptions from remote`, remoteSubscriptions); - const notificationType = (await prefs.webPushDefaultEnabled()) === "enabled" ? "background" : "browser"; + const webPushEnabled = (await prefs.webPushDefaultEnabled()) === "enabled"; // Add remote subscriptions const remoteIds = await Promise.all( remoteSubscriptions.map(async (remote) => { - const local = await this.add(remote.base_url, remote.topic, { - notificationType, - }); const reservation = remoteReservations?.find((r) => remote.base_url === config.base_url && remote.topic === r.topic) || null; - await this.update(local.id, { + const local = await this.add(remote.base_url, remote.topic, { + // only if same-origin subscription + webPushEnabled: webPushEnabled && remote.base_url === config.base_url, displayName: remote.display_name, // May be undefined reservation, // May be null! }); @@ -126,6 +109,12 @@ class SubscriptionManager { ); } + async refreshWebPushSubscriptions(presetTopics) { + const topics = presetTopics ?? (await this.webPushTopics()); + + await api.updateWebPushSubscriptions(topics, await notifier.getBrowserSubscription()); + } + async updateState(subscriptionId, state) { this.db.subscriptions.update(subscriptionId, { state }); } @@ -133,10 +122,6 @@ class SubscriptionManager { async remove(subscription) { await this.db.subscriptions.delete(subscription.id); await this.db.notifications.where({ subscriptionId: subscription.id }).delete(); - - if (subscription.notificationType === NotificationType.BACKGROUND) { - await notifier.unsubscribeWebPush(subscription); - } } async first() { @@ -228,59 +213,14 @@ class SubscriptionManager { await this.db.subscriptions.update(subscriptionId, { mutedUntil, }); - - const subscription = await this.get(subscriptionId); - - if (subscription.notificationType === "background") { - if (mutedUntil === 1) { - await notifier.unsubscribeWebPush(subscription); - } else { - await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); - } - } } - /** - * - * @param {object} subscription - * @param {NotificationTypeEnum} newNotificationType - * @returns - */ - async setNotificationType(subscription, newNotificationType) { - const oldNotificationType = subscription.notificationType ?? "browser"; - - if (oldNotificationType === newNotificationType) { - return; - } - - if (oldNotificationType === "background") { - await notifier.unsubscribeWebPush(subscription); - } else if (newNotificationType === "background") { - await notifier.subscribeWebPush(subscription.baseUrl, subscription.topic); - } - + async toggleBackgroundNotifications(subscription) { await this.db.subscriptions.update(subscription.id, { - notificationType: newNotificationType, + webPushEnabled: subscription.webPushEnabled === 1 ? 0 : 1, }); } - // for logout/delete, unsubscribe first to prevent receiving dangling notifications - async unsubscribeAllWebPush() { - const subscriptions = await this.db.subscriptions.where({ notificationType: "background" }).toArray(); - await Promise.all(subscriptions.map((subscription) => notifier.unsubscribeWebPush(subscription))); - } - - async refreshWebPushSubscriptions() { - const subscriptions = await this.db.subscriptions.where({ notificationType: "background" }).toArray(); - const browserSubscription = await (await navigator.serviceWorker.getRegistration())?.pushManager?.getSubscription(); - - if (browserSubscription) { - await Promise.all(subscriptions.map((subscription) => notifier.subscribeWebPush(subscription.baseUrl, subscription.topic))); - } else { - await Promise.all(subscriptions.map((subscription) => this.setNotificationType(subscription, "sound"))); - } - } - async setDisplayName(subscriptionId, displayName) { await this.db.subscriptions.update(subscriptionId, { displayName, diff --git a/web/src/app/WebPushWorker.js b/web/src/app/WebPushWorker.js index 508df7253..4ba0f9e12 100644 --- a/web/src/app/WebPushWorker.js +++ b/web/src/app/WebPushWorker.js @@ -1,16 +1,40 @@ +import { useState, useEffect } from "react"; +import { useLiveQuery } from "dexie-react-hooks"; import notifier from "./Notifier"; import subscriptionManager from "./SubscriptionManager"; -const onMessage = () => { - notifier.playSound(); +export const useWebPushUpdateWorker = () => { + const topics = useLiveQuery(() => subscriptionManager.webPushTopics()); + const [lastTopics, setLastTopics] = useState(); + + useEffect(() => { + if (!notifier.pushPossible() || JSON.stringify(topics) === JSON.stringify(lastTopics)) { + return; + } + + (async () => { + try { + console.log("[useWebPushUpdateWorker] Refreshing web push subscriptions"); + + await subscriptionManager.refreshWebPushSubscriptions(topics); + + setLastTopics(topics); + } catch (e) { + console.error("[useWebPushUpdateWorker] Error refreshing web push subscriptions", e); + } + })(); + }, [topics, lastTopics]); }; -const delayMillis = 2000; // 2 seconds -const intervalMillis = 300000; // 5 minutes +const intervalMillis = 5 * 60 * 1_000; // 5 minutes +const updateIntervalMillis = 60 * 60 * 1_000; // 1 hour -class WebPushWorker { +class WebPushRefreshWorker { constructor() { this.timer = null; + this.lastUpdate = null; + this.messageHandler = this.onMessage.bind(this); + this.visibilityHandler = this.onVisibilityChange.bind(this); } startWorker() { @@ -19,28 +43,42 @@ class WebPushWorker { } this.timer = setInterval(() => this.updateSubscriptions(), intervalMillis); - setTimeout(() => this.updateSubscriptions(), delayMillis); this.broadcastChannel = new BroadcastChannel("web-push-broadcast"); - this.broadcastChannel.addEventListener("message", onMessage); + this.broadcastChannel.addEventListener("message", this.messageHandler); + + document.addEventListener("visibilitychange", this.visibilityHandler); } stopWorker() { clearTimeout(this.timer); - this.broadcastChannel.removeEventListener("message", onMessage); + this.broadcastChannel.removeEventListener("message", this.messageHandler); this.broadcastChannel.close(); + + document.removeEventListener("visibilitychange", this.visibilityHandler); + } + + onMessage() { + notifier.playSound(); + } + + onVisibilityChange() { + if (document.visibilityState === "visible") { + this.updateSubscriptions(); + } } async updateSubscriptions() { - try { - console.log("[WebPushBroadcastListener] Refreshing web push subscriptions"); + if (!notifier.pushPossible()) { + return; + } + if (!this.lastUpdate || Date.now() - this.lastUpdate > updateIntervalMillis) { await subscriptionManager.refreshWebPushSubscriptions(); - } catch (e) { - console.error("[WebPushBroadcastListener] Error refreshing web push subscriptions", e); + this.lastUpdate = Date.now(); } } } -export default new WebPushWorker(); +export const webPushRefreshWorker = new WebPushRefreshWorker(); diff --git a/web/src/app/getDb.js b/web/src/app/getDb.js index 9cf8c66e8..92b62c43f 100644 --- a/web/src/app/getDb.js +++ b/web/src/app/getDb.js @@ -14,7 +14,7 @@ const getDbBase = (username) => { const db = new Dexie(dbName); db.version(2).stores({ - subscriptions: "&id,baseUrl,notificationType", + subscriptions: "&id,baseUrl,[webPushEnabled+mutedUntil]", notifications: "&id,subscriptionId,time,new,[subscriptionId+new]", // compound key for query performance users: "&baseUrl,username", prefs: "&key", diff --git a/web/src/app/utils.js b/web/src/app/utils.js index 906a88a4a..d5b3e9768 100644 --- a/web/src/app/utils.js +++ b/web/src/app/utils.js @@ -20,9 +20,8 @@ export const topicUrlJson = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/jso export const topicUrlJsonPoll = (baseUrl, topic) => `${topicUrlJson(baseUrl, topic)}?poll=1`; export const topicUrlJsonPollWithSince = (baseUrl, topic, since) => `${topicUrlJson(baseUrl, topic)}?poll=1&since=${since}`; export const topicUrlAuth = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/auth`; -export const topicUrlWebPushSubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/subscribe`; -export const topicUrlWebPushUnsubscribe = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/web-push/unsubscribe`; export const topicShortUrl = (baseUrl, topic) => shortUrl(topicUrl(baseUrl, topic)); +export const webPushSubscriptionsUrl = (baseUrl) => `${baseUrl}/v1/account/web-push`; export const accountUrl = (baseUrl) => `${baseUrl}/v1/account`; export const accountPasswordUrl = (baseUrl) => `${baseUrl}/v1/account/password`; export const accountTokenUrl = (baseUrl) => `${baseUrl}/v1/account/token`; diff --git a/web/src/components/Account.jsx b/web/src/components/Account.jsx index bbc380c93..1fb66cb54 100644 --- a/web/src/components/Account.jsx +++ b/web/src/components/Account.jsx @@ -1078,8 +1078,6 @@ const DeleteAccountDialog = (props) => { const handleSubmit = async () => { try { - await subscriptionManager.unsubscribeAllWebPush(); - await accountApi.delete(password); await getDb().delete(); console.debug(`[Account] Account deleted`); diff --git a/web/src/components/ActionBar.jsx b/web/src/components/ActionBar.jsx index 154f17cb5..f0b031a3b 100644 --- a/web/src/components/ActionBar.jsx +++ b/web/src/components/ActionBar.jsx @@ -120,8 +120,6 @@ const ProfileIcon = () => { const handleLogout = async () => { try { - await subscriptionManager.unsubscribeAllWebPush(); - await accountApi.logout(); await getDb().delete(); } finally { diff --git a/web/src/components/Navigation.jsx b/web/src/components/Navigation.jsx index b2755aa97..a58525250 100644 --- a/web/src/components/Navigation.jsx +++ b/web/src/components/Navigation.jsx @@ -108,27 +108,34 @@ const NavList = (props) => { const isPaid = account?.billing?.subscription; const showUpgradeBanner = config.enable_payments && !isAdmin && !isPaid; const showSubscriptionsList = props.subscriptions?.length > 0; - const showNotificationPermissionDenied = notifier.denied(); + const [showNotificationPermissionRequired, setShowNotificationPermissionRequired] = useState(notifier.notRequested()); + const [showNotificationPermissionDenied, setShowNotificationPermissionDenied] = useState(notifier.denied()); const showNotificationIOSInstallRequired = notifier.iosSupportedButInstallRequired(); const showNotificationBrowserNotSupportedBox = !showNotificationIOSInstallRequired && !notifier.browserSupported(); const showNotificationContextNotSupportedBox = notifier.browserSupported() && !notifier.contextSupported(); // Only show if notifications are generally supported in the browser - const navListPadding = + const refreshPermissions = () => { + setShowNotificationPermissionRequired(notifier.notRequested()); + setShowNotificationPermissionDenied(notifier.denied()); + }; + + const alertVisible = + showNotificationPermissionRequired || showNotificationPermissionDenied || showNotificationIOSInstallRequired || showNotificationBrowserNotSupportedBox || - showNotificationContextNotSupportedBox - ? "0" - : ""; + showNotificationContextNotSupportedBox; return ( <> - + + {showNotificationPermissionRequired && } {showNotificationPermissionDenied && } {showNotificationBrowserNotSupportedBox && } {showNotificationContextNotSupportedBox && } {showNotificationIOSInstallRequired && } + {alertVisible && } {!showSubscriptionsList && ( navigate(routes.app)} selected={location.pathname === config.app_root}> @@ -346,16 +353,36 @@ const SubscriptionItem = (props) => { ); }; +const NotificationPermissionRequired = ({ refreshPermissions }) => { + const { t } = useTranslation(); + return ( + + {t("alert_notification_permission_required_title")} + + {/* component=Button is not an anchor, false positive */} + {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */} + { + await notifier.maybeRequestPermission(); + refreshPermissions(); + }} + > + {t("alert_notification_permission_required_description")} + + + + ); +}; + const NotificationPermissionDeniedAlert = () => { const { t } = useTranslation(); return ( - <> - - {t("alert_notification_permission_denied_title")} - {t("alert_notification_permission_denied_description")} - - - + + {t("alert_notification_permission_denied_title")} + {t("alert_notification_permission_denied_description")} + ); }; @@ -363,7 +390,7 @@ const NotificationIOSInstallRequiredAlert = () => { const { t } = useTranslation(); return ( <> - + {t("alert_notification_ios_install_required_title")} {t("alert_notification_ios_install_required_description")} @@ -375,33 +402,27 @@ const NotificationIOSInstallRequiredAlert = () => { const NotificationBrowserNotSupportedAlert = () => { const { t } = useTranslation(); return ( - <> - - {t("alert_not_supported_title")} - {t("alert_not_supported_description")} - - - + + {t("alert_not_supported_title")} + {t("alert_not_supported_description")} + ); }; const NotificationContextNotSupportedAlert = () => { const { t } = useTranslation(); return ( - <> - - {t("alert_not_supported_title")} - - , - }} - /> - - - - + + {t("alert_not_supported_title")} + + , + }} + /> + + ); }; diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 091e1f517..37f9f7725 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -86,7 +86,7 @@ const Notifications = () => { - {notifier.pushSupported() && } + {notifier.pushPossible() && } ); diff --git a/web/src/components/SubscribeDialog.jsx b/web/src/components/SubscribeDialog.jsx index 60b698637..ad311d5e3 100644 --- a/web/src/components/SubscribeDialog.jsx +++ b/web/src/components/SubscribeDialog.jsx @@ -12,16 +12,14 @@ import { FormGroup, useMediaQuery, Switch, - Stack, } from "@mui/material"; import { useTranslation } from "react-i18next"; -import { Warning } from "@mui/icons-material"; import { useLiveQuery } from "dexie-react-hooks"; import theme from "./theme"; import api from "../app/Api"; import { randomAlphanumericString, topicUrl, validTopic, validUrl } from "../app/utils"; import userManager from "../app/UserManager"; -import subscriptionManager, { NotificationType } from "../app/SubscriptionManager"; +import subscriptionManager from "../app/SubscriptionManager"; import poller from "../app/Poller"; import DialogFooter from "./DialogFooter"; import session from "../app/Session"; @@ -59,16 +57,16 @@ const SubscribeDialog = (props) => { const webPushDefaultEnabled = useLiveQuery(async () => prefs.webPushDefaultEnabled()); - const handleSuccess = async (notificationType) => { + const handleSuccess = async (webPushEnabled) => { console.log(`[SubscribeDialog] Subscribing to topic ${topic}`); const actualBaseUrl = baseUrl || config.base_url; const subscription = await subscribeTopic(actualBaseUrl, topic, { - notificationType, + webPushEnabled, }); poller.pollInBackground(subscription); // Dangle! // if the user hasn't changed the default web push setting yet, set it to enabled - if (notificationType === "background" && webPushDefaultEnabled === "initial") { + if (webPushEnabled && webPushDefaultEnabled === "initial") { await prefs.setWebPushDefaultEnabled(true); } @@ -100,23 +98,6 @@ const SubscribeDialog = (props) => { ); }; -const browserNotificationsSupported = notifier.supported(); -const pushNotificationsSupported = notifier.pushSupported(); -const iosInstallRequired = notifier.iosSupportedButInstallRequired(); -const pushPossible = pushNotificationsSupported && iosInstallRequired; - -const getNotificationTypeFromToggles = (browserNotificationsEnabled, backgroundNotificationsEnabled) => { - if (backgroundNotificationsEnabled) { - return NotificationType.BACKGROUND; - } - - if (browserNotificationsEnabled) { - return NotificationType.BROWSER; - } - - return NotificationType.SOUND; -}; - const SubscribePage = (props) => { const { t } = useTranslation(); const { account } = useContext(AccountContext); @@ -134,27 +115,7 @@ const SubscribePage = (props) => { const reserveTopicEnabled = session.exists() && (account?.role === Role.ADMIN || (account?.role === Role.USER && (account?.stats.reservations_remaining || 0) > 0)); - // load initial value, but update it in `handleBrowserNotificationsChanged` - // if we interact with the API and therefore possibly change it (from default -> denied) - const [notificationsExplicitlyDenied, setNotificationsExplicitlyDenied] = useState(notifier.denied()); - // default to on if notifications are already granted - const [browserNotificationsEnabled, setBrowserNotificationsEnabled] = useState(notifier.granted()); - const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState( - pushPossible && props.webPushDefaultEnabled === "enabled" - ); - - const handleBrowserNotificationsChanged = async (e) => { - if (e.target.checked && (await notifier.maybeRequestPermission())) { - setBrowserNotificationsEnabled(true); - if (pushPossible && props.webPushDefaultEnabled === "enabled") { - setBackgroundNotificationsEnabled(true); - } - } else { - setNotificationsExplicitlyDenied(notifier.denied()); - setBrowserNotificationsEnabled(false); - setBackgroundNotificationsEnabled(false); - } - }; + const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState(props.webPushDefaultEnabled === "enabled"); const handleBackgroundNotificationsChanged = (e) => { setBackgroundNotificationsEnabled(e.target.checked); @@ -197,7 +158,7 @@ const SubscribePage = (props) => { } console.log(`[SubscribeDialog] Successful login to ${topicUrl(baseUrl, topic)} for user ${username}`); - props.onSuccess(getNotificationTypeFromToggles(browserNotificationsEnabled, backgroundNotificationsEnabled)); + props.onSuccess(backgroundNotificationsEnabled); }; const handleUseAnotherChanged = (e) => { @@ -311,41 +272,20 @@ const SubscribePage = (props) => { )} )} - {browserNotificationsSupported && ( + {notifier.pushPossible() && !anotherServerVisible && ( } - label={ - - {t("subscribe_dialog_subscribe_enable_browser_notifications_label")} - {notificationsExplicitlyDenied && } - - } + label={t("subscribe_dialog_subscribe_enable_background_notifications_label")} /> - {pushNotificationsSupported && !anotherServerVisible && browserNotificationsEnabled && ( - - } - label={t("subscribe_dialog_subscribe_enable_background_notifications_label")} - /> - )} )} diff --git a/web/src/components/SubscriptionPopup.jsx b/web/src/components/SubscriptionPopup.jsx index 90c63b3fd..429c2a9ff 100644 --- a/web/src/components/SubscriptionPopup.jsx +++ b/web/src/components/SubscriptionPopup.jsx @@ -33,7 +33,7 @@ import { Send, } from "@mui/icons-material"; import theme from "./theme"; -import subscriptionManager, { NotificationType } from "../app/SubscriptionManager"; +import subscriptionManager from "../app/SubscriptionManager"; import DialogFooter from "./DialogFooter"; import accountApi, { Role } from "../app/AccountApi"; import session from "../app/Session"; @@ -334,14 +334,6 @@ const DisplayNameDialog = (props) => { ); }; -const getNotificationType = (subscription) => { - if (subscription.mutedUntil === 1) { - return "muted"; - } - - return subscription.notificationType ?? NotificationType.BROWSER; -}; - const checkedItem = ( @@ -350,15 +342,10 @@ const checkedItem = ( const NotificationToggle = ({ subscription }) => { const { t } = useTranslation(); - const type = getNotificationType(subscription); - const handleChange = async (newType) => { + const handleToggleBackground = async () => { try { - if (newType !== NotificationType.SOUND && !(await notifier.maybeRequestPermission())) { - return; - } - - await subscriptionManager.setNotificationType(subscription, newType); + await subscriptionManager.toggleBackgroundNotifications(subscription); } catch (e) { console.error("[NotificationToggle] Error setting notification type", e); } @@ -368,7 +355,7 @@ const NotificationToggle = ({ subscription }) => { await subscriptionManager.setMutedUntil(subscription.id, 0); }; - if (type === "muted") { + if (subscription.mutedUntil === 1) { return ( @@ -381,30 +368,14 @@ const NotificationToggle = ({ subscription }) => { return ( <> - - {type === NotificationType.SOUND && checkedItem} - handleChange(NotificationType.SOUND)}> - {t("notification_toggle_sound")} - - - {!notifier.denied() && !notifier.iosSupportedButInstallRequired() && ( + {notifier.pushPossible() && ( <> - {notifier.supported() && ( - - {type === NotificationType.BROWSER && checkedItem} - handleChange(NotificationType.BROWSER)}> - {t("notification_toggle_browser")} - - - )} - {notifier.pushSupported() && ( - - {type === NotificationType.BACKGROUND && checkedItem} - handleChange(NotificationType.BACKGROUND)}> - {t("notification_toggle_background")} - - - )} + + {subscription.webPushEnabled === 1 && checkedItem} + + {t("notification_toggle_background")} + + )} diff --git a/web/src/components/hooks.js b/web/src/components/hooks.js index 3a710e3ac..eb40e4438 100644 --- a/web/src/components/hooks.js +++ b/web/src/components/hooks.js @@ -9,7 +9,8 @@ import pruner from "../app/Pruner"; import session from "../app/Session"; import accountApi from "../app/AccountApi"; import { UnauthorizedError } from "../app/errors"; -import webPushWorker from "../app/WebPushWorker"; +import { webPushRefreshWorker, useWebPushUpdateWorker } from "../app/WebPushWorker"; +import notifier from "../app/Notifier"; /** * Wire connectionManager and subscriptionManager so that subscriptions are updated when the connection @@ -134,24 +135,26 @@ const stopWorkers = () => { poller.stopWorker(); pruner.stopWorker(); accountApi.stopWorker(); + webPushRefreshWorker.stopWorker(); }; const startWorkers = () => { poller.startWorker(); pruner.startWorker(); accountApi.startWorker(); + webPushRefreshWorker.startWorker(); }; export const useBackgroundProcesses = () => { + useWebPushUpdateWorker(); + useEffect(() => { console.log("[useBackgroundProcesses] mounting"); startWorkers(); - webPushWorker.startWorker(); return () => { console.log("[useBackgroundProcesses] unloading"); stopWorkers(); - webPushWorker.stopWorker(); }; }, []); }; From 0f0074cbab14ddb77bc9135b02b4dd60e3581a58 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Fri, 2 Jun 2023 14:45:05 +0200 Subject: [PATCH 15/74] Implement push subscription expiry --- cmd/serve.go | 8 +++ docs/config.md | 10 +++ docs/subscribe/web.md | 15 ++--- server/config.go | 10 +++ server/log.go | 1 + server/server.yml | 2 + server/server_manager.go | 3 + server/server_web_push.go | 86 +++++++++++++++---------- server/server_web_push_test.go | 38 ++++++++++- server/types.go | 19 ++++++ server/web_push.go | 55 +++++++++++++++- web/public/sw.js | 112 +++++++++++++++++++-------------- web/src/app/Prefs.js | 3 +- web/src/components/Account.jsx | 1 - web/src/components/App.jsx | 4 +- web/src/components/hooks.js | 1 - 16 files changed, 269 insertions(+), 99 deletions(-) diff --git a/cmd/serve.go b/cmd/serve.go index 4ec94945d..a77227e6c 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -99,6 +99,8 @@ var flagsServe = append( altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-private-key", Aliases: []string{"web_push_private_key"}, EnvVars: []string{"NTFY_WEB_PUSH_PRIVATE_KEY"}, Usage: "private key used for web push notifications"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-subscriptions-file", Aliases: []string{"web_push_subscriptions_file"}, EnvVars: []string{"NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE"}, Usage: "file used to store web push subscriptions"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-email-address", Aliases: []string{"web_push_email_address"}, EnvVars: []string{"NTFY_WEB_PUSH_EMAIL_ADDRESS"}, Usage: "e-mail address of sender, required to use browser push services"}), + altsrc.NewDurationFlag(&cli.DurationFlag{Name: "web-push-expiry-warning-duration", Aliases: []string{"web_push_expiry_warning_duration"}, EnvVars: []string{"NTFY_WEB_PUSH_EXPIRY_WARNING_DURATION"}, Value: server.DefaultWebPushExpiryWarningDuration, Usage: "duration after last update to send a warning notification"}), + altsrc.NewDurationFlag(&cli.DurationFlag{Name: "web-push-expiry-duration", Aliases: []string{"web_push_expiry_duration"}, EnvVars: []string{"NTFY_WEB_PUSH_EXPIRY_DURATION"}, Value: server.DefaultWebPushExpiryDuration, Usage: "duration after last update to expire subscription"}), ) var cmdServe = &cli.Command{ @@ -138,6 +140,8 @@ func execServe(c *cli.Context) error { webPushPrivateKey := c.String("web-push-private-key") webPushPublicKey := c.String("web-push-public-key") webPushSubscriptionsFile := c.String("web-push-subscriptions-file") + webPushExpiryWarningDuration := c.Duration("web-push-expiry-warning-duration") + webPushExpiryDuration := c.Duration("web-push-expiry-duration") webPushEmailAddress := c.String("web-push-email-address") cacheFile := c.String("cache-file") cacheDuration := c.Duration("cache-duration") @@ -197,6 +201,8 @@ func execServe(c *cli.Context) error { return errors.New("if web push is enabled, web-push-private-key, web-push-public-key, web-push-subscriptions-file, web-push-email-address, and base-url should be set. run 'ntfy web-push generate-keys' to generate keys") } else if keepaliveInterval < 5*time.Second { return errors.New("keepalive interval cannot be lower than five seconds") + } else if webPushEnabled && (webPushExpiryWarningDuration < 24*time.Hour || (webPushExpiryDuration-webPushExpiryWarningDuration < 24*time.Hour)) { + return errors.New("web push expiry warning duration must be at least 1 day, expire duration must be at least 1 day later") } else if managerInterval < 5*time.Second { return errors.New("manager interval cannot be lower than five seconds") } else if cacheDuration > 0 && cacheDuration < managerInterval { @@ -364,6 +370,8 @@ func execServe(c *cli.Context) error { conf.WebPushPublicKey = webPushPublicKey conf.WebPushSubscriptionsFile = webPushSubscriptionsFile conf.WebPushEmailAddress = webPushEmailAddress + conf.WebPushExpiryDuration = webPushExpiryDuration + conf.WebPushExpiryWarningDuration = webPushExpiryWarningDuration // Set up hot-reloading of config go sigHandlerConfigReload(config) diff --git a/docs/config.md b/docs/config.md index 7e1ef6c6e..cfd14034d 100644 --- a/docs/config.md +++ b/docs/config.md @@ -827,6 +827,11 @@ web-push-email-address: sysadmin@example.com # don't forget to set the required base-url for web push notifications base-url: https://ntfy.example.com + +# you can also set custom expiry and warning durations +# the minimum is 1 day for warning, and 1 day after warning for expiry +web-push-expiry-warning-duration: 168h +web-push-expiry-duration: 192h ``` The `web-push-subscriptions-file` is used to store the push subscriptions. Subscriptions do not ever expire automatically, unless the push @@ -1339,6 +1344,8 @@ variable before running the `ntfy` command (e.g. `export NTFY_LISTEN_HTTP=:80`). | `web-push-private-key` | `NTFY_WEB_PUSH_PRIVATE_KEY` | *string* | - | Web Push: Private Key. Run `ntfy web-push generate-keys` to generate | | `web-push-subscriptions-file` | `NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE` | *string* | - | Web Push: Subscriptions file | | `web-push-email-address` | `NTFY_WEB_PUSH_EMAIL_ADDRESS` | *string* | - | Web Push: Sender email address | +| `web-push-expiry-warning-duration` | `NTFY_WEB_PUSH_EXPIRY_WARNING_DURATION` | *duration* | 1 week | Web Push: Time before expiry warning is sent (min 1 day) | +| `web-push-expiry-duration` | `NTFY_WEB_PUSH_EXPIRY_DURATION` | *duration* | 1 week + 1 day | Web Push: Time before subscription is expired (min 1 day after warning) | The format for a *duration* is: `(smh)`, e.g. 30s, 20m or 1h. The format for a *size* is: `(GMK)`, e.g. 1G, 200M or 4000k. @@ -1436,5 +1443,8 @@ OPTIONS: --web-push-private-key value, --web_push_private_key value private key used for web push notifications [$NTFY_WEB_PUSH_PRIVATE_KEY] --web-push-subscriptions-file value, --web_push_subscriptions_file value file used to store web push subscriptions [$NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE] --web-push-email-address value, --web_push_email_address value e-mail address of sender, required to use browser push services [$NTFY_WEB_PUSH_EMAIL_ADDRESS] + --web-push-expiry-warning-duration value, --web_push_expiry_warning_duration value duration after last update to send a warning notification (default: 168h0m0s) [$NTFY_WEB_PUSH_EXPIRY_WARNING_DURATION] + --web-push-expiry-duration value, --web_push_expiry_duration value duration after last update to expire subscription (default: 192h0m0s) [$NTFY_WEB_PUSH_EXPIRY_DURATION] --help, -h show help + ``` diff --git a/docs/subscribe/web.md b/docs/subscribe/web.md index e073bec91..465a53eee 100644 --- a/docs/subscribe/web.md +++ b/docs/subscribe/web.md @@ -2,15 +2,9 @@ You can use the Web UI to subscribe to topics as well. Simply type in the topic name and click the *Subscribe* button. -While subscribing, you have the option to enable desktop notifications, as well as background notifications. When you -enable them for the first time, you will be prompted to allow notifications on your browser. +While subscribing, you have the option to enable background notifications on supported browsers. -- **Sound only** - - If you don't enable browser notifications, a sound will play when a new notification comes in, and the tab title - will show the number of new notifications. - -- **Browser Notifications** +- If background notifications are off: This requires an active ntfy tab to be open to receive notifications. These are typically instantaneous, and will appear as a system notification. If you don't see these, check that your browser is allowed to show notifications @@ -19,7 +13,7 @@ enable them for the first time, you will be prompted to allow notifications on y If you don't want to enable background notifications, pinning the ntfy tab on your browser is a good solution to leave it running. -- **Background Notifications** +- If background notifications are on: This uses the [Web Push API](https://caniuse.com/push-api). You don't need an active ntfy tab open, but in some cases you may need to keep your browser open. @@ -27,6 +21,9 @@ enable them for the first time, you will be prompted to allow notifications on y Background notifications are only supported on the same server hosting the web app. You cannot use another server, but can instead subscribe on the other server itself. + If the ntfy app is not opened for more than a week, background notifications will be paused. You can resume them + by opening the app again, and will get a warning notification before they are paused. + | Browser | Platform | Browser Running | Browser Not Running | Restrictions | | ------- | -------- | --------------- | ------------------- | ------------------------------------------------------- | | Chrome | Desktop | ✅ | ❌ | | diff --git a/server/config.go b/server/config.go index d5c876722..e26ee0ddd 100644 --- a/server/config.go +++ b/server/config.go @@ -23,6 +23,12 @@ const ( DefaultStripePriceCacheDuration = 3 * time.Hour // Time to keep Stripe prices cached in memory before a refresh is needed ) +// Defines default web push settings +const ( + DefaultWebPushExpiryWarningDuration = 7 * 24 * time.Hour + DefaultWebPushExpiryDuration = DefaultWebPushExpiryWarningDuration + 24*time.Hour +) + // Defines all global and per-visitor limits // - message size limit: the max number of bytes for a message // - total topic limit: max number of topics overall @@ -152,6 +158,8 @@ type Config struct { WebPushPublicKey string WebPushSubscriptionsFile string WebPushEmailAddress string + WebPushExpiryDuration time.Duration + WebPushExpiryWarningDuration time.Duration } // NewConfig instantiates a default new server config @@ -238,5 +246,7 @@ func NewConfig() *Config { WebPushPublicKey: "", WebPushSubscriptionsFile: "", WebPushEmailAddress: "", + WebPushExpiryDuration: DefaultWebPushExpiryDuration, + WebPushExpiryWarningDuration: DefaultWebPushExpiryWarningDuration, } } diff --git a/server/log.go b/server/log.go index c638ed972..9f922b6a6 100644 --- a/server/log.go +++ b/server/log.go @@ -29,6 +29,7 @@ const ( tagResetter = "resetter" tagWebsocket = "websocket" tagMatrix = "matrix" + tagWebPush = "web_push" ) var ( diff --git a/server/server.yml b/server/server.yml index 6b921bbd4..e59c83364 100644 --- a/server/server.yml +++ b/server/server.yml @@ -47,6 +47,8 @@ # web-push-private-key: # web-push-subscriptions-file: # web-push-email-address: +# web-push-expiry-warning-duration: 168h +# web-push-expiry-duration: 192h # If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory. # This allows for service restarts without losing messages in support of the since= parameter. diff --git a/server/server_manager.go b/server/server_manager.go index 52e3621ef..a8626bd5f 100644 --- a/server/server_manager.go +++ b/server/server_manager.go @@ -15,6 +15,9 @@ func (s *Server) execManager() { s.pruneTokens() s.pruneAttachments() s.pruneMessages() + if s.config.WebPushEnabled { + s.expireOrNotifyOldSubscriptions() + } // Message count per topic var messagesCached int diff --git a/server/server_web_push.go b/server/server_web_push.go index fcf0dad67..d7c289554 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -43,6 +43,7 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { subscriptions, err := s.webPush.SubscriptionsForTopic(m.Topic) if err != nil { logvm(v, m).Err(err).Warn("Unable to publish web push messages") + return } @@ -50,42 +51,61 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { go func(i int, sub webPushSubscription) { ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.UserID, "topic": m.Topic, "message_id": m.ID} - payload := &webPushPayload{ - SubscriptionID: fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), - Message: *m, - } - jsonPayload, err := json.Marshal(payload) + s.sendWebPushNotification(newWebPushPayload(fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), *m), &sub, &ctx) + }(i, xi) + } +} - if err != nil { - logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") - return - } +func (s *Server) expireOrNotifyOldSubscriptions() { + subscriptions, err := s.webPush.ExpireAndGetExpiringSubscriptions(s.config.WebPushExpiryWarningDuration, s.config.WebPushExpiryDuration) + if err != nil { + log.Tag(tagWebPush).Err(err).Warn("Unable to publish expiry imminent warning") - resp, err := webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ - Subscriber: s.config.WebPushEmailAddress, - VAPIDPublicKey: s.config.WebPushPublicKey, - VAPIDPrivateKey: s.config.WebPushPrivateKey, - // Deliverability on iOS isn't great with lower urgency values, - // and thus we can't really map lower ntfy priorities to lower urgency values - Urgency: webpush.UrgencyHigh, - }) - - if err != nil { - logvm(v, m).Err(err).Fields(ctx).Debug("Unable to publish web push message") - if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { - logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") - } - return - } + return + } - // May want to handle at least 429 differently, but for now treat all errors the same - if !(200 <= resp.StatusCode && resp.StatusCode <= 299) { - logvm(v, m).Fields(ctx).Field("response", resp).Debug("Unable to publish web push message") - if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { - logvm(v, m).Err(err).Fields(ctx).Warn("Unable to expire subscription") - } - return - } + for i, xi := range subscriptions { + go func(i int, sub webPushSubscription) { + ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint} + + s.sendWebPushNotification(newWebPushSubscriptionExpiringPayload(), &sub, &ctx) }(i, xi) } + + log.Tag(tagWebPush).Debug("Expired old subscriptions and published %d expiry imminent warnings", len(subscriptions)) +} + +func (s *Server) sendWebPushNotification(payload any, sub *webPushSubscription, ctx *log.Context) { + jsonPayload, err := json.Marshal(payload) + + if err != nil { + log.Tag(tagWebPush).Err(err).Fields(*ctx).Debug("Unable to publish web push message") + return + } + + resp, err := webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ + Subscriber: s.config.WebPushEmailAddress, + VAPIDPublicKey: s.config.WebPushPublicKey, + VAPIDPrivateKey: s.config.WebPushPrivateKey, + // Deliverability on iOS isn't great with lower urgency values, + // and thus we can't really map lower ntfy priorities to lower urgency values + Urgency: webpush.UrgencyHigh, + }) + + if err != nil { + log.Tag(tagWebPush).Err(err).Fields(*ctx).Debug("Unable to publish web push message") + if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { + log.Tag(tagWebPush).Err(err).Fields(*ctx).Warn("Unable to expire subscription") + } + return + } + + // May want to handle at least 429 differently, but for now treat all errors the same + if !(200 <= resp.StatusCode && resp.StatusCode <= 299) { + log.Tag(tagWebPush).Fields(*ctx).Field("response", resp).Debug("Unable to publish web push message") + if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { + log.Tag(tagWebPush).Err(err).Fields(*ctx).Warn("Unable to expire subscription") + } + return + } } diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 757469182..0086b7945 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -157,8 +157,42 @@ func TestServer_WebPush_PublishExpire(t *testing.T) { requireSubscriptionCount(t, s, "test-topic-abc", 0) } +func TestServer_WebPush_Expiry(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + var received atomic.Bool + + upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + _, err := io.ReadAll(r.Body) + require.Nil(t, err) + w.WriteHeader(200) + w.Write([]byte(``)) + received.Store(true) + })) + defer upstreamServer.Close() + + addSubscription(t, s, "test-topic", upstreamServer.URL+"/push-receive") + requireSubscriptionCount(t, s, "test-topic", 1) + + _, err := s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-7 days')") + require.Nil(t, err) + + s.expireOrNotifyOldSubscriptions() + requireSubscriptionCount(t, s, "test-topic", 1) + + waitFor(t, func() bool { + return received.Load() + }) + + _, err = s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-8 days')") + require.Nil(t, err) + + s.expireOrNotifyOldSubscriptions() + requireSubscriptionCount(t, s, "test-topic", 0) +} + func payloadForTopics(t *testing.T, topics []string) string { - topicsJson, err := json.Marshal(topics) + topicsJSON, err := json.Marshal(topics) require.Nil(t, err) return fmt.Sprintf(`{ @@ -170,7 +204,7 @@ func payloadForTopics(t *testing.T, topics []string) string { "auth": "auth-key" } } - }`, topicsJson) + }`, topicsJSON) } func addSubscription(t *testing.T, s *Server, topic string, url string) { diff --git a/server/types.go b/server/types.go index f1f15735b..3ddfcbba8 100644 --- a/server/types.go +++ b/server/types.go @@ -468,10 +468,29 @@ type apiStripeSubscriptionDeletedEvent struct { } type webPushPayload struct { + Event string `json:"event"` SubscriptionID string `json:"subscription_id"` Message message `json:"message"` } +func newWebPushPayload(subscriptionID string, message message) webPushPayload { + return webPushPayload{ + Event: "message", + SubscriptionID: subscriptionID, + Message: message, + } +} + +type webPushControlMessagePayload struct { + Event string `json:"event"` +} + +func newWebPushSubscriptionExpiringPayload() webPushControlMessagePayload { + return webPushControlMessagePayload{ + Event: "subscription_expiring", + } +} + type webPushSubscription struct { BrowserSubscription webpush.Subscription UserID string diff --git a/server/web_push.go b/server/web_push.go index c48920d87..a98d6ad89 100644 --- a/server/web_push.go +++ b/server/web_push.go @@ -3,6 +3,7 @@ package server import ( "database/sql" "fmt" + "time" "github.com/SherClockHolmes/webpush-go" _ "github.com/mattn/go-sqlite3" // SQLite driver @@ -18,7 +19,8 @@ const ( endpoint TEXT NOT NULL, key_auth TEXT NOT NULL, key_p256dh TEXT NOT NULL, - updated_at DATETIME DEFAULT CURRENT_TIMESTAMP + updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, + warning_sent BOOLEAN DEFAULT FALSE ); CREATE INDEX IF NOT EXISTS idx_topic ON subscriptions (topic); CREATE INDEX IF NOT EXISTS idx_endpoint ON subscriptions (endpoint); @@ -32,8 +34,12 @@ const ( deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscriptions WHERE endpoint = ?` deleteWebPushSubscriptionByUserIDQuery = `DELETE FROM subscriptions WHERE user_id = ?` deleteWebPushSubscriptionByTopicAndEndpointQuery = `DELETE FROM subscriptions WHERE topic = ? AND endpoint = ?` + deleteWebPushSubscriptionsByAgeQuery = `DELETE FROM subscriptions WHERE warning_sent = 1 AND updated_at <= datetime('now', ?)` - selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE topic = ?` + selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE topic = ?` + selectWebPushSubscriptionsExpiringSoonQuery = `SELECT DISTINCT endpoint, key_auth, key_p256dh FROM subscriptions WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` + + updateWarningSentQuery = `UPDATE subscriptions SET warning_sent = true WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` selectWebPushSubscriptionsCountQuery = `SELECT COUNT(*) FROM subscriptions` ) @@ -72,7 +78,6 @@ func setupNewSubscriptionsDB(db *sql.DB) error { } func (c *webPushStore) UpdateSubscriptions(topics []string, userID string, subscription webpush.Subscription) error { - fmt.Printf("AAA") tx, err := c.db.Begin() if err != nil { return err @@ -121,6 +126,49 @@ func (c *webPushStore) SubscriptionsForTopic(topic string) (subscriptions []webP return data, nil } +func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Duration, expiryDuration time.Duration) (subscriptions []webPushSubscription, err error) { + tx, err := c.db.Begin() + if err != nil { + return nil, err + } + defer tx.Rollback() + + _, err = tx.Exec(deleteWebPushSubscriptionsByAgeQuery, fmt.Sprintf("-%.2f seconds", expiryDuration.Seconds())) + if err != nil { + return nil, err + } + + rows, err := tx.Query(selectWebPushSubscriptionsExpiringSoonQuery, fmt.Sprintf("-%.2f seconds", warningDuration.Seconds())) + if err != nil { + return nil, err + } + defer rows.Close() + + var data []webPushSubscription + for rows.Next() { + i := webPushSubscription{} + err = rows.Scan(&i.BrowserSubscription.Endpoint, &i.BrowserSubscription.Keys.Auth, &i.BrowserSubscription.Keys.P256dh) + fmt.Printf("%v+", i) + if err != nil { + return nil, err + } + data = append(data, i) + } + + // also set warning as sent + _, err = tx.Exec(updateWarningSentQuery, fmt.Sprintf("-%.2f seconds", warningDuration.Seconds())) + if err != nil { + return nil, err + } + + err = tx.Commit() + if err != nil { + return nil, err + } + + return data, nil +} + func (c *webPushStore) RemoveByEndpoint(endpoint string) error { _, err := c.db.Exec( deleteWebPushSubscriptionByEndpointQuery, @@ -136,6 +184,7 @@ func (c *webPushStore) RemoveByUserID(userID string) error { ) return err } + func (c *webPushStore) Close() error { return c.db.Close() } diff --git a/web/public/sw.js b/web/public/sw.js index 70ad9a7dd..dba350fae 100644 --- a/web/public/sw.js +++ b/web/public/sw.js @@ -32,35 +32,50 @@ self.addEventListener("push", (event) => { const data = event.data.json(); console.log("[ServiceWorker] Received Web Push Event", { event, data }); - const { subscription_id: subscriptionId, message } = data; - broadcastChannel.postMessage(message); - event.waitUntil( (async () => { - const db = await getDbAsync(); - - await Promise.all([ - (async () => { - await db.notifications.add({ - ...message, - subscriptionId, - // New marker (used for bubble indicator); cannot be boolean; Dexie index limitation - new: 1, - }); - const badgeCount = await db.notifications.where({ new: 1 }).count(); - console.log("[ServiceWorker] Setting new app badge count", { badgeCount }); - self.navigator.setAppBadge?.(badgeCount); - })(), - db.subscriptions.update(subscriptionId, { - last: message.id, - }), - self.registration.showNotification(formatTitleWithDefault(message, message.topic), { - tag: subscriptionId, - body: formatMessage(message), + if (data.event === "subscription_expiring") { + await self.registration.showNotification("Notifications will be paused", { + body: "Open ntfy to continue receiving notifications", + icon: "/static/images/ntfy.png", + data, + }); + } else if (data.event === "message") { + const { subscription_id: subscriptionId, message } = data; + broadcastChannel.postMessage(message); + + const db = await getDbAsync(); + + await Promise.all([ + (async () => { + await db.notifications.add({ + ...message, + subscriptionId, + // New marker (used for bubble indicator); cannot be boolean; Dexie index limitation + new: 1, + }); + const badgeCount = await db.notifications.where({ new: 1 }).count(); + console.log("[ServiceWorker] Setting new app badge count", { badgeCount }); + self.navigator.setAppBadge?.(badgeCount); + })(), + db.subscriptions.update(subscriptionId, { + last: message.id, + }), + self.registration.showNotification(formatTitleWithDefault(message, message.topic), { + tag: subscriptionId, + body: formatMessage(message), + icon: "/static/images/ntfy.png", + data, + }), + ]); + } else { + // We can't ignore the push, since permission can be revoked by the browser + await self.registration.showNotification("Unknown notification received from server", { + body: "You may need to update ntfy by opening the web app", icon: "/static/images/ntfy.png", data, - }), - ]); + }); + } })() ); }); @@ -68,33 +83,38 @@ self.addEventListener("push", (event) => { self.addEventListener("notificationclick", (event) => { event.notification.close(); - const { message } = event.notification.data; - - if (message.click) { - self.clients.openWindow(message.click); - return; - } - - const rootUrl = new URL(self.location.origin); - const topicUrl = new URL(message.topic, self.location.origin); - event.waitUntil( (async () => { const clients = await self.clients.matchAll({ type: "window" }); - const topicClient = clients.find((client) => client.url === topicUrl.toString()); - if (topicClient) { - topicClient.focus(); - return; - } - + const rootUrl = new URL(self.location.origin); const rootClient = clients.find((client) => client.url === rootUrl.toString()); - if (rootClient) { - rootClient.focus(); - return; - } - self.clients.openWindow(topicUrl); + if (event.notification.data.event !== "message") { + if (rootClient) { + rootClient.focus(); + } else { + self.clients.openWindow(rootUrl); + } + } else { + const { message } = event.notification.data; + + if (message.click) { + self.clients.openWindow(message.click); + return; + } + + const topicUrl = new URL(message.topic, self.location.origin); + const topicClient = clients.find((client) => client.url === topicUrl.toString()); + + if (topicClient) { + topicClient.focus(); + } else if (rootClient) { + rootClient.focus(); + } else { + self.clients.openWindow(topicUrl); + } + } })() ); }); diff --git a/web/src/app/Prefs.js b/web/src/app/Prefs.js index 45078352c..22f767af0 100644 --- a/web/src/app/Prefs.js +++ b/web/src/app/Prefs.js @@ -42,4 +42,5 @@ class Prefs { } } -export default new Prefs(getDb()); +const prefs = new Prefs(getDb()); +export default prefs; diff --git a/web/src/components/Account.jsx b/web/src/components/Account.jsx index 1fb66cb54..400ca08c6 100644 --- a/web/src/components/Account.jsx +++ b/web/src/components/Account.jsx @@ -57,7 +57,6 @@ import { IncorrectPasswordError, UnauthorizedError } from "../app/errors"; import { ProChip } from "./SubscriptionPopup"; import theme from "./theme"; import session from "../app/Session"; -import subscriptionManager from "../app/SubscriptionManager"; const Account = () => { if (!session.exists()) { diff --git a/web/src/components/App.jsx b/web/src/components/App.jsx index 148c3ac29..f19710d8a 100644 --- a/web/src/components/App.jsx +++ b/web/src/components/App.jsx @@ -58,9 +58,7 @@ const App = () => { const updateTitle = (newNotificationsCount) => { document.title = newNotificationsCount > 0 ? `(${newNotificationsCount}) ntfy` : "ntfy"; - if ("setAppBadge" in window.navigator) { - window.navigator.setAppBadge(newNotificationsCount); - } + window.navigator.setAppBadge?.(newNotificationsCount); }; const Layout = () => { diff --git a/web/src/components/hooks.js b/web/src/components/hooks.js index eb40e4438..815f05966 100644 --- a/web/src/components/hooks.js +++ b/web/src/components/hooks.js @@ -10,7 +10,6 @@ import session from "../app/Session"; import accountApi from "../app/AccountApi"; import { UnauthorizedError } from "../app/errors"; import { webPushRefreshWorker, useWebPushUpdateWorker } from "../app/WebPushWorker"; -import notifier from "../app/Notifier"; /** * Wire connectionManager and subscriptionManager so that subscriptions are updated when the connection From 46f34ca1e3e844f31ca8ac8e78142651a3c3283b Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:52:35 +0200 Subject: [PATCH 16/74] Add push service allowlist and topic limit --- server/errors.go | 2 ++ server/server_web_push.go | 27 ++++++++++++++ server/server_web_push_test.go | 66 +++++++++++++++++++++++----------- 3 files changed, 74 insertions(+), 21 deletions(-) diff --git a/server/errors.go b/server/errors.go index d13e2969e..c8d96edbd 100644 --- a/server/errors.go +++ b/server/errors.go @@ -115,6 +115,8 @@ var ( errHTTPBadRequestPhoneNumberVerifyChannelInvalid = &errHTTP{40036, http.StatusBadRequest, "invalid request: verification channel must be 'sms' or 'call'", "https://ntfy.sh/docs/publish/#phone-calls", nil} errHTTPBadRequestDelayNoCall = &errHTTP{40037, http.StatusBadRequest, "delayed call notifications are not supported", "", nil} errHTTPBadRequestWebPushSubscriptionInvalid = &errHTTP{40038, http.StatusBadRequest, "invalid request: web push payload malformed", "", nil} + errHTTPBadRequestWebPushEndpointUnknown = &errHTTP{40039, http.StatusBadRequest, "invalid request: web push endpoint unknown", "", nil} + errHTTPBadRequestWebPushTopicCountTooHigh = &errHTTP{40040, http.StatusBadRequest, "invalid request: too many web push topic subscriptions", "", nil} errHTTPNotFound = &errHTTP{40401, http.StatusNotFound, "page not found", "", nil} errHTTPUnauthorized = &errHTTP{40101, http.StatusUnauthorized, "unauthorized", "https://ntfy.sh/docs/publish/#authentication", nil} errHTTPForbidden = &errHTTP{40301, http.StatusForbidden, "forbidden", "https://ntfy.sh/docs/publish/#authentication", nil} diff --git a/server/server_web_push.go b/server/server_web_push.go index d7c289554..caccce928 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -4,18 +4,45 @@ import ( "encoding/json" "fmt" "net/http" + "regexp" "github.com/SherClockHolmes/webpush-go" "heckel.io/ntfy/log" "heckel.io/ntfy/user" ) +// test: https://regexr.com/7eqvl +// example urls: +// +// https://android.googleapis.com/XYZ +// https://fcm.googleapis.com/XYZ +// https://updates.push.services.mozilla.com/XYZ +// https://updates-autopush.stage.mozaws.net/XYZ +// https://updates-autopush.dev.mozaws.net/XYZ +// https://AAA.notify.windows.com/XYZ +// https://AAA.push.apple.com/XYZ +const ( + webPushEndpointAllowRegexStr = `^https:\/\/(android\.googleapis\.com|fcm\.googleapis\.com|updates\.push\.services\.mozilla\.com|updates-autopush\.stage\.mozaws\.net|updates-autopush\.dev\.mozaws\.net|.*\.notify\.windows\.com|.*\.push\.apple\.com)\/.*$` + webPushTopicSubscribeLimit = 50 +) + +var webPushEndpointAllowRegex = regexp.MustCompile(webPushEndpointAllowRegexStr) + func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { payload, err := readJSONWithLimit[webPushSubscriptionPayload](r.Body, jsonBodyBytesLimit, false) + if err != nil || payload.BrowserSubscription.Endpoint == "" || payload.BrowserSubscription.Keys.P256dh == "" || payload.BrowserSubscription.Keys.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid } + if !webPushEndpointAllowRegex.MatchString(payload.BrowserSubscription.Endpoint) { + return errHTTPBadRequestWebPushEndpointUnknown + } + + if len(payload.Topics) > webPushTopicSubscribeLimit { + return errHTTPBadRequestWebPushTopicCountTooHigh + } + u := v.User() topics, err := s.topicsFromIDs(payload.Topics...) diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 0086b7945..29d91f7eb 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -16,10 +16,14 @@ import ( "heckel.io/ntfy/util" ) +const ( + defaultEndpoint = "https://updates.push.services.mozilla.com/wpush/v1/AAABBCCCDDEEEFFF" +) + func TestServer_WebPush_TopicAdd(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), nil) + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -27,19 +31,40 @@ func TestServer_WebPush_TopicAdd(t *testing.T) { require.Nil(t, err) require.Len(t, subs, 1) - require.Equal(t, subs[0].BrowserSubscription.Endpoint, "https://example.com/webpush") + require.Equal(t, subs[0].BrowserSubscription.Endpoint, defaultEndpoint) require.Equal(t, subs[0].BrowserSubscription.Keys.P256dh, "p256dh-key") require.Equal(t, subs[0].BrowserSubscription.Keys.Auth, "auth-key") require.Equal(t, subs[0].UserID, "") } +func TestServer_WebPush_TopicAdd_InvalidEndpoint(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, "https://ddos-target.example.com/webpush"), nil) + require.Equal(t, 400, response.Code) + require.Equal(t, `{"code":40039,"http":400,"error":"invalid request: web push endpoint unknown"}`+"\n", response.Body.String()) +} + +func TestServer_WebPush_TopicAdd_TooManyTopics(t *testing.T) { + s := newTestServer(t, newTestConfigWithWebPush(t)) + + topicList := make([]string, 51) + for i := range topicList { + topicList[i] = util.RandomString(5) + } + + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, topicList, defaultEndpoint), nil) + require.Equal(t, 400, response.Code) + require.Equal(t, `{"code":40040,"http":400,"error":"invalid request: too many web push topic subscriptions"}`+"\n", response.Body.String()) +} + func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - addSubscription(t, s, "test-topic", "https://example.com/webpush") + addSubscription(t, s, "test-topic", defaultEndpoint) requireSubscriptionCount(t, s, "test-topic", 1) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{}), nil) + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{}, defaultEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -54,7 +79,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), map[string]string{ + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) @@ -71,7 +96,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), nil) + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) require.Equal(t, 403, response.Code) requireSubscriptionCount(t, s, "test-topic", 0) @@ -84,7 +109,7 @@ func TestServer_WebPush_DeleteAccountUnsubscribe(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}), map[string]string{ + response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) @@ -105,7 +130,7 @@ func TestServer_WebPush_Publish(t *testing.T) { var received atomic.Bool - upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) require.Equal(t, "/push-receive", r.URL.Path) @@ -113,9 +138,9 @@ func TestServer_WebPush_Publish(t *testing.T) { require.Equal(t, "", r.Header.Get("Topic")) received.Store(true) })) - defer upstreamServer.Close() + defer pushService.Close() - addSubscription(t, s, "test-topic", upstreamServer.URL+"/push-receive") + addSubscription(t, s, "test-topic", pushService.URL+"/push-receive") request(t, s, "PUT", "/test-topic", "web push test", nil) @@ -129,18 +154,17 @@ func TestServer_WebPush_PublishExpire(t *testing.T) { var received atomic.Bool - upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) // Gone w.WriteHeader(410) - w.Write([]byte(``)) received.Store(true) })) - defer upstreamServer.Close() + defer pushService.Close() - addSubscription(t, s, "test-topic", upstreamServer.URL+"/push-receive") - addSubscription(t, s, "test-topic-abc", upstreamServer.URL+"/push-receive") + addSubscription(t, s, "test-topic", pushService.URL+"/push-receive") + addSubscription(t, s, "test-topic-abc", pushService.URL+"/push-receive") requireSubscriptionCount(t, s, "test-topic", 1) requireSubscriptionCount(t, s, "test-topic-abc", 1) @@ -162,16 +186,16 @@ func TestServer_WebPush_Expiry(t *testing.T) { var received atomic.Bool - upstreamServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) w.WriteHeader(200) w.Write([]byte(``)) received.Store(true) })) - defer upstreamServer.Close() + defer pushService.Close() - addSubscription(t, s, "test-topic", upstreamServer.URL+"/push-receive") + addSubscription(t, s, "test-topic", pushService.URL+"/push-receive") requireSubscriptionCount(t, s, "test-topic", 1) _, err := s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-7 days')") @@ -191,20 +215,20 @@ func TestServer_WebPush_Expiry(t *testing.T) { requireSubscriptionCount(t, s, "test-topic", 0) } -func payloadForTopics(t *testing.T, topics []string) string { +func payloadForTopics(t *testing.T, topics []string, endpoint string) string { topicsJSON, err := json.Marshal(topics) require.Nil(t, err) return fmt.Sprintf(`{ "topics": %s, "browser_subscription":{ - "endpoint": "https://example.com/webpush", + "endpoint": "%s", "keys": { "p256dh": "p256dh-key", "auth": "auth-key" } } - }`, topicsJSON) + }`, topicsJSON, endpoint) } func addSubscription(t *testing.T, s *Server, topic string, url string) { From 03aa67ed6851678d47f557314ed49763ece09f2a Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 7 Jun 2023 20:36:20 +0200 Subject: [PATCH 17/74] Remove `webPushDefaultEnabled` --- web/public/static/langs/en.json | 5 ---- web/src/app/Prefs.js | 9 ------- web/src/app/SubscriptionManager.js | 4 --- web/src/components/Preferences.jsx | 32 ------------------------ web/src/components/SubscribeDialog.jsx | 18 +------------ web/src/components/SubscriptionPopup.jsx | 20 ++++++--------- 6 files changed, 8 insertions(+), 80 deletions(-) diff --git a/web/public/static/langs/en.json b/web/public/static/langs/en.json index 2d58311a6..80994504a 100644 --- a/web/public/static/langs/en.json +++ b/web/public/static/langs/en.json @@ -369,11 +369,6 @@ "prefs_reservations_dialog_description": "Reserving a topic gives you ownership over the topic, and allows you to define access permissions for other users over the topic.", "prefs_reservations_dialog_topic_label": "Topic", "prefs_reservations_dialog_access_label": "Access", - "prefs_notifications_web_push_default_title": "Enable web push notifications by default", - "prefs_notifications_web_push_default_description": "This affects the initial state in the subscribe dialog, as well as the default state for synced topics", - "prefs_notifications_web_push_default_initial": "Unset", - "prefs_notifications_web_push_default_enabled": "Enabled", - "prefs_notifications_web_push_default_disabled": "Disabled", "reservation_delete_dialog_description": "Removing a reservation gives up ownership over the topic, and allows others to reserve it. You can keep, or delete existing messages and attachments.", "reservation_delete_dialog_action_keep_title": "Keep cached messages and attachments", "reservation_delete_dialog_action_keep_description": "Messages and attachments that are cached on the server will become publicly visible for people with knowledge of the topic name.", diff --git a/web/src/app/Prefs.js b/web/src/app/Prefs.js index 22f767af0..75ac3ab5a 100644 --- a/web/src/app/Prefs.js +++ b/web/src/app/Prefs.js @@ -31,15 +31,6 @@ class Prefs { const deleteAfter = await this.db.prefs.get("deleteAfter"); return deleteAfter ? Number(deleteAfter.value) : 604800; // Default is one week } - - async webPushDefaultEnabled() { - const obj = await this.db.prefs.get("webPushDefaultEnabled"); - return obj?.value ?? "initial"; - } - - async setWebPushDefaultEnabled(enabled) { - await this.db.prefs.put({ key: "webPushDefaultEnabled", value: enabled ? "enabled" : "disabled" }); - } } const prefs = new Prefs(getDb()); diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 3cdaa85e8..6b82531de 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -78,16 +78,12 @@ class SubscriptionManager { async syncFromRemote(remoteSubscriptions, remoteReservations) { console.log(`[SubscriptionManager] Syncing subscriptions from remote`, remoteSubscriptions); - const webPushEnabled = (await prefs.webPushDefaultEnabled()) === "enabled"; - // Add remote subscriptions const remoteIds = await Promise.all( remoteSubscriptions.map(async (remote) => { const reservation = remoteReservations?.find((r) => remote.base_url === config.base_url && remote.topic === r.topic) || null; const local = await this.add(remote.base_url, remote.topic, { - // only if same-origin subscription - webPushEnabled: webPushEnabled && remote.base_url === config.base_url, displayName: remote.display_name, // May be undefined reservation, // May be null! }); diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 37f9f7725..4afc0f80b 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -48,7 +48,6 @@ import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; import { subscribeTopic } from "./SubscribeDialog"; -import notifier from "../app/Notifier"; const maybeUpdateAccountSettings = async (payload) => { if (!session.exists()) { @@ -86,7 +85,6 @@ const Notifications = () => { - {notifier.pushPossible() && } ); @@ -234,36 +232,6 @@ const DeleteAfter = () => { ); }; -const WebPushDefaultEnabled = () => { - const { t } = useTranslation(); - const labelId = "prefWebPushDefaultEnabled"; - const defaultEnabled = useLiveQuery(async () => prefs.webPushDefaultEnabled()); - const handleChange = async (ev) => { - await prefs.setWebPushDefaultEnabled(ev.target.value); - }; - - // while loading - if (defaultEnabled == null) { - return null; - } - - return ( - - - - - - ); -}; - const Users = () => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); diff --git a/web/src/components/SubscribeDialog.jsx b/web/src/components/SubscribeDialog.jsx index ad311d5e3..8c5d7e45c 100644 --- a/web/src/components/SubscribeDialog.jsx +++ b/web/src/components/SubscribeDialog.jsx @@ -14,7 +14,6 @@ import { Switch, } from "@mui/material"; import { useTranslation } from "react-i18next"; -import { useLiveQuery } from "dexie-react-hooks"; import theme from "./theme"; import api from "../app/Api"; import { randomAlphanumericString, topicUrl, validTopic, validUrl } from "../app/utils"; @@ -30,7 +29,6 @@ import { AccountContext } from "./App"; import { TopicReservedError, UnauthorizedError } from "../app/errors"; import { ReserveLimitChip } from "./SubscriptionPopup"; import notifier from "../app/Notifier"; -import prefs from "../app/Prefs"; const publicBaseUrl = "https://ntfy.sh"; @@ -55,8 +53,6 @@ const SubscribeDialog = (props) => { const [showLoginPage, setShowLoginPage] = useState(false); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); - const webPushDefaultEnabled = useLiveQuery(async () => prefs.webPushDefaultEnabled()); - const handleSuccess = async (webPushEnabled) => { console.log(`[SubscribeDialog] Subscribing to topic ${topic}`); const actualBaseUrl = baseUrl || config.base_url; @@ -64,20 +60,9 @@ const SubscribeDialog = (props) => { webPushEnabled, }); poller.pollInBackground(subscription); // Dangle! - - // if the user hasn't changed the default web push setting yet, set it to enabled - if (webPushEnabled && webPushDefaultEnabled === "initial") { - await prefs.setWebPushDefaultEnabled(true); - } - props.onSuccess(subscription); }; - // wait for liveQuery load - if (webPushDefaultEnabled === undefined) { - return <>; - } - return ( {!showLoginPage && ( @@ -90,7 +75,6 @@ const SubscribeDialog = (props) => { onCancel={props.onCancel} onNeedsLogin={() => setShowLoginPage(true)} onSuccess={handleSuccess} - webPushDefaultEnabled={webPushDefaultEnabled} /> )} {showLoginPage && setShowLoginPage(false)} onSuccess={handleSuccess} />} @@ -115,7 +99,7 @@ const SubscribePage = (props) => { const reserveTopicEnabled = session.exists() && (account?.role === Role.ADMIN || (account?.role === Role.USER && (account?.stats.reservations_remaining || 0) > 0)); - const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState(props.webPushDefaultEnabled === "enabled"); + const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState(false); const handleBackgroundNotificationsChanged = (e) => { setBackgroundNotificationsEnabled(e.target.checked); diff --git a/web/src/components/SubscriptionPopup.jsx b/web/src/components/SubscriptionPopup.jsx index 429c2a9ff..67a96da76 100644 --- a/web/src/components/SubscriptionPopup.jsx +++ b/web/src/components/SubscriptionPopup.jsx @@ -169,7 +169,7 @@ export const SubscriptionPopup = (props) => { return ( <> - + {notifier.pushPossible() && } @@ -367,18 +367,12 @@ const NotificationToggle = ({ subscription }) => { } return ( - <> - {notifier.pushPossible() && ( - <> - - {subscription.webPushEnabled === 1 && checkedItem} - - {t("notification_toggle_background")} - - - - )} - + + {subscription.webPushEnabled === 1 && checkedItem} + + {t("notification_toggle_background")} + + ); }; From 18edff9afe230732445f5f5d1a7f69161ec2f018 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 7 Jun 2023 20:44:28 +0200 Subject: [PATCH 18/74] Add TODO comment about Safari 17 PWA --- docs/subscribe/desktop.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/subscribe/desktop.md b/docs/subscribe/desktop.md index b13d11a45..b9ba02d9e 100644 --- a/docs/subscribe/desktop.md +++ b/docs/subscribe/desktop.md @@ -8,6 +8,8 @@ push notifications, and an app badge with the unread notification count. To receive background notifications, either the browser or the installed web app must be open. + + Web app installation is supported on Chrome and Edge on desktop, as well as Chrome on Android and Safari on iOS. Look at the [compatibility table](https://caniuse.com/web-app-manifest) for more info. From f3db0e083e40f70465927b669dcfc511decf0259 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 7 Jun 2023 21:11:31 +0200 Subject: [PATCH 19/74] Add release notes --- docs/releases.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/releases.md b/docs/releases.md index 0e93b6775..eec093587 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -1222,6 +1222,10 @@ and the [ntfy Android app](https://github.com/binwiederhier/ntfy-android/release ### ntfy server v2.6.0 (UNRELEASED) +**Features:** + +* The web app now supports web push, and is installable on Chrome, Edge, Android, and iOS. Look at the [web app docs](https://docs.ntfy.sh/subscribe/web/) for more information ([#751](https://github.com/binwiederhier/ntfy/pull/751), thanks to [@nimbleghost](https://github.com/nimbleghost)) + **Bug fixes:** * Support encoding any header as RFC 2047 ([#737](https://github.com/binwiederhier/ntfy/issues/737), thanks to [@cfouche3005](https://github.com/cfouche3005) for reporting) From a8db08c7d4602c009481247274222b0a94bde989 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Wed, 7 Jun 2023 21:40:35 +0200 Subject: [PATCH 20/74] Use attachment URL for image & add timestamp --- web/public/sw.js | 9 ++++++++- web/src/app/Notifier.js | 6 +++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/web/public/sw.js b/web/public/sw.js index dba350fae..96e5bf514 100644 --- a/web/public/sw.js +++ b/web/public/sw.js @@ -46,6 +46,8 @@ self.addEventListener("push", (event) => { const db = await getDbAsync(); + const image = message.attachment?.name.match(/\.(png|jpe?g|gif|webp)$/i) ? message.attachment.url : undefined; + await Promise.all([ (async () => { await db.notifications.add({ @@ -61,11 +63,14 @@ self.addEventListener("push", (event) => { db.subscriptions.update(subscriptionId, { last: message.id, }), + // Please update the desktop notification in Notifier.js to match any changes self.registration.showNotification(formatTitleWithDefault(message, message.topic), { tag: subscriptionId, body: formatMessage(message), - icon: "/static/images/ntfy.png", + icon: image ?? "/static/images/ntfy.png", + image, data, + timestamp: message.time * 1_000, }), ]); } else { @@ -81,6 +86,8 @@ self.addEventListener("push", (event) => { }); self.addEventListener("notificationclick", (event) => { + console.log("[ServiceWorker] NotificationClick"); + event.notification.close(); event.waitUntil( diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index 428b89796..4b8b832c6 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -17,13 +17,17 @@ class Notifier { const displayName = topicDisplayName(subscription); const message = formatMessage(notification); const title = formatTitleWithDefault(notification, displayName); + const image = notification.attachment?.name.match(/\.(png|jpe?g|gif|webp)$/i) ? notification.attachment.url : undefined; // Show notification console.log(`[Notifier, ${shortUrl}] Displaying notification ${notification.id}: ${message}`); + // Please update sw.js if formatting changes const n = new Notification(title, { body: message, tag: subscription.id, - icon: logo, + icon: image ?? logo, + image, + timestamp: message.time * 1_000, }); if (notification.click) { n.onclick = () => openUrl(notification.click); From 46798ac322827bc941b3e9e32860af33f23e25ab Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Thu, 8 Jun 2023 09:22:56 +0200 Subject: [PATCH 21/74] Make web push toggle global --- web/public/static/langs/en.json | 5 ++ web/src/app/ConnectionManager.js | 14 ++---- web/src/app/Notifier.js | 5 ++ web/src/app/Prefs.js | 9 ++++ web/src/app/SubscriptionManager.js | 20 ++++---- web/src/app/getDb.js | 2 +- web/src/components/App.jsx | 12 ++++- web/src/components/Preferences.jsx | 31 +++++++++++++ web/src/components/SubscribeDialog.jsx | 34 ++------------ web/src/components/SubscriptionPopup.jsx | 58 ++++++++---------------- 10 files changed, 99 insertions(+), 91 deletions(-) diff --git a/web/public/static/langs/en.json b/web/public/static/langs/en.json index 80994504a..d776ac05a 100644 --- a/web/public/static/langs/en.json +++ b/web/public/static/langs/en.json @@ -95,6 +95,7 @@ "notifications_no_subscriptions_description": "Click the \"{{linktext}}\" link to create or subscribe to a topic. After that, you can send messages via PUT or POST and you'll receive notifications here.", "notifications_example": "Example", "notifications_more_details": "For more information, check out the website or documentation.", + "notification_toggle_mute": "Mute", "notification_toggle_unmute": "Unmute", "notification_toggle_background": "Background notifications", "display_name_dialog_title": "Change display name", @@ -369,6 +370,10 @@ "prefs_reservations_dialog_description": "Reserving a topic gives you ownership over the topic, and allows you to define access permissions for other users over the topic.", "prefs_reservations_dialog_topic_label": "Topic", "prefs_reservations_dialog_access_label": "Access", + "prefs_notifications_web_push_title": "Enable web push notifications", + "prefs_notifications_web_push_description": "Enable this to receive notifications in the background even when ntfy isn't running", + "prefs_notifications_web_push_enabled": "Enabled", + "prefs_notifications_web_push_disabled": "Disabled", "reservation_delete_dialog_description": "Removing a reservation gives up ownership over the topic, and allows others to reserve it. You can keep, or delete existing messages and attachments.", "reservation_delete_dialog_action_keep_title": "Keep cached messages and attachments", "reservation_delete_dialog_action_keep_description": "Messages and attachments that are cached on the server will become publicly visible for people with knowledge of the topic name.", diff --git a/web/src/app/ConnectionManager.js b/web/src/app/ConnectionManager.js index 7cb12e903..ea7ed15e8 100644 --- a/web/src/app/ConnectionManager.js +++ b/web/src/app/ConnectionManager.js @@ -45,15 +45,11 @@ class ConnectionManager { return; } console.log(`[ConnectionManager] Refreshing connections`); - const subscriptionsWithUsersAndConnectionId = subscriptions - .map((s) => { - const [user] = users.filter((u) => u.baseUrl === s.baseUrl); - const connectionId = makeConnectionId(s, user); - return { ...s, user, connectionId }; - }) - // background notifications don't need this as they come over web push. - // however, if they are muted, we again need the ws while the page is active - .filter((s) => !s.webPushEnabled && s.mutedUntil !== 1); + const subscriptionsWithUsersAndConnectionId = subscriptions.map((s) => { + const [user] = users.filter((u) => u.baseUrl === s.baseUrl); + const connectionId = makeConnectionId(s, user); + return { ...s, user, connectionId }; + }); console.log(); const targetIds = subscriptionsWithUsersAndConnectionId.map((s) => s.connectionId); diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index 4b8b832c6..ddf68f5bb 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -114,6 +114,11 @@ class Notifier { return this.pushSupported() && this.contextSupported() && this.granted() && !this.iosSupportedButInstallRequired(); } + async pushEnabled() { + const enabled = await prefs.webPushEnabled(); + return this.pushPossible() && enabled; + } + /** * Returns true if this is a HTTPS site, or served over localhost. Otherwise the Notification API * is not supported, see https://developer.mozilla.org/en-US/docs/Web/API/notification diff --git a/web/src/app/Prefs.js b/web/src/app/Prefs.js index 75ac3ab5a..1f1a6d808 100644 --- a/web/src/app/Prefs.js +++ b/web/src/app/Prefs.js @@ -31,6 +31,15 @@ class Prefs { const deleteAfter = await this.db.prefs.get("deleteAfter"); return deleteAfter ? Number(deleteAfter.value) : 604800; // Default is one week } + + async webPushEnabled() { + const obj = await this.db.prefs.get("webPushEnabled"); + return obj?.value ?? false; + } + + async setWebPushEnabled(enabled) { + await this.db.prefs.put({ key: "webPushEnabled", value: enabled }); + } } const prefs = new Prefs(getDb()); diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 6b82531de..1521aedf6 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -21,8 +21,16 @@ class SubscriptionManager { } async webPushTopics() { - const subscriptions = await this.db.subscriptions.where({ webPushEnabled: 1, mutedUntil: 0 }).toArray(); - return subscriptions.map(({ topic }) => topic); + // the Promise.resolve wrapper is not superfluous, without it the live query breaks: + // https://dexie.org/docs/dexie-react-hooks/useLiveQuery()#calling-non-dexie-apis-from-querier + if (!(await Promise.resolve(notifier.pushEnabled()))) { + return []; + } + + const subscriptions = await this.db.subscriptions.where({ mutedUntil: 0, baseUrl: config.base_url }).toArray(); + + // internal is currently a bool, it could be a 0/1 to be indexable, but for now just filter them out here + return subscriptions.filter(({ internal }) => !internal).map(({ topic }) => topic); } async get(subscriptionId) { @@ -49,7 +57,6 @@ class SubscriptionManager { * @param {string} topic * @param {object} opts * @param {boolean} opts.internal - * @param {boolean} opts.webPushEnabled * @returns */ async add(baseUrl, topic, opts = {}) { @@ -67,7 +74,6 @@ class SubscriptionManager { topic, mutedUntil: 0, last: null, - webPushEnabled: opts.webPushEnabled ? 1 : 0, }; await this.db.subscriptions.put(subscription); @@ -211,12 +217,6 @@ class SubscriptionManager { }); } - async toggleBackgroundNotifications(subscription) { - await this.db.subscriptions.update(subscription.id, { - webPushEnabled: subscription.webPushEnabled === 1 ? 0 : 1, - }); - } - async setDisplayName(subscriptionId, displayName) { await this.db.subscriptions.update(subscriptionId, { displayName, diff --git a/web/src/app/getDb.js b/web/src/app/getDb.js index 92b62c43f..e52932c7e 100644 --- a/web/src/app/getDb.js +++ b/web/src/app/getDb.js @@ -14,7 +14,7 @@ const getDbBase = (username) => { const db = new Dexie(dbName); db.version(2).stores({ - subscriptions: "&id,baseUrl,[webPushEnabled+mutedUntil]", + subscriptions: "&id,baseUrl,[baseUrl+mutedUntil]", notifications: "&id,subscriptionId,time,new,[subscriptionId+new]", // compound key for query performance users: "&baseUrl,username", prefs: "&key", diff --git a/web/src/components/App.jsx b/web/src/components/App.jsx index f19710d8a..56d5a765a 100644 --- a/web/src/components/App.jsx +++ b/web/src/components/App.jsx @@ -69,6 +69,16 @@ const Layout = () => { const [sendDialogOpenMode, setSendDialogOpenMode] = useState(""); const users = useLiveQuery(() => userManager.all()); const subscriptions = useLiveQuery(() => subscriptionManager.all()); + const webPushTopics = useLiveQuery(() => subscriptionManager.webPushTopics()); + + const websocketSubscriptions = useMemo( + () => (subscriptions && webPushTopics ? subscriptions.filter((s) => !webPushTopics.includes(s.topic)) : []), + // websocketSubscriptions should stay stable unless the list of subscription ids changes. + // without the memoization, the connection listener calls a refresh for no reason. + // this isn't a problem due to the makeConnectionId, but it triggers an + // unnecessary recomputation for every received message. + [JSON.stringify({ subscriptions: subscriptions?.map(({ id }) => id), webPushTopics })] + ); const subscriptionsWithoutInternal = subscriptions?.filter((s) => !s.internal); const newNotificationsCount = subscriptionsWithoutInternal?.reduce((prev, cur) => prev + cur.new, 0) || 0; const [selected] = (subscriptionsWithoutInternal || []).filter( @@ -77,7 +87,7 @@ const Layout = () => { (config.base_url === s.baseUrl && params.topic === s.topic) ); - useConnectionListeners(account, subscriptions, users); + useConnectionListeners(account, websocketSubscriptions, users); useAccountListener(setAccount); useBackgroundProcesses(); useEffect(() => updateTitle(newNotificationsCount), [newNotificationsCount]); diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 4afc0f80b..7ef5a01e0 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -48,6 +48,7 @@ import { PermissionDenyAll, PermissionRead, PermissionReadWrite, PermissionWrite import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; import { subscribeTopic } from "./SubscribeDialog"; +import notifier from "../app/Notifier"; const maybeUpdateAccountSettings = async (payload) => { if (!session.exists()) { @@ -85,6 +86,7 @@ const Notifications = () => { + ); @@ -232,6 +234,35 @@ const DeleteAfter = () => { ); }; +const WebPushEnabled = () => { + const { t } = useTranslation(); + const labelId = "prefWebPushEnabled"; + const defaultEnabled = useLiveQuery(async () => prefs.webPushEnabled()); + const handleChange = async (ev) => { + await prefs.setWebPushEnabled(ev.target.value); + }; + + // while loading + if (defaultEnabled == null) { + return null; + } + + if (!notifier.pushPossible()) { + return null; + } + + return ( + + + + + + ); +}; + const Users = () => { const { t } = useTranslation(); const [dialogKey, setDialogKey] = useState(0); diff --git a/web/src/components/SubscribeDialog.jsx b/web/src/components/SubscribeDialog.jsx index 8c5d7e45c..fedccc399 100644 --- a/web/src/components/SubscribeDialog.jsx +++ b/web/src/components/SubscribeDialog.jsx @@ -28,7 +28,6 @@ import ReserveTopicSelect from "./ReserveTopicSelect"; import { AccountContext } from "./App"; import { TopicReservedError, UnauthorizedError } from "../app/errors"; import { ReserveLimitChip } from "./SubscriptionPopup"; -import notifier from "../app/Notifier"; const publicBaseUrl = "https://ntfy.sh"; @@ -53,12 +52,10 @@ const SubscribeDialog = (props) => { const [showLoginPage, setShowLoginPage] = useState(false); const fullScreen = useMediaQuery(theme.breakpoints.down("sm")); - const handleSuccess = async (webPushEnabled) => { + const handleSuccess = async () => { console.log(`[SubscribeDialog] Subscribing to topic ${topic}`); const actualBaseUrl = baseUrl || config.base_url; - const subscription = await subscribeTopic(actualBaseUrl, topic, { - webPushEnabled, - }); + const subscription = await subscribeTopic(actualBaseUrl, topic, {}); poller.pollInBackground(subscription); // Dangle! props.onSuccess(subscription); }; @@ -99,12 +96,6 @@ const SubscribePage = (props) => { const reserveTopicEnabled = session.exists() && (account?.role === Role.ADMIN || (account?.role === Role.USER && (account?.stats.reservations_remaining || 0) > 0)); - const [backgroundNotificationsEnabled, setBackgroundNotificationsEnabled] = useState(false); - - const handleBackgroundNotificationsChanged = (e) => { - setBackgroundNotificationsEnabled(e.target.checked); - }; - const handleSubscribe = async () => { const user = await userManager.get(baseUrl); // May be undefined const username = user ? user.username : t("subscribe_dialog_error_user_anonymous"); @@ -142,15 +133,12 @@ const SubscribePage = (props) => { } console.log(`[SubscribeDialog] Successful login to ${topicUrl(baseUrl, topic)} for user ${username}`); - props.onSuccess(backgroundNotificationsEnabled); + props.onSuccess(); }; const handleUseAnotherChanged = (e) => { props.setBaseUrl(""); setAnotherServerVisible(e.target.checked); - if (e.target.checked) { - setBackgroundNotificationsEnabled(false); - } }; const subscribeButtonEnabled = (() => { @@ -256,22 +244,6 @@ const SubscribePage = (props) => { )} )} - {notifier.pushPossible() && !anotherServerVisible && ( - - - } - label={t("subscribe_dialog_subscribe_enable_background_notifications_label")} - /> - - )} diff --git a/web/src/components/SubscriptionPopup.jsx b/web/src/components/SubscriptionPopup.jsx index 67a96da76..ee1629729 100644 --- a/web/src/components/SubscriptionPopup.jsx +++ b/web/src/components/SubscriptionPopup.jsx @@ -15,19 +15,17 @@ import { MenuItem, IconButton, ListItemIcon, - ListItemText, - Divider, } from "@mui/material"; import { useTranslation } from "react-i18next"; import { useNavigate } from "react-router-dom"; import { - Check, Clear, ClearAll, Edit, EnhancedEncryption, Lock, LockOpen, + Notifications, NotificationsOff, RemoveCircle, Send, @@ -44,7 +42,6 @@ import api from "../app/Api"; import { AccountContext } from "./App"; import { ReserveAddDialog, ReserveDeleteDialog, ReserveEditDialog } from "./ReserveDialogs"; import { UnauthorizedError } from "../app/errors"; -import notifier from "../app/Notifier"; export const SubscriptionPopup = (props) => { const { t } = useTranslation(); @@ -169,8 +166,8 @@ export const SubscriptionPopup = (props) => { return ( <> - {notifier.pushPossible() && } - + + @@ -334,44 +331,27 @@ const DisplayNameDialog = (props) => { ); }; -const checkedItem = ( - - - -); - const NotificationToggle = ({ subscription }) => { const { t } = useTranslation(); - const handleToggleBackground = async () => { - try { - await subscriptionManager.toggleBackgroundNotifications(subscription); - } catch (e) { - console.error("[NotificationToggle] Error setting notification type", e); - } - }; - - const unmute = async () => { - await subscriptionManager.setMutedUntil(subscription.id, 0); + const handleToggleMute = async () => { + const mutedUntil = subscription.mutedUntil ? 0 : 1; // Make this a timestamp in the future + await subscriptionManager.setMutedUntil(subscription.id, mutedUntil); }; - if (subscription.mutedUntil === 1) { - return ( - - - - - {t("notification_toggle_unmute")} - - ); - } - - return ( - - {subscription.webPushEnabled === 1 && checkedItem} - - {t("notification_toggle_background")} - + return subscription.mutedUntil ? ( + + + + + {t("notification_toggle_unmute")} + + ) : ( + + + + + {t("notification_toggle_mute")} ); }; From 2f5acee79899d68975755dba7d5943a743a5d919 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Thu, 8 Jun 2023 10:55:11 +0200 Subject: [PATCH 22/74] Call pushManager.subscribe only if enabled --- web/src/app/Notifier.js | 23 ++++++++++++++++++----- web/src/app/SubscriptionManager.js | 9 ++++++++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index ddf68f5bb..b157ef46d 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -55,13 +55,26 @@ class Notifier { const pushManager = await this.pushManager(); - return ( - (await pushManager.getSubscription()) ?? - pushManager.subscribe({ + const existingSubscription = await pushManager.getSubscription(); + + if (existingSubscription) { + return existingSubscription; + } + + // create a new subscription only if web push is enabled + // it is possible that web push was previously enabled and then disabled again + // in which case there would be an existingSubscription. + // but if it was _not_ enabled previously, we reach here, and only create a new + // subscription if it is now enabled. + + if (await this.pushEnabled()) { + return pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: urlB64ToUint8Array(config.web_push_public_key), - }) - ); + }); + } + + return undefined; } async pushManager() { diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 1521aedf6..74488bc0d 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -114,7 +114,14 @@ class SubscriptionManager { async refreshWebPushSubscriptions(presetTopics) { const topics = presetTopics ?? (await this.webPushTopics()); - await api.updateWebPushSubscriptions(topics, await notifier.getBrowserSubscription()); + const browserSubscription = await notifier.getBrowserSubscription(); + + if (!browserSubscription) { + console.log("[SubscriptionManager] No browser subscription currently exists, so web push was never enabled. Skipping."); + return; + } + + await api.updateWebPushSubscriptions(topics, browserSubscription); } async updateState(subscriptionId, state) { From 75a4b5bd888e7211af8d8018544404c7b5b07847 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Thu, 8 Jun 2023 12:20:12 -0400 Subject: [PATCH 23/74] Small refactor --- server/errors.go | 1 + server/log.go | 2 +- server/server_web_push.go | 93 +++++++++++------------- server/types.go | 18 +++-- server/web_push.go | 26 ++++--- web/public/static/langs/en.json | 10 +-- web/src/components/Preferences.jsx | 7 +- web/src/components/SubscriptionPopup.jsx | 52 +++++-------- 8 files changed, 97 insertions(+), 112 deletions(-) diff --git a/server/errors.go b/server/errors.go index c8d96edbd..27ba3df0d 100644 --- a/server/errors.go +++ b/server/errors.go @@ -141,5 +141,6 @@ var ( errHTTPInternalError = &errHTTP{50001, http.StatusInternalServerError, "internal server error", "", nil} errHTTPInternalErrorInvalidPath = &errHTTP{50002, http.StatusInternalServerError, "internal server error: invalid path", "", nil} errHTTPInternalErrorMissingBaseURL = &errHTTP{50003, http.StatusInternalServerError, "internal server error: base-url must be be configured for this feature", "https://ntfy.sh/docs/config/", nil} + errHTTPInternalErrorWebPushUnableToPublish = &errHTTP{50004, http.StatusInternalServerError, "internal server error: unable to publish web push message", "", nil} errHTTPInsufficientStorageUnifiedPush = &errHTTP{50701, http.StatusInsufficientStorage, "cannot publish to UnifiedPush topic without previously active subscriber", "", nil} ) diff --git a/server/log.go b/server/log.go index 9f922b6a6..978d0593c 100644 --- a/server/log.go +++ b/server/log.go @@ -29,7 +29,7 @@ const ( tagResetter = "resetter" tagWebsocket = "websocket" tagMatrix = "matrix" - tagWebPush = "web_push" + tagWebPush = "webpush" ) var ( diff --git a/server/server_web_push.go b/server/server_web_push.go index caccce928..6b3e4adc8 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -30,27 +30,19 @@ var webPushEndpointAllowRegex = regexp.MustCompile(webPushEndpointAllowRegexStr) func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { payload, err := readJSONWithLimit[webPushSubscriptionPayload](r.Body, jsonBodyBytesLimit, false) - if err != nil || payload.BrowserSubscription.Endpoint == "" || payload.BrowserSubscription.Keys.P256dh == "" || payload.BrowserSubscription.Keys.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid - } - - if !webPushEndpointAllowRegex.MatchString(payload.BrowserSubscription.Endpoint) { + } else if !webPushEndpointAllowRegex.MatchString(payload.BrowserSubscription.Endpoint) { return errHTTPBadRequestWebPushEndpointUnknown - } - - if len(payload.Topics) > webPushTopicSubscribeLimit { + } else if len(payload.Topics) > webPushTopicSubscribeLimit { return errHTTPBadRequestWebPushTopicCountTooHigh } - - u := v.User() - topics, err := s.topicsFromIDs(payload.Topics...) if err != nil { return err } - if s.userManager != nil { + u := v.User() for _, t := range topics { if err := s.userManager.Authorize(u, t.ID, user.PermissionRead); err != nil { logvr(v, r).With(t).Err(err).Debug("Access to topic %s not authorized", t.ID) @@ -58,11 +50,9 @@ func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v * } } } - if err := s.webPush.UpdateSubscriptions(payload.Topics, v.MaybeUserID(), payload.BrowserSubscription); err != nil { return err } - return s.writeJSON(w, newSuccessResponse()) } @@ -70,69 +60,68 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { subscriptions, err := s.webPush.SubscriptionsForTopic(m.Topic) if err != nil { logvm(v, m).Err(err).Warn("Unable to publish web push messages") - return } - - for i, xi := range subscriptions { - go func(i int, sub webPushSubscription) { - ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint, "username": sub.UserID, "topic": m.Topic, "message_id": m.ID} - - s.sendWebPushNotification(newWebPushPayload(fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), *m), &sub, &ctx) - }(i, xi) + payload, err := json.Marshal(newWebPushPayload(fmt.Sprintf("%s/%s", s.config.BaseURL, m.Topic), m)) + if err != nil { + log.Tag(tagWebPush).Err(err).Warn("Unable to marshal expiring payload") + return + } + for _, subscription := range subscriptions { + ctx := log.Context{"endpoint": subscription.BrowserSubscription.Endpoint, "username": subscription.UserID, "topic": m.Topic, "message_id": m.ID} + if err := s.sendWebPushNotification(payload, subscription, &ctx); err != nil { + log.Tag(tagWebPush).Err(err).Fields(ctx).Warn("Unable to publish web push message") + } } } +// TODO this should return error +// TODO the updated_at field is not actually updated ever + func (s *Server) expireOrNotifyOldSubscriptions() { subscriptions, err := s.webPush.ExpireAndGetExpiringSubscriptions(s.config.WebPushExpiryWarningDuration, s.config.WebPushExpiryDuration) if err != nil { log.Tag(tagWebPush).Err(err).Warn("Unable to publish expiry imminent warning") - + return + } else if len(subscriptions) == 0 { return } - - for i, xi := range subscriptions { - go func(i int, sub webPushSubscription) { - ctx := log.Context{"endpoint": sub.BrowserSubscription.Endpoint} - - s.sendWebPushNotification(newWebPushSubscriptionExpiringPayload(), &sub, &ctx) - }(i, xi) - } - - log.Tag(tagWebPush).Debug("Expired old subscriptions and published %d expiry imminent warnings", len(subscriptions)) -} - -func (s *Server) sendWebPushNotification(payload any, sub *webPushSubscription, ctx *log.Context) { - jsonPayload, err := json.Marshal(payload) - + payload, err := json.Marshal(newWebPushSubscriptionExpiringPayload()) if err != nil { - log.Tag(tagWebPush).Err(err).Fields(*ctx).Debug("Unable to publish web push message") + log.Tag(tagWebPush).Err(err).Warn("Unable to marshal expiring payload") return } + go func() { + for _, subscription := range subscriptions { + ctx := log.Context{"endpoint": subscription.BrowserSubscription.Endpoint} + if err := s.sendWebPushNotification(payload, &subscription, &ctx); err != nil { + log.Tag(tagWebPush).Err(err).Fields(ctx).Warn("Unable to publish expiry imminent warning") + } + } + }() + log.Tag(tagWebPush).Debug("Expiring old subscriptions and published %d expiry imminent warnings", len(subscriptions)) +} - resp, err := webpush.SendNotification(jsonPayload, &sub.BrowserSubscription, &webpush.Options{ +func (s *Server) sendWebPushNotification(message []byte, sub *webPushSubscription, ctx *log.Context) error { + resp, err := webpush.SendNotification(message, &sub.BrowserSubscription, &webpush.Options{ Subscriber: s.config.WebPushEmailAddress, VAPIDPublicKey: s.config.WebPushPublicKey, VAPIDPrivateKey: s.config.WebPushPrivateKey, - // Deliverability on iOS isn't great with lower urgency values, - // and thus we can't really map lower ntfy priorities to lower urgency values - Urgency: webpush.UrgencyHigh, + Urgency: webpush.UrgencyHigh, // iOS requires this to ensure delivery }) - if err != nil { - log.Tag(tagWebPush).Err(err).Fields(*ctx).Debug("Unable to publish web push message") + log.Tag(tagWebPush).Err(err).Fields(*ctx).Debug("Unable to publish web push message, removing endpoint") if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { - log.Tag(tagWebPush).Err(err).Fields(*ctx).Warn("Unable to expire subscription") + return err } - return + return err } - - // May want to handle at least 429 differently, but for now treat all errors the same - if !(200 <= resp.StatusCode && resp.StatusCode <= 299) { - log.Tag(tagWebPush).Fields(*ctx).Field("response", resp).Debug("Unable to publish web push message") + if (resp.StatusCode < 200 || resp.StatusCode > 299) && resp.StatusCode != 429 { + log.Tag(tagWebPush).Fields(*ctx).Field("response_code", resp.StatusCode).Debug("Unable to publish web push message, unexpected response") if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { - log.Tag(tagWebPush).Err(err).Fields(*ctx).Warn("Unable to expire subscription") + return err } - return + return errHTTPInternalErrorWebPushUnableToPublish.Fields(*ctx) } + return nil } diff --git a/server/types.go b/server/types.go index 3ddfcbba8..a8a013016 100644 --- a/server/types.go +++ b/server/types.go @@ -467,15 +467,21 @@ type apiStripeSubscriptionDeletedEvent struct { Customer string `json:"customer"` } +// List of possible Web Push events +const ( + webPushMessageEvent = "message" + webPushExpiringEvent = "subscription_expiring" +) + type webPushPayload struct { - Event string `json:"event"` - SubscriptionID string `json:"subscription_id"` - Message message `json:"message"` + Event string `json:"event"` + SubscriptionID string `json:"subscription_id"` + Message *message `json:"message"` } -func newWebPushPayload(subscriptionID string, message message) webPushPayload { +func newWebPushPayload(subscriptionID string, message *message) webPushPayload { return webPushPayload{ - Event: "message", + Event: webPushMessageEvent, SubscriptionID: subscriptionID, Message: message, } @@ -487,7 +493,7 @@ type webPushControlMessagePayload struct { func newWebPushSubscriptionExpiringPayload() webPushControlMessagePayload { return webPushControlMessagePayload{ - Event: "subscription_expiring", + Event: webPushExpiringEvent, } } diff --git a/server/web_push.go b/server/web_push.go index a98d6ad89..0bea08572 100644 --- a/server/web_push.go +++ b/server/web_push.go @@ -63,11 +63,11 @@ func newWebPushStore(filename string) (*webPushStore, error) { func setupSubscriptionsDB(db *sql.DB) error { // If 'subscriptions' table does not exist, this must be a new database - rowsMC, err := db.Query(selectWebPushSubscriptionsCountQuery) + rows, err := db.Query(selectWebPushSubscriptionsCountQuery) if err != nil { return setupNewSubscriptionsDB(db) } - return rowsMC.Close() + return rows.Close() } func setupNewSubscriptionsDB(db *sql.DB) error { @@ -83,7 +83,6 @@ func (c *webPushStore) UpdateSubscriptions(topics []string, userID string, subsc return err } defer tx.Rollback() - if err = c.RemoveByEndpoint(subscription.Endpoint); err != nil { return err } @@ -107,26 +106,35 @@ func (c *webPushStore) AddSubscription(topic string, userID string, subscription return err } -func (c *webPushStore) SubscriptionsForTopic(topic string) (subscriptions []webPushSubscription, err error) { +func (c *webPushStore) SubscriptionsForTopic(topic string) (subscriptions []*webPushSubscription, err error) { rows, err := c.db.Query(selectWebPushSubscriptionsForTopicQuery, topic) if err != nil { return nil, err } defer rows.Close() - var data []webPushSubscription + var data []*webPushSubscription for rows.Next() { - i := webPushSubscription{} - err = rows.Scan(&i.BrowserSubscription.Endpoint, &i.BrowserSubscription.Keys.Auth, &i.BrowserSubscription.Keys.P256dh, &i.UserID) - if err != nil { + var userID, endpoint, auth, p256dh string + if err = rows.Scan(&endpoint, &auth, &p256dh, &userID); err != nil { return nil, err } - data = append(data, i) + data = append(data, &webPushSubscription{ + UserID: userID, + BrowserSubscription: webpush.Subscription{ + Endpoint: endpoint, + Keys: webpush.Keys{ + Auth: auth, + P256dh: p256dh, + }, + }, + }) } return data, nil } func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Duration, expiryDuration time.Duration) (subscriptions []webPushSubscription, err error) { + // TODO this should be two functions tx, err := c.db.Begin() if err != nil { return nil, err diff --git a/web/public/static/langs/en.json b/web/public/static/langs/en.json index d776ac05a..9571272f5 100644 --- a/web/public/static/langs/en.json +++ b/web/public/static/langs/en.json @@ -29,6 +29,8 @@ "action_bar_reservation_limit_reached": "Limit reached", "action_bar_send_test_notification": "Send test notification", "action_bar_clear_notifications": "Clear all notifications", + "action_bar_mute_notifications": "Mute notifications", + "action_bar_unmute_notifications": "Unmute notifications", "action_bar_unsubscribe": "Unsubscribe", "action_bar_toggle_mute": "Mute/unmute notifications", "action_bar_toggle_action_menu": "Open/close action menu", @@ -95,9 +97,6 @@ "notifications_no_subscriptions_description": "Click the \"{{linktext}}\" link to create or subscribe to a topic. After that, you can send messages via PUT or POST and you'll receive notifications here.", "notifications_example": "Example", "notifications_more_details": "For more information, check out the website or documentation.", - "notification_toggle_mute": "Mute", - "notification_toggle_unmute": "Unmute", - "notification_toggle_background": "Background notifications", "display_name_dialog_title": "Change display name", "display_name_dialog_description": "Set an alternative name for a topic that is displayed in the subscription list. This helps identify topics with complicated names more easily.", "display_name_dialog_placeholder": "Display name", @@ -170,7 +169,6 @@ "subscribe_dialog_subscribe_description": "Topics may not be password-protected, so choose a name that's not easy to guess. Once subscribed, you can PUT/POST notifications.", "subscribe_dialog_subscribe_topic_placeholder": "Topic name, e.g. phil_alerts", "subscribe_dialog_subscribe_use_another_label": "Use another server", - "subscribe_dialog_subscribe_enable_background_notifications_label": "Enable background notifications (web push)", "subscribe_dialog_subscribe_base_url_label": "Service URL", "subscribe_dialog_subscribe_button_generate_topic_name": "Generate name", "subscribe_dialog_subscribe_button_cancel": "Cancel", @@ -370,8 +368,8 @@ "prefs_reservations_dialog_description": "Reserving a topic gives you ownership over the topic, and allows you to define access permissions for other users over the topic.", "prefs_reservations_dialog_topic_label": "Topic", "prefs_reservations_dialog_access_label": "Access", - "prefs_notifications_web_push_title": "Enable web push notifications", - "prefs_notifications_web_push_description": "Enable this to receive notifications in the background even when ntfy isn't running", + "prefs_notifications_web_push_title": "Background notifications", + "prefs_notifications_web_push_description": "Receive notifications in the background via Web Push, even when app is not running", "prefs_notifications_web_push_enabled": "Enabled", "prefs_notifications_web_push_disabled": "Disabled", "reservation_delete_dialog_description": "Removing a reservation gives up ownership over the topic, and allows others to reserve it. You can keep, or delete existing messages and attachments.", diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 7ef5a01e0..7944f9be0 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -242,11 +242,6 @@ const WebPushEnabled = () => { await prefs.setWebPushEnabled(ev.target.value); }; - // while loading - if (defaultEnabled == null) { - return null; - } - if (!notifier.pushPossible()) { return null; } @@ -254,7 +249,7 @@ const WebPushEnabled = () => { return ( - {t("prefs_notifications_web_push_enabled")} {t("prefs_notifications_web_push_disabled")} diff --git a/web/src/components/SubscriptionPopup.jsx b/web/src/components/SubscriptionPopup.jsx index ee1629729..74438f9a0 100644 --- a/web/src/components/SubscriptionPopup.jsx +++ b/web/src/components/SubscriptionPopup.jsx @@ -142,6 +142,10 @@ export const SubscriptionPopup = (props) => { await subscriptionManager.deleteNotifications(props.subscription.id); }; + const handleSetMutedUntil = async (mutedUntil) => { + await subscriptionManager.setMutedUntil(subscription.id, mutedUntil); + }; + const handleUnsubscribe = async () => { console.log(`[SubscriptionPopup] Unsubscribing from ${props.subscription.id}`, props.subscription); await subscriptionManager.remove(props.subscription); @@ -166,8 +170,6 @@ export const SubscriptionPopup = (props) => { return ( <> - - @@ -198,7 +200,6 @@ export const SubscriptionPopup = (props) => { - {t("action_bar_reservation_edit")} )} @@ -207,7 +208,6 @@ export const SubscriptionPopup = (props) => { - {t("action_bar_reservation_delete")} )} @@ -215,21 +215,34 @@ export const SubscriptionPopup = (props) => { - {t("action_bar_send_test_notification")} - {t("action_bar_clear_notifications")} + {!!subscription.mutedUntil && ( + handleSetMutedUntil(0)}> + + + + {t("action_bar_unmute_notifications")} + + )} + {!subscription.mutedUntil && ( + handleSetMutedUntil(1)}> + + + + {t("action_bar_mute_notifications")} + + )} - {t("action_bar_unsubscribe")} @@ -331,31 +344,6 @@ const DisplayNameDialog = (props) => { ); }; -const NotificationToggle = ({ subscription }) => { - const { t } = useTranslation(); - - const handleToggleMute = async () => { - const mutedUntil = subscription.mutedUntil ? 0 : 1; // Make this a timestamp in the future - await subscriptionManager.setMutedUntil(subscription.id, mutedUntil); - }; - - return subscription.mutedUntil ? ( - - - - - {t("notification_toggle_unmute")} - - ) : ( - - - - - {t("notification_toggle_mute")} - - ); -}; - export const ReserveLimitChip = () => { const { account } = useContext(AccountContext); if (account?.role === Role.ADMIN || account?.stats.reservations_remaining > 0) { From 4ce6fdcc5acbf2afa73eff7c8937b33806ff1c3d Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Thu, 8 Jun 2023 20:12:41 +0200 Subject: [PATCH 24/74] Implement http actions in service worker These are only supported in Chrome-based browsers via the service worker and not for regular desktop notifications. --- web/public/sw.js | 69 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/web/public/sw.js b/web/public/sw.js index 96e5bf514..39d60a8a8 100644 --- a/web/public/sw.js +++ b/web/public/sw.js @@ -48,6 +48,13 @@ self.addEventListener("push", (event) => { const image = message.attachment?.name.match(/\.(png|jpe?g|gif|webp)$/i) ? message.attachment.url : undefined; + const actions = message.actions + ?.filter(({ action }) => action === "view" || action === "http") + .map(({ label }) => ({ + action: label, + title: label, + })); + await Promise.all([ (async () => { await db.notifications.add({ @@ -71,6 +78,7 @@ self.addEventListener("push", (event) => { image, data, timestamp: message.time * 1_000, + actions, }), ]); } else { @@ -88,8 +96,6 @@ self.addEventListener("push", (event) => { self.addEventListener("notificationclick", (event) => { console.log("[ServiceWorker] NotificationClick"); - event.notification.close(); - event.waitUntil( (async () => { const clients = await self.clients.matchAll({ type: "window" }); @@ -97,29 +103,64 @@ self.addEventListener("notificationclick", (event) => { const rootUrl = new URL(self.location.origin); const rootClient = clients.find((client) => client.url === rootUrl.toString()); - if (event.notification.data.event !== "message") { + if (event.notification.data?.event !== "message") { if (rootClient) { rootClient.focus(); } else { self.clients.openWindow(rootUrl); } + event.notification.close(); } else { const { message } = event.notification.data; - if (message.click) { + if (event.action) { + const action = event.notification.data.message.actions.find(({ label }) => event.action === label); + + if (action.action === "view") { + self.clients.openWindow(action.url); + + if (action.clear) { + event.notification.close(); + } + } else if (action.action === "http") { + try { + const response = await fetch(action.url, { + method: action.method ?? "POST", + headers: action.headers ?? {}, + body: action.body, + }); + + if (!response.ok) { + throw new Error(`HTTP ${response.status} ${response.statusText}`); + } + + if (action.clear) { + event.notification.close(); + } + } catch (e) { + console.error("[ServiceWorker] Error performing http action", e); + self.registration.showNotification(`Unsuccessful action ${action.label} (${action.action})`, { + body: e.message, + }); + } + } + } else if (message.click) { self.clients.openWindow(message.click); - return; - } - const topicUrl = new URL(message.topic, self.location.origin); - const topicClient = clients.find((client) => client.url === topicUrl.toString()); - - if (topicClient) { - topicClient.focus(); - } else if (rootClient) { - rootClient.focus(); + event.notification.close(); } else { - self.clients.openWindow(topicUrl); + const topicUrl = new URL(message.topic, self.location.origin); + const topicClient = clients.find((client) => client.url === topicUrl.toString()); + + if (topicClient) { + topicClient.focus(); + } else if (rootClient) { + rootClient.focus(); + } else { + self.clients.openWindow(topicUrl); + } + + event.notification.close(); } } })() From d3ac976d05e8052fea2f4c8d7d2ad3c995db4534 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Thu, 8 Jun 2023 14:30:19 -0400 Subject: [PATCH 25/74] Remove web-push-(enabled|duration*), change endpoint, other cosmetic changes --- cmd/serve.go | 13 +------- cmd/web_push.go | 25 ++++------------ cmd/web_push_test.go | 6 ++-- docs/config.md | 48 ++++++++++++------------------ server/config.go | 2 -- server/server.go | 10 +++---- server/server.yml | 5 +--- server/server_manager.go | 2 +- server/server_middleware.go | 2 +- server/server_test.go | 3 +- server/server_web_push.go | 2 +- server/server_web_push_test.go | 14 ++++----- server/web_push.go | 10 +++---- web/src/app/Api.js | 4 +-- web/src/app/Notifier.js | 7 ++--- web/src/app/SubscriptionManager.js | 1 - web/src/app/utils.js | 2 +- 17 files changed, 55 insertions(+), 101 deletions(-) diff --git a/cmd/serve.go b/cmd/serve.go index a77227e6c..6d1b111a2 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -94,13 +94,10 @@ var flagsServe = append( altsrc.NewBoolFlag(&cli.BoolFlag{Name: "enable-metrics", Aliases: []string{"enable_metrics"}, EnvVars: []string{"NTFY_ENABLE_METRICS"}, Value: false, Usage: "if set, Prometheus metrics are exposed via the /metrics endpoint"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "metrics-listen-http", Aliases: []string{"metrics_listen_http"}, EnvVars: []string{"NTFY_METRICS_LISTEN_HTTP"}, Usage: "ip:port used to expose the metrics endpoint (implicitly enables metrics)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "profile-listen-http", Aliases: []string{"profile_listen_http"}, EnvVars: []string{"NTFY_PROFILE_LISTEN_HTTP"}, Usage: "ip:port used to expose the profiling endpoints (implicitly enables profiling)"}), - altsrc.NewBoolFlag(&cli.BoolFlag{Name: "web-push-enabled", Aliases: []string{"web_push_enabled"}, EnvVars: []string{"NTFY_WEB_PUSH_ENABLED"}, Usage: "enable web push (requires public and private key)"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-public-key", Aliases: []string{"web_push_public_key"}, EnvVars: []string{"NTFY_WEB_PUSH_PUBLIC_KEY"}, Usage: "public key used for web push notifications"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-private-key", Aliases: []string{"web_push_private_key"}, EnvVars: []string{"NTFY_WEB_PUSH_PRIVATE_KEY"}, Usage: "private key used for web push notifications"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-subscriptions-file", Aliases: []string{"web_push_subscriptions_file"}, EnvVars: []string{"NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE"}, Usage: "file used to store web push subscriptions"}), altsrc.NewStringFlag(&cli.StringFlag{Name: "web-push-email-address", Aliases: []string{"web_push_email_address"}, EnvVars: []string{"NTFY_WEB_PUSH_EMAIL_ADDRESS"}, Usage: "e-mail address of sender, required to use browser push services"}), - altsrc.NewDurationFlag(&cli.DurationFlag{Name: "web-push-expiry-warning-duration", Aliases: []string{"web_push_expiry_warning_duration"}, EnvVars: []string{"NTFY_WEB_PUSH_EXPIRY_WARNING_DURATION"}, Value: server.DefaultWebPushExpiryWarningDuration, Usage: "duration after last update to send a warning notification"}), - altsrc.NewDurationFlag(&cli.DurationFlag{Name: "web-push-expiry-duration", Aliases: []string{"web_push_expiry_duration"}, EnvVars: []string{"NTFY_WEB_PUSH_EXPIRY_DURATION"}, Value: server.DefaultWebPushExpiryDuration, Usage: "duration after last update to expire subscription"}), ) var cmdServe = &cli.Command{ @@ -136,12 +133,9 @@ func execServe(c *cli.Context) error { keyFile := c.String("key-file") certFile := c.String("cert-file") firebaseKeyFile := c.String("firebase-key-file") - webPushEnabled := c.Bool("web-push-enabled") webPushPrivateKey := c.String("web-push-private-key") webPushPublicKey := c.String("web-push-public-key") webPushSubscriptionsFile := c.String("web-push-subscriptions-file") - webPushExpiryWarningDuration := c.Duration("web-push-expiry-warning-duration") - webPushExpiryDuration := c.Duration("web-push-expiry-duration") webPushEmailAddress := c.String("web-push-email-address") cacheFile := c.String("cache-file") cacheDuration := c.Duration("cache-duration") @@ -197,12 +191,10 @@ func execServe(c *cli.Context) error { // Check values if firebaseKeyFile != "" && !util.FileExists(firebaseKeyFile) { return errors.New("if set, FCM key file must exist") - } else if webPushEnabled && (webPushPrivateKey == "" || webPushPublicKey == "" || webPushSubscriptionsFile == "" || webPushEmailAddress == "" || baseURL == "") { + } else if webPushPublicKey != "" && (webPushPrivateKey == "" || webPushSubscriptionsFile == "" || webPushEmailAddress == "" || baseURL == "") { return errors.New("if web push is enabled, web-push-private-key, web-push-public-key, web-push-subscriptions-file, web-push-email-address, and base-url should be set. run 'ntfy web-push generate-keys' to generate keys") } else if keepaliveInterval < 5*time.Second { return errors.New("keepalive interval cannot be lower than five seconds") - } else if webPushEnabled && (webPushExpiryWarningDuration < 24*time.Hour || (webPushExpiryDuration-webPushExpiryWarningDuration < 24*time.Hour)) { - return errors.New("web push expiry warning duration must be at least 1 day, expire duration must be at least 1 day later") } else if managerInterval < 5*time.Second { return errors.New("manager interval cannot be lower than five seconds") } else if cacheDuration > 0 && cacheDuration < managerInterval { @@ -365,13 +357,10 @@ func execServe(c *cli.Context) error { conf.MetricsListenHTTP = metricsListenHTTP conf.ProfileListenHTTP = profileListenHTTP conf.Version = c.App.Version - conf.WebPushEnabled = webPushEnabled conf.WebPushPrivateKey = webPushPrivateKey conf.WebPushPublicKey = webPushPublicKey conf.WebPushSubscriptionsFile = webPushSubscriptionsFile conf.WebPushEmailAddress = webPushEmailAddress - conf.WebPushExpiryDuration = webPushExpiryDuration - conf.WebPushExpiryWarningDuration = webPushExpiryWarningDuration // Set up hot-reloading of config go sigHandlerConfigReload(config) diff --git a/cmd/web_push.go b/cmd/web_push.go index 8b09762cf..94f45c77f 100644 --- a/cmd/web_push.go +++ b/cmd/web_push.go @@ -14,7 +14,7 @@ func init() { } var cmdWebPush = &cli.Command{ - Name: "web-push", + Name: "webpush", Usage: "Generate keys, in the future manage web push subscriptions", UsageText: "ntfy web-push [generate-keys]", Category: categoryServer, @@ -22,7 +22,7 @@ var cmdWebPush = &cli.Command{ Subcommands: []*cli.Command{ { Action: generateWebPushKeys, - Name: "generate-keys", + Name: "keys", Usage: "Generate VAPID keys to enable browser background push notifications", UsageText: "ntfy web-push generate-keys", Category: categoryServer, @@ -36,28 +36,15 @@ func generateWebPushKeys(c *cli.Context) error { return err } - fmt.Fprintf(c.App.ErrWriter, `Keys generated. + fmt.Fprintf(c.App.ErrWriter, `Web Push keys generated. Add the following lines to your config file: -VAPID Public Key: -%s - -VAPID Private Key: -%s - ---- - -Add the following lines to your config file: - -web-push-enabled: true web-push-public-key: %s web-push-private-key: %s -web-push-subscriptions-file: +web-push-subscriptions-file: /var/cache/ntfy/webpush.db # or similar web-push-email-address: -Look at the docs for other methods (e.g. command line flags & environment variables). - -You will also need to set a base-url. -`, publicKey, privateKey, publicKey, privateKey) +See https://ntfy.sh/docs/config/#web-push for details. +`, publicKey, privateKey) return nil } diff --git a/cmd/web_push_test.go b/cmd/web_push_test.go index 3241ea43f..1b3647011 100644 --- a/cmd/web_push_test.go +++ b/cmd/web_push_test.go @@ -10,15 +10,15 @@ import ( func TestCLI_WebPush_GenerateKeys(t *testing.T) { app, _, _, stderr := newTestApp() - require.Nil(t, runWebPushCommand(app, server.NewConfig(), "generate-keys")) - require.Contains(t, stderr.String(), "Keys generated.") + require.Nil(t, runWebPushCommand(app, server.NewConfig(), "keys")) + require.Contains(t, stderr.String(), "Web Push keys generated.") } func runWebPushCommand(app *cli.App, conf *server.Config, args ...string) error { webPushArgs := []string{ "ntfy", "--log-level=ERROR", - "web-push", + "webpush", } return app.Run(append(webPushArgs, args...)) } diff --git a/docs/config.md b/docs/config.md index cfd14034d..b15b8022a 100644 --- a/docs/config.md +++ b/docs/config.md @@ -791,9 +791,18 @@ it'll show `New message` as a popup. ## Web Push notifications [Web Push](https://developer.mozilla.org/en-US/docs/Web/API/Push_API) ([RFC8030](https://datatracker.ietf.org/doc/html/rfc8030)) -is supported, but needs a little configuration to enable it. Since there is no central server (other than the browser's push endpoint), -you have to configure your own [VAPID](https://datatracker.ietf.org/doc/html/draft-thomson-webpush-vapid) keys. These identify the publisher, -and are used to encrypt the messages before sending them to the push endpoint. +allows ntfy to receive push notifications, even when the ntfy web app (or even the browser, depending on the platform) is closed. +When enabled, the user can enable **background notifications** for their topics in the wep app under Settings. Once enabled by the +user, ntfy will forward published messages to the push endpoint (browser-provided, e.g. fcm.googleapis.com), which will then +forward it to the browser. + +To configure Web Push, you need to generate and configure a [VAPID](https://datatracker.ietf.org/doc/html/draft-thomson-webpush-vapid) keypair (via `ntfy webpush keys`), +a database to keep track of the browser's subscriptions, and an admin email address (you): + +- `web-push-public-key` is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 +- `web-push-private-key` is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890 +- `web-push-subscriptions-file` is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db` +- `web-push-email-address` is the admin email address send to the push provider, e.g. `sysadmin@example.com` Limitations: @@ -806,32 +815,17 @@ Limitations: To configure VAPID keys, first generate them: ```sh -$ ntfy web-push generate-keys -Keys generated. - -VAPID Public Key: -AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 - -VAPID Private Key: -AA2BB1234567890abcdefzxcvbnm1234567890 +$ ntfy webpush keys +Web Push keys generated. ``` Then copy the generated values into your `server.yml` or use the corresponding environment variables or command line arguments: ```yaml -web-push-enabled: true web-push-public-key: AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 web-push-private-key: AA2BB1234567890abcdefzxcvbnm1234567890 -web-push-subscriptions-file: /var/cache/ntfy/subscriptions.db +web-push-subscriptions-file: /var/cache/ntfy/webpush.db web-push-email-address: sysadmin@example.com - -# don't forget to set the required base-url for web push notifications -base-url: https://ntfy.example.com - -# you can also set custom expiry and warning durations -# the minimum is 1 day for warning, and 1 day after warning for expiry -web-push-expiry-warning-duration: 168h -web-push-expiry-duration: 192h ``` The `web-push-subscriptions-file` is used to store the push subscriptions. Subscriptions do not ever expire automatically, unless the push @@ -840,7 +834,7 @@ gateway returns an error (e.g. 410 Gone when a user has unsubscribed). The web app refreshes subscriptions on start and regularly on an interval, but this file should be persisted across restarts. If the subscription file is deleted or lost, any web apps that aren't open will not receive new web push notifications until you open then. -Changing your public/private keypair is NOT recommended. Browsers only allow one server identity (public key) per origin, and +Changing your public/private keypair is **not recommended**. Browsers only allow one server identity (public key) per origin, and if you change them the clients will not be able to subscribe via web push until the user manually clears the notification permission. ## Tiers @@ -1340,12 +1334,10 @@ variable before running the `ntfy` command (e.g. `export NTFY_LISTEN_HTTP=:80`). | `stripe-webhook-key` | `NTFY_STRIPE_WEBHOOK_KEY` | *string* | - | Payments: Key required to validate the authenticity of incoming webhooks from Stripe | | `billing-contact` | `NTFY_BILLING_CONTACT` | *email address* or *website* | - | Payments: Email or website displayed in Upgrade dialog as a billing contact | | `web-push-enabled` | `NTFY_WEB_PUSH_ENABLED` | *boolean* (`true` or `false`) | - | Web Push: Enable/disable (requires private and public key below). | -| `web-push-public-key` | `NTFY_WEB_PUSH_PUBLIC_KEY` | *string* | - | Web Push: Public Key. Run `ntfy web-push generate-keys` to generate | -| `web-push-private-key` | `NTFY_WEB_PUSH_PRIVATE_KEY` | *string* | - | Web Push: Private Key. Run `ntfy web-push generate-keys` to generate | -| `web-push-subscriptions-file` | `NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE` | *string* | - | Web Push: Subscriptions file | +| `web-push-public-key` | `NTFY_WEB_PUSH_PUBLIC_KEY` | *string* | - | Web Push: Public Key. Run `ntfy webpush generate-keys` to generate | +| `web-push-private-key` | `NTFY_WEB_PUSH_PRIVATE_KEY` | *string* | - | Web Push: Private Key. Run `ntfy webpush generate-keys` to generate | +| `web-push-subscriptions-file` | `NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE` | *string* | - | Web Push: Subscriptions file | | `web-push-email-address` | `NTFY_WEB_PUSH_EMAIL_ADDRESS` | *string* | - | Web Push: Sender email address | -| `web-push-expiry-warning-duration` | `NTFY_WEB_PUSH_EXPIRY_WARNING_DURATION` | *duration* | 1 week | Web Push: Time before expiry warning is sent (min 1 day) | -| `web-push-expiry-duration` | `NTFY_WEB_PUSH_EXPIRY_DURATION` | *duration* | 1 week + 1 day | Web Push: Time before subscription is expired (min 1 day after warning) | The format for a *duration* is: `(smh)`, e.g. 30s, 20m or 1h. The format for a *size* is: `(GMK)`, e.g. 1G, 200M or 4000k. @@ -1443,8 +1435,6 @@ OPTIONS: --web-push-private-key value, --web_push_private_key value private key used for web push notifications [$NTFY_WEB_PUSH_PRIVATE_KEY] --web-push-subscriptions-file value, --web_push_subscriptions_file value file used to store web push subscriptions [$NTFY_WEB_PUSH_SUBSCRIPTIONS_FILE] --web-push-email-address value, --web_push_email_address value e-mail address of sender, required to use browser push services [$NTFY_WEB_PUSH_EMAIL_ADDRESS] - --web-push-expiry-warning-duration value, --web_push_expiry_warning_duration value duration after last update to send a warning notification (default: 168h0m0s) [$NTFY_WEB_PUSH_EXPIRY_WARNING_DURATION] - --web-push-expiry-duration value, --web_push_expiry_duration value duration after last update to expire subscription (default: 192h0m0s) [$NTFY_WEB_PUSH_EXPIRY_DURATION] --help, -h show help ``` diff --git a/server/config.go b/server/config.go index e26ee0ddd..3d779fbab 100644 --- a/server/config.go +++ b/server/config.go @@ -153,7 +153,6 @@ type Config struct { EnableMetrics bool AccessControlAllowOrigin string // CORS header field to restrict access from web clients Version string // injected by App - WebPushEnabled bool WebPushPrivateKey string WebPushPublicKey string WebPushSubscriptionsFile string @@ -241,7 +240,6 @@ func NewConfig() *Config { EnableReservations: false, AccessControlAllowOrigin: "*", Version: "", - WebPushEnabled: false, WebPushPrivateKey: "", WebPushPublicKey: "", WebPushSubscriptionsFile: "", diff --git a/server/server.go b/server/server.go index a3170817b..c9b95ba60 100644 --- a/server/server.go +++ b/server/server.go @@ -94,7 +94,7 @@ var ( apiAccountSettingsPath = "/v1/account/settings" apiAccountSubscriptionPath = "/v1/account/subscription" apiAccountReservationPath = "/v1/account/reservation" - apiAccountWebPushPath = "/v1/account/web-push" + apiAccountWebPushPath = "/v1/account/webpush" apiAccountPhonePath = "/v1/account/phone" apiAccountPhoneVerifyPath = "/v1/account/phone/verify" apiAccountBillingPortalPath = "/v1/account/billing/portal" @@ -157,7 +157,7 @@ func New(conf *Config) (*Server, error) { return nil, err } var webPush *webPushStore - if conf.WebPushEnabled { + if conf.WebPushPublicKey != "" { webPush, err = newWebPushStore(conf.WebPushSubscriptionsFile) if err != nil { return nil, err @@ -574,7 +574,7 @@ func (s *Server) handleWebConfig(w http.ResponseWriter, _ *http.Request, _ *visi EnableCalls: s.config.TwilioAccount != "", EnableEmails: s.config.SMTPSenderFrom != "", EnableReservations: s.config.EnableReservations, - EnableWebPush: s.config.WebPushEnabled, + EnableWebPush: s.config.WebPushPublicKey != "", BillingContact: s.config.BillingContact, WebPushPublicKey: s.config.WebPushPublicKey, DisallowedTopics: s.config.DisallowedTopics, @@ -792,7 +792,7 @@ func (s *Server) handlePublishInternal(r *http.Request, v *visitor) (*message, e if s.config.UpstreamBaseURL != "" && !unifiedpush { // UP messages are not sent to upstream go s.forwardPollRequest(v, m) } - if s.config.WebPushEnabled { + if s.config.WebPushPublicKey != "" { go s.publishToWebPushEndpoints(v, m) } } else { @@ -1724,7 +1724,7 @@ func (s *Server) sendDelayedMessage(v *visitor, m *message) error { if s.config.UpstreamBaseURL != "" { go s.forwardPollRequest(v, m) } - if s.config.WebPushEnabled { + if s.config.WebPushPublicKey != "" { go s.publishToWebPushEndpoints(v, m) } if err := s.messageCache.MarkPublished(m); err != nil { diff --git a/server/server.yml b/server/server.yml index e59c83364..0afd4b433 100644 --- a/server/server.yml +++ b/server/server.yml @@ -40,15 +40,12 @@ # Enable web push # -# Run "ntfy web-push generate-keys" to generate the keys +# Run "ntfy webpush keys" to generate the keys # -# web-push-enabled: false # web-push-public-key: # web-push-private-key: # web-push-subscriptions-file: # web-push-email-address: -# web-push-expiry-warning-duration: 168h -# web-push-expiry-duration: 192h # If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory. # This allows for service restarts without losing messages in support of the since= parameter. diff --git a/server/server_manager.go b/server/server_manager.go index a8626bd5f..97572a55d 100644 --- a/server/server_manager.go +++ b/server/server_manager.go @@ -15,7 +15,7 @@ func (s *Server) execManager() { s.pruneTokens() s.pruneAttachments() s.pruneMessages() - if s.config.WebPushEnabled { + if s.config.WebPushPublicKey != "" { s.expireOrNotifyOldSubscriptions() } diff --git a/server/server_middleware.go b/server/server_middleware.go index 41c2706ce..b9d1bb88d 100644 --- a/server/server_middleware.go +++ b/server/server_middleware.go @@ -60,7 +60,7 @@ func (s *Server) ensureWebEnabled(next handleFunc) handleFunc { func (s *Server) ensureWebPushEnabled(next handleFunc) handleFunc { return func(w http.ResponseWriter, r *http.Request, v *visitor) error { - if !s.config.WebPushEnabled { + if s.config.WebPushPublicKey == "" { return errHTTPNotFound } return next(w, r, v) diff --git a/server/server_test.go b/server/server_test.go index 76f83eea0..2c361e3b5 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -2622,8 +2622,7 @@ func newTestConfigWithWebPush(t *testing.T) *Config { conf := newTestConfig(t) privateKey, publicKey, err := webpush.GenerateVAPIDKeys() require.Nil(t, err) - conf.WebPushEnabled = true - conf.WebPushSubscriptionsFile = filepath.Join(t.TempDir(), "subscriptions.db") + conf.WebPushSubscriptionsFile = filepath.Join(t.TempDir(), "webpush.db") conf.WebPushEmailAddress = "testing@example.com" conf.WebPushPrivateKey = privateKey conf.WebPushPublicKey = publicKey diff --git a/server/server_web_push.go b/server/server_web_push.go index 6b3e4adc8..20bd4e7cb 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -76,7 +76,7 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { } // TODO this should return error -// TODO the updated_at field is not actually updated ever +// TODO rate limiting func (s *Server) expireOrNotifyOldSubscriptions() { subscriptions, err := s.webPush.ExpireAndGetExpiringSubscriptions(s.config.WebPushExpiryWarningDuration, s.config.WebPushExpiryDuration) diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 29d91f7eb..57c52a0d3 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -23,7 +23,7 @@ const ( func TestServer_WebPush_TopicAdd(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -40,7 +40,7 @@ func TestServer_WebPush_TopicAdd(t *testing.T) { func TestServer_WebPush_TopicAdd_InvalidEndpoint(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, "https://ddos-target.example.com/webpush"), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, "https://ddos-target.example.com/webpush"), nil) require.Equal(t, 400, response.Code) require.Equal(t, `{"code":40039,"http":400,"error":"invalid request: web push endpoint unknown"}`+"\n", response.Body.String()) } @@ -53,7 +53,7 @@ func TestServer_WebPush_TopicAdd_TooManyTopics(t *testing.T) { topicList[i] = util.RandomString(5) } - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, topicList, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, topicList, defaultEndpoint), nil) require.Equal(t, 400, response.Code) require.Equal(t, `{"code":40040,"http":400,"error":"invalid request: too many web push topic subscriptions"}`+"\n", response.Body.String()) } @@ -64,7 +64,7 @@ func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { addSubscription(t, s, "test-topic", defaultEndpoint) requireSubscriptionCount(t, s, "test-topic", 1) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{}, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{}, defaultEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -79,7 +79,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) @@ -96,7 +96,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) require.Equal(t, 403, response.Code) requireSubscriptionCount(t, s, "test-topic", 0) @@ -109,7 +109,7 @@ func TestServer_WebPush_DeleteAccountUnsubscribe(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/web-push", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) diff --git a/server/web_push.go b/server/web_push.go index 0bea08572..6a6b5ee32 100644 --- a/server/web_push.go +++ b/server/web_push.go @@ -31,10 +31,9 @@ const ( INSERT OR REPLACE INTO subscriptions (topic, user_id, endpoint, key_auth, key_p256dh) VALUES (?, ?, ?, ?, ?) ` - deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscriptions WHERE endpoint = ?` - deleteWebPushSubscriptionByUserIDQuery = `DELETE FROM subscriptions WHERE user_id = ?` - deleteWebPushSubscriptionByTopicAndEndpointQuery = `DELETE FROM subscriptions WHERE topic = ? AND endpoint = ?` - deleteWebPushSubscriptionsByAgeQuery = `DELETE FROM subscriptions WHERE warning_sent = 1 AND updated_at <= datetime('now', ?)` + deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscriptions WHERE endpoint = ?` + deleteWebPushSubscriptionByUserIDQuery = `DELETE FROM subscriptions WHERE user_id = ?` + deleteWebPushSubscriptionsByAgeQuery = `DELETE FROM subscriptions WHERE warning_sent = 1 AND updated_at <= datetime('now', ?)` selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE topic = ?` selectWebPushSubscriptionsExpiringSoonQuery = `SELECT DISTINCT endpoint, key_auth, key_p256dh FROM subscriptions WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` @@ -169,8 +168,7 @@ func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Du return nil, err } - err = tx.Commit() - if err != nil { + if err = tx.Commit(); err != nil { return nil, err } diff --git a/web/src/app/Api.js b/web/src/app/Api.js index b763346b0..d4281d33f 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -6,7 +6,7 @@ import { topicUrlAuth, topicUrlJsonPoll, topicUrlJsonPollWithSince, - webPushSubscriptionsUrl, + accountWebPushUrl, } from "./utils"; import userManager from "./UserManager"; import { fetchOrThrow } from "./errors"; @@ -117,7 +117,7 @@ class Api { async updateWebPushSubscriptions(topics, browserSubscription) { const user = await userManager.get(config.base_url); - const url = webPushSubscriptionsUrl(config.base_url); + const url = accountWebPushUrl(config.base_url); console.log(`[Api] Sending Web Push Subscriptions`, { url, topics, endpoint: browserSubscription.endpoint }); const response = await fetch(url, { diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index b157ef46d..8ef1a1ae9 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -52,17 +52,14 @@ class Notifier { if (!this.pushPossible()) { throw new Error("Unsupported or denied"); } - const pushManager = await this.pushManager(); - const existingSubscription = await pushManager.getSubscription(); - if (existingSubscription) { return existingSubscription; } - // create a new subscription only if web push is enabled - // it is possible that web push was previously enabled and then disabled again + // Create a new subscription only if web push is enabled. + // It is possible that web push was previously enabled and then disabled again // in which case there would be an existingSubscription. // but if it was _not_ enabled previously, we reach here, and only create a new // subscription if it is now enabled. diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 74488bc0d..592db6f99 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -113,7 +113,6 @@ class SubscriptionManager { async refreshWebPushSubscriptions(presetTopics) { const topics = presetTopics ?? (await this.webPushTopics()); - const browserSubscription = await notifier.getBrowserSubscription(); if (!browserSubscription) { diff --git a/web/src/app/utils.js b/web/src/app/utils.js index d5b3e9768..8a1026d7f 100644 --- a/web/src/app/utils.js +++ b/web/src/app/utils.js @@ -21,7 +21,6 @@ export const topicUrlJsonPoll = (baseUrl, topic) => `${topicUrlJson(baseUrl, top export const topicUrlJsonPollWithSince = (baseUrl, topic, since) => `${topicUrlJson(baseUrl, topic)}?poll=1&since=${since}`; export const topicUrlAuth = (baseUrl, topic) => `${topicUrl(baseUrl, topic)}/auth`; export const topicShortUrl = (baseUrl, topic) => shortUrl(topicUrl(baseUrl, topic)); -export const webPushSubscriptionsUrl = (baseUrl) => `${baseUrl}/v1/account/web-push`; export const accountUrl = (baseUrl) => `${baseUrl}/v1/account`; export const accountPasswordUrl = (baseUrl) => `${baseUrl}/v1/account/password`; export const accountTokenUrl = (baseUrl) => `${baseUrl}/v1/account/token`; @@ -33,6 +32,7 @@ export const accountBillingSubscriptionUrl = (baseUrl) => `${baseUrl}/v1/account export const accountBillingPortalUrl = (baseUrl) => `${baseUrl}/v1/account/billing/portal`; export const accountPhoneUrl = (baseUrl) => `${baseUrl}/v1/account/phone`; export const accountPhoneVerifyUrl = (baseUrl) => `${baseUrl}/v1/account/phone/verify`; +export const accountWebPushUrl = (baseUrl) => `${baseUrl}/v1/account/webpush`; export const validUrl = (url) => url.match(/^https?:\/\/.+/); From 9d38aeb863551d939efdf27f5c751fe14d481230 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Thu, 8 Jun 2023 21:45:52 -0400 Subject: [PATCH 26/74] Docs in server.yml, schemaVersion table, refactoring --- cmd/{web_push.go => webpush.go} | 0 cmd/{web_push_test.go => webpush_test.go} | 0 server/server.yml | 28 ++++++++++++------- server/server_manager.go | 4 +-- server/server_web_push.go | 33 +++++++++++++++-------- server/server_web_push_test.go | 13 +++++---- server/{web_push.go => webpush_store.go} | 33 ++++++++++++++++------- 7 files changed, 74 insertions(+), 37 deletions(-) rename cmd/{web_push.go => webpush.go} (100%) rename cmd/{web_push_test.go => webpush_test.go} (100%) rename server/{web_push.go => webpush_store.go} (81%) diff --git a/cmd/web_push.go b/cmd/webpush.go similarity index 100% rename from cmd/web_push.go rename to cmd/webpush.go diff --git a/cmd/web_push_test.go b/cmd/webpush_test.go similarity index 100% rename from cmd/web_push_test.go rename to cmd/webpush_test.go diff --git a/server/server.yml b/server/server.yml index 0afd4b433..37efb74ac 100644 --- a/server/server.yml +++ b/server/server.yml @@ -38,15 +38,6 @@ # # firebase-key-file: -# Enable web push -# -# Run "ntfy webpush keys" to generate the keys -# -# web-push-public-key: -# web-push-private-key: -# web-push-subscriptions-file: -# web-push-email-address: - # If "cache-file" is set, messages are cached in a local SQLite database instead of only in-memory. # This allows for service restarts without losing messages in support of the since= parameter. # @@ -153,6 +144,25 @@ # smtp-server-domain: # smtp-server-addr-prefix: +# Web Push support (background notifications for browsers) +# +# If enabled, allows ntfy to receive push notifications, even when the ntfy web app is closed. When enabled, the user +# can enable background notifications. Once enabled by the user, ntfy will forward published messages to the push +# endpoint, which will then forward it to the browser. +# +# You must configure all settings below to enable Web Push. +# Run "ntfy webpush keys" to generate the keys. +# +# - web-push-public-key is the generated VAPID public key, e.g. AA1234BBCCddvveekaabcdfqwertyuiopasdfghjklzxcvbnm1234567890 +# - web-push-private-key is the generated VAPID private key, e.g. AA2BB1234567890abcdefzxcvbnm1234567890 +# - web-push-subscriptions-file is a database file to keep track of browser subscription endpoints, e.g. `/var/cache/ntfy/webpush.db` +# - web-push-email-address is the admin email address send to the push provider, e.g. `sysadmin@example.com` +# +# web-push-public-key: +# web-push-private-key: +# web-push-subscriptions-file: +# web-push-email-address: + # If enabled, ntfy can perform voice calls via Twilio via the "X-Call" header. # # - twilio-account is the Twilio account SID, e.g. AC12345beefbeef67890beefbeef122586 diff --git a/server/server_manager.go b/server/server_manager.go index 97572a55d..b065aff12 100644 --- a/server/server_manager.go +++ b/server/server_manager.go @@ -15,9 +15,7 @@ func (s *Server) execManager() { s.pruneTokens() s.pruneAttachments() s.pruneMessages() - if s.config.WebPushPublicKey != "" { - s.expireOrNotifyOldSubscriptions() - } + s.pruneOrNotifyWebPushSubscriptions() // Message count per topic var messagesCached int diff --git a/server/server_web_push.go b/server/server_web_push.go index 20bd4e7cb..37754db2b 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -78,28 +78,39 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { // TODO this should return error // TODO rate limiting -func (s *Server) expireOrNotifyOldSubscriptions() { +func (s *Server) pruneOrNotifyWebPushSubscriptions() { + if s.config.WebPushPublicKey == "" { + return + } + go func() { + if err := s.pruneOrNotifyWebPushSubscriptionsInternal(); err != nil { + log.Tag(tagWebPush).Err(err).Warn("Unable to prune or notify web push subscriptions") + } + }() +} + +func (s *Server) pruneOrNotifyWebPushSubscriptionsInternal() error { subscriptions, err := s.webPush.ExpireAndGetExpiringSubscriptions(s.config.WebPushExpiryWarningDuration, s.config.WebPushExpiryDuration) if err != nil { log.Tag(tagWebPush).Err(err).Warn("Unable to publish expiry imminent warning") - return + return err } else if len(subscriptions) == 0 { - return + return nil } payload, err := json.Marshal(newWebPushSubscriptionExpiringPayload()) if err != nil { log.Tag(tagWebPush).Err(err).Warn("Unable to marshal expiring payload") - return + return err } - go func() { - for _, subscription := range subscriptions { - ctx := log.Context{"endpoint": subscription.BrowserSubscription.Endpoint} - if err := s.sendWebPushNotification(payload, &subscription, &ctx); err != nil { - log.Tag(tagWebPush).Err(err).Fields(ctx).Warn("Unable to publish expiry imminent warning") - } + for _, subscription := range subscriptions { + ctx := log.Context{"endpoint": subscription.BrowserSubscription.Endpoint} + if err := s.sendWebPushNotification(payload, &subscription, &ctx); err != nil { + log.Tag(tagWebPush).Err(err).Fields(ctx).Warn("Unable to publish expiry imminent warning") + return err } - }() + } log.Tag(tagWebPush).Debug("Expiring old subscriptions and published %d expiry imminent warnings", len(subscriptions)) + return nil } func (s *Server) sendWebPushNotification(message []byte, sub *webPushSubscription, ctx *log.Context) error { diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 57c52a0d3..3255662c6 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -149,7 +149,7 @@ func TestServer_WebPush_Publish(t *testing.T) { }) } -func TestServer_WebPush_PublishExpire(t *testing.T) { +func TestServer_WebPush_Publish_RemoveOnError(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) var received atomic.Bool @@ -201,7 +201,7 @@ func TestServer_WebPush_Expiry(t *testing.T) { _, err := s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-7 days')") require.Nil(t, err) - s.expireOrNotifyOldSubscriptions() + s.pruneOrNotifyWebPushSubscriptions() requireSubscriptionCount(t, s, "test-topic", 1) waitFor(t, func() bool { @@ -211,8 +211,12 @@ func TestServer_WebPush_Expiry(t *testing.T) { _, err = s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-8 days')") require.Nil(t, err) - s.expireOrNotifyOldSubscriptions() - requireSubscriptionCount(t, s, "test-topic", 0) + s.pruneOrNotifyWebPushSubscriptions() + waitFor(t, func() bool { + subs, err := s.webPush.SubscriptionsForTopic("test-topic") + require.Nil(t, err) + return len(subs) == 0 + }) } func payloadForTopics(t *testing.T, topics []string, endpoint string) string { @@ -246,6 +250,5 @@ func addSubscription(t *testing.T, s *Server, topic string, url string) { func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { subs, err := s.webPush.SubscriptionsForTopic("test-topic") require.Nil(t, err) - require.Len(t, subs, expectedLength) } diff --git a/server/web_push.go b/server/webpush_store.go similarity index 81% rename from server/web_push.go rename to server/webpush_store.go index 6a6b5ee32..86d9eea14 100644 --- a/server/web_push.go +++ b/server/webpush_store.go @@ -22,11 +22,16 @@ const ( updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, warning_sent BOOLEAN DEFAULT FALSE ); + CREATE TABLE IF NOT EXISTS schemaVersion ( + id INT PRIMARY KEY, + version INT NOT NULL + ); CREATE INDEX IF NOT EXISTS idx_topic ON subscriptions (topic); CREATE INDEX IF NOT EXISTS idx_endpoint ON subscriptions (endpoint); CREATE UNIQUE INDEX IF NOT EXISTS idx_topic_endpoint ON subscriptions (topic, endpoint); COMMIT; ` + insertWebPushSubscriptionQuery = ` INSERT OR REPLACE INTO subscriptions (topic, user_id, endpoint, key_auth, key_p256dh) VALUES (?, ?, ?, ?, ?) @@ -39,8 +44,13 @@ const ( selectWebPushSubscriptionsExpiringSoonQuery = `SELECT DISTINCT endpoint, key_auth, key_p256dh FROM subscriptions WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` updateWarningSentQuery = `UPDATE subscriptions SET warning_sent = true WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` +) - selectWebPushSubscriptionsCountQuery = `SELECT COUNT(*) FROM subscriptions` +// Schema management queries +const ( + currentWebPushSchemaVersion = 1 + insertWebPushSchemaVersion = `INSERT INTO schemaVersion VALUES (1, ?)` + selectWebPushSchemaVersionQuery = `SELECT version FROM schemaVersion WHERE id = 1` ) type webPushStore struct { @@ -52,7 +62,7 @@ func newWebPushStore(filename string) (*webPushStore, error) { if err != nil { return nil, err } - if err := setupSubscriptionsDB(db); err != nil { + if err := setupWebPushDB(db); err != nil { return nil, err } return &webPushStore{ @@ -60,33 +70,38 @@ func newWebPushStore(filename string) (*webPushStore, error) { }, nil } -func setupSubscriptionsDB(db *sql.DB) error { - // If 'subscriptions' table does not exist, this must be a new database - rows, err := db.Query(selectWebPushSubscriptionsCountQuery) +func setupWebPushDB(db *sql.DB) error { + // If 'schemaVersion' table does not exist, this must be a new database + rows, err := db.Query(selectWebPushSchemaVersionQuery) if err != nil { - return setupNewSubscriptionsDB(db) + return setupNewWebPushDB(db) } return rows.Close() } -func setupNewSubscriptionsDB(db *sql.DB) error { +func setupNewWebPushDB(db *sql.DB) error { if _, err := db.Exec(createWebPushSubscriptionsTableQuery); err != nil { return err } + if _, err := db.Exec(insertWebPushSchemaVersion, currentWebPushSchemaVersion); err != nil { + return err + } return nil } +// UpdateSubscriptions updates the subscriptions for the given topics and user ID. It always first deletes all +// existing entries for a given endpoint. func (c *webPushStore) UpdateSubscriptions(topics []string, userID string, subscription webpush.Subscription) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() - if err = c.RemoveByEndpoint(subscription.Endpoint); err != nil { + if _, err := tx.Exec(deleteWebPushSubscriptionByEndpointQuery, subscription.Endpoint); err != nil { return err } for _, topic := range topics { - if err := c.AddSubscription(topic, userID, subscription); err != nil { + if _, err = tx.Exec(insertWebPushSubscriptionQuery, topic, userID, subscription.Endpoint, subscription.Keys.Auth, subscription.Keys.P256dh); err != nil { return err } } From 966ffe1669a799978de7399a292bc98d16d12970 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Thu, 8 Jun 2023 23:09:38 -0400 Subject: [PATCH 27/74] More refactor --- server/server_account.go | 2 +- server/server_web_push.go | 27 ++++++------ server/server_web_push_test.go | 68 +++++++++++------------------ server/types.go | 30 +++++++++---- server/webpush_store.go | 79 +++++++++++++--------------------- server/webpush_store_test.go | 12 ++++++ web/src/app/Api.js | 22 +++++----- web/src/app/Notifier.js | 4 +- 8 files changed, 112 insertions(+), 132 deletions(-) create mode 100644 server/webpush_store_test.go diff --git a/server/server_account.go b/server/server_account.go index b42496dba..c9ebc7029 100644 --- a/server/server_account.go +++ b/server/server_account.go @@ -171,7 +171,7 @@ func (s *Server) handleAccountDelete(w http.ResponseWriter, r *http.Request, v * return errHTTPBadRequestIncorrectPasswordConfirmation } if s.webPush != nil { - if err := s.webPush.RemoveByUserID(u.ID); err != nil { + if err := s.webPush.RemoveSubscriptionsByUserID(u.ID); err != nil { logvr(v, r).Err(err).Warn("Error removing web push subscriptions for %s", u.Name) } } diff --git a/server/server_web_push.go b/server/server_web_push.go index 37754db2b..1adf55803 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -29,15 +29,15 @@ const ( var webPushEndpointAllowRegex = regexp.MustCompile(webPushEndpointAllowRegexStr) func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { - payload, err := readJSONWithLimit[webPushSubscriptionPayload](r.Body, jsonBodyBytesLimit, false) - if err != nil || payload.BrowserSubscription.Endpoint == "" || payload.BrowserSubscription.Keys.P256dh == "" || payload.BrowserSubscription.Keys.Auth == "" { + req, err := readJSONWithLimit[apiWebPushUpdateSubscriptionRequest](r.Body, jsonBodyBytesLimit, false) + if err != nil || req.Endpoint == "" || req.P256dh == "" || req.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid - } else if !webPushEndpointAllowRegex.MatchString(payload.BrowserSubscription.Endpoint) { + } else if !webPushEndpointAllowRegex.MatchString(req.Endpoint) { return errHTTPBadRequestWebPushEndpointUnknown - } else if len(payload.Topics) > webPushTopicSubscribeLimit { + } else if len(req.Topics) > webPushTopicSubscribeLimit { return errHTTPBadRequestWebPushTopicCountTooHigh } - topics, err := s.topicsFromIDs(payload.Topics...) + topics, err := s.topicsFromIDs(req.Topics...) if err != nil { return err } @@ -50,7 +50,7 @@ func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v * } } } - if err := s.webPush.UpdateSubscriptions(payload.Topics, v.MaybeUserID(), payload.BrowserSubscription); err != nil { + if err := s.webPush.UpsertSubscription(req.Endpoint, req.Topics, v.MaybeUserID(), req.Auth, req.P256dh); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) @@ -68,16 +68,13 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { return } for _, subscription := range subscriptions { - ctx := log.Context{"endpoint": subscription.BrowserSubscription.Endpoint, "username": subscription.UserID, "topic": m.Topic, "message_id": m.ID} + ctx := log.Context{"endpoint": subscription.Endpoint, "username": subscription.UserID, "topic": m.Topic, "message_id": m.ID} if err := s.sendWebPushNotification(payload, subscription, &ctx); err != nil { log.Tag(tagWebPush).Err(err).Fields(ctx).Warn("Unable to publish web push message") } } } -// TODO this should return error -// TODO rate limiting - func (s *Server) pruneOrNotifyWebPushSubscriptions() { if s.config.WebPushPublicKey == "" { return @@ -103,8 +100,8 @@ func (s *Server) pruneOrNotifyWebPushSubscriptionsInternal() error { return err } for _, subscription := range subscriptions { - ctx := log.Context{"endpoint": subscription.BrowserSubscription.Endpoint} - if err := s.sendWebPushNotification(payload, &subscription, &ctx); err != nil { + ctx := log.Context{"endpoint": subscription.Endpoint} + if err := s.sendWebPushNotification(payload, subscription, &ctx); err != nil { log.Tag(tagWebPush).Err(err).Fields(ctx).Warn("Unable to publish expiry imminent warning") return err } @@ -114,7 +111,7 @@ func (s *Server) pruneOrNotifyWebPushSubscriptionsInternal() error { } func (s *Server) sendWebPushNotification(message []byte, sub *webPushSubscription, ctx *log.Context) error { - resp, err := webpush.SendNotification(message, &sub.BrowserSubscription, &webpush.Options{ + resp, err := webpush.SendNotification(message, sub.ToSubscription(), &webpush.Options{ Subscriber: s.config.WebPushEmailAddress, VAPIDPublicKey: s.config.WebPushPublicKey, VAPIDPrivateKey: s.config.WebPushPrivateKey, @@ -122,14 +119,14 @@ func (s *Server) sendWebPushNotification(message []byte, sub *webPushSubscriptio }) if err != nil { log.Tag(tagWebPush).Err(err).Fields(*ctx).Debug("Unable to publish web push message, removing endpoint") - if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { + if err := s.webPush.RemoveSubscriptionsByEndpoint(sub.Endpoint); err != nil { return err } return err } if (resp.StatusCode < 200 || resp.StatusCode > 299) && resp.StatusCode != 429 { log.Tag(tagWebPush).Fields(*ctx).Field("response_code", resp.StatusCode).Debug("Unable to publish web push message, unexpected response") - if err := s.webPush.RemoveByEndpoint(sub.BrowserSubscription.Endpoint); err != nil { + if err := s.webPush.RemoveSubscriptionsByEndpoint(sub.Endpoint); err != nil { return err } return errHTTPInternalErrorWebPushUnableToPublish.Fields(*ctx) diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 3255662c6..c60ceaad3 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -3,27 +3,25 @@ package server import ( "encoding/json" "fmt" + "github.com/stretchr/testify/require" + "heckel.io/ntfy/user" + "heckel.io/ntfy/util" "io" "net/http" "net/http/httptest" "strings" "sync/atomic" "testing" - - "github.com/SherClockHolmes/webpush-go" - "github.com/stretchr/testify/require" - "heckel.io/ntfy/user" - "heckel.io/ntfy/util" ) const ( - defaultEndpoint = "https://updates.push.services.mozilla.com/wpush/v1/AAABBCCCDDEEEFFF" + testWebPushEndpoint = "https://updates.push.services.mozilla.com/wpush/v1/AAABBCCCDDEEEFFF" ) func TestServer_WebPush_TopicAdd(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -31,9 +29,9 @@ func TestServer_WebPush_TopicAdd(t *testing.T) { require.Nil(t, err) require.Len(t, subs, 1) - require.Equal(t, subs[0].BrowserSubscription.Endpoint, defaultEndpoint) - require.Equal(t, subs[0].BrowserSubscription.Keys.P256dh, "p256dh-key") - require.Equal(t, subs[0].BrowserSubscription.Keys.Auth, "auth-key") + require.Equal(t, subs[0].Endpoint, testWebPushEndpoint) + require.Equal(t, subs[0].P256dh, "p256dh-key") + require.Equal(t, subs[0].Auth, "auth-key") require.Equal(t, subs[0].UserID, "") } @@ -53,7 +51,7 @@ func TestServer_WebPush_TopicAdd_TooManyTopics(t *testing.T) { topicList[i] = util.RandomString(5) } - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, topicList, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, topicList, testWebPushEndpoint), nil) require.Equal(t, 400, response.Code) require.Equal(t, `{"code":40040,"http":400,"error":"invalid request: too many web push topic subscriptions"}`+"\n", response.Body.String()) } @@ -61,10 +59,10 @@ func TestServer_WebPush_TopicAdd_TooManyTopics(t *testing.T) { func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - addSubscription(t, s, "test-topic", defaultEndpoint) + addSubscription(t, s, testWebPushEndpoint, "test-topic") requireSubscriptionCount(t, s, "test-topic", 1) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{}, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{}, testWebPushEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -79,7 +77,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) @@ -96,7 +94,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), nil) + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) require.Equal(t, 403, response.Code) requireSubscriptionCount(t, s, "test-topic", 0) @@ -109,7 +107,7 @@ func TestServer_WebPush_DeleteAccountUnsubscribe(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, defaultEndpoint), map[string]string{ + response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) @@ -129,7 +127,6 @@ func TestServer_WebPush_Publish(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) var received atomic.Bool - pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) @@ -140,8 +137,7 @@ func TestServer_WebPush_Publish(t *testing.T) { })) defer pushService.Close() - addSubscription(t, s, "test-topic", pushService.URL+"/push-receive") - + addSubscription(t, s, pushService.URL+"/push-receive", "test-topic") request(t, s, "PUT", "/test-topic", "web push test", nil) waitFor(t, func() bool { @@ -153,19 +149,15 @@ func TestServer_WebPush_Publish_RemoveOnError(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) var received atomic.Bool - pushService := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { _, err := io.ReadAll(r.Body) require.Nil(t, err) - // Gone - w.WriteHeader(410) + w.WriteHeader(http.StatusGone) received.Store(true) })) defer pushService.Close() - addSubscription(t, s, "test-topic", pushService.URL+"/push-receive") - addSubscription(t, s, "test-topic-abc", pushService.URL+"/push-receive") - + addSubscription(t, s, pushService.URL+"/push-receive", "test-topic", "test-topic-abc") requireSubscriptionCount(t, s, "test-topic", 1) requireSubscriptionCount(t, s, "test-topic-abc", 1) @@ -195,7 +187,7 @@ func TestServer_WebPush_Expiry(t *testing.T) { })) defer pushService.Close() - addSubscription(t, s, "test-topic", pushService.URL+"/push-receive") + addSubscription(t, s, pushService.URL+"/push-receive", "test-topic") requireSubscriptionCount(t, s, "test-topic", 1) _, err := s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-7 days')") @@ -225,30 +217,18 @@ func payloadForTopics(t *testing.T, topics []string, endpoint string) string { return fmt.Sprintf(`{ "topics": %s, - "browser_subscription":{ - "endpoint": "%s", - "keys": { - "p256dh": "p256dh-key", - "auth": "auth-key" - } - } + "endpoint": "%s", + "p256dh": "p256dh-key", + "auth": "auth-key" }`, topicsJSON, endpoint) } -func addSubscription(t *testing.T, s *Server, topic string, url string) { - err := s.webPush.AddSubscription(topic, "", webpush.Subscription{ - Endpoint: url, - Keys: webpush.Keys{ - // connected to a local test VAPID key, not a leak! - Auth: "kSC3T8aN1JCQxxPdrFLrZg", - P256dh: "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE", - }, - }) - require.Nil(t, err) +func addSubscription(t *testing.T, s *Server, endpoint string, topics ...string) { + require.Nil(t, s.webPush.UpsertSubscription(endpoint, topics, "", "kSC3T8aN1JCQxxPdrFLrZg", "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE")) // Test auth and p256dh } func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { - subs, err := s.webPush.SubscriptionsForTopic("test-topic") + subs, err := s.webPush.SubscriptionsForTopic(topic) require.Nil(t, err) require.Len(t, subs, expectedLength) } diff --git a/server/types.go b/server/types.go index a8a013016..99f1c4f75 100644 --- a/server/types.go +++ b/server/types.go @@ -1,6 +1,7 @@ package server import ( + "github.com/SherClockHolmes/webpush-go" "net/http" "net/netip" "time" @@ -8,7 +9,6 @@ import ( "heckel.io/ntfy/log" "heckel.io/ntfy/user" - "github.com/SherClockHolmes/webpush-go" "heckel.io/ntfy/util" ) @@ -467,6 +467,13 @@ type apiStripeSubscriptionDeletedEvent struct { Customer string `json:"customer"` } +type apiWebPushUpdateSubscriptionRequest struct { + Endpoint string `json:"endpoint"` + Auth string `json:"auth"` + P256dh string `json:"p256dh"` + Topics []string `json:"topics"` +} + // List of possible Web Push events const ( webPushMessageEvent = "message" @@ -498,11 +505,18 @@ func newWebPushSubscriptionExpiringPayload() webPushControlMessagePayload { } type webPushSubscription struct { - BrowserSubscription webpush.Subscription - UserID string -} - -type webPushSubscriptionPayload struct { - BrowserSubscription webpush.Subscription `json:"browser_subscription"` - Topics []string `json:"topics"` + Endpoint string + Auth string + P256dh string + UserID string +} + +func (w *webPushSubscription) ToSubscription() *webpush.Subscription { + return &webpush.Subscription{ + Endpoint: w.Endpoint, + Keys: webpush.Keys{ + Auth: w.Auth, + P256dh: w.P256dh, + }, + } } diff --git a/server/webpush_store.go b/server/webpush_store.go index 86d9eea14..774772be7 100644 --- a/server/webpush_store.go +++ b/server/webpush_store.go @@ -5,7 +5,6 @@ import ( "fmt" "time" - "github.com/SherClockHolmes/webpush-go" _ "github.com/mattn/go-sqlite3" // SQLite driver ) @@ -41,7 +40,7 @@ const ( deleteWebPushSubscriptionsByAgeQuery = `DELETE FROM subscriptions WHERE warning_sent = 1 AND updated_at <= datetime('now', ?)` selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE topic = ?` - selectWebPushSubscriptionsExpiringSoonQuery = `SELECT DISTINCT endpoint, key_auth, key_p256dh FROM subscriptions WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` + selectWebPushSubscriptionsExpiringSoonQuery = `SELECT DISTINCT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` updateWarningSentQuery = `UPDATE subscriptions SET warning_sent = true WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` ) @@ -89,65 +88,48 @@ func setupNewWebPushDB(db *sql.DB) error { return nil } -// UpdateSubscriptions updates the subscriptions for the given topics and user ID. It always first deletes all +// UpsertSubscription adds or updates Web Push subscriptions for the given topics and user ID. It always first deletes all // existing entries for a given endpoint. -func (c *webPushStore) UpdateSubscriptions(topics []string, userID string, subscription webpush.Subscription) error { +func (c *webPushStore) UpsertSubscription(endpoint string, topics []string, userID, auth, p256dh string) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() - if _, err := tx.Exec(deleteWebPushSubscriptionByEndpointQuery, subscription.Endpoint); err != nil { + if _, err := tx.Exec(deleteWebPushSubscriptionByEndpointQuery, endpoint); err != nil { return err } for _, topic := range topics { - if _, err = tx.Exec(insertWebPushSubscriptionQuery, topic, userID, subscription.Endpoint, subscription.Keys.Auth, subscription.Keys.P256dh); err != nil { + if _, err = tx.Exec(insertWebPushSubscriptionQuery, topic, userID, endpoint, auth, p256dh); err != nil { return err } } return tx.Commit() } -func (c *webPushStore) AddSubscription(topic string, userID string, subscription webpush.Subscription) error { - _, err := c.db.Exec( - insertWebPushSubscriptionQuery, - topic, - userID, - subscription.Endpoint, - subscription.Keys.Auth, - subscription.Keys.P256dh, - ) - return err -} - -func (c *webPushStore) SubscriptionsForTopic(topic string) (subscriptions []*webPushSubscription, err error) { +func (c *webPushStore) SubscriptionsForTopic(topic string) ([]*webPushSubscription, error) { rows, err := c.db.Query(selectWebPushSubscriptionsForTopicQuery, topic) if err != nil { return nil, err } defer rows.Close() - - var data []*webPushSubscription + subscriptions := make([]*webPushSubscription, 0) for rows.Next() { - var userID, endpoint, auth, p256dh string + var endpoint, auth, p256dh, userID string if err = rows.Scan(&endpoint, &auth, &p256dh, &userID); err != nil { return nil, err } - data = append(data, &webPushSubscription{ - UserID: userID, - BrowserSubscription: webpush.Subscription{ - Endpoint: endpoint, - Keys: webpush.Keys{ - Auth: auth, - P256dh: p256dh, - }, - }, + subscriptions = append(subscriptions, &webPushSubscription{ + Endpoint: endpoint, + Auth: auth, + P256dh: p256dh, + UserID: userID, }) } - return data, nil + return subscriptions, nil } -func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Duration, expiryDuration time.Duration) (subscriptions []webPushSubscription, err error) { +func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Duration, expiryDuration time.Duration) ([]*webPushSubscription, error) { // TODO this should be two functions tx, err := c.db.Begin() if err != nil { @@ -166,15 +148,18 @@ func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Du } defer rows.Close() - var data []webPushSubscription + subscriptions := make([]*webPushSubscription, 0) for rows.Next() { - i := webPushSubscription{} - err = rows.Scan(&i.BrowserSubscription.Endpoint, &i.BrowserSubscription.Keys.Auth, &i.BrowserSubscription.Keys.P256dh) - fmt.Printf("%v+", i) - if err != nil { + var endpoint, auth, p256dh, userID string + if err = rows.Scan(&endpoint, &auth, &p256dh, &userID); err != nil { return nil, err } - data = append(data, i) + subscriptions = append(subscriptions, &webPushSubscription{ + Endpoint: endpoint, + Auth: auth, + P256dh: p256dh, + UserID: userID, + }) } // also set warning as sent @@ -187,22 +172,16 @@ func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Du return nil, err } - return data, nil + return subscriptions, nil } -func (c *webPushStore) RemoveByEndpoint(endpoint string) error { - _, err := c.db.Exec( - deleteWebPushSubscriptionByEndpointQuery, - endpoint, - ) +func (c *webPushStore) RemoveSubscriptionsByEndpoint(endpoint string) error { + _, err := c.db.Exec(deleteWebPushSubscriptionByEndpointQuery, endpoint) return err } -func (c *webPushStore) RemoveByUserID(userID string) error { - _, err := c.db.Exec( - deleteWebPushSubscriptionByUserIDQuery, - userID, - ) +func (c *webPushStore) RemoveSubscriptionsByUserID(userID string) error { + _, err := c.db.Exec(deleteWebPushSubscriptionByUserIDQuery, userID) return err } diff --git a/server/webpush_store_test.go b/server/webpush_store_test.go new file mode 100644 index 000000000..28068ebe8 --- /dev/null +++ b/server/webpush_store_test.go @@ -0,0 +1,12 @@ +package server + +import ( + "github.com/stretchr/testify/require" + "testing" +) + +func newTestWebPushStore(t *testing.T, filename string) *webPushStore { + webPush, err := newWebPushStore(filename) + require.Nil(t, err) + return webPush +} diff --git a/web/src/app/Api.js b/web/src/app/Api.js index d4281d33f..43b20a748 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -115,22 +115,22 @@ class Api { throw new Error(`Unexpected server response ${response.status}`); } - async updateWebPushSubscriptions(topics, browserSubscription) { + async updateWebPushSubscriptions(topics, pushSubscription) { const user = await userManager.get(config.base_url); const url = accountWebPushUrl(config.base_url); - console.log(`[Api] Sending Web Push Subscriptions`, { url, topics, endpoint: browserSubscription.endpoint }); - - const response = await fetch(url, { + console.log(`[Api] Sending Web Push Subscriptions`, { url, topics, endpoint: pushSubscription.endpoint }); + console.log(`[Api] Sending Web Push Subscriptions`, { pushSubscription }); + const serializedSubscription = JSON.parse(JSON.stringify(pushSubscription)); // Ugh ... https://stackoverflow.com/a/40525434/1440785 + await fetchOrThrow(url, { method: "PUT", headers: maybeWithAuth({}, user), - body: JSON.stringify({ topics, browser_subscription: browserSubscription }), + body: JSON.stringify({ + endpoint: serializedSubscription.endpoint, + auth: serializedSubscription.keys.auth, + p256dh: serializedSubscription.keys.p256dh, + topics + }), }); - - if (response.ok) { - return true; - } - - throw new Error(`Unexpected server response ${response.status}`); } } diff --git a/web/src/app/Notifier.js b/web/src/app/Notifier.js index 8ef1a1ae9..04d512810 100644 --- a/web/src/app/Notifier.js +++ b/web/src/app/Notifier.js @@ -58,7 +58,7 @@ class Notifier { return existingSubscription; } - // Create a new subscription only if web push is enabled. + // Create a new subscription only if web push is enabled. // It is possible that web push was previously enabled and then disabled again // in which case there would be an existingSubscription. // but if it was _not_ enabled previously, we reach here, and only create a new @@ -76,11 +76,9 @@ class Notifier { async pushManager() { const registration = await navigator.serviceWorker.getRegistration(); - if (!registration) { throw new Error("No service worker registration found"); } - return registration.pushManager; } From 9e4eafe8d5180133f5bf2bcb96dbf6623ae92c17 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Fri, 9 Jun 2023 10:03:11 +0200 Subject: [PATCH 28/74] Format --- web/src/app/Api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/app/Api.js b/web/src/app/Api.js index 43b20a748..43bfe283c 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -128,7 +128,7 @@ class Api { endpoint: serializedSubscription.endpoint, auth: serializedSubscription.keys.auth, p256dh: serializedSubscription.keys.p256dh, - topics + topics, }), }); } From 4704b2a0e4d413a3cdc5e7de73418e8d5d9c6212 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Fri, 9 Jun 2023 11:32:44 +0200 Subject: [PATCH 29/74] Set default TTL for web push to the cache duration --- server/server_web_push.go | 1 + 1 file changed, 1 insertion(+) diff --git a/server/server_web_push.go b/server/server_web_push.go index 1adf55803..0b9ac8083 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -116,6 +116,7 @@ func (s *Server) sendWebPushNotification(message []byte, sub *webPushSubscriptio VAPIDPublicKey: s.config.WebPushPublicKey, VAPIDPrivateKey: s.config.WebPushPrivateKey, Urgency: webpush.UrgencyHigh, // iOS requires this to ensure delivery + TTL: int(s.config.CacheDuration.Seconds()), }) if err != nil { log.Tag(tagWebPush).Err(err).Fields(*ctx).Debug("Unable to publish web push message, removing endpoint") From 2e8292a65f5de5354869fb28f5a226ef66c9ff8a Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Fri, 9 Jun 2023 14:32:34 -0400 Subject: [PATCH 30/74] No real changes, just renames --- web/public/sw.js | 5 ++--- web/src/app/Prefs.js | 4 ++-- web/src/app/Session.js | 6 ++++-- web/src/app/SessionReplica.js | 17 +++++++---------- web/src/app/SubscriptionManager.js | 4 ++-- web/src/app/UserManager.js | 4 ++-- web/src/app/WebPushWorker.js | 2 +- web/src/app/{getDb.js => db.js} | 16 +++++++--------- web/src/components/Account.jsx | 4 ++-- web/src/components/ActionBar.jsx | 4 ++-- 10 files changed, 31 insertions(+), 35 deletions(-) rename web/src/app/{getDb.js => db.js} (64%) diff --git a/web/public/sw.js b/web/public/sw.js index 39d60a8a8..6e834367d 100644 --- a/web/public/sw.js +++ b/web/public/sw.js @@ -3,7 +3,7 @@ import { cleanupOutdatedCaches, createHandlerBoundToURL, precacheAndRoute } from import { NavigationRoute, registerRoute } from "workbox-routing"; import { NetworkFirst } from "workbox-strategies"; -import { getDbAsync } from "../src/app/getDb"; +import { dbAsync } from "../src/app/db"; import { formatMessage, formatTitleWithDefault } from "../src/app/notificationUtils"; // See WebPushWorker, this is to play a sound on supported browsers, @@ -44,8 +44,7 @@ self.addEventListener("push", (event) => { const { subscription_id: subscriptionId, message } = data; broadcastChannel.postMessage(message); - const db = await getDbAsync(); - + const db = await dbAsync(); const image = message.attachment?.name.match(/\.(png|jpe?g|gif|webp)$/i) ? message.attachment.url : undefined; const actions = message.actions diff --git a/web/src/app/Prefs.js b/web/src/app/Prefs.js index 1f1a6d808..ac1d82db1 100644 --- a/web/src/app/Prefs.js +++ b/web/src/app/Prefs.js @@ -1,4 +1,4 @@ -import getDb from "./getDb"; +import db from "./db"; class Prefs { constructor(db) { @@ -42,5 +42,5 @@ class Prefs { } } -const prefs = new Prefs(getDb()); +const prefs = new Prefs(db()); export default prefs; diff --git a/web/src/app/Session.js b/web/src/app/Session.js index 8affa53cd..bc50864bc 100644 --- a/web/src/app/Session.js +++ b/web/src/app/Session.js @@ -1,5 +1,9 @@ import sessionReplica from "./SessionReplica"; +/** + * Manages the logged-in user's session and access token. + * The session replica is stored in IndexedDB so that the service worker can access it. + */ class Session { constructor(replica) { this.replica = replica; @@ -8,14 +12,12 @@ class Session { store(username, token) { localStorage.setItem("user", username); localStorage.setItem("token", token); - this.replica.store(username, token); } reset() { localStorage.removeItem("user"); localStorage.removeItem("token"); - this.replica.reset(); } diff --git a/web/src/app/SessionReplica.js b/web/src/app/SessionReplica.js index 808833f6f..a68d4c70c 100644 --- a/web/src/app/SessionReplica.js +++ b/web/src/app/SessionReplica.js @@ -1,24 +1,21 @@ import Dexie from "dexie"; -// Store to IndexedDB as well so that the -// service worker can access it -// TODO: Probably make everything depend on this and not use localStorage, -// but that's a larger refactoring effort for another PR - +/** + * Replica of the session in IndexedDB. This is used by the service + * worker to access the session. This is a bit of a hack. + */ class SessionReplica { constructor() { const db = new Dexie("session-replica"); - db.version(1).stores({ - keyValueStore: "&key", + kv: "&key", }); - this.db = db; } async store(username, token) { try { - await this.db.keyValueStore.bulkPut([ + await this.db.kv.bulkPut([ { key: "user", value: username }, { key: "token", value: token }, ]); @@ -36,7 +33,7 @@ class SessionReplica { } async username() { - return (await this.db.keyValueStore.get({ key: "user" }))?.value; + return (await this.db.kv.get({ key: "user" }))?.value; } } diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 592db6f99..88b95e7bc 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -1,7 +1,7 @@ import api from "./Api"; import notifier from "./Notifier"; import prefs from "./Prefs"; -import getDb from "./getDb"; +import db from "./db"; import { topicUrl } from "./utils"; class SubscriptionManager { @@ -244,4 +244,4 @@ class SubscriptionManager { } } -export default new SubscriptionManager(getDb()); +export default new SubscriptionManager(db()); diff --git a/web/src/app/UserManager.js b/web/src/app/UserManager.js index a3dee0a34..412e41dab 100644 --- a/web/src/app/UserManager.js +++ b/web/src/app/UserManager.js @@ -1,4 +1,4 @@ -import getDb from "./getDb"; +import db from "./db"; import session from "./Session"; class UserManager { @@ -47,4 +47,4 @@ class UserManager { } } -export default new UserManager(getDb()); +export default new UserManager(db()); diff --git a/web/src/app/WebPushWorker.js b/web/src/app/WebPushWorker.js index 4ba0f9e12..b0d319c7d 100644 --- a/web/src/app/WebPushWorker.js +++ b/web/src/app/WebPushWorker.js @@ -26,7 +26,7 @@ export const useWebPushUpdateWorker = () => { }, [topics, lastTopics]); }; -const intervalMillis = 5 * 60 * 1_000; // 5 minutes +const intervalMillis = 13 * 60 * 1_000; // 13 minutes const updateIntervalMillis = 60 * 60 * 1_000; // 1 hour class WebPushRefreshWorker { diff --git a/web/src/app/getDb.js b/web/src/app/db.js similarity index 64% rename from web/src/app/getDb.js rename to web/src/app/db.js index e52932c7e..6a192011f 100644 --- a/web/src/app/getDb.js +++ b/web/src/app/db.js @@ -8,12 +8,11 @@ import sessionReplica from "./SessionReplica"; // Notes: // - As per docs, we only declare the indexable columns, not all columns -const getDbBase = (username) => { - // The IndexedDB database name is based on the logged-in user - const dbName = username ? `ntfy-${username}` : "ntfy"; +const createDatabase = (username) => { + const dbName = username ? `ntfy-${username}` : "ntfy"; // IndexedDB database is based on the logged-in user const db = new Dexie(dbName); - db.version(2).stores({ + db.version(1).stores({ subscriptions: "&id,baseUrl,[baseUrl+mutedUntil]", notifications: "&id,subscriptionId,time,new,[subscriptionId+new]", // compound key for query performance users: "&baseUrl,username", @@ -23,12 +22,11 @@ const getDbBase = (username) => { return db; }; -export const getDbAsync = async () => { +export const dbAsync = async () => { const username = await sessionReplica.username(); - - return getDbBase(username); + return createDatabase(username); }; -const getDb = () => getDbBase(session.username()); +export const db = () => createDatabase(session.username()); -export default getDb; +export default db; diff --git a/web/src/components/Account.jsx b/web/src/components/Account.jsx index 400ca08c6..474495159 100644 --- a/web/src/components/Account.jsx +++ b/web/src/components/Account.jsx @@ -48,7 +48,7 @@ import routes from "./routes"; import { formatBytes, formatShortDate, formatShortDateTime, openUrl } from "../app/utils"; import accountApi, { LimitBasis, Role, SubscriptionInterval, SubscriptionStatus } from "../app/AccountApi"; import { Pref, PrefGroup } from "./Pref"; -import getDb from "../app/getDb"; +import db from "../app/db"; import UpgradeDialog from "./UpgradeDialog"; import { AccountContext } from "./App"; import DialogFooter from "./DialogFooter"; @@ -1078,7 +1078,7 @@ const DeleteAccountDialog = (props) => { const handleSubmit = async () => { try { await accountApi.delete(password); - await getDb().delete(); + await db().delete(); console.debug(`[Account] Account deleted`); session.resetAndRedirect(routes.app); } catch (e) { diff --git a/web/src/components/ActionBar.jsx b/web/src/components/ActionBar.jsx index f0b031a3b..a8cb18ce6 100644 --- a/web/src/components/ActionBar.jsx +++ b/web/src/components/ActionBar.jsx @@ -13,7 +13,7 @@ import session from "../app/Session"; import logo from "../img/ntfy.svg"; import subscriptionManager from "../app/SubscriptionManager"; import routes from "./routes"; -import getDb from "../app/getDb"; +import db from "../app/db"; import { topicDisplayName } from "../app/utils"; import Navigation from "./Navigation"; import accountApi from "../app/AccountApi"; @@ -121,7 +121,7 @@ const ProfileIcon = () => { const handleLogout = async () => { try { await accountApi.logout(); - await getDb().delete(); + await db().delete(); } finally { session.resetAndRedirect(routes.app); } From 1abcc88fce53c041767f025fa89734ab5ed685ed Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Fri, 9 Jun 2023 23:17:48 -0400 Subject: [PATCH 31/74] Add subscription_topic table, change updated_at type to INT, split expire function --- server/config.go | 4 +- server/server_manager.go | 2 +- server/server_web_push.go | 25 +++-- server/server_web_push_test.go | 11 ++- server/types.go | 1 + server/webpush_store.go | 163 ++++++++++++++++++++------------- 6 files changed, 128 insertions(+), 78 deletions(-) diff --git a/server/config.go b/server/config.go index 3d779fbab..3bdda8354 100644 --- a/server/config.go +++ b/server/config.go @@ -23,10 +23,10 @@ const ( DefaultStripePriceCacheDuration = 3 * time.Hour // Time to keep Stripe prices cached in memory before a refresh is needed ) -// Defines default web push settings +// Defines default Web Push settings const ( DefaultWebPushExpiryWarningDuration = 7 * 24 * time.Hour - DefaultWebPushExpiryDuration = DefaultWebPushExpiryWarningDuration + 24*time.Hour + DefaultWebPushExpiryDuration = 9 * 24 * time.Hour ) // Defines all global and per-visitor limits diff --git a/server/server_manager.go b/server/server_manager.go index b065aff12..66d449dee 100644 --- a/server/server_manager.go +++ b/server/server_manager.go @@ -15,7 +15,7 @@ func (s *Server) execManager() { s.pruneTokens() s.pruneAttachments() s.pruneMessages() - s.pruneOrNotifyWebPushSubscriptions() + s.pruneAndNotifyWebPushSubscriptions() // Message count per topic var messagesCached int diff --git a/server/server_web_push.go b/server/server_web_push.go index 0b9ac8083..30a2cd02f 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -50,7 +50,7 @@ func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v * } } } - if err := s.webPush.UpsertSubscription(req.Endpoint, req.Topics, v.MaybeUserID(), req.Auth, req.P256dh); err != nil { + if err := s.webPush.UpsertSubscription(req.Endpoint, req.Auth, req.P256dh, v.MaybeUserID(), req.Topics); err != nil { return err } return s.writeJSON(w, newSuccessResponse()) @@ -75,21 +75,25 @@ func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { } } -func (s *Server) pruneOrNotifyWebPushSubscriptions() { +func (s *Server) pruneAndNotifyWebPushSubscriptions() { if s.config.WebPushPublicKey == "" { return } go func() { - if err := s.pruneOrNotifyWebPushSubscriptionsInternal(); err != nil { + if err := s.pruneAndNotifyWebPushSubscriptionsInternal(); err != nil { log.Tag(tagWebPush).Err(err).Warn("Unable to prune or notify web push subscriptions") } }() } -func (s *Server) pruneOrNotifyWebPushSubscriptionsInternal() error { - subscriptions, err := s.webPush.ExpireAndGetExpiringSubscriptions(s.config.WebPushExpiryWarningDuration, s.config.WebPushExpiryDuration) +func (s *Server) pruneAndNotifyWebPushSubscriptionsInternal() error { + // Expire old subscriptions + if err := s.webPush.RemoveExpiredSubscriptions(s.config.WebPushExpiryDuration); err != nil { + return err + } + // Notify subscriptions that will expire soon + subscriptions, err := s.webPush.SubscriptionsExpiring(s.config.WebPushExpiryWarningDuration) if err != nil { - log.Tag(tagWebPush).Err(err).Warn("Unable to publish expiry imminent warning") return err } else if len(subscriptions) == 0 { return nil @@ -99,14 +103,19 @@ func (s *Server) pruneOrNotifyWebPushSubscriptionsInternal() error { log.Tag(tagWebPush).Err(err).Warn("Unable to marshal expiring payload") return err } + warningSent := make([]*webPushSubscription, 0) for _, subscription := range subscriptions { ctx := log.Context{"endpoint": subscription.Endpoint} if err := s.sendWebPushNotification(payload, subscription, &ctx); err != nil { log.Tag(tagWebPush).Err(err).Fields(ctx).Warn("Unable to publish expiry imminent warning") - return err + continue } + warningSent = append(warningSent, subscription) + } + if err := s.webPush.MarkExpiryWarningSent(warningSent); err != nil { + return err } - log.Tag(tagWebPush).Debug("Expiring old subscriptions and published %d expiry imminent warnings", len(subscriptions)) + log.Tag(tagWebPush).Debug("Expired old subscriptions and published %d expiry imminent warnings", len(subscriptions)) return nil } diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index c60ceaad3..82ad72157 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -12,6 +12,7 @@ import ( "strings" "sync/atomic" "testing" + "time" ) const ( @@ -190,20 +191,20 @@ func TestServer_WebPush_Expiry(t *testing.T) { addSubscription(t, s, pushService.URL+"/push-receive", "test-topic") requireSubscriptionCount(t, s, "test-topic", 1) - _, err := s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-7 days')") + _, err := s.webPush.db.Exec("UPDATE subscription SET updated_at = ?", time.Now().Add(-7*24*time.Hour).Unix()) require.Nil(t, err) - s.pruneOrNotifyWebPushSubscriptions() + s.pruneAndNotifyWebPushSubscriptions() requireSubscriptionCount(t, s, "test-topic", 1) waitFor(t, func() bool { return received.Load() }) - _, err = s.webPush.db.Exec("UPDATE subscriptions SET updated_at = datetime('now', '-8 days')") + _, err = s.webPush.db.Exec("UPDATE subscription SET updated_at = ?", time.Now().Add(-9*24*time.Hour).Unix()) require.Nil(t, err) - s.pruneOrNotifyWebPushSubscriptions() + s.pruneAndNotifyWebPushSubscriptions() waitFor(t, func() bool { subs, err := s.webPush.SubscriptionsForTopic("test-topic") require.Nil(t, err) @@ -224,7 +225,7 @@ func payloadForTopics(t *testing.T, topics []string, endpoint string) string { } func addSubscription(t *testing.T, s *Server, endpoint string, topics ...string) { - require.Nil(t, s.webPush.UpsertSubscription(endpoint, topics, "", "kSC3T8aN1JCQxxPdrFLrZg", "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE")) // Test auth and p256dh + require.Nil(t, s.webPush.UpsertSubscription(endpoint, "kSC3T8aN1JCQxxPdrFLrZg", "BMKKbxdUU_xLS7G1Wh5AN8PvWOjCzkCuKZYb8apcqYrDxjOF_2piggBnoJLQYx9IeSD70fNuwawI3e9Y8m3S3PE", "u_123", topics)) // Test auth and p256dh } func requireSubscriptionCount(t *testing.T, s *Server, topic string, expectedLength int) { diff --git a/server/types.go b/server/types.go index 99f1c4f75..909958789 100644 --- a/server/types.go +++ b/server/types.go @@ -505,6 +505,7 @@ func newWebPushSubscriptionExpiringPayload() webPushControlMessagePayload { } type webPushSubscription struct { + ID string Endpoint string Auth string P256dh string diff --git a/server/webpush_store.go b/server/webpush_store.go index 774772be7..6dc1ddefa 100644 --- a/server/webpush_store.go +++ b/server/webpush_store.go @@ -2,47 +2,68 @@ package server import ( "database/sql" - "fmt" + "heckel.io/ntfy/util" "time" _ "github.com/mattn/go-sqlite3" // SQLite driver ) +const ( + subscriptionIDPrefix = "wps_" + subscriptionIDLength = 10 +) + const ( createWebPushSubscriptionsTableQuery = ` BEGIN; - CREATE TABLE IF NOT EXISTS subscriptions ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - topic TEXT NOT NULL, - user_id TEXT, + CREATE TABLE IF NOT EXISTS subscription ( + id TEXT PRIMARY KEY, endpoint TEXT NOT NULL, key_auth TEXT NOT NULL, key_p256dh TEXT NOT NULL, - updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, - warning_sent BOOLEAN DEFAULT FALSE + user_id TEXT NOT NULL, + updated_at INT NOT NULL, + warned_at INT NOT NULL DEFAULT 0 ); + CREATE UNIQUE INDEX IF NOT EXISTS idx_endpoint ON subscription (endpoint); + CREATE TABLE IF NOT EXISTS subscription_topic ( + subscription_id TEXT NOT NULL, + topic TEXT NOT NULL, + PRIMARY KEY (subscription_id, topic), + FOREIGN KEY (subscription_id) REFERENCES subscription (id) ON DELETE CASCADE + ); + CREATE INDEX IF NOT EXISTS idx_topic ON subscription_topic (topic); CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL - ); - CREATE INDEX IF NOT EXISTS idx_topic ON subscriptions (topic); - CREATE INDEX IF NOT EXISTS idx_endpoint ON subscriptions (endpoint); - CREATE UNIQUE INDEX IF NOT EXISTS idx_topic_endpoint ON subscriptions (topic, endpoint); + ); COMMIT; ` - - insertWebPushSubscriptionQuery = ` - INSERT OR REPLACE INTO subscriptions (topic, user_id, endpoint, key_auth, key_p256dh) - VALUES (?, ?, ?, ?, ?) + builtinStartupQueries = ` + PRAGMA foreign_keys = ON; ` - deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscriptions WHERE endpoint = ?` - deleteWebPushSubscriptionByUserIDQuery = `DELETE FROM subscriptions WHERE user_id = ?` - deleteWebPushSubscriptionsByAgeQuery = `DELETE FROM subscriptions WHERE warning_sent = 1 AND updated_at <= datetime('now', ?)` - selectWebPushSubscriptionsForTopicQuery = `SELECT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE topic = ?` - selectWebPushSubscriptionsExpiringSoonQuery = `SELECT DISTINCT endpoint, key_auth, key_p256dh, user_id FROM subscriptions WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` + selectWebPushSubscriptionIDByEndpoint = `SELECT id FROM subscription WHERE endpoint = ?` + selectWebPushSubscriptionsForTopicQuery = ` + SELECT id, endpoint, key_auth, key_p256dh, user_id + FROM subscription_topic st + JOIN subscription s ON s.id = st.subscription_id + WHERE st.topic = ? + ` + selectWebPushSubscriptionsExpiringSoonQuery = `SELECT id, endpoint, key_auth, key_p256dh, user_id FROM subscription WHERE warned_at = 0 AND updated_at <= ?` + insertWebPushSubscriptionQuery = ` + INSERT INTO subscription (id, endpoint, key_auth, key_p256dh, user_id, updated_at, warned_at) + VALUES (?, ?, ?, ?, ?, ?, ?) + ON CONFLICT (endpoint) + DO UPDATE SET key_auth = excluded.key_auth, key_p256dh = excluded.key_p256dh, user_id = excluded.user_id, updated_at = excluded.updated_at, warned_at = excluded.warned_at + ` + updateWebPushSubscriptionWarningSentQuery = `UPDATE subscription SET warned_at = ? WHERE id = ?` + deleteWebPushSubscriptionByEndpointQuery = `DELETE FROM subscription WHERE endpoint = ?` + deleteWebPushSubscriptionByUserIDQuery = `DELETE FROM subscription WHERE user_id = ?` + deleteWebPushSubscriptionByAgeQuery = `DELETE FROM subscription WHERE updated_at <= ?` // Full table scan! - updateWarningSentQuery = `UPDATE subscriptions SET warning_sent = true WHERE warning_sent = 0 AND updated_at <= datetime('now', ?)` + insertWebPushSubscriptionTopicQuery = `INSERT INTO subscription_topic (subscription_id, topic) VALUES (?, ?)` + deleteWebPushSubscriptionTopicAllQuery = `DELETE FROM subscription_topic WHERE subscription_id = ?` ) // Schema management queries @@ -64,6 +85,9 @@ func newWebPushStore(filename string) (*webPushStore, error) { if err := setupWebPushDB(db); err != nil { return nil, err } + if err := runWebPushStartupQueries(db); err != nil { + return nil, err + } return &webPushStore{ db: db, }, nil @@ -88,19 +112,47 @@ func setupNewWebPushDB(db *sql.DB) error { return nil } +func runWebPushStartupQueries(db *sql.DB) error { + _, err := db.Exec(builtinStartupQueries) + return err +} + // UpsertSubscription adds or updates Web Push subscriptions for the given topics and user ID. It always first deletes all // existing entries for a given endpoint. -func (c *webPushStore) UpsertSubscription(endpoint string, topics []string, userID, auth, p256dh string) error { +func (c *webPushStore) UpsertSubscription(endpoint string, auth, p256dh, userID string, topics []string) error { tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() - if _, err := tx.Exec(deleteWebPushSubscriptionByEndpointQuery, endpoint); err != nil { + // Read existing subscription ID for endpoint (or create new ID) + rows, err := tx.Query(selectWebPushSubscriptionIDByEndpoint, endpoint) + if err != nil { + return err + } + defer rows.Close() + var subscriptionID string + if rows.Next() { + if err := rows.Scan(&subscriptionID); err != nil { + return err + } + } else { + subscriptionID = util.RandomStringPrefix(subscriptionIDPrefix, subscriptionIDLength) + } + if err := rows.Close(); err != nil { + return err + } + // Insert or update subscription + updatedAt, warnedAt := time.Now().Unix(), 0 + if _, err = tx.Exec(insertWebPushSubscriptionQuery, subscriptionID, endpoint, auth, p256dh, userID, updatedAt, warnedAt); err != nil { + return err + } + // Replace all subscription topics + if _, err := tx.Exec(deleteWebPushSubscriptionTopicAllQuery, subscriptionID); err != nil { return err } for _, topic := range topics { - if _, err = tx.Exec(insertWebPushSubscriptionQuery, topic, userID, endpoint, auth, p256dh); err != nil { + if _, err = tx.Exec(insertWebPushSubscriptionTopicQuery, subscriptionID, topic); err != nil { return err } } @@ -113,65 +165,47 @@ func (c *webPushStore) SubscriptionsForTopic(topic string) ([]*webPushSubscripti return nil, err } defer rows.Close() - subscriptions := make([]*webPushSubscription, 0) - for rows.Next() { - var endpoint, auth, p256dh, userID string - if err = rows.Scan(&endpoint, &auth, &p256dh, &userID); err != nil { - return nil, err - } - subscriptions = append(subscriptions, &webPushSubscription{ - Endpoint: endpoint, - Auth: auth, - P256dh: p256dh, - UserID: userID, - }) - } - return subscriptions, nil + return c.subscriptionsFromRows(rows) } -func (c *webPushStore) ExpireAndGetExpiringSubscriptions(warningDuration time.Duration, expiryDuration time.Duration) ([]*webPushSubscription, error) { - // TODO this should be two functions - tx, err := c.db.Begin() +func (c *webPushStore) SubscriptionsExpiring(warnAfter time.Duration) ([]*webPushSubscription, error) { + rows, err := c.db.Query(selectWebPushSubscriptionsExpiringSoonQuery, time.Now().Add(-warnAfter).Unix()) if err != nil { return nil, err } - defer tx.Rollback() + defer rows.Close() + return c.subscriptionsFromRows(rows) +} - _, err = tx.Exec(deleteWebPushSubscriptionsByAgeQuery, fmt.Sprintf("-%.2f seconds", expiryDuration.Seconds())) +func (c *webPushStore) MarkExpiryWarningSent(subscriptions []*webPushSubscription) error { + tx, err := c.db.Begin() if err != nil { - return nil, err + return err } - - rows, err := tx.Query(selectWebPushSubscriptionsExpiringSoonQuery, fmt.Sprintf("-%.2f seconds", warningDuration.Seconds())) - if err != nil { - return nil, err + defer tx.Rollback() + for _, subscription := range subscriptions { + if _, err := tx.Exec(updateWebPushSubscriptionWarningSentQuery, time.Now().Unix(), subscription.ID); err != nil { + return err + } } - defer rows.Close() + return tx.Commit() +} +func (c *webPushStore) subscriptionsFromRows(rows *sql.Rows) ([]*webPushSubscription, error) { subscriptions := make([]*webPushSubscription, 0) for rows.Next() { - var endpoint, auth, p256dh, userID string - if err = rows.Scan(&endpoint, &auth, &p256dh, &userID); err != nil { + var id, endpoint, auth, p256dh, userID string + if err := rows.Scan(&id, &endpoint, &auth, &p256dh, &userID); err != nil { return nil, err } subscriptions = append(subscriptions, &webPushSubscription{ + ID: id, Endpoint: endpoint, Auth: auth, P256dh: p256dh, UserID: userID, }) } - - // also set warning as sent - _, err = tx.Exec(updateWarningSentQuery, fmt.Sprintf("-%.2f seconds", warningDuration.Seconds())) - if err != nil { - return nil, err - } - - if err = tx.Commit(); err != nil { - return nil, err - } - return subscriptions, nil } @@ -185,6 +219,11 @@ func (c *webPushStore) RemoveSubscriptionsByUserID(userID string) error { return err } +func (c *webPushStore) RemoveExpiredSubscriptions(expireAfter time.Duration) error { + _, err := c.db.Exec(deleteWebPushSubscriptionByAgeQuery, time.Now().Add(-expireAfter).Unix()) + return err +} + func (c *webPushStore) Close() error { return c.db.Close() } From 9d5556c7f554877d38f1ac5f85f4ec51490bd1b0 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Sat, 10 Jun 2023 20:42:02 -0400 Subject: [PATCH 32/74] Rename things, add comments --- web/src/app/Prefs.js | 4 +-- web/src/app/SubscriptionManager.js | 9 +++--- web/src/app/{WebPushWorker.js => WebPush.js} | 33 ++++++++++++-------- web/src/components/hooks.js | 8 ++--- 4 files changed, 30 insertions(+), 24 deletions(-) rename web/src/app/{WebPushWorker.js => WebPush.js} (69%) diff --git a/web/src/app/Prefs.js b/web/src/app/Prefs.js index ac1d82db1..b4cef0ac7 100644 --- a/web/src/app/Prefs.js +++ b/web/src/app/Prefs.js @@ -33,8 +33,8 @@ class Prefs { } async webPushEnabled() { - const obj = await this.db.prefs.get("webPushEnabled"); - return obj?.value ?? false; + const webPushEnabled = await this.db.prefs.get("webPushEnabled"); + return webPushEnabled?.value ?? false; } async setWebPushEnabled(enabled) { diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 88b95e7bc..67b9faa39 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -20,16 +20,15 @@ class SubscriptionManager { ); } + /** List of topics for which Web Push is enabled, excludes internal topics; returns empty list if Web Push is disabled */ async webPushTopics() { // the Promise.resolve wrapper is not superfluous, without it the live query breaks: // https://dexie.org/docs/dexie-react-hooks/useLiveQuery()#calling-non-dexie-apis-from-querier - if (!(await Promise.resolve(notifier.pushEnabled()))) { + const pushEnabled = await Promise.resolve(notifier.pushEnabled()); + if (!pushEnabled) { return []; } - const subscriptions = await this.db.subscriptions.where({ mutedUntil: 0, baseUrl: config.base_url }).toArray(); - - // internal is currently a bool, it could be a 0/1 to be indexable, but for now just filter them out here return subscriptions.filter(({ internal }) => !internal).map(({ topic }) => topic); } @@ -111,7 +110,7 @@ class SubscriptionManager { ); } - async refreshWebPushSubscriptions(presetTopics) { + async updateWebPushSubscriptions(presetTopics) { const topics = presetTopics ?? (await this.webPushTopics()); const browserSubscription = await notifier.getBrowserSubscription(); diff --git a/web/src/app/WebPushWorker.js b/web/src/app/WebPush.js similarity index 69% rename from web/src/app/WebPushWorker.js rename to web/src/app/WebPush.js index b0d319c7d..1a9b59eb4 100644 --- a/web/src/app/WebPushWorker.js +++ b/web/src/app/WebPush.js @@ -3,21 +3,26 @@ import { useLiveQuery } from "dexie-react-hooks"; import notifier from "./Notifier"; import subscriptionManager from "./SubscriptionManager"; -export const useWebPushUpdateWorker = () => { +const intervalMillis = 13 * 60 * 1_000; // 13 minutes +const updateIntervalMillis = 60 * 60 * 1_000; // 1 hour + +/** + * Updates the Web Push subscriptions when the list of topics changes. + */ +export const useWebPushTopicListener = () => { const topics = useLiveQuery(() => subscriptionManager.webPushTopics()); const [lastTopics, setLastTopics] = useState(); useEffect(() => { - if (!notifier.pushPossible() || JSON.stringify(topics) === JSON.stringify(lastTopics)) { + const topicsChanged = JSON.stringify(topics) !== JSON.stringify(lastTopics); + if (!notifier.pushPossible() || !topicsChanged) { return; } (async () => { try { console.log("[useWebPushUpdateWorker] Refreshing web push subscriptions"); - - await subscriptionManager.refreshWebPushSubscriptions(topics); - + await subscriptionManager.updateWebPushSubscriptions(topics); setLastTopics(topics); } catch (e) { console.error("[useWebPushUpdateWorker] Error refreshing web push subscriptions", e); @@ -26,10 +31,13 @@ export const useWebPushUpdateWorker = () => { }, [topics, lastTopics]); }; -const intervalMillis = 13 * 60 * 1_000; // 13 minutes -const updateIntervalMillis = 60 * 60 * 1_000; // 1 hour - -class WebPushRefreshWorker { +/** + * Helper class for Web Push that does three things: + * 1. Updates the Web Push subscriptions on a schedule + * 2. Updates the Web Push subscriptions when the window is minimised / app switched + * 3. Listens to the broadcast channel from the service worker to play a sound when a message comes in + */ +class WebPushWorker { constructor() { this.timer = null; this.lastUpdate = null; @@ -43,7 +51,6 @@ class WebPushRefreshWorker { } this.timer = setInterval(() => this.updateSubscriptions(), intervalMillis); - this.broadcastChannel = new BroadcastChannel("web-push-broadcast"); this.broadcastChannel.addEventListener("message", this.messageHandler); @@ -60,7 +67,7 @@ class WebPushRefreshWorker { } onMessage() { - notifier.playSound(); + notifier.playSound(); // Service Worker cannot play sound, so we do it here! } onVisibilityChange() { @@ -75,10 +82,10 @@ class WebPushRefreshWorker { } if (!this.lastUpdate || Date.now() - this.lastUpdate > updateIntervalMillis) { - await subscriptionManager.refreshWebPushSubscriptions(); + await subscriptionManager.updateWebPushSubscriptions(); this.lastUpdate = Date.now(); } } } -export const webPushRefreshWorker = new WebPushRefreshWorker(); +export const webPush = new WebPushWorker(); diff --git a/web/src/components/hooks.js b/web/src/components/hooks.js index 815f05966..8da8fdf06 100644 --- a/web/src/components/hooks.js +++ b/web/src/components/hooks.js @@ -9,7 +9,7 @@ import pruner from "../app/Pruner"; import session from "../app/Session"; import accountApi from "../app/AccountApi"; import { UnauthorizedError } from "../app/errors"; -import { webPushRefreshWorker, useWebPushUpdateWorker } from "../app/WebPushWorker"; +import { webPush, useWebPushTopicListener } from "../app/WebPush"; /** * Wire connectionManager and subscriptionManager so that subscriptions are updated when the connection @@ -134,18 +134,18 @@ const stopWorkers = () => { poller.stopWorker(); pruner.stopWorker(); accountApi.stopWorker(); - webPushRefreshWorker.stopWorker(); + webPush.stopWorker(); }; const startWorkers = () => { poller.startWorker(); pruner.startWorker(); accountApi.startWorker(); - webPushRefreshWorker.startWorker(); + webPush.startWorker(); }; export const useBackgroundProcesses = () => { - useWebPushUpdateWorker(); + useWebPushTopicListener(); useEffect(() => { console.log("[useBackgroundProcesses] mounting"); From eb220544a371617e2cdb25bd7675fe5141f0ac4b Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Sat, 10 Jun 2023 20:51:24 -0400 Subject: [PATCH 33/74] Change wording in prefs based on setting --- web/public/static/langs/en.json | 9 +++++---- web/src/components/Preferences.jsx | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/web/public/static/langs/en.json b/web/public/static/langs/en.json index 9571272f5..89ca89317 100644 --- a/web/public/static/langs/en.json +++ b/web/public/static/langs/en.json @@ -330,6 +330,11 @@ "prefs_notifications_delete_after_one_day_description": "Notifications are auto-deleted after one day", "prefs_notifications_delete_after_one_week_description": "Notifications are auto-deleted after one week", "prefs_notifications_delete_after_one_month_description": "Notifications are auto-deleted after one month", + "prefs_notifications_web_push_title": "Background notifications", + "prefs_notifications_web_push_enabled_description": "Notifications are received when web app is not running via Web Push", + "prefs_notifications_web_push_disabled_description": "Notification are only received when web app is running", + "prefs_notifications_web_push_enabled": "Enabled", + "prefs_notifications_web_push_disabled": "Disabled", "prefs_users_title": "Manage users", "prefs_users_description": "Add/remove users for your protected topics here. Please note that username and password are stored in the browser's local storage.", "prefs_users_description_no_sync": "Users and passwords are not synchronized to your account.", @@ -368,10 +373,6 @@ "prefs_reservations_dialog_description": "Reserving a topic gives you ownership over the topic, and allows you to define access permissions for other users over the topic.", "prefs_reservations_dialog_topic_label": "Topic", "prefs_reservations_dialog_access_label": "Access", - "prefs_notifications_web_push_title": "Background notifications", - "prefs_notifications_web_push_description": "Receive notifications in the background via Web Push, even when app is not running", - "prefs_notifications_web_push_enabled": "Enabled", - "prefs_notifications_web_push_disabled": "Disabled", "reservation_delete_dialog_description": "Removing a reservation gives up ownership over the topic, and allows others to reserve it. You can keep, or delete existing messages and attachments.", "reservation_delete_dialog_action_keep_title": "Keep cached messages and attachments", "reservation_delete_dialog_action_keep_description": "Messages and attachments that are cached on the server will become publicly visible for people with knowledge of the topic name.", diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 7944f9be0..5cac0c5ac 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -237,7 +237,7 @@ const DeleteAfter = () => { const WebPushEnabled = () => { const { t } = useTranslation(); const labelId = "prefWebPushEnabled"; - const defaultEnabled = useLiveQuery(async () => prefs.webPushEnabled()); + const enabled = useLiveQuery(async () => prefs.webPushEnabled()); const handleChange = async (ev) => { await prefs.setWebPushEnabled(ev.target.value); }; @@ -247,9 +247,9 @@ const WebPushEnabled = () => { } return ( - + - {t("prefs_notifications_web_push_enabled")} {t("prefs_notifications_web_push_disabled")} From 58992fc795dc0367c4081071190a1441457a1fae Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Sat, 10 Jun 2023 21:09:01 -0400 Subject: [PATCH 34/74] Make DELETE endpoint, add different UI description --- server/server.go | 6 ++++-- server/server_web_push.go | 11 +++++++++++ server/server_web_push_test.go | 18 +++++++++--------- web/src/app/Api.js | 21 +++++++++++++++++---- web/src/app/SubscriptionManager.js | 7 ++++++- 5 files changed, 47 insertions(+), 16 deletions(-) diff --git a/server/server.go b/server/server.go index c9b95ba60..d053b3d3d 100644 --- a/server/server.go +++ b/server/server.go @@ -490,6 +490,10 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.ensureUser(s.ensureCallsEnabled(s.withAccountSync(s.handleAccountPhoneNumberAdd)))(w, r, v) } else if r.Method == http.MethodDelete && r.URL.Path == apiAccountPhonePath { return s.ensureUser(s.ensureCallsEnabled(s.withAccountSync(s.handleAccountPhoneNumberDelete)))(w, r, v) + } else if r.Method == http.MethodPost && apiAccountWebPushPath == r.URL.Path { + return s.ensureWebPushEnabled(s.limitRequests(s.handleWebPushUpdate))(w, r, v) + } else if r.Method == http.MethodDelete && apiAccountWebPushPath == r.URL.Path { + return s.ensureWebPushEnabled(s.limitRequests(s.handleWebPushDelete))(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiStatsPath { return s.handleStats(w, r, v) } else if r.Method == http.MethodGet && r.URL.Path == apiTiersPath { @@ -524,8 +528,6 @@ func (s *Server) handleInternal(w http.ResponseWriter, r *http.Request, v *visit return s.limitRequests(s.authorizeTopicRead(s.handleSubscribeWS))(w, r, v) } else if r.Method == http.MethodGet && authPathRegex.MatchString(r.URL.Path) { return s.limitRequests(s.authorizeTopicRead(s.handleTopicAuth))(w, r, v) - } else if r.Method == http.MethodPut && apiAccountWebPushPath == r.URL.Path { - return s.ensureWebPushEnabled(s.limitRequests(s.handleWebPushUpdate))(w, r, v) } else if r.Method == http.MethodGet && (topicPathRegex.MatchString(r.URL.Path) || externalTopicPathRegex.MatchString(r.URL.Path)) { return s.ensureWebEnabled(s.handleTopic)(w, r, v) } diff --git a/server/server_web_push.go b/server/server_web_push.go index 30a2cd02f..d0da147f1 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -56,6 +56,17 @@ func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v * return s.writeJSON(w, newSuccessResponse()) } +func (s *Server) handleWebPushDelete(w http.ResponseWriter, r *http.Request, _ *visitor) error { + req, err := readJSONWithLimit[apiWebPushUpdateSubscriptionRequest](r.Body, jsonBodyBytesLimit, false) + if err != nil || req.Endpoint == "" { + return errHTTPBadRequestWebPushSubscriptionInvalid + } + if err := s.webPush.RemoveSubscriptionsByEndpoint(req.Endpoint); err != nil { + return err + } + return s.writeJSON(w, newSuccessResponse()) +} + func (s *Server) publishToWebPushEndpoints(v *visitor, m *message) { subscriptions, err := s.webPush.SubscriptionsForTopic(m.Topic) if err != nil { diff --git a/server/server_web_push_test.go b/server/server_web_push_test.go index 82ad72157..7db82b8ef 100644 --- a/server/server_web_push_test.go +++ b/server/server_web_push_test.go @@ -22,7 +22,7 @@ const ( func TestServer_WebPush_TopicAdd(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) + response := request(t, s, "POST", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -39,7 +39,7 @@ func TestServer_WebPush_TopicAdd(t *testing.T) { func TestServer_WebPush_TopicAdd_InvalidEndpoint(t *testing.T) { s := newTestServer(t, newTestConfigWithWebPush(t)) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, "https://ddos-target.example.com/webpush"), nil) + response := request(t, s, "POST", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, "https://ddos-target.example.com/webpush"), nil) require.Equal(t, 400, response.Code) require.Equal(t, `{"code":40039,"http":400,"error":"invalid request: web push endpoint unknown"}`+"\n", response.Body.String()) } @@ -52,7 +52,7 @@ func TestServer_WebPush_TopicAdd_TooManyTopics(t *testing.T) { topicList[i] = util.RandomString(5) } - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, topicList, testWebPushEndpoint), nil) + response := request(t, s, "POST", "/v1/account/webpush", payloadForTopics(t, topicList, testWebPushEndpoint), nil) require.Equal(t, 400, response.Code) require.Equal(t, `{"code":40040,"http":400,"error":"invalid request: too many web push topic subscriptions"}`+"\n", response.Body.String()) } @@ -63,7 +63,7 @@ func TestServer_WebPush_TopicUnsubscribe(t *testing.T) { addSubscription(t, s, testWebPushEndpoint, "test-topic") requireSubscriptionCount(t, s, "test-topic", 1) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{}, testWebPushEndpoint), nil) + response := request(t, s, "POST", "/v1/account/webpush", payloadForTopics(t, []string{}, testWebPushEndpoint), nil) require.Equal(t, 200, response.Code) require.Equal(t, `{"success":true}`+"\n", response.Body.String()) @@ -78,7 +78,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Allowed(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ + response := request(t, s, "POST", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) require.Equal(t, 200, response.Code) @@ -95,7 +95,7 @@ func TestServer_WebPush_TopicSubscribeProtected_Denied(t *testing.T) { config.AuthDefault = user.PermissionDenyAll s := newTestServer(t, config) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) + response := request(t, s, "POST", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), nil) require.Equal(t, 403, response.Code) requireSubscriptionCount(t, s, "test-topic", 0) @@ -108,7 +108,7 @@ func TestServer_WebPush_DeleteAccountUnsubscribe(t *testing.T) { require.Nil(t, s.userManager.AddUser("ben", "ben", user.RoleUser)) require.Nil(t, s.userManager.AllowAccess("ben", "test-topic", user.PermissionReadWrite)) - response := request(t, s, "PUT", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ + response := request(t, s, "POST", "/v1/account/webpush", payloadForTopics(t, []string{"test-topic"}, testWebPushEndpoint), map[string]string{ "Authorization": util.BasicAuth("ben", "ben"), }) @@ -139,7 +139,7 @@ func TestServer_WebPush_Publish(t *testing.T) { defer pushService.Close() addSubscription(t, s, pushService.URL+"/push-receive", "test-topic") - request(t, s, "PUT", "/test-topic", "web push test", nil) + request(t, s, "POST", "/test-topic", "web push test", nil) waitFor(t, func() bool { return received.Load() @@ -162,7 +162,7 @@ func TestServer_WebPush_Publish_RemoveOnError(t *testing.T) { requireSubscriptionCount(t, s, "test-topic", 1) requireSubscriptionCount(t, s, "test-topic-abc", 1) - request(t, s, "PUT", "/test-topic", "web push test", nil) + request(t, s, "POST", "/test-topic", "web push test", nil) waitFor(t, func() bool { return received.Load() diff --git a/web/src/app/Api.js b/web/src/app/Api.js index 43bfe283c..8b7fc79b4 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -115,14 +115,13 @@ class Api { throw new Error(`Unexpected server response ${response.status}`); } - async updateWebPushSubscriptions(topics, pushSubscription) { + async updateWebPush(pushSubscription, topics) { const user = await userManager.get(config.base_url); const url = accountWebPushUrl(config.base_url); - console.log(`[Api] Sending Web Push Subscriptions`, { url, topics, endpoint: pushSubscription.endpoint }); - console.log(`[Api] Sending Web Push Subscriptions`, { pushSubscription }); + console.log(`[Api] Updating Web Push subscription`, { url, topics, endpoint: pushSubscription.endpoint }); const serializedSubscription = JSON.parse(JSON.stringify(pushSubscription)); // Ugh ... https://stackoverflow.com/a/40525434/1440785 await fetchOrThrow(url, { - method: "PUT", + method: "POST", headers: maybeWithAuth({}, user), body: JSON.stringify({ endpoint: serializedSubscription.endpoint, @@ -132,6 +131,20 @@ class Api { }), }); } + + + async deleteWebPush(pushSubscription) { + const user = await userManager.get(config.base_url); + const url = accountWebPushUrl(config.base_url); + console.log(`[Api] Deleting Web Push subscription`, { url, endpoint: pushSubscription.endpoint }); + await fetchOrThrow(url, { + method: "DELETE", + headers: maybeWithAuth({}, user), + body: JSON.stringify({ + endpoint: pushSubscription.endpoint + }), + }); + } } const api = new Api(); diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index 67b9faa39..b9e5d0830 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -119,7 +119,12 @@ class SubscriptionManager { return; } - await api.updateWebPushSubscriptions(topics, browserSubscription); + if (topics.length > 0) { + await api.updateWebPush(browserSubscription, topics); + } else { + await api.deleteWebPush(browserSubscription); + } + } async updateState(subscriptionId, state) { From a8def0aed2ef4267f7b6e80c1493b2981d607b49 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Mon, 12 Jun 2023 21:01:43 -0400 Subject: [PATCH 35/74] Make allowed endpoints a list of patterns --- server/server_web_push.go | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/server/server_web_push.go b/server/server_web_push.go index d0da147f1..2a0b548a1 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -5,34 +5,44 @@ import ( "fmt" "net/http" "regexp" + "strings" "github.com/SherClockHolmes/webpush-go" "heckel.io/ntfy/log" "heckel.io/ntfy/user" ) -// test: https://regexr.com/7eqvl -// example urls: -// -// https://android.googleapis.com/XYZ -// https://fcm.googleapis.com/XYZ -// https://updates.push.services.mozilla.com/XYZ -// https://updates-autopush.stage.mozaws.net/XYZ -// https://updates-autopush.dev.mozaws.net/XYZ -// https://AAA.notify.windows.com/XYZ -// https://AAA.push.apple.com/XYZ const ( - webPushEndpointAllowRegexStr = `^https:\/\/(android\.googleapis\.com|fcm\.googleapis\.com|updates\.push\.services\.mozilla\.com|updates-autopush\.stage\.mozaws\.net|updates-autopush\.dev\.mozaws\.net|.*\.notify\.windows\.com|.*\.push\.apple\.com)\/.*$` - webPushTopicSubscribeLimit = 50 + webPushTopicSubscribeLimit = 50 ) -var webPushEndpointAllowRegex = regexp.MustCompile(webPushEndpointAllowRegexStr) +var ( + webPushAllowedEndpointsPatterns = []string{ + "https://*.google.com/", + "https://*.googleapis.com/", + "https://*.mozilla.com/", + "https://*.mozaws.net/", + "https://*.windows.com/", + "https://*.microsoft.com/", + "https://*.apple.com/", + } + webPushAllowedEndpointsRegex *regexp.Regexp +) + +func init() { + for i, pattern := range webPushAllowedEndpointsPatterns { + webPushAllowedEndpointsPatterns[i] = strings.ReplaceAll(strings.ReplaceAll(pattern, ".", "\\."), "*", ".+") + } + allPatterns := fmt.Sprintf("^(%s)", strings.Join(webPushAllowedEndpointsPatterns, "|")) + fmt.Println(allPatterns) + webPushAllowedEndpointsRegex = regexp.MustCompile(allPatterns) +} func (s *Server) handleWebPushUpdate(w http.ResponseWriter, r *http.Request, v *visitor) error { req, err := readJSONWithLimit[apiWebPushUpdateSubscriptionRequest](r.Body, jsonBodyBytesLimit, false) if err != nil || req.Endpoint == "" || req.P256dh == "" || req.Auth == "" { return errHTTPBadRequestWebPushSubscriptionInvalid - } else if !webPushEndpointAllowRegex.MatchString(req.Endpoint) { + } else if !webPushAllowedEndpointsRegex.MatchString(req.Endpoint) { return errHTTPBadRequestWebPushEndpointUnknown } else if len(req.Topics) > webPushTopicSubscribeLimit { return errHTTPBadRequestWebPushTopicCountTooHigh From 2d0c043dfd6a5df9908d6f4b3d21113271c78053 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Mon, 12 Jun 2023 21:03:49 -0400 Subject: [PATCH 36/74] Derp --- server/server_web_push.go | 1 - 1 file changed, 1 deletion(-) diff --git a/server/server_web_push.go b/server/server_web_push.go index 2a0b548a1..dee88f4f4 100644 --- a/server/server_web_push.go +++ b/server/server_web_push.go @@ -34,7 +34,6 @@ func init() { webPushAllowedEndpointsPatterns[i] = strings.ReplaceAll(strings.ReplaceAll(pattern, ".", "\\."), "*", ".+") } allPatterns := fmt.Sprintf("^(%s)", strings.Join(webPushAllowedEndpointsPatterns, "|")) - fmt.Println(allPatterns) webPushAllowedEndpointsRegex = regexp.MustCompile(allPatterns) } From 8ccfa5c3fb35be628b0f4e6b8375b8d2f4c7acb6 Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Tue, 13 Jun 2023 14:00:51 +0200 Subject: [PATCH 37/74] Fix session replica behaviour (merge with session) The harder-to-refactor parts are the places where exists/username/token are called within a React component. However, `resetAndRedirect` and `store` are already called from async contexts, so adding an `await` is simple. This thus merges the logic, keeping localStorage for the components to call, but making sure reset/store behaviour works correctly for the replica. --- web/src/app/AccountApi.js | 2 +- web/src/app/Session.js | 29 ++++++++++------- web/src/app/SessionReplica.js | 41 ------------------------ web/src/app/db.js | 3 +- web/src/components/Account.jsx | 18 +++++------ web/src/components/ActionBar.jsx | 2 +- web/src/components/Login.jsx | 2 +- web/src/components/Preferences.jsx | 2 +- web/src/components/PublishDialog.jsx | 2 +- web/src/components/ReserveDialogs.jsx | 6 ++-- web/src/components/Signup.jsx | 2 +- web/src/components/SubscribeDialog.jsx | 4 +-- web/src/components/SubscriptionPopup.jsx | 4 +-- web/src/components/UpgradeDialog.jsx | 2 +- web/src/components/hooks.js | 2 +- 15 files changed, 43 insertions(+), 78 deletions(-) delete mode 100644 web/src/app/SessionReplica.js diff --git a/web/src/app/AccountApi.js b/web/src/app/AccountApi.js index 572764fef..d93804386 100644 --- a/web/src/app/AccountApi.js +++ b/web/src/app/AccountApi.js @@ -367,7 +367,7 @@ class AccountApi { } catch (e) { console.log(`[AccountApi] Error fetching account`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } return undefined; } diff --git a/web/src/app/Session.js b/web/src/app/Session.js index bc50864bc..82249b06c 100644 --- a/web/src/app/Session.js +++ b/web/src/app/Session.js @@ -1,29 +1,36 @@ -import sessionReplica from "./SessionReplica"; +import Dexie from "dexie"; /** * Manages the logged-in user's session and access token. * The session replica is stored in IndexedDB so that the service worker can access it. */ class Session { - constructor(replica) { - this.replica = replica; + constructor() { + const db = new Dexie("session-replica"); + db.version(1).stores({ + kv: "&key", + }); + this.db = db; } - store(username, token) { + async store(username, token) { + await this.db.kv.bulkPut([ + { key: "user", value: username }, + { key: "token", value: token }, + ]); localStorage.setItem("user", username); localStorage.setItem("token", token); - this.replica.store(username, token); } - reset() { + async resetAndRedirect(url) { + await this.db.delete(); localStorage.removeItem("user"); localStorage.removeItem("token"); - this.replica.reset(); + window.location.href = url; } - resetAndRedirect(url) { - this.reset(); - window.location.href = url; + async usernameAsync() { + return (await this.db.kv.get({ key: "user" }))?.value; } exists() { @@ -39,5 +46,5 @@ class Session { } } -const session = new Session(sessionReplica); +const session = new Session(); export default session; diff --git a/web/src/app/SessionReplica.js b/web/src/app/SessionReplica.js deleted file mode 100644 index a68d4c70c..000000000 --- a/web/src/app/SessionReplica.js +++ /dev/null @@ -1,41 +0,0 @@ -import Dexie from "dexie"; - -/** - * Replica of the session in IndexedDB. This is used by the service - * worker to access the session. This is a bit of a hack. - */ -class SessionReplica { - constructor() { - const db = new Dexie("session-replica"); - db.version(1).stores({ - kv: "&key", - }); - this.db = db; - } - - async store(username, token) { - try { - await this.db.kv.bulkPut([ - { key: "user", value: username }, - { key: "token", value: token }, - ]); - } catch (e) { - console.error("[Session] Error replicating session to IndexedDB", e); - } - } - - async reset() { - try { - await this.db.delete(); - } catch (e) { - console.error("[Session] Error resetting session on IndexedDB", e); - } - } - - async username() { - return (await this.db.kv.get({ key: "user" }))?.value; - } -} - -const sessionReplica = new SessionReplica(); -export default sessionReplica; diff --git a/web/src/app/db.js b/web/src/app/db.js index 6a192011f..357f4e96d 100644 --- a/web/src/app/db.js +++ b/web/src/app/db.js @@ -1,6 +1,5 @@ import Dexie from "dexie"; import session from "./Session"; -import sessionReplica from "./SessionReplica"; // Uses Dexie.js // https://dexie.org/docs/API-Reference#quick-reference @@ -23,7 +22,7 @@ const createDatabase = (username) => { }; export const dbAsync = async () => { - const username = await sessionReplica.username(); + const username = await session.usernameAsync(); return createDatabase(username); }; diff --git a/web/src/components/Account.jsx b/web/src/components/Account.jsx index 474495159..a6a624b80 100644 --- a/web/src/components/Account.jsx +++ b/web/src/components/Account.jsx @@ -164,7 +164,7 @@ const ChangePasswordDialog = (props) => { if (e instanceof IncorrectPasswordError) { setError(t("account_basics_password_dialog_current_password_incorrect")); } else if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); } @@ -245,7 +245,7 @@ const AccountType = () => { } catch (e) { console.log(`[Account] Error opening billing portal`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setShowPortalError(true); } @@ -371,7 +371,7 @@ const PhoneNumbers = () => { } catch (e) { console.log(`[Account] Error deleting phone number`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } } }; @@ -447,7 +447,7 @@ const AddPhoneNumberDialog = (props) => { } catch (e) { console.log(`[Account] Error sending verification`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); } @@ -464,7 +464,7 @@ const AddPhoneNumberDialog = (props) => { } catch (e) { console.log(`[Account] Error confirming verification`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); } @@ -946,7 +946,7 @@ const TokenDialog = (props) => { } catch (e) { console.log(`[Account] Error creating token`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); } @@ -1003,7 +1003,7 @@ const TokenDeleteDialog = (props) => { } catch (e) { console.log(`[Account] Error deleting token`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); } @@ -1080,13 +1080,13 @@ const DeleteAccountDialog = (props) => { await accountApi.delete(password); await db().delete(); console.debug(`[Account] Account deleted`); - session.resetAndRedirect(routes.app); + await session.resetAndRedirect(routes.app); } catch (e) { console.log(`[Account] Error deleting account`, e); if (e instanceof IncorrectPasswordError) { setError(t("account_basics_password_dialog_current_password_incorrect")); } else if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); } diff --git a/web/src/components/ActionBar.jsx b/web/src/components/ActionBar.jsx index a8cb18ce6..a16022e49 100644 --- a/web/src/components/ActionBar.jsx +++ b/web/src/components/ActionBar.jsx @@ -123,7 +123,7 @@ const ProfileIcon = () => { await accountApi.logout(); await db().delete(); } finally { - session.resetAndRedirect(routes.app); + await session.resetAndRedirect(routes.app); } }; diff --git a/web/src/components/Login.jsx b/web/src/components/Login.jsx index 489eee0fb..4efec255d 100644 --- a/web/src/components/Login.jsx +++ b/web/src/components/Login.jsx @@ -24,7 +24,7 @@ const Login = () => { try { const token = await accountApi.login(user); console.log(`[Login] User auth for user ${user.username} successful, token is ${token}`); - session.store(user.username, token); + await session.store(user.username, token); window.location.href = routes.app; } catch (e) { console.log(`[Login] User auth for user ${user.username} failed`, e); diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 5cac0c5ac..5a68a8ed5 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -59,7 +59,7 @@ const maybeUpdateAccountSettings = async (payload) => { } catch (e) { console.log(`[Preferences] Error updating account settings`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } } }; diff --git a/web/src/components/PublishDialog.jsx b/web/src/components/PublishDialog.jsx index eb0af0ddb..0929a5e9f 100644 --- a/web/src/components/PublishDialog.jsx +++ b/web/src/components/PublishDialog.jsx @@ -211,7 +211,7 @@ const PublishDialog = (props) => { } catch (e) { console.log(`[PublishDialog] Retrieving attachment limits failed`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setAttachFileError(""); // Reset error (rely on server-side checking) } diff --git a/web/src/components/ReserveDialogs.jsx b/web/src/components/ReserveDialogs.jsx index 3dc370e69..e413657ad 100644 --- a/web/src/components/ReserveDialogs.jsx +++ b/web/src/components/ReserveDialogs.jsx @@ -43,7 +43,7 @@ export const ReserveAddDialog = (props) => { } catch (e) { console.log(`[ReserveAddDialog] Error adding topic reservation.`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else if (e instanceof TopicReservedError) { setError(t("subscribe_dialog_error_topic_already_reserved")); return; @@ -99,7 +99,7 @@ export const ReserveEditDialog = (props) => { } catch (e) { console.log(`[ReserveEditDialog] Error updating topic reservation.`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); return; @@ -136,7 +136,7 @@ export const ReserveDeleteDialog = (props) => { } catch (e) { console.log(`[ReserveDeleteDialog] Error deleting topic reservation.`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); return; diff --git a/web/src/components/Signup.jsx b/web/src/components/Signup.jsx index 3b82cd61d..2e97956f1 100644 --- a/web/src/components/Signup.jsx +++ b/web/src/components/Signup.jsx @@ -27,7 +27,7 @@ const Signup = () => { await accountApi.create(user.username, user.password); const token = await accountApi.login(user); console.log(`[Signup] User signup for user ${user.username} successful, token is ${token}`); - session.store(user.username, token); + await session.store(user.username, token); window.location.href = routes.app; } catch (e) { console.log(`[Signup] Signup for user ${user.username} failed`, e); diff --git a/web/src/components/SubscribeDialog.jsx b/web/src/components/SubscribeDialog.jsx index fedccc399..e777d873e 100644 --- a/web/src/components/SubscribeDialog.jsx +++ b/web/src/components/SubscribeDialog.jsx @@ -39,7 +39,7 @@ export const subscribeTopic = async (baseUrl, topic, opts) => { } catch (e) { console.log(`[SubscribeDialog] Subscribing to topic ${topic} failed`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } } } @@ -124,7 +124,7 @@ const SubscribePage = (props) => { } catch (e) { console.log(`[SubscribeDialog] Error reserving topic`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else if (e instanceof TopicReservedError) { setError(t("subscribe_dialog_error_topic_already_reserved")); return; diff --git a/web/src/components/SubscriptionPopup.jsx b/web/src/components/SubscriptionPopup.jsx index 74438f9a0..7d154ef5c 100644 --- a/web/src/components/SubscriptionPopup.jsx +++ b/web/src/components/SubscriptionPopup.jsx @@ -155,7 +155,7 @@ export const SubscriptionPopup = (props) => { } catch (e) { console.log(`[SubscriptionPopup] Error unsubscribing`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } } } @@ -298,7 +298,7 @@ const DisplayNameDialog = (props) => { } catch (e) { console.log(`[SubscriptionSettingsDialog] Error updating subscription`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); return; diff --git a/web/src/components/UpgradeDialog.jsx b/web/src/components/UpgradeDialog.jsx index a554f1f8d..6d569fa2f 100644 --- a/web/src/components/UpgradeDialog.jsx +++ b/web/src/components/UpgradeDialog.jsx @@ -140,7 +140,7 @@ const UpgradeDialog = (props) => { } catch (e) { console.log(`[UpgradeDialog] Error changing billing subscription`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } else { setError(e.message); } diff --git a/web/src/components/hooks.js b/web/src/components/hooks.js index 8da8fdf06..792a11266 100644 --- a/web/src/components/hooks.js +++ b/web/src/components/hooks.js @@ -114,7 +114,7 @@ export const useAutoSubscribe = (subscriptions, selected) => { } catch (e) { console.log(`[Hooks] Auto-subscribing failed`, e); if (e instanceof UnauthorizedError) { - session.resetAndRedirect(routes.login); + await session.resetAndRedirect(routes.login); } } } From 390d42c6076934a25205d5e3a98f1fd74de35ecd Mon Sep 17 00:00:00 2001 From: nimbleghost <132819643+nimbleghost@users.noreply.github.com> Date: Tue, 13 Jun 2023 14:02:54 +0200 Subject: [PATCH 38/74] Format & fix lint --- web/src/app/Api.js | 3 +-- web/src/app/Prefs.js | 4 ++-- web/src/app/SubscriptionManager.js | 5 ++--- web/src/app/UserManager.js | 4 ++-- web/src/app/db.js | 2 +- web/src/components/Preferences.jsx | 6 +++++- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/web/src/app/Api.js b/web/src/app/Api.js index 8b7fc79b4..afe59c7c2 100644 --- a/web/src/app/Api.js +++ b/web/src/app/Api.js @@ -132,7 +132,6 @@ class Api { }); } - async deleteWebPush(pushSubscription) { const user = await userManager.get(config.base_url); const url = accountWebPushUrl(config.base_url); @@ -141,7 +140,7 @@ class Api { method: "DELETE", headers: maybeWithAuth({}, user), body: JSON.stringify({ - endpoint: pushSubscription.endpoint + endpoint: pushSubscription.endpoint, }), }); } diff --git a/web/src/app/Prefs.js b/web/src/app/Prefs.js index b4cef0ac7..4826e061c 100644 --- a/web/src/app/Prefs.js +++ b/web/src/app/Prefs.js @@ -1,8 +1,8 @@ import db from "./db"; class Prefs { - constructor(db) { - this.db = db; + constructor(dbImpl) { + this.db = dbImpl; } async setSound(sound) { diff --git a/web/src/app/SubscriptionManager.js b/web/src/app/SubscriptionManager.js index b9e5d0830..5b876ae11 100644 --- a/web/src/app/SubscriptionManager.js +++ b/web/src/app/SubscriptionManager.js @@ -5,8 +5,8 @@ import db from "./db"; import { topicUrl } from "./utils"; class SubscriptionManager { - constructor(db) { - this.db = db; + constructor(dbImpl) { + this.db = dbImpl; } /** All subscriptions, including "new count"; this is a JOIN, see https://dexie.org/docs/API-Reference#joining */ @@ -124,7 +124,6 @@ class SubscriptionManager { } else { await api.deleteWebPush(browserSubscription); } - } async updateState(subscriptionId, state) { diff --git a/web/src/app/UserManager.js b/web/src/app/UserManager.js index 412e41dab..b53b1da8a 100644 --- a/web/src/app/UserManager.js +++ b/web/src/app/UserManager.js @@ -2,8 +2,8 @@ import db from "./db"; import session from "./Session"; class UserManager { - constructor(db) { - this.db = db; + constructor(dbImpl) { + this.db = dbImpl; } async all() { diff --git a/web/src/app/db.js b/web/src/app/db.js index 357f4e96d..77ac25620 100644 --- a/web/src/app/db.js +++ b/web/src/app/db.js @@ -26,6 +26,6 @@ export const dbAsync = async () => { return createDatabase(username); }; -export const db = () => createDatabase(session.username()); +const db = () => createDatabase(session.username()); export default db; diff --git a/web/src/components/Preferences.jsx b/web/src/components/Preferences.jsx index 5a68a8ed5..eeb6ee0c0 100644 --- a/web/src/components/Preferences.jsx +++ b/web/src/components/Preferences.jsx @@ -247,7 +247,11 @@ const WebPushEnabled = () => { } return ( - +
+ + + +

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�>okL{DfL0 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�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�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 b`>x)+l)kRO`)Z2O{A=sx@Q~U~Nris{2hW=Z literal 0 HcmV?d00001 diff --git a/docs/static/img/web-pin.png b/docs/static/img/web-pin.png deleted file mode 100644 index 3312a50fabd92cf5758edd4ee7f53b271ec5289f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18235 zcmV*CKyAN?P)Cehv@YV$M*x)X3YQIk%8BaQ$prx9 zG_G7T`4)ZgaJ=PzUEN(Fvjt#%8*Xga{hu6R0F;;DZbQyDpuds*xsd)Y|6`f5tk0U1cjer28 zFVb|Y*}=+uP@hG2JqBw4^(?K<%%*v002%$`0AL~j1QR|>0MG(tK$!%H$mB*35D6Gb zFAWNhg@J$#pgceVM0ZyVO*fVPQVJuer()9+2LJ$KU{?2oVVwM=tbUzZ+D(fBWE>#Q zjASN+XVhl0fQV?Sb2M4K{;|1RVgu?i%crU{IDKvX8jSO`C663{yNxVVm5Z7!VY%wl zs@LJBLCl^|bw(0V<(9$`Km=w8%GbSsOkuIp3z$C%BKcAIN{eF~28${D;N*$ATOjZ= zS8JT^^UtqGU}E_qSpfhD#Im|jJs(j)>7`g-4Jf`HzMY8Tyh3s-jx88ezuJ9hlxj$87Y0f5o11tw+#fIvVHwqryjCbcf)xRFsd?k?oJ ztX`q))QsGkVPZtX3;^7?G*D)adYYBJv+2<@vypqNsNJyDQ@S75O()D%y!rySJE`l3 zf1UPmO9u!MNwzY#O`B|QN#}u#ykCn%wX-CsIz3I9NtB(xE%kuY>7^IHwxpW&Z<*yy zW8HKxGtK4p+AE$U#cSGnp0SH7^5#Wne%IPd3h$#wX|oIh`BK zT(jTQJX{7K0>gknHO~|f5X7Q!8cJ3&h3`RhPmuiw4JT7Uj}jpOu}K^Pt8Y7dMqwd% z`$g=&<=H}5YeuS95H*UM-Opoe@KnOddQIsIW(H<3zjdrzB>6tp@D}O|wrTzp^ z_AC>9np#PSNYv3k#HgpJOosXm4H?j|wk(CN^oX><|pY z@=F6WU;zlR1wc$D-JTnaK4t)7On+m8`ICLM5t9R{c2!o^Q8!CUPZ&g$JvF;>^|SI_ z?W&{UPC`L65YYtSBG;f%)j?(s7-N!s9--FLZg8)h8`$!*%{KU-`Z~2PsPS%{jFIun zE<0PhIhC()n2~mlK&%FA0TTmhC?`NsDGX#l?VQnLWb*opGv6}1&7kJkdq1N7iCAw? zh=>$CB!u*`9z zD2jT=PaBfGI^Y26=7H-KCCgmK8tq1UC$~gm=@@7En&e4U=a@D+xMHC+XmCI@YBa2O z1I2;ydjb%`~*aW0aWQ5=6iR`iAOT9s0J+0PK>ip^3n#8~Z~`F@~(modg!@y@X! zY}G)Pbz2L!HCn7~C+?6jhJlGYh=!RETg@O-ra=Li(7Er(farbs>etnQqZDylXAv+1 zgIn5Sfh!9(b;h#!7tS*dBWyGXD^@F~Mn_!#+H4WOwd(9dT%K6(x^Ytl?eAw}QfEBN zZifuOK!!c!6LB{VT1@7!t@urtEhqo3b_a+Vk)ozE=rAiz;F9n)dYH8atMR|OOE}Yn zoq!`KqL2oxnk0Tda3EZx>l$=DL)~aoI7ZaC!xND}@=XgtYt>*awaMwt{0JDi z$=4AxMaIEtVc_5|)uJNdtKv5@nBZ1~dqWC?kQgs@OGEn&P=RuS`g5)y5vO)>?WF*q zZNlEJaF!&NBsc2)UN_I9DFlcKG~;ImMc~P;5;ty)%W#XjV2$jsQPyaBZn<#OO5~k5 za9c5VUE$aSQ3qUBqXvLP1RC~JCNTrc$w@TCTMd3?yY&|Amj=x!R)F8}{Z7cpvPc9= zaDD_MH!X~Og>dpron}OhFaa|Yt98zK2#FgaYc=S2-IgPJi3y5BJGZrffL>m51PGWB zTba-33^2VzA)$OAxd*DX#Ieq6h)%J!5T91S&BA^9XCx|Be;vBVQ-uyP@D#MUDhddZ z8}@s@9g<(1xe}>$!vLX4K`4isBc2_@o%zL+kc;8kr(gYwwhTp_Sd}T_4L^tVdvqA% z2FOhgq1UPC{1^X>Os&UM11|Wuuilo^Gg)nxF|w{f6Sp2QQ4px<6CVALIlvwO2FbM#u^%5>?*jw!$s01L(gn+gCjQHf)rj23-_}!uk;8tBE zwJp^{26YI9GZ-5pFO5(|7I3LYQk^vu{UqhYx!Ed9mxA|NiPZ(~^h;9@b6- z0up;LSG!#eqm=!$rhrN9Y^*NNAQ(2c$~?~(nm6McV`R#T3`47RSq8%qk?42!-fk^k zrVaUaa%ap4hALZAFzg%9JV;eQy(cN~3t|f)#9Y}~g9ek~Q;&*>6qr(vtuk8x10ddw z$(#$fl~O&>)3i}%XbV;5V&e7-Qh;&x2V;;(e3--{XvsDo4dh150ssif-#rE|LkKm5 z*-WL(b@$X70A@6)c0f}52QL#PRTKdV1dDFqQ4CSnL=|;VJPSevzs49N!x%OpZ22KwNLig6KhaSAK}53n*`kGPPKZRX3^8Y{&Hgld;xfL$o*S z7EN@P{01!5>K(nSDI+T?z6#>w4D;->wGUmJmHyMeV*7P%7+8@K1rcGy+K^LK<>kNEKeFy540*U2Fp7vm)LJI7 zvw`&*es%N~jew;Fh)KcNrV9_R?5u;kO4msmbb%SWDG0>)w&!emU zSX;+;qej%OqC<}v4F-xpPUrDgbVR%Os~SNp|I$_rVPqE)4lD)-IO{vCP7(F4%~p$E zDjH3UAt&_qxWXe7s}NO0!uuV<&GX+&=^iK!1z`Gn$vI_#lN_Hmr~&hT_?=AfWdycF zSRbwMx4?nELJp&jtS|-}xRHox$u?O%%Ow616Ns0m2`s^qqKM5|w(4PVmun)#$Q@IR zmWEY96$+3%GtzYM$|e`)NvG5C2!k-&sG?=6C=692m`xh9E=rAoFUsLLy4l0%n9Y&* zuO}~gZ<-()XJ`!6v9A2ma}g1sNS({3rH@F|=_U_ss||p=?4~)b9E0oE_>{ea>71{& zi=%jFRavAM?n$FlfF9=5PGbOr9K6F6PDfMaA67OBR%?*;-Y>|fyBUP8iY)4ygrE)G zKnG>M5&}XJp;l_90%+8xM<`&Nm4}R3>|Eg{jF4$nQY07D6k8&$aUeOQ!Dx>iysji2 z(c&jIO3olpM5hB83>udbAQp`?H8IdBW0W3jKwhd!P-j2* z35;Apro#e6kKzgDQpK>nd(~i@aCF|YeL6vuv5G1x3P_E$h1FO`(8q0%eTof3ef*mh zmqfT#hzY9_Jw2yRm5Qr?%9o_Z7Q!(L#`ny5x@Kw@NW;!{f8y))7mRV~I zi&{l6++d4pfK>3X=<ns5G^x$HAg;*9Q0Q; z@T@ss+TM`~P^D;xiGh)LOwM^h6h)k|8TA)MlcZ~AfCfRxjjanXXP~4`aA`u0>+YmW zvMc&M9)U?7G8L?f{RS>#rc(yZ&+SW*H-OC+j$L^G(#iXs=yXg$uvEeLc<$|H-Ez}*$g z-|9`n1Y(uHhfds?pc;8}ZjJ%b)yV?$PF4L{QlYCXr6WJTfwtp9VAdw5d7VKzecPiM z&g7(S3tQcl)pkv|PfRQ&VS?zdqV87)wqdbwhje;c6JSiK`L7c!nHiXjF|2l)usg}B zqplP-NV!h6qa7mN8aNl!QbS!r3eF(NlmL|=<-~gPrsc@h$N@EHeIhGNGh;|dK+Wo$ zq`;4AHxPkr%;RHG0iY&mitUNZAV&wqzn36`anB&~aQfC$JK$a$NP8RZw~Ml)HgQv1|xwFa%u*O$c;Ap~g0#><4$W6Q_4xb~ooSKk?2n?1iN*pC*rsxS)0bjK8O<)8zvei|i z*ZLrJxJ%&4B_W^(QWfddd)0Y$m)Zzm>di4H{(h{?fmlgTsXU6daoNWRxfiM`(j>|I z8cQ}6Z$)&lX8fmVIko8|eqoXawJEwMT+7E-j{&(p3k<6Mg2E7*X^MbhsimM#G&F6qbE;unlVoy^~$Ai24Wv@?Z~7iAvQT#O}u!y zVrKiKYytMO!lnDi(2u5!Yh+i=5QadNWQU?wRi`hOBR+MW@ojB7(QJLxTdOliM)W9r zC4{HlSOko57LMeOsH9?`D-JVRr3exhb#yL8Ig6^|B&r+80oX)AWL{o&qL@Z%Lxrru z33H9@lP#s-YpY37LslT-;HhL)qS&XQwaGEG2+@$%d6g(bB+NvPjL>uAWD*$9T5(D_ zmh7km3$%{VsS@lHIwjA}$LG3e4XTemR=0gUV406AmV#t7k;ME{4^bIzI=n?XBUERA zO1udr9%M3}bPHUBpAoDJW`)2GdUlBc;uv^k%FB-!K|(oAdEhi@tBH-04y2AcD)Zhn z^KOknYe~hk6g3B|W+dvZ599qgMdQOm2^{VhHKi7Gs5d6R!c>j51eW%7DzZ6@N(-^$ zrxH~(PHpx~MhyV~LeAJ>%9RT+eK4TZ5%)u5-VJKf8G`1ZdBuzAqRbUgKy87&NJ;U2rTE%;l);A5WQo=zm*p9?Pb5{4aGjlR7M$v&uAGll=(=8Mu1cJ! zg0Y$4)~NgjMc>A%iei`M1qY?LKtqiuN#BjMle+W^?gUq>?p>S3r-T=7>av1Jg%s=c zjvq~@F^Li_QU~i)BR0ufwFM{LZ)Y$j1e%i!b;9lxYO14~=pRAMmR7Kb3{-X}s&qzcMa zW0jljSd z%D+a<4$Z|6t6YT;oT`l=hmcTm*-)?oGXjCpyLFP#2V`7wXVi=}dJr;heT_3w4I?x; zub3mP;L%8@>lOJde0j2IwJTZOUZsE$cUXB&!Cf-B8|9O&{9cR@Nsm&H*wrl2xRftX z)Ja#70#3oBeR)HyF@R}(@EuiE06WkhVT?E`xTeMrEc zY1P`~z!OCb{qSL%s?~d+l-#;rw(Ju`4K{rf-~%QsWhqsgBL8Q&l%U z7?Q$IK|~io$nSx;OD9On^~Ir#4~cD>a8TaRimm z8E3Xs6bngkNyJdf*VXeovJ$Rg>C~@;kU-=q2*MbW^j9=Bk@YY>){^KrPY;scTiJ!(9!r!aUI}HCLeCdVw+e4Q$37WJ;bd+`Nn#zZ4q3>n6jN=! zSS_T|1>pA~2)}E)RF#nHDVL6g_v-vj>-}0J0yGph@!+p1kS<9X>z0hBXD?#qEy_C3 zq@=KJ4_dY2;O+{Vf!k_>L09jcTusL0Y56}bS(LeC98m3z3nD9pX`{VvgINGRjKoQS zs9@&UwB`g6sWTze))FnH%xk}H5c?wG6)+tm>w|bE;89!&{0mWl;+Cf!oTPeFiqch6 zW*Drg>ur)^z%fq)6cNBr8k=G2Cap%^T3JBFnCT&nx>Cxi5FtfFe)grl? z{!FPL>VqWAq`eXb%?519)5&@d)vaD)MSZJb>nUDeUa~V*iUT&lR=uAi({i6g6%Q^( zSJR*=H&RfN?Brl_hbNN8+a+)q@pa0Z=!9z;gAfaY0;cSXN|_`G5e-Gy!c5&^-kXS3 zmMMff3f$m*NGvPF;~^3|wZp|}O#oo9IkQ0DPc3Q24|9J;h7Ro0rkz2hVL%$B^lny6AF{oo? zwF+BjsMgfpBY`+$Z2uO6oT;&a8?VI@%6c zG{}TZ4&YCTFPh?qP3B)gt7M_U>-W zkxEF_b@qO=Gkc(^cTI>xF{YKUIHbyfMYr~L4cdR zt3}dmgVkSAn{kj5$|zgcT&@77ta*(PuMWw2M{&h!F;^q6Ws#EMhWfszLgSQ6N|| z1=ll~uMQ@K&N9mSB|COTrvly2UZJEJ1qMRT+f=zUt+9%GlIK`ZrQSXy5y8B(WMc6V zfZ|`KZl^^3ZNi6A#epkcvMWaUWdlvEnsf{j%0-h*sH0|jz(c=uKsnB~&<|PcAKu&h=KtMx8Jyk0G#VRW> z#G4w}q4m~b1`CJYRH|W2b5~BRMX5C#QBxB_Fb;vcF_#*sN>Kf!U5h0p+Na*POg-{y zw^E-UN8leDsbDsM)b)@$Ajnp@LCzUtq7D-iTVNJDh?t0pSw1C&QJAFRw`B&h;?JXt z$m{-AX!G!;CJiyir{>InQ#+3-Ni*Yub>V8j$|H)3M=3xUn`F zLUUWOxfHQ4xd6;y5&)=AYmn~rmMn=>eJi9r@BH=9269=}mz`H+U)O6dvsE<|?R&l| zw>e*poZHHdu8Y9X*uuDxV(x2cq?O1UD(BZ9RJ$D}@S>tFaO&z*_94@xEK=1#RfHNL zvA?=AJi5P?n((>d$joiyS$tp&u|;g9l;P0*M}I*y2xB|<&}fl7(HTf95%Ir>#KRJs zh%B*nY($paMmb+<^oghDF5tmz_CQdi$W#h(BnS@qbZ|&E4XCsg3`A`2L2_o@B>WDw z_2uOzbwmNYC*$o~l|4wnX1igWFdmCwf>hHmTt-? zE)q>`$jOin2@XFTVL4Ed%H=T6XG}s^;L3m-Ww$!T6u~%Q*d+H)z7{zo1-6}&hE1Bi z3%n1Z@O9lgP2N_`dL{`!rc{2c%e|^mg^?wT*vL(<%rr5r5Hd7$`JkmHN_2Dd8GR>Z zqY6zjlCn`n5uo2ZR815Pa6n-0_{e(1jRn3D?8cI1VoOddSu6k2v$N(r_57^aufG09 zl|WUbNRf3^+FpYQ34}3%?P-K10`ZQ@=O9w2gN*X17*r+!cL)*KvIQ2^Batp5wnR%7 z_x*9|Bd^YzZ+cp-K{#a6unc|x03ZNKL_t*0;POa{6j@)ik1iD$bxaD})-*_>2+a}$ zv-R;SXa5K;V=WO85fE8swB&S;Wg<&UJNA|-56@e$&srDh~KB=m)BB5EW_eZL3c^scC^5tdOFqx zxh!=o$pIolb}eTH+MsN+%{%wrYr?3_Hy^e678`E3VVNaG2COVtu;8T^UwCoWi+A63 z=QB?~xpv(=K6cB6P|4rRdf0{zrLN5ukW_spA_6Ig=V*XF=U69nvX-3l z)!~k{*YrLZ+A$9t`S=mXOg!krWm*?m>*V)0U4Qk}SFTOA4+KL-**uUIrU6%US26&^ z$s!=%o126s#I6kn5fKwxCZLc!Au5T;q0VHjrP}^nYgWGT^|Q9xYU?tOi>!@u@IfEh zVcd@2J?oom%MF`Kol{XCKGED^H&Hl#fEX;XWr+VFF&t3YCgP#i}$e)73= zl0OlOU0A1{kX>FWSS#h8Ep?mU5}M zI|It|`oIScEEBiLx*_lX!2Xx~>X&PW_EB2EHF97^-{&C7vL)*~iMm?wE;cWPHGG{6 zan(R5hMwk3B#^U}#CBq9mr1Bs#YO&RyV;Oow$0N@eqznAl4en) z$f}UFVr8{;(`4`!UsYAm_)9`(O0RZefF4}uKLV-B9B9x|Lkz$mSYYRNSz#X9m8_<* z=_Z?QyUn(tgs)L;t;iSd!&Ynd%P&9i>jtdNkgQs&p`e^;PAOl;vWr zm9BoiS`d;qa3tE*v1DzBh}`9^m7dD@W;OIq@7nn*U;4)I5pP+ZlYjf`%YOUcm-pkS z-F?r!=l}e|`3n|=BTqi{^pj6LeeHF>``kaCw$EOBtff=-)?07gdh4x=_E`r6SI+kN z$J0*%=AZrB#j9NVaMzym*4khhq0b~`0ij*(C^ybKR7SwrVJg>t) zdgL2J2OWOJdDfVob{hcL7}GLn3>Y*mgJ@dq);!z!`p)|tee|)v`R!%>HDveQKjr&B zI)~~S8O~p@;QK%P(V1WQ(lQm$*+2U6+_`hV`Him+8#XK){My&PzQyR#r=D_hzuf1y zzWtrYAFna`{_i)xvHkYjm-SgZuP(CfHruQQ_pROZ1$FK8V#6wQ9d0nRW~YDvxytd@ zTH??+$1<_gJ)UjID`OlE>gky|Z}zP(JqH_X0JZ}g41t~=FaX9ts|ChD%WTl@S+aD= zqx0r`@a^05qapg#GtY|Z*?hCjjz9jB?|#=#BS(yQ6W4kE`R9Lf?oZD=<16iUdsRHz z6Hho{@#4h*(0f+$m}|y6B>dr_Y#i{&_!L zJ)YO9cHi1nQcq?F#TK)w7KTK>5ZF4dq15&fq=y1DB)W!!c|`6EXB(}A?L)*H^b7{X zpYFN8X|+E0z+Hg6(cmFH#rq57=t#m@jVb|ivV!!(MKJ7%qO~EYRfIReCef^e)X$MKJ%GR z*J}S;ZoT#9oB#0IYp-pw#TK7D=I9-E*x^5Z`OAkMnieMCm%nnxyWX|a@y8tp05fOK zJoBqx``TB(y5o-H<=w5e8Y?dzd;Bp(96x?sxOi`G?^XYE^}KoWh71|Jy&` z8t}2lA3x*FufFusOK%-H@`xi2pD2CXw>bhO+b_7~Sgm62B-hm8E5b{Vv#2q{+?ZRI+bjP8Pld&=pch@<^;Hyg( ze|z5#AG*y>=R9!dDx7_-}vww8%PtMtC$DMAw?N4*(&VAe4-Zp>!{1;w$VaSjna{d!f zJ~?>s;O(}1=kolDv17-6>ckU<4IB2%v(H{}#jiKnWRn9AI6&T7vSi7jhaR%Y#v4EI z!2e!&(Z#KHd+)vWDvDr@$O$JLzi{EgJ9~TO&pUg2C+xfL2`3!Ce7H})fJd;ZwNHKT zLEQ^UdtRYbv+B#l$msee3);g>p7RWzspyJt_=ChNW&1Dy1Hq7?-+6S(RnI?h;rkA~ z;Qfd7+;hXZGiPi&XxLJNXiUqrz?iyTj&ELO&3fhPYp=iPg7Y@sc%z@3_p{I)m6&h- z!!4(s@>zGl05n;gU-)-FDk;w%l^daQuxo-neGcq@#~MYXANB1AuL} z-S)F5oqXT@_wTjWUdEW|)2C0EFk$-i8N-GRd;0087cX8sWXO<*AAWe;xN$u_JM5dk z0ARwt`^ulI!fg5c=T3X)w%cY0FF5a<@cM}-o;vS>pZBx&0aX_j(FA4WTed6R1PReO zG=TRNRT;=Pj0|O*N$ecyaw@qO!DynDVmcEb7(g67c<3Rcw;3~hI2 zfk9}QOp1BlRn#7|;gx^(G(UV76@PJwpCb=>~@@Av4VkDhIGFwk>rUdaJGR6piESQUQ?DBj>7I>MMI+9Q!9gs=NtV$I!^3|MO zp$_Y4LHwr2qHPTHz46Vz`_N~0+Uv?E|Mw@;@B7Q*`3G;j`KTeo`wS0iwPy7#x#4ef z5K&l4{W4yoHrwp!XP&w1?ms{H(8CiCJmAjWyJQ#);=}_#_|SvXgeq01=Bs%uqU3Z-{X_B?}!G|6??bK6Vpa1$_|N6j? zAww1}TJ)a3`@7{c-)8;j$3Na@pS_Ph`skKvUGeKHn$EP=b~>G+eb%4|)-z$>eS-yb z%5sK8S8&4r^t{Bb`S}Is0>J72^e?Lzb&h>dCD9$SSaPs&1a+29#MTnJI9KSEjMCSX zn8{k7d;zY}I!P;Gd7H?0LtY8bix~jggC3ka>&RQKxca4;Zyh=e5I?)!dpiX{I7PqJ#O5%jW*h7dA{zs=brC$I!7FS_{JM=3;-iXzIDO; z`L$<0_|QXR$BtP=A-N*UluIwYOjJ*BxbE!j9XfRA@<2ap2kHzIy670G53hleU&~CTp^eu%!gO`%+$1*~P9&+$?H~fClqD3#xn)QV*o^j%FpFH`bPcv~(Py4pp zZ-45kXT(VP$RP)<&}FyVZo7jHnt0=lzn4FIdU_5$^pI<=nbhuS@3`ZRWbMl@zjE-w z2LZrF8*Max{J2SzuH9#!y<4r;yWjopzP`TO{`99$op|DMe%I(NM;l`%U3=}{zyJO1 zcF*g7`sxyF-S^CxG2^Reo>{cOnv(mcOwp=GUfe%r%5rI+{lxGsFc@)It2J%m{5u!UAJ%HwmKoJE2--a(dIp;o_LmkPIby`;Pe1jC zKmG|ZzxdKi-~Z7$0I8((nlk1xIAw*X*_`R9K+{Vi{K%Zgt4$Rm!Ja{rX@=i!GP zHhlQ-n{JwX^UZ%4I&|pRF=Isg0Kk6x?f1wd)A!kXAJJ2L?6Ld3_x@$Cz4lyw=kfH@ zPn$I9+TPx~0AR$35qs>hy90W596xpHUw?Yud3}9-TW-0fj^7tq{c^$i=hcGHtIcd# z)wU1bb=f!AQGQVPJQcDJ#%hPElRNu%$-X-~IzWeAF1xkV*Rj^xz7BP)?R2=W)7RJG zj+B`IiLjdl){kHFY z|E%s8yy~iJm;c-Ey8F-P|J#KN7A%xMzxdDpH0zbwm;d^=!#CV;tgHp|Zqgp|@sV3Sa{JwXp8X0M%wZv5U~ZZA%om@#^_H9aw}k7y`|P#j zj^loR(;x1=|GvS42JiZw_x$S*e|+rGM;(07fopY^X_0kCR&v6hbMASo;U?S695T6r z(joTfk4x!dWU$tv=OsqCM?zi76&;SR+sOts_Ssd(0;SrSRS_24FAT}#}1;DH}{W9gC^)29zm+sEsaMCqhpFe=Xr09>;iK(y8>OghHAGxHnj8LTPo177chR_?*o!Za$CXdfRtcWI>*;AclQB&T4=ReH9;Jn~N3jW^s} zCP$GXt6Fv#H-3k412J2;oi+8-gu^b{hb%BlF;zwYmP%nlK_qZoL<*IBe2pJcCQ|8Q zTBOMOE$z(Ps_W{7h)BWnl7jIhm6e@#vSdR6AP%v45B_v)h_+J(Ar&c7Wc}4XAR%JJ6!iCGvjHPI}cv{ z8!lN|#-zvq(mtVjJSfI`( z9oiKb3p8r$0$?g6M#c77HTKSh|80Ko?>KJ(0N{Rmv?fk4`@9F={x*Earm(>VWqgVZ zEYGWY)T1+qfWb%!eFq68nuV4D0e!R!7|<2*@$F2BT;o7y4%&zZQij($CG!`yKKW&H z=Tz=7ty7Qg`PS*M>BePLimYYY2LOPLlrZ$AN`aZ!@e*CdF>*C~NaA0TN9rhrVh2Tw zhhjSmij4+~^qaT!%nPl@N!8I4)JI9tWDY6#eJ~dO>n>+z{MuQ;*48a7o zgR!|FSxXE+6q!Ai6xwV<7ApH@f<^ib=rJGpM|^Hp>+l15Ek@T?tRQ8ONSBq0V$4316hop{Xd+0l@J7)-{iJ&OI_BeFFwf00hx~od z|C|Q{AaS=ykvC)eFkzN^<-9Cx0TW3uo-G5D1ihGvEPxTCrqi(i0{ftAq-?3v=`e#R zAgPfUGR2DYgZBC9CFZ_|Vdw1zU3qR%Jw?_k+ovP3_K7 z>?WwRk8G{1JSPGmCIAo;kHocH1s{btr?t!a0d?-{>$~s%`vG8|z4u;4Lv!~%_W;1| zyY1G~)6tXoNp6`CX%V|VpjDe*~`RXhCCfz`Pd7Ky7_Jr+P zhaF;$ItB*~awilivL0h5Hlb)WQepEmU7cRQ|ipv4uRuKnm?HfV>?fPL&O1d?d{xwun6>pApMCJSs`l~u4j&{dCCKpPGpE()lxukX!W zXUf#60C3R6iB;9p+uQplZ*KN$0Dzlq+(r8U0P`1H-<#2M!5*S|)WbK`lZzBtjkb>k z6=jdLHB`)t9V!%2XUl4``i42aS}FiDTVTsX00c}37D7?^&}@0d=DMgJ09Y`8{%yD2 z)^ys2!-v1QDA?Wi+_PX=MJGi8y}9epoH z#XjxJ(SLkyg;qXgr(IcLX?DG65eyyL^}J@kTI|YF_NU02!hN*Wt(B34OQfWjB{GRM zgsOqEFEHkdi+P8O9l4ofvR5cAzoMBI0e@LVo>v!(reC6LW5$e`IdkT-&(5rxKOzek zF1q*^7mwL;%n?T%zPuORcq3T&62Ckbx9X;S77T&TVz_DcqsI;Zh#a}%-v`NyvwvkD zyxVS4GU1D?5!@%idaM;?WWABnVV4{V05%Adl>$D%9?c;evc8C2QD=|+fGRJ>3{<5OdUwG4dcij~LZkjx~>4Zx!yKKsosjtkQy#g2AbRz(OS#ukGE<^x$WTUe- zUU0ziPu_d)-yYHLKK=qfe6Iz7_l$2r340Y;{n|%@PXu7acmcN3hXR;RPXm4-t9e3PWefN$# z?iB3#h{F$G{%i8PwgUh=Wmg0m)tY&;d|#z|Iss7e(awA z=)=yaZE>%iuxOtmt6y6CzH3ZC1}JgC#KQtmq4o$Pc-%PPH_|oG8#lnrR>Eb$`f&~z z1Qh7wC!Dmxx7%us+HAAgbLK3VKY#X|Iioh)tkr4_eANR0g9i1C7%^h%)TvXaPMtkx z_Qo4;GIHcd0GK{~#?{wcbImoA0N~`4PTFzD73h3|)|#tt<;6?dpE|5jLov5a>yw-8 ze&wqVzP@Dcov+UL&lhg{v1Bb>dFzyw*9)sO&#T{IrYTdV zUUc!rixw@)jt?C=^!VeBt5SiMA&VEc-?1Mu51w{CHnV;tk>U;RyX1wN&wKIq>95ZO zhB3q6@wrj^o-+E-p{>D1^%Pk%+ULwqzE2zKSq^kaG!>f%(P21_?(8aTxE2=x(6JN? zsxnGfLCa)`t(7W2(6QDMTjHy3y?-SQ6Ie^LOeasCGIi?AnKOqD9Xe*rnDOJrO`JGU zvP@Ul7(D$fbNP+t$O8vmbzV0gty#Ym)l+1RX`eHWnV=1yO!csW514_O5K$D8gsmjy z0{jbd<>irFMKLLA=(66erH+rmcZmMyk5kG6SlQ?I;w!D4KZYGU_~GAmF@M7IEfqG3 z3>+~GK)y1DyiSg=Zq7w%zxL!$OJo5og9YpWb(jRe?s$~iGFvg15Tx~K8U2+P-h5L! z`6ysqdhC~B@seezDnz5CsGcHgTKo9@Fx1@9YNaZ!TC;0m>Y`m1fB-|$=CIF(E?|xu zE#{NU2rGl%KSEzWiFVwE|M$_QNB>J1jUsE4_EFhdRvYK+%Vvn>(qXc|9p(;mNAkF& zZ#yCZG6UPlC-i9-z>Ms&-jN9akQo8Yiqn0HG|P}7cGCI0`6hJz?Mpv)IxJdThNQ^a zV*ALy=o$x-|I->GByj)vx1^IYlFvJJRpOmtqag+qKD5(l;M3#Nrm02xN8bK6d&AFp ztIg@U+m`Hk6hHB78ImGvf%XYH!gXc$E|^Pv_g+{$E~K460utjtdS=LsWI^>%_UWfe zGg(&;x=8;4K-+9-Z~qnTu@g*tV#$sl?mO+<{POHFEJX&gwDuZ5Iv68tP+Tg9)MWFU z)iKvT5PYoN5HkP@oJ=m0!mAxb2Jl&6;4LLS=2It^2hg9g!C*fABe3a6{L3`%ooavl zU$%D&%zhOBU}+z2G@^`9kpU(6`H$}%3>j3lHH6xu8kurnKl@Bm41SgC@9uL)t&Lp+ ztuL`^U84)OuFE@Lcl%$<16U;w^>6dd_x>F&yUr|pql`w80gU^&9_+E|h5J{aVpdgq zAQr}8|5m_zbe6n-0q%N~Tp7~yi}b%2He$H_;TPp#p}yt0jdyAZCqu@Q0sz`kC?oiWFIoZ6EJ3Wx1xcsi&E@B}#-r zTC@Wr10zJk1_PEI*oN8;+GUqr$^$4;Wc}4XS!JJ~da`QsH3|rUfg)8pNug#J6oZCN zVL2L9q)3tV()Q6hC3~Iz3+$?E7%(kn5(`O6$9tOw!Rap-q8I8S`o8Z_B3?y`6v?!Y zE-l8)C`?0rFc?7o6FzQ5K3xMNr$-1vh$+PE8km+G_aa4#m|DXJ00<>?B_39ck4q`l z=zpc=QWBNNct+qWI@ME@PmvWryMT!Kjb5$o~HJ&AvRBR=QxL36mB3d71&rB*rgzynvE4oOLBI~W^rDI!}>dB5| z3MKrD2rM;KGg5PUDGu4G-YqLqq{#Yi`$*v)tzR;7bJpKI3tdr;1VzOZBxod5$aIk+ zMb>xQCny@wl~q%kkH>8&DjoS7fS9{CN09dr5D-c+`65M%MB68Gsha)-S1*+b4TCFh z$gVL9gfbe@>H+mH>)xo!F)LD}$a-u0WcE(>0(4J7gKU@pm?=|Iq-(7%t2-T|kP(X% zDYAasKAGo*h~gqyV4*EzuxO-vAi5+`G{|X5AVh>Z#0L>mTL&}!RisFf^-=o}#`qJ0 zl=pG|R3Q9t8Y2%S3YCTtHI>#dj15tJ!bNE81tsWJq)73+z`;2NQ5Tc1suEBkFy%zW z_cHfNsL~Ym6N|<{tgq%#q)3tV%l3g(*XYEqkl^l(9fN3C>yyM9syAl5Hx`X1E(z{M ziWJeEloQLPF7cfe#|M3anCcX$1VgpMT-9)C;9jIik?47)dM7e^D8+`6T$>$cKw?4$ z5|c+fH$dlb`D=kOh?oSp1k^54q)3s*Jg-_@CgnZH+J>U4v||ho_v0qq`B1MWoE$)-49+HMRAzrQm=ZMJ5(Hf9}wY$X# zga!O5Qe?f?K0(n~L5yE!-0g7_UAQh$HFj$SIL0y#jNRW|{y% zQ1VNQ6e*%Tub>y$Hw;XS8Fc1M7uzSNLF>0LAw~P|Dq5&Wk@ep5O3L=63PslytMpCI zv1;88Ob!788_Ygfq)3q>0ASFVs$Ij(n8HAy9jZzhjd-T<6%i3g`sZZjS&ITHQlyAz zpM)it8a|Ll-z)wXf!8n=m<=+p>)LMAnVBzED*F^EQpDLl-o|MnH*1Yk1M46#TX!-d zR0`C?@+bs zRKz{BPWC5}uFYCFhee7M?UU=0CcMTVQH|J>p~1O_mb_FlD-b=5Svm^MX<6zOXF zqy`RWydFmBL}93Fqh#G>S#uZbDMVBhQ;{M?6z-F{T~&1>2^sP400X4~d)L?tjcL#_ zhz5%SDpI6Kw0&5*AtSIs>WayPPCE|YK{T<8X?7-5wHvwuKxOcY6j|@J4~fPx*uCJX z4{veIeRtZ##oL*=i%ya5$%s;00}C!xq{#a2d9jHa!<#3_oUok3`=U5R^Z4fMNX%$_ z-@)d(J%|Q4#^Q_ZQ=~|-eR9u8$HMcn8)7R-Q+5Ofj2+*R&~WswGOJ0qNOk0&V*C^- zQnXJFIg7nR0F*I+7+upG5Bhj31_?rKc?|UtefmWxQ}0eLdZ$Q{A}QBdd0XCoLC#ux z`M1Q?VnAfy^3*rjAwXZ@S*mUTAhJh%q6Jh&zetf{`{aI-)Po0ftx8$91=Ol28cHD$ z1}YQ=kppvS yT4+^c%!28JuI|ii&_L{HiUFA}Ql!XwEB_x;*3F8W9WD9*0000#Ak9V%ML|GBKoLPYh=8=v2{i!`k*@S2RVjirDFFh6 zBE8p85<*8>D3OGa_QiAWx%VBv!|&dE-v7QazCHFHdu8v{_MCG)>sfOy2!E=h!F=Y* z89F*TX3a+r_2}qMyVKDfKXd9N?a6BCISo3xGlll5s!uglRr#N~yV%-0+0fBF3QtUC z)Q_LK5VTD#2s=)Hx-oS2E0j)8g|$(JOW^dm#~*^TUum!#T8bBb2&&H&)oxKc@ml-? zKRbJi`4IDu4}}}ATHf~%gH52}Zd9X(xY2m6`3mS^Zv-*P{D zmnEbqp%fg$b>i~<6K8_xhn#e3K60|NA3v9BLY3IwrhDVpXs^VxfzF~Dep=o8AxC%L z>XeXMrCjQ%tcRYT1urer1<6NE?i(zfDj?ixy?0)Zzcpm^^PS$s(a-nV-u#Zz)qls) zdXsKW)2T-I1YMlctAbT`y^pfjT;7!&H*KP`S^~KC_Vq1XjaoX<@gery{Mtd(SNKm& zf=S;s`zO)>wVq15)bkB8$|fl-=KGMQ7^-+G=RzI#`www?YLxR`5o0G%T7zd2e(;N2 z^Nb-NIjNjFY($O0+d?y+xORIqdsQK>8ucce06hw`OKrQ7Z?87`kBGIdxk%{ zBIP=rh6Bvq{Hn$>d#p7VSM$`{2izo-Z@iAF92I0(4Q%-8{Yh5ESXp;&RW1u*=!fgu zgnv#RjKlP6M(-tOW++-H>o$LmP2~|PiSEVXQt{zQhfE#{d3EnNt@I$~@3Y1-Gq^-h z=^>_Fghs0oP)Y~OsdVc(=79U>_HshrSTb;*uRbx~EEEQHKa8O-6Pv$zUirFI*uca3 zC=I*Qvg}O1qz$BN=$_y=HxqsQUGg~uu9F%{`1yiDpPw?#f}RkZZn#*dRJ`hZ@{!r4 zuR`^Z)emZQl{IVLDqyA$_gRL5ZVu7=HD68wzIF~+ZNpYYR* zHeV?}f9dV3a-PkTY;$z7#~oU351ln`;dDJ_N{_g&T+7T$fBNz<$!1v})*Aw+S|7ar zaORuJ^v7ebPfp!G+r_*W{5JcPFz@4cdi=+(y`Q+Bp8cxuQc)0#ir3KKko_-u&l6XI zFsiCUmw%r;Jp0A+!jljwE7i#hw#`pu&&9k=ZWh^bmt~a*g0?QZN(Ed321_<0=4Q%| zgOBNE(>*?!_ip4t>X*yHlKR3ok0nN3$eGBAcxqGVpf6a&GagbO9+z#NtCUmm=4M)q zv<57jJUsk{#ZS(Ur~bHEaH$$J8#W{}toqCCx6E12FTuClWUXJO$UZq^dm{hb^Y?OZ ztsD%p_rO+Fs zy&5&#`%O`~x1WQ#p98;{W}2oVPuFd@ONtzi5NMBV&Hw&IUr*;bM(@Vbx4ntIoW0b& z>wEiqhD%u@bC=Gt1zf5G(J+>NTpM?PH7=FFG z#`)Xbk0a1jL$%XFj#3LDF84IW;{uA%B*qr3=P_44(E~XYH$}b_&;1CJ} z!`owR{Nt9f4`N#wRR!B#w)MX+c|RDXAN5k*SDjfsq~o9}z zI!rp91Q7EVgBwkm*u3Pa@q1HZ$zz$}f&!8|I>z2xKezYjO>)|Bgw59U@l3y<_2P>>Ht=>kHm-#~E*o&qwd!uo8P1?6aM4+_xRy&Ek#pg_$`3#%>!rUDn38 z$oC80MwQTtZ?_t+=wRSxm^kTqB92~=L6ko0ci>b3t<%Eg=FY1>Sy~czUkq z42ttmxKG&0cT#eGa;JQ!XQzNR+8nR?UH$f{_v(fqTEkb}InwX4Gq-pQChAk95%+Tr ztiS}I=AOX?J5H!H#<;;)LAgo%Sn|1e*K1af&pY%`&wKSO_8Je^NC!Vd*RXuVS6!Q*w)bon?q0mB%XI1Z+S^jGlJAK| z3@Uf6a-RM``Vuh9i@EoQKRF5eYkHfoFmuNEwRbFR|5U95)+N^Q8UFk(TcHQev$Wa1 zIr_rHAbN$cLaw^fm{wWu5j~I=?f8D;4uaQ|u|&%lQD^QF*mC%Z8O-G%b3rEGg(QW( z3BN~0=-BODxTKTJu!j2UOX+!hrq)UxlEd?cTk!;^>H4HN(h~h~5Zz zg6rc_iX~ZlNyO*EP(PCymz5Ol5Idn*>FaIV2l`GW zoaN%g^6A4q+2#L(1=D|BWzx3+G=al-K3>Y z(H%c_h3*6`b&Pf?9pn11wE8h&I);Bdr>CO}v!^@$pLuj>_dmx++V!W*f7}`3-qSJC zeqEqlKH2pD%zfHDo8h17<9~=W-Gk?;&|X z_ffq1j~w!}^qu#nVyo>PzjX{HiYQHvG~OwKY3c=hU^hW_jLkAB+t*#CD+K#%|YEZPT3{&^#LTjG}F zf7MMZs_^Hj{8M`$8z-ZO_Rch!(b`bDee3Q$g?|+ImskJYB-5U z>r5fcj_D^t&Sxv6J>$(w9bVd@6clZj!HPZ5J1hMS+mEqL{zb(Da{C)aO@YMmjZAmd zCMC#nVwl*=s%^JX;QH;+QD8}(+^n{CiTmiNXaRC8B5>Q zp20>BET`*GNnK>@=NZ6OzRZmAH|-h&hcAiFDQWJACv|Jvm?^1kw7F{sC!RIFyrgoS za+tmi22J5I(#>zV_^l&R{&)pn;y^}Z4F-v+*`8kZ-kRO=-k#dPVP-aPTQjS;srAxE z+@Ks)w@e{8{9>w4P=Jf=C{b=^cdF`QLgc9rLI2mY?^dvRuZ68F^z{35SE$e?_^suQ zHNT#ID4PkE1oy=vNxoQA>j^9>Ha3!*4^Abp}n`*O)R7er`Eu0L{Ag+g;2kzj^#| z0ZXO*=@Z{!SZ`3j_y#Jo(SL^I0Q!Fo1i&}Za2-no$~j+m{tTGx<44J~QRJiLGWZ=7e2^MV&NF=LFp z%7K%6s@}2QUQXr}NY-;aT*H+xj>D zZ3)wq;*r#xqm^9O`T6i12w7xJaT+eN9)z^C@zxZd`cn0=7ahLwRY)2095L&Tt)qJP z$42hkME;-c?XU7Y`(Vz^k#Ai`5m!5i-06q-+wTsT=7pMOHITL?2y6W^W(SQMWxQ7t z(*9cN|DGN@?=#k2P{+szS^z+n*9Mz}Erg7_yrz^Xu(kZ-1{O`hjX=n|@G|PKwhV9L#2DA#>wWlnpM!AL`i))Iz|GT=J_{G2VWFmw zoxDME4>}MJ$Vz$nP>%iIh1P%M7e4QUv(9v-6c6~$3$>|~GAZpbT2Q+Wxw4)W<7A zm34`$S)`o^J!ZE5yBYsA=abLPgGx*1?Q|N~b-~-!%8kBcMj>A9V}Ao!Xhj|$=M6xf zE=%_tCQ2S!;DJ-5h!KOo-?RC!(u18bBM$Q&DEr!GxW;q3zo(6x^cJay1SZLYSdmqo zvgx8bf3KSE3n`i2)Z6=gOp>+W>ALtET#skf{uTxootliU1*XVvIG5Fr(zrrVQTE^L z)9H&TnX|I{SQpq_(>D>Qduz^;`QMop9%jD{QZ#lO9UHVbSl@aM^wVtjW()uKQFzmi zKGtVQ1k+HExeTtw9DeM!F$8-l+kM@+$Y1Wb{+&rOB{Rsn?$WZ>6 zeM;^vC8dqNDm~Tx!0L?v;z0%1`00OBr@aGIBpai%&?H~vI5*`>~uFFpmKV%m_} z0K+G@B2OZ;qyf-?_;ll%c5TT?4Dv0{fVNR!uZsg-Po|OlbhW0`6W9svDHHH=zVL4e zE;uAH2=aA-Xn~99!8Fb<^06?*-IOURe;A}@N?^{a0i^fmx0^ElRwv$v<`m=AS&%WE}=`?hV8!vnuxlZh!cKtXFli8admb zWBj9A@o)%$TI-drXDl_|Op-8qLlF0T9zx2;Z@R%iTQwwa*o-vBlUm`NNQ9Wgc*|^- zt3AKFYh2%5m&k=0i--miKJ}t<^R$rky)NJ`m+7sUM#R=^nvdqP^msF3i@)f#Z5n@Qmb*ALnE!bu(^tXKB={FX9V=%*veHz1;df6hQtNjD_A_efrl0nVb6!5Fv263z^4M%3 zu#=33@wqe&1`<;kYqz<*p6G*+9q|Upbuh4995df3>8ZtPw35HlU-^XOTq>qXRBpg3 zxAx9H+4h=&I(aA?!+QfAd)+V=(#jvBXTUYH#dRL^2^olO|`tH@q=Qrx8s_zs7; zKw}`Vcy}gXRC*Oti6kjE9*NAhQo%wr7{|QzFrQOBnO2?u|~RfPAOP9wCrtF(`hB+G017m-oC6)TrOnTlu1*S%6v+UsE( zrJ~MzvCLz|PqNp~CuSzXE2o@%c|J1LW%?1tF>6rN<^(sqLtEVRwHP_%jI-NVmA%j1 zm(9z)ae1cR6(f>geri5UF7$AUmF#feg=)qHD@o39P&q zF2BP@ek~{aQ>J*zOW{^uh|__NNH%=NtwIG`IfoDrjZ%d;uyQpZS}7}ws=-a| z5W43xHDfvTs!kE+T^B8bT+iRGKw{)GuN=vjf;q3bR-sZ!4~eSPX8!nEJ|xXsuoO1w z6^|xX8@@kbs{azyS%Q&KCLQYwc}!gb&Ccm493I0AXyfaX!N1}{@?EA8jQyqh8b>H3 zJLwNrReDz#IDbiE27f}(K(IP*0y+I%LsZ8SqTE7p|Gk-xsFM=<{2KHrjcnyyV+ozVNCE`qe`L1#K{n}Ze)xsZl2CW}p#4h^7{JW2+fcLDcS z{)%L|=Silot!FAv@+-+@Z8ThiZ0@pI*J0W%wu#1SXVVQbs9l42qt|hy!5txg% zNv2Y?r%3Yh@^jYBfQTftx&O5#9t3&;nZY`eQFq1roAeRL-~9Dd!!BX9?k?}{8{&Y{ zR^~nqq5s~u8Wq0rT|-&GiP)-au}0a@a5jWm^V&)z%&?1Muh?vH2W zb_};n{qAaZ`)$XqM0!;^iulaUTXA4-vWZJIs+rshsux705uvrKD9=X!1akW~liDF% zY{{)3YLBeQNfy387fQ;{o)&c~cgFo{7NMr7!5ezng{Cs{np|RSNx55}y(q&`);<|k zujBn&J|Sv5Grb?hWwCByv4pcDI~(;R6%p#58t!Mir^!q4WtqbQ?&*xWCjWhQJOQTb zA+!0?KGfPr9JQ2hXt5C^xAh2W+0yD-k=#HEMem$ZAQK-XeLFkr69vAVybS6b2LV9D zZv)PJ&%xHea!vnAvi>vOY|1}m<2D!u*{H_6h6xgMU;u*LcEI9;SQ`n+r8Gz4VK!gi zdiK9C!{*Od=lBW^D9Melt_I>_&yHEM3%&JzrNdenY6`EVsN=a!bgN#s_qZk(-fu_i z+%!sK8!L-=oOF#4s)01SDTaF7!w72HyAF_cakr@Gf%vwDye)nPA&nF{qT~vkytE7_ zRV1>KbYGX>kMPnHcrPwo$!7Dc*0odA;!f8fI@OW5B975Qh=VL9-$dqh>>3AVnACYE zn}8?J$TT8W=SH!b(~kV%x63_5PNw0k&wy*_oj3BefumBmH@!2un(1rN|ME>VX3_lS zxB;K{yP0~Af|(zIjwN3tXp7Io9vRqTjQljpd(aGHliXB1fp9{XyHZF)vCJUUJZ_U2 za@#P~eOyHX!nyeFMKMazq~_k-{wQi|F!?d1%|kAU09EG{*kh6FXWI1`1)9j9Ruj$j-coU30+*~&H=$$ zV=k6~(*YgqQK&|nO2Br=_9OBtI$#OXAR?CSP_(!qSpx%8muF@jA@S17N^S&03i#|o3PQtIzAu&sx1*#$XEYS$;N95*lEeLHm+oBZb&l6x`ZZKVpV@XzBE4 z{&o^(J)^HdpU z3n8{1@+%1wvFbI9Hs&s()ZNfYUI1N1B?`*as!q%<8hn@U!F1S&Ld71{4so%&F(W^n zTaOI1uv|eK>jamqH4w1KK(1|XlQKDE9V`}Ky?-Q=`}JsUO&R+VU%%QUJJz&}iN;I{ zZpF6UG)FhAGh$F##D|l6hpUZ~8NP?sq7HH(M3Oe9fwiG6kfIIWFqo{4DN2SXHo@~K zj#OeK@-FZG!P8{~We0^>fk~^68;Svbk{a$NkVj*iwr8;fUA39W4vU6m6z1b~EtIaz zcMpz$CDxICrp@UVwCV2_&u3G0NoZ7(P#F`1V2Fz6-Lu%#G4V%vNPv0TF>VD)V`c%f zWqDg8%po%12h#v0>~LX9s43nBy^RR5&j^~ z`UtX~^5u^{V=xD4K)zc{b>{BmaZF#H7D@%ODrUm7jJQObB5RN$zAkBSCc}p2UPIiz zyHtQGOdOF}VuD--c-QJ?RY{L=;yMYPrpp8JURfqp0pG+I_F7clKZ4CX(1_zQPn~y$ z&DJ_@c;l-#R_b(-Kv3hAc_}YaENZ?$!c{9t(qq(LOa{xx?ta~#MZv#~aU~HNj~9Sn z(`>VgEkM@vqx`pcVWJ3C`)h1R5%FL5`Qf#lhWN;ACEs>5qayZGtQ(y0ef53&BMOno zga&<@Y1jg<^4<06inGBat~N9)&bP3#J_AqH5D+ma7z$?wK#r(sA>(My(LcU}){Hs~ z(zDEeoR11FtaM&wfqD!AL47@KC?SjVD&irYGESbgp!!Y@#A353-1uCfEY2s8<#(cm2LbRZ5XYSS4gfUsz-nU> zA%6CSAX1Svk`KPX3~WMuLP_q_Z*p0Hs0U<-2dfe|8bIZ=gE8{D=@;Txsh)MjpKKPI zft4R4-xdSwhso`5)3pf{IMN?yowbxn{914_D|2RQh$36*`1Ln`206lfpAYk?Q=wT7W(Ij#&&JMw zovAJW@$##h3}bK1N!vnh_JF+Jgw{&75>%!ch6qJtlz#7I<*YqD%(teZ6meCm$OJRt z3|_INE8mwL_LIfr1@CTX`c&mknQzhmf?G7UH{z2zs}JqJ?__V+f6)bu><~y|xw=4C z840RV;Oke}ONz{Ur}?+S;DJ-wUBzX}Qjngl>d2oUQ|DO4+TGjH^VQFeLM#3oA1#oJ z9FGYno)Zv}nIumTWpt25ZJUA=Ldk4RpDL4?UMRfl^eKU=L;Vhgzh8KyOq&YBGz4e= zF%jY>TNgIs%bJFGJPyv++;=MWZ}CU7JKN4E;$(kvz?F@5*j@-<)&)-v)-xN2xXjIx;v zh=usZd-c}(lgF(2fr=vPd!k3pT8Tk4nExPE@D-&z$j%wP;gw2$hGIpSaUcnyS{~%~ ztECEI3w*pQ(5+bfA608@N=oX2hq`MryV%bW)E>=KUlWoTI|VP1+t>o_3oVu7t2Md> zIpUq0Y8o5(;3>TUW-cN7xf(GwPuCS4o0ca^&9-=in7;OvSun7HU#}g+eMR2u7Qe*& zI9`E#D4vxCiOMMp?3V)7%9Ig}T+ULBiO%?->h49>wnbjXvmvTkzY-W7cE!I#xXj(& zhO}OjB64CbuQ0j5{X){4aN%p-jpvVofHy)kMPrA{0_Bj3H_GJDLpx?2(mwcug{C*0Bo;@dWT8Evo|(D4bo1%lHU*W@D2UWQ%zC{9?7K}F0iS_ zg;*v1Grpx}eF5R*<*yL(Tg4c+WK?x8e2=MakJ8%F601zekg2~IYwlc8Q)l5fXo5|@ zi6(-@jcRM%(WW5aW zGR^WGF1FL=W1$gLp(zy!s_ah@_=RrChds-qtw?X4SaVC z@Y*mgr~P@g*noyI>E9cTj+Cj4dfa747aej&DM>|w{h{yO{+_UMW&s}`jvu^VF*5J9 z=Q}M05MDJOH=+e4mkv2hy1d?=_?>~PGh&&~n!-VFj~`vfWivEILkRgdrc~})ln`sx+t@*Np2LY-RTz>_+tep#@!ff+4kxS!_Uqo0x_Y$C?mg6du$$jwwoLX|Y# zs}(e$u{;HXVGDrIEDXIsTD%NvP{I{KYpr8Vm%#y}(HJQ{qAK*TTo5T_?qOAXa+jv9 z4syR5-`UuR0IU$DE0Fr$ag)Vd(u+211+_rOzYHqbjtla{npTX6n>1Ye>bYx2jU^7~ zQtvj{2_!?f7d@PU4aYaMC4IvE*W36KSC%BB?=_k`$CfK>4C@w_xNlDoQIhcO*6A%L z*-4xfIWFQT|J{@KLA+2|&QijL&chwhP5-t|<)}LJevnbuGGEDoF!ha^|GjLBpi8`r zm*=sO(M6?AHj#~myzG92^_moiX0Kf9$ZtO17wTtRyx;`5^3$GgrE@Zw z1T;!gX;%bDl<;4g-)`#WWg>9nufmuRe*R8NWi!@-l7WO`WJs*VV$*IG+GCsCTCjCK zeA`unr+$Q&lMsl<36L2b!0Cd~r1}%R$wILPRW`b#-ZH`v4haaf_%)}#`Q0!h9*f>}V(23)tOC@3 zhKz~Wnn4xlnx{)$UO@eY?4)}5i^sNPc}_FKPgan)BG;cg`Gl&Of?<%m=sGhKD6Gs3 zFc`QH6DC#VfWGI2q_G}Hj@s)@yA>xJ(>9r6s3tW>ns1<%6a_pK_d%VyNArj5!2?AbBq=XnLkep|NxL(;v|upmqIBg)N7~{6!y(}t zSfN>t-f7@~6=YHdct_lH3pje_p($>eglf-wFhF=c-}8SWvm}RK-QP`75nj%03k^ z4{RWCE%!R6Y!;U}v_yuurTVvF2mi1P4?Fl`^`~^W4;F?Lpap)jfG<}i4!Zar&ZM1X zcPGfh4`41efRIGK(}Yeq*$-;F&wwHWYGA9h@oBg2bqlkR`l>+o2uQePc-pl9=Z1%r zN-kZI8FV88EZN;N%Dp1}r@WNC9Cc+y#D1P(`sh^g%v)IkekaoA*%W;q302#=E)GA} z4eXXu9ITmaZ*`nN&nba>LQsdxVKG0w`xp8#2m@-D;_DLedswCn9KkcrMh~o=JXpG? zHeGYu?B_Ci@~Q+nE6cQTIB*FU221xYEp(c#bM3a3@oIg6NqHVyZQ3WtRQ<#^eWBRH z!JanenoKAau^rnnjxKJaT$?~EfO=n$iFqGHI0D6knyGaO0zIonp-p zy0Pfs@Rums2^9YqUr4Q7HTp0YiyBn?{d>o!eG34pw`NgpCDR;!-Y(=Nz5=iMCSP=~ z`MeHfNMyd$M1$M?jeX0QO<859Na@Q|pam#Qv1zw$cackyEaiWE@wDTnUwaiXL-{Zp zHp{!40#Q6%VuW!hFLUPnQpA1efYl&5W>-1fUnpLk`y^Dt3_6WXEUP2j!1pLO-m6Lv z=VM%K$~+B>5IDlhJQ9O29a4t)hLT>njaH_(adk$zkkwN7aE5baIQt9@MT11e6wWMg zcwU#B9T(p@qgB*;Rm5LxZbcg-Izf@t^%;8UN7X7W^;-S>V_e+KDzcTdUWj~E>RF-x z;q}Z(POOCS&t-tM91tAU_J>HR+rw9^siWkBe6HLd5*?L%SPPUWWIoh>e4F%J1G6v) z7OS=h9AH8k#e!8FAUH1SoYH0 zogzgOW0rG@YbmtZ7gwuH_4_&Z39`5jg%cm()Qj z{b%dBkY5axo9jZEoUJ~I&rGixvJu!cTkb4O>6N}-d!}~*b8Q)FjB-sbHG`q>+YSAJ zyFcS;;h_!>nQ!sz=v8yqF)2(%0nd6qyToI5O~SZt-3!xpm`5H{E$JnvSe&~z^cK`V znTRij)()Zr(_mI%iluJcWqIkyD)ANL!0Asw3jN|Lc8@S6>c7n-ro?sfw4ZIxq)WA$ zsXu7j8)^{r~dK3u9!$3q0$u5KN@{reXuS;45`K{9mHI+K!ln$wb-Fu!?B>D zy|QP#fZEAY8Pa~}wif1>bCU#Rlj?>htU*q~DV@{Su^x~EuBk7Vd^cYiTkWiH@KP%= z&_S?yg={t1D+(V#d0z8!LwV#54dh@E;y*Ujv8$o*B`qj+g$aGAfv=#I?&BN|akCga zC41tC#Y3>%{kikrAP)#*sb<6M&MqrJd@k+yR5w9^rUu`$y5$-tJ_lmup&iPv+*(NY zZ6i)-f`^Aa-5o`EOH(A~ex!B#!wi$j?JLo^N9}L`Fq$|}Wc@bQjqEcLVS zSc0Vyh8v&;GyD!{{c!xfhUno*3h>2j79?;VhIUH^6R`8-TgpoN(~-zwQC3#SJsgc_ z-=N~1TTsc8he0Nniqhr&2ddbo|}E4NDZFt^Dbc`&fcg?q`LXiuLR{ z*EdvsEPk?P3L{Qw4aka`njE&&Z?y5CdaH33-N&FGd%yUtZ$WGC(pGC3ubC>4S7BH- zQ0y7UTBqs+au)K@P2c8Mwdn~izYxAt8Ko1>wcTcvphcvN0pEsJCq*7xzK{9d26Pw7 zs_MaT+d?<9aKZ5nH$w=arld-MnHi+b4C9E;_*GiF{jO(Skb}3nMVqH$wnTm{7#O?? z9c(u8vl>nXVLZCwDnRvNcDJpm>Ryy@Tgd>*x(?+P(3CWL={=I%smj9q0}LbNoMu`UIEK^|c`mM`heXhZ3QX>wp2Z+wcsLM}YgaOSOq_)-M^ zOl0j|URF(~E|>;@E0MSjB7?g?ve3$Q-~L1Ydkg;&yDgz^<>pncvL8x4?`{=`-w`p& zx@6!rrPh>zcX3mmt?K?0yp1C3mLLc zRdI|DjDwe($dnR{#s&!H;w*z`qDX3ys037|@^`f#8p4_7?si;W94Cd+x_3XY13r<1h^zJc9ns8S;7KneGuINS8 zyA=@UYhGYr{|N8Dlw+7O`jD6Y*`#h*o2PzQ9NI86#Bz`R1yj^7)lrpF?0`=`U^}X^(0F9Zv*4Sa zJ2B^etO1gBh)wS(rzLG~Q+7u4b6(0L{0Au^7&8bxPuUkTtee5W3K~B-aDO~rRmR$d z%K!SWjjo&v&Oc$)Cb8t;AQLu}RKL#QkpV>fBxMXKIfDSiC;g~_$INzxbJ?|mh_e-X zm;Xg&NBP$Nx~xt)bqroxxW3FsHN+P=jOxP&VtecukBKj(@em&v9T9y!$`|t2Y<*Vr z#$8fjpr(3>BgW?u_W0NB#hCs}(`{{IN_f7mBx$?_*YDc67<_xiWRa4vZ2 z!F{GW+fMLP_Wz}if9>x-(;g{7?C$;Z8D*tMpv(U%F_u3P1K>h_{8cgk$8<{DpKuS$ zc7T`J-;kL1Ihw?#D)fy6myzw_ARvGd~Vlm`wu_OHj|MSC@ zTYn6+4Par$@xR&kzlt%1=a0m^HyLe?T5tU?pK>egG|fP{X9?@|e?wxM{4|MGS}O}P z{S5<^dqOkNm7M`Y#J|GC|12)rTigF{NdI%J{x2H-XSV-1V|_9lhN+&}8&fe852VZ9@E?y5v82E`5q8t8G!<{^~>%#|@reoiv zavKrz=Dw^SH;dTL6Kfsc4CE_e;=Wh zKZ^f#uN_m`7aPpDSJIc&F#KS)ZcT-ks8t{aQKoPnOeXfM7G_B{p+gYhEgh0uSLdth zIM)zwKE~xQf8)Ap{nu0T$0iZpjHX_NUog>O0N zxPxKbX5R75{NKu{0&Liy$V;*DUfyXdr(iPspPJStSod_(mM{F8QqbpX@;#O12$ViO zB(N!w<~Up7r$&FA_i?Wkv5!^owyXuyszuPZ=XYKMa1X1HmHDT;2{!Jtob@l1CB@JU zpph&m=-zp8JtbM>VoJ(2A*KzB`{p?t@6eWO$9l{a@KEws)Ya{9w zHY`l}7V9UYt|8g4ZFE^0zkIM23~^O_yR`xvL-tIf)vmMkRA`Lo(J$#DD7ory7rvX-Vfi7a1K8lHd1C~CBluMts7liGJ0@2b>ES9}3%SEN~P zVRepipvM5Li#I*VCOz%INgw(2G%Ru?Ke;0&mGxtDse!}t7&6pNg{6XMs#g3IxmCrf zsd4rZ_5lmGBsLfzvmxvg~d7vDX`w(hOg+aMN~qw=%pPv{}DeiI*8@rkurnxqGKnJ(Rf zr-Hp+AfNKVjF`>?%$`=BYMMQ6{yM~QbHIU(Qzmaw(DLcqz8l(|(bsK!_W~RBN>mge z3-f9+!<=ij_8QCHrvN8;UNI&jg;H|u)gY0NsUn>*RZ{m$l~tGc+OM?oE2h0FNYi5N zt8fn}*|+54*VmtZa(|TN-aDa;2M6CO$ttD!?-PBcrTFQM*Rl--u&L^kW(m@6(t&#g z*CRT4AIqj$f}Tw;RUy9*p2+|Ctc>Z&@oS8m5|7i(r`z3Xl#LxtLT?3&hYg(pAU>Wp zPlGn@<+~5Kbqn|+M3mek01@SkJqnh*){NECq3hAo0 zc{rJBYw@w}qkch)#zZ-#R!OC4Y08Xv?REG*=Q&jTW$XSVivEf&Tr4^O8}WUz@5ZLp zCBA;+9qwh_*+SnQLl^`SoZk7N1S^7_h47ZAfL#Il(g=gFx!tD;3(iw;m((9y zqjiaAIm0lcD4gwN^u;wV5dqO4&@-(p8S>qmp?5icmuZKqH(DlhF7%ym*;&~Jl1L( z;};sqaEtGkoOiWev9YR31#vy1Js{G1qLO91gX`nsb%tXwJ#kq6FP^xv!jYx(Pk$Yx zb123!FHi1I+kuBz$8yI2108{-^1j+Si|>k7)dI|o6iP&FktWzRltG z&rYc$SwFtMJq)Z~nNM`odB!UKFltZ8WemAee9@-r_|AoU+q}^J9xq8GZO5I;sHL}k zFvQc`{v!VmaqPQfc)&(1$7J}(?VbvuqCB2AC)&d!&C+)t-gWXePlrn}@q3U(mRaqq z895Wh0oCXfic78HJdmxQyC(#zIQ<==^JN;o(>C~LF^Sej>FOyOISdrdJ?ZTVM1Dr;4Mx34Xd%BE2x;zv8yzew% zbUw2@Z1^YR>ACZ;NaJ*g@#gyT4!b-&xl z;l(1OSt)ZBIaDrj@{7p%-M5NE9iavjH z5(|guDe@2c4oLcfHT)*e}y)b+6Y=fmh?e@R;G7!t=sEd4&N%EY@}aOV_y{xYxlqBq~`c?#vFk*M?QQ zlW+VP+|fNk=6c@_2aIkTyAKOKvU5_6#*}Y>8RQ^A_4*#_wN5|ma>ccRrj@lL- zFELJ>7yaB7ZK0s;4}{Wh>^;Qyyjp=5S~+p|zmQ58KAHVumGBcDe)Co_>W0!8@h<@z zdwdD;Kf(GxghGFDoSXldKhG5Ohanj4E-Y3=8eDqgXAbk5@d@nNi>fhs=lb$W!o^!qiSdZ8 ztdc)cQ>==dxw@U3!DQ%-fPinsx&t@RNep*x_eLbYCwpv!keuA^Ek#RJcdcR=B z15iB6juoHY?>2A}xF~J)4-n1c>>SLV_@3vth%+5S&M5KPCo#xA@j#x<*_vNpWnz#| z#*420+lB0s%qloRAzr&#&*0Apz1KlJZ5AZ zPuu1r_f+|2etdN)MkS$KEq(7sp7vL5=C0#;R>S!U8+_NVZyTKJ2zznLyxfD0Q#o%w zX7rK$BY{7*$l5NhUG8{~wn;xf-?&r(uEc|vL|bNi$Iz6 zf{;BYUDZ@_hz7ht(BENSZxn6DUOR;iQH;$fS~kOz-!0n6E8j>1Wq2Gu|B}d{IK$_} z!hlv8^I6k3Pqu>Zshk`Rz1Iu)(eE)HS`9w-W%^;kIsePdN{9EZ{i4vMwA4(vwz^Ma z4;Qay$eb0%wmq{_uUDf~J8+Gh26TOYlYD2u@9Bm#Lf3&Kk@7r-$KH`{uYk?lQT0mH z3$14!YeCgI@ehA2I!f#DkL6o$omo4Zs18Qjp_La1x4duw@)x!T>U)1|6UA0mH5a7o z>tON#6_d-&SCOCjy>^4;i}~iac&S&iX&0FQqd2A~rarA2lKu2vol^RASELxD7=hCA zf2`G0;jFjyuuj-9k*KfLsVRmX=O1V1YS-CE!rmxV8O9>d=LsBsBFf5e0;UcVy4{f`PF}m) zEc(M?m$yIcj9-i3G8?Ak!zrhB-Zu%##AE$Z_;I0~t6Zkmh@xe#ru)Y5)`sTN%`ji) zn3H6IF3MPvC_^G>@&_9F&b@y0nb1i8NKD1sonV{c*84vPUU1Jdh_B}TUc1zKzD8wD zdH*eH-8F^u<Jlo!e_Z$?#TF7~wUyQaU0X84KCk=313mGjPRDX3fAiOGmzeQ%Rts~No` zfzkbJb=y_$>|(I^WX9N)A7H<1|*VZTQ_L*h+CE>L$@ zb!V&7yni}eYU6M&jth)=s!062bZC|l#{i_U{7gc!^}bs(!FnPDTp}97vBJ;8S6edb zzQ=Yw@J`X2*~$-XOpGdcelCX`t%5nGmvO4ZN zi7~!@m6RwgXb%r6sV<>kgcowh3iF9t7&6Rqs;iUxL3&;GkLm8|Cn(Se1MYm@) zVXxC2x1%}s%R7rhNt{Dw2@fw%PRg|d)F#`6m9A9BT61f&-+J~oj`#oJ=_~`HYNNGH zcXxLqC7nZeiUOjvbazO14yhs?5=ux(OT*9|LrUk+-QVUt=X^im2Q%#bthldr@3kYK zKZ`eVT~kI-w~;df;dp~xnn8kx(aiXbhVZw>4&{4?8rEM48n&+@rWPiL1;0EW-1uTEK3VRz`LSgCB!Q0=^5o??6PIsyV;d>46*| zG^GQ0zX8oDiJmEG?k-W#$hnaA?aOWQpVC~~%>=_tV2Q^2_vp#?niDqynx%Viw0E|M zA%q3Z8_Zj_V8Rhl!fPMG>k=dhirrbJw+%>{C^vxvxq-xYgg}GN_DIggt=ONt+X!?H zDwNwpc?uR!7Z!O)*$Navox_g>V|QOh;?{WtQV5-!`MQoedQS!+7Nm!GMMENa?Fzk; zThIhU3>#!Bm)MLPYyAAugk&*CCTb3g5>-DvdU;6Y_?w8)+bNzJvcgIHkLGi1=ZsYP z6&eRSF*B>@sm6KXR4N06tU!F#?Y&8kkIM+Sizkr6I>@IU$2**&T^Q$q9SwSN8Jc>( zu}=f3GfVZ;CjMWsr}1%7LV4VVtRjF%$o^GM#RVJHrFPe=8X;JAq%0_iX9{bSU{cYD z!Wt}R9mQ{TDFH#rQeu>0xs3anxb`=}7q6IQR(QjL?R+hF06oXy8!n06eIn&DX|Gl?s(ihqP8$FokyIy!LdMr1vQKsBgaK8JIEWf72$elShz zs8mI5|CXzIDtP0?ww^&6}I?p0!Q+lmR$ZlwLte#`|0vZD%!tkm^Shqm2c0pXgmHQc$O`-JkQd_1Rg3jh(X=+)Ir4Si@Ss*mUV&mP4x+=w9IlnUNLOstgg^3B@e}t1)JH^jtR)S zf?7$o-5bVGF=-dxL;bH*NNx$v%5~4I#JzB--5YCKo=DUEE{mynDQQJyJKxl?|DKkD zuR-*xvEF!8gDL}NkH(m6uscPP$wYB$>eU`D4kbc;qeWnNh|`hbFJULvOoMx$_zx)d zJ=?@IlyPWE%s3uKX(8DGAwoPNumYs)QZE%I;T&1d+A^Hzw{omNuX8RNQ~TsAOu*M>HPMZ#>6r#Ehw> z(qgTNQC~;&-;Y+wjNg3fLCwCES~fjWrRk?s% zPdny<&QOSvwEV6VLCAUCdWsU?7qt~*^z*B_lvvZ{f$<6=SBo7teCV~SQYOmb2KRv2 zJu)q#;Jwrv80qZ?U$}Uq!p#^;Sd5)IT@LL)L|wg!fy7?P-4m$WAKb zSA&Dq^)x$q4Rya<&zpC;s>0uB3=RbL ze6Hfmr1bX%6$SCjrs?Al+6oqmPntS!y6RDi#t1pr&R=ykFTRYz70MqBb*PVAHN)P; zo31IemfHGar3f>IajQ_nT{egsjuKRcE8*d0tSyQ+(45+P7Vwlt_!lBdY!rI6CgCGu ziBG;kT2u`yP{fYnH|+Z2EiFVFJI_>4-3S963;CKgAPxS>vt&J7|0?fl@Di#wZz}q=k#jMHd6PffOzgFnrU_^KUIOpw$Jv8c6w(>5M95)SHdVX z=KIS(?z51&_27ePy7@Q3>0QLMJh;A`=t;&b3*avX+J2t+#doA;$9--b%{%Y3#Yn(j z(#@p4-t?qBO~ADu#2u#%PPF2Z-%V>*IJ>l3RqzV$8cmBZ9VUd;SYdXpYw7uqVK{C& z&v81oJS(Vof!dNjE?^8skODsl7@tbp#|B2dC3C?{5`gRyhd}ki62$Y zS)J2_2&Vzm-3^&U+oA6R#WN0x2N`#PHzcscr_e77lY&YR4a0@Kq=ULdI4=^dE_iBx zQrnlT^sQN-_QHw$kbsJq{s(OS*85dss6&J_3gvH0io%2|@GEF=Vht~5I*$lPmo9(i zeEOE{oGiS7Dz1B0WCF!rV9iGnzRW~RnzqTIJv|LJp0+)SzUMZ~{glXMgdq4y{ai*K z{0$2Wrus)n;P)g=cK^GIv+1v(#Sa7p6d7@b*Iy6t93YkYM^y@#u#7->p`B?m#X0Qrg2QZ>hD|JG&GOZO&tMyf`7^}9$ zyv5yjp-*@K65qlms*`RycoAbhNr4rcepu%4#x$pZ+C5{!4vviNpAyHPt%tZ)>$;YR zhgx*|`EYr~MH%Mn#>2d9pE{J?RM4i*YcgXMTwLhS?MVxoY1?&1M_U%(S$3Uyu%zN) zswOu!U^cULBLj+W89M{@kU~Le;d=Hy)d?_?$|xkvk6U*|IwUBjUvqQkX5xFO8X80{ zhVkG>?J9}FBYg8jyAIRxv7cwg`*UL+yqvfF6@A2?YatEyOW;qPZ-E}rwHvNR3z}d| zaT}#r>EWe`lH+Vai?~oD6rai#!Ii?Jnr{a$s5><%P56JyejCx?JEVNjQrMBLF*D)%Y+ zvs*8X;wipu8Dp6=kPzia5+t;G=!~-TH9x4aa#|bnO4W>!s_uVbBYZ11tsqC?s?dhV z%l|^T?;hfe6Y8$lJRirW4(+f(o{7J8$*p5mi>uF#U(T!^X%*K|@Rj zI=&#d($cyC0Sa8bzZ3OV`7HqOvf2JK)`AZYhPI~L(t6K$44oGRK4WzdQ_svZ4SB)% zIL_g|LI2nxvWWkShiLg_Wtp~ZzSp~A`cQ?sV4L^hgGm5g*421+Wrk0`BD@#qFty$C z>oIMJGFeL$K{gAt+h)CRjFn%L#hN2&n&X(AfezcuLH%L#lXFHQX#zD<#g1m zy{G(SA`buB3B^0#4gQNI|JVD}Lm5lV8rrVqXR46uAzGPYTn72rZo@Bg_+9gGCu#&~ zl=UFZxa#x&$zgYC#|KmIiSa&;$Wy*LU|1l}y^to%?&!yMgradqs}+B52n5~rASVs( zErrA0FCPc(C0*o~F_p}a)4~q&Ida1ViTE1??Px&tPN})7Gs5h)ZaUEQe|{zAeUbxJ zbJlq@vPLA=r6v1@`D7Z-NR3qZiHLV`T_xF#a2QJx?!W)bu&S&O4ng0DI2-03%dEPTbmTWdt;F1~-l+}W_w?w)29e(hb;vbYrag;|)62B# z5`QM^RVuu4UD~yIO{s!=3eyhaONi!{=hqv&+ae7HOKAinpaAkP3 zxEVW$QSZ}?NgM~GCKnz!@AyLy-?B@X9T2s8khIL|*he%g%ai>kIs4?}V%mdamn`QQ zsZ%wS%Q$~a!iY%iyr0}43-T|R@!qV_`$0I(@frlxu47L`C{|S1tdk*PcTBcS;-t88 zRJ$3ZwyCbMf=SnOjoQU~My-E+G6$-UfZY>einya?JNdC!RHX!MBUY%_KAnlziabdNn@5y#XzPn(Uu7mzBe$Q z-npie*o#zSfoNN;Y1LlpcZu_sx{kG1TzUxzWP2^>IxfztpC$d3~3aBSv3-@-5 z2|==_S%5RAwh~`bpoiq-3fa?6r=4wmVcfC1l9KBof!Om@!g6enCAL>hoe=fwTLS;p zsyG4<#X3=XDWy~%gBQfT(fZ@7b85qYM^v;AgvKT}+;t+)rv&4FrH9y-^LfwQA}&u2 zvw&Ce7AS4_N&0mY&DVLK?+O`b4Ov}l{eF5BHzzzf)bU?;Y}KxE+-&4YK-g0lGV zAsP6ZEw=1I_KIRM?)Qu<+T~ELm2`VPe-U1DYr9-Vp`1|1>e{jIZnIG zRa-9j*B^Zb<#cMp{GV+UpI?j9M5GZ`+vu*)`@_;BExe;QytpQ6LYuqQs;Q3CEFh{# zsxSA=&xW)?bS2+!qTc1wX@9I`5b;qNQE#Fc=2~{sQ-O#4bH3dE-o0?~+r3ji`kR7LYTAu_L!ue&p39VZIq7ea%oi(7# zf40CM0Vl>_`Z??I+Lv$w++kFLUdh65RiQS9#r6Ab z#M8n={Z4UX&M!hu6KXo%TL=^{uyAP`)#;io+x}`VXtzNSZ6gc~YD6_*6~y72A}0{| z;A;!w3 z*GPE0%4EF>mNUPmkBq|iNOy7V(m8QhBf4*TLLemls!b)>SfW~NF$!`YZV7}>S$L0Y z_~8RGI8!|yptIx&#TDe=?_WL78gLyI_?nIy{!&_up|%b~t$&IC%{sMOk&urYPtHSY z`|Z5eq{btx~BuoycvS*+-)60YQziX5|@;7-7?5O&5EgcwI%R|IMt zwpFVuy@&OQjWmt?WtPo-*!$KrAUx)qJ^i6;jaK~K1{Hv<&CO^`cdigkc&EC_Ish*C zg~wnsSaN(9{PF6Z6qYy3vSoU_r8HJYbAUbRXNU?n1NAeDNJY^w=r4>Xi+jODgQ>HDSomOEG;)f z?UL>t0r1z0GQ~o8=TnRsDAnLlX50+r;hLYEY+WA>8@iqyz1he3Jb4H*u;jJ!v+K^S zA2UW!aP(i=KjS)qI-S=>uspAIyzMxR_#SW+>EG4eU`ZXWO|6yr4nW*}()5oN+9K4b z>+=Q9Cu&Dt_hw>PMmi(Wx5<$r)LAi&E-T2qtWq2`E&ULUh8p!RWyYw~Q`)|7?=(Ol z81+u7r>dT)Hxc%4$#Wi5iawdyFsTaLh{%tCTxF)YuKyBiBYGQ~B1QgA;P}H^H2vFZ z%iAcobE8t4c@>*J{1|~ha9FCDG-6iQjf`PZ=V8XYK_~dOqSC%upTOp;$%SUv1iJ;U zH%VUwF*laGl!Ugh#T@!v#m|a~fN?bCFYNi&%jSsNEm&!3_z#I{mC`uFIPC=Z&}E&} zV8%x#wJcLW%>337PjWGmxap^;A43e)e5(>o2Swzfq7!Z3gd=wpBF+DDSa}4|S_i9P z-s*Fg)*#6>^;d0yQ>hFbdgExJ9W1Z(U)N97fJ zI%er;FC<%xf|@5G=+g&^fYJ7v^7;Jt1O3MszW0dt)AQe2M-w;ic;Mt6hfBKLB^XB3 z3K0uDresBeS##gM6Q?_%eczK2FmCPJC%6x!KB^fG;HG|2m7DBz(k6+l?jdV2e1yCF zyD|C^8lxBa-Q{TuFtQG}j%N_`sl5yf9|Q*2$*~GWg6FKkFG{qg>b%!Zhah~=eyzB1h^d4ps}M8IG|&;^!;vB-Lz@)6O4$rn#$t^D^H9S@zBt>x zh;AHPLme?K7`2K2L0UPWSo9nRK-8;k##?3c@Q)f+szN3iAKuMTGWf%6KB2;t>n6=C z=%a`^1dV^!@J@Ky%YXho^IPiEDX)J}!D&dQ81qNXfv*fO^@AOibkio^@I>Pb6B^^>Gl^04tNDS_^wxcXCime-Rfw|UVzx@^GoiA~k zI+`s$gTA}(C6NXN$B>UMzPh~a8?6frJZTDv3|U5HlTqrYC0!Ogc>gH>Do1Ofs>W(K zEXDAoRp0IVi+?O8ZHmo|pziP;Vs^NDtaofxl#YK-EURiYD#eR==g)vXq!&q$mRm{m zn_@lQtCpNz&k6%z??RU8x{=X0F&pHf5UEvX)CZRp%f*cd(`6}rWppr<(bn;4TM!AL zMYyl-qO$juzhlicrh$A51J0seiG5TJFyu4(jt7ig!N3f=QKioRBTFj!Rmqq3ExZWp zprj8lx+i0TYg}Q^SfzRkVLK`*DXDd|3Xf?BJa}9+O2@3syR5_G6~_{LBGnuPAgC?* zo(qf)T3hq28?W}Wypx%|W?zdPo3A5tmCPBYG%=h0trsi%g@+0#>XCD1A7O7Z2|Nxj zP|poSN1vL-)X9IsAFuLE#CC>r=)cT4=vz`Mb1F^z;)W>|`sAK5WBVkAgxQwy$3Lnf zK&XAEC?@4Z8h*&1-J#N6@v^xU@@_>8^eTuXG~&_e)_SgY!!?y=`wlw^zXd^i$rP99 z3Gk<#&G5P3?g;BHy#w$*34WghL4g->#pFm8$kgWiktI&3N#tK_qLnm%-| zq6H*VDP}_oWBz}&lius>>8I6Y45v~q z1yXygM(|S3Bwz)DmHw;6@p(pFn*_yT_|^Q`C&(-aGptF6#%GFvra?ETz=D24dyPk4 z3KbO;Hp?==q343xT{lJkO&NXH$EWZgtSTZ`fFf>5u-|tKjo{kr0_nHWVZ}&;#^!xV z6B61igc@kVTJHZ--8v|4R)Dv#`>0g%?8x{F%_Kq#P{A-cN%JzOr+ssjg;uolzBfMB>nq|Bd*^>zdmx#37>4SWrkN?zJZ+!VX0~8; z9yW%ZHkRtgJc#rK$8#b{@gtwqzjX=Bt%m{|)~$aTj%Kpb{HHfBkHdm zZB$0Wy(BY45ssM(eP_E`hp+ukj-rko-p@u&WLxg0gSR2Sxd=ZXOUL-9e_I_AgS2vX zAWGq_5@~~iw?Yda0(^?<$a$D=NMAQ#;q_Vao=`<4@|xie>8~o?B8yMdv>TE0a6dRW zXTSh7@)WJa4g(lUm1sljtwJ)KI4t*jEL92~fINr7Acq{N^y)*(6h+)W+ zAsnCc6lbs~*>!wdrK;vM}TK_dpezv5LPZBr&>WNdQPdI;usUeVp$@nt?jinOg!q&a1+*lFG z%xh8cU*aDMBnBdp`mz7VW7apADX{^o6}TJ5RU5_;@YgbHowlR$i!3jNHpD^8@0h|0nELt2QfOv=T8h43=243CDqVJeNziSp_cG~CDZkqfI6DZDc z^xjkzw~6Sz?ZT;8?$p@~nH!Au)QuBjv{8fXnJ5o+h3|jWte2}@PW|-#P}_^iu>5^J zK+V*i@JH#FAVC|n&z9!5JfxyU*g^CAh_*hdD8EvsvE<@0I|bS6zvdOALs-5T<9#948;1J%22E#G{QMSm@GCWgO%4p!)gwl$=T44tRV1Tg418K3BEE4=xQ zk$Cd9zf+Z+KDF#>XNTPxO&5foJRmKz|^+>;kf5)#b(xu0?^UeVn zmDkzAuy5ax|L0Nma#in}f6&@~FSPiE=Zb~u=@nqNZIM+&T{8Bad#A}yABNJ4`pBQT z?a)=Jqsb%N^6@-l|L6U$LlxzE4|Te;bT!ldZ2?NXp?P!ttr9j(gkMdw+z0&dWTW6_&?jbIt@zUn{Epv^ZK~a16ZHFU-K-yorWcq-Zv8utio?|#%`T^b zi8D=CsYHbCJj@SpksDTY7B*S5daNw}c%9aF zt8cAGrKKQF+PGTzc=LXROW_#!p<>;UKBOLzZszpGemEtUS*gbKO|40e)LI|Ey! zja@i))Mif}PZHlf{$bpvdJ7$KdTBSyLGf)w=TknH$sV>DUO6#Wz()?`4s$Sq-x|CO z2{+m_Q#MOv-Qy z2a|fpODzRKJU+ZRiDCneijQif7FLU?{88kW{*`7;6$UUjM{2g=fxJCh7g?kYu#3{0 z&GVAoAYm>tR#g=E@AQt72v7L)3UkdA9?B=QfC{4UGgEc-nW-+T`7NIs>`#&fhjEzT zI5=e3Av9$vc$(Grbz{LDTk_|uXoji6jJ29u5mJOca$miAfjY4}$Gfs$%?23l`|ooLLEfP(c%~=!nGV zwe>z+7hIPS0}M`{(}wU`O+RANIVt8oob}LNNl)D-tBF%<&PJZ<7RBe0f2WOTEyJRHS{^T5*Xn) z57I^|UW=iHRJbi{Is814pCPqU756n)kv;Mrl3>Gx4?EO{Ud#)`WobHcYVcM<7o0t1 zwuC*O^=iCFW9$}qQX|-?XgUV*jTp(6^sq>GqEY@@o{p$(@6@=mm zxCXs^u`MWKFZ)O}Fs6Qt0UkT>Nb=_USFp_ZEPD|<7FR$2A)Pkib}BI>We4qc!`z_g zx$gIaLO8WFpqg}Ex27E4K!0aE%ccjsIy)t^S14en(TiH1(&t=iAWfG3bya+XST0z5 z<>Dx)3?%nI8EW4yl!1u|hj#T3`3Q+Cq(Ai*BvX^o#SO$WfnX?!=7mlTjlFX}>CXT6 zhKZ#=hsZtq%HHrwMULi1+T=csM+TaC>sM+`AOLkZvYW`Oy!(RnYTRZmNA*7)!X?Z( zhPW-KLoSoHvozbzOegrla9Q={v79(AAi!l8}y+iBQ9!dXxyO769hh<4Y{{}0@+>h+QS$Kzi^n;R0&wb&_Nht>`SZs6R z52^L6@@rzneRq=PPGKS^k^1xBK8)7Xrq_`9K$)K^kX5WXHy8@F+Y)^==Tgm3zNk~= z;+F%tTLI&y#u2u$#wXb!)ZM=$jdE8qDL=`)eNE>cJKNyOoGw1gPa|9-*iqOhhXsTS znK=YiIis92H&5d3X3&c@fdj&KS<%Epdjxj7b`$A2UNxx&HG>1_%dNLW;lpssvElf4 zk$5G#gQbmA*JG(6PdpBXmue?AvH{f5=2Z9ZK1sd?UUe`E;bvQ|4I(u+3I08Zm8vs_ z6qO+L9(OA|;sT1#v^{^;q&`GyH<(VLPagDOd_yn(7V6FGnuU~d0o*(u?Ctw#3hK|% z&12sJ3biiaZ#XSQAB*zIO%9`et{cJ&Oovj-m~&7vV$1g6dC3GQqk^dj@V#7DyWr>p za9hgz>BX<$CdPn;UWvRGH2=y9d3Ep*q4;m(4};oi`-Fa$;(U&}i~IO|#AIeK^)sn(3K|F4*RV1^P}=1G$on^*799TwP`iD|0K6)qmrEE{XL5ls5`KM5HE& zIK*+HFvu`a-kXWU>%gW?Bfif=j_?!jA`IVumR<6TkM-a5W>7xhbx2Y%O7vL9UYX{f z)-tLDhlFF_V-BgIq*$2PToh6+9YkGndFiJq*V0u-XNwfPorlN0rLZj;yF$;17yToFtn7z(+)GDzzs_S#c+M@-%1T8jzX zhtrMJdXCy-LBFE<{dl(FG7|JRD33CHW--1!_#KMdcKT#Bjc7wa8$}R&p46}OwF*1% z<^3yGB;%%?U+qx?#NJuy&s99soT?^I-Jpqv<1i-&ts=>vs9&Zd0)jI=V2C&!2`x)L zqq2xsQYq1l@#9kIH0?Bh+6?uVX#=03Hv6yLq~^5rPBdi;$qK?Rl+cJLtfFj2!Afzw zyph1&ric&cLL$In^rEt-9l>=%@_9S!!@v|63%QrO^KJ8AJKgSG5F)gvXfr|OF1g&} zdG4yo&t>my!wZq~2+j8i=Dyc?Y&tmj{QFL-%(v?Jc=*lGC2AK4gZc?ELa4*#BgMk4 z96<^E)o=4XN=psdALGuZu+O-%|GrLX?p6m{(fD%{i}IS0PNNpPM}03u-`%ENrh5#8t`K7`kgW^zB~;1K%ciRRDb|15M1I=xtJgvjAj}eb zhsC;v<`euQ455YLJ}A@YRMmZ?V9w5;vfKOf|qr zj;__ZmSsxULtYz7Uvy8yh+8)WOC2{zwErc2irKEJxNm_a$jZ9)aep)Qe zYD+q|$Rro)mQHbxFqcTp-I`x_bViiKe`y9LS5>-LV1ECSG4l? z5pHL=qziBZT4Gbc3k@lr87-lU`Hu(#nYef%D^?G`HmrSbVy=<#FQ>~HKI*4-gue8HBvQ@$w*IZttg(F?7O z*ZJts$PNXMk~<;Y@TT#C|4OgOt%gb}Ju#4K=|fYShkH1Ndbko8*QG)9*Ap1#L3ADu zkKsG7ec4-KQEK50$M!9Rwg-F&_&xe+gg+59F#2yN`CV48IHd*03Qb)R= zX{cEm=ZE!5|mZjjsW z!(Chz>ZE=gif4KJsWU2vT>L6Q;;IwNz4GbSUaGKUAK__OxDqIoSdS*%_L34xSN&20 z_fgPgjtJoEf1>jw`hZxAyw^u8|A4zqtJpengAwB!%;{%^NA-g~OKs!%TjYjG6+@&+ zW0w@LZRRAJYzNIXJFlXF>WxXXl!BRX$c2VC0mB{|JpzBlp`gUY*;u1rrP%TmU#1x{q`GT4L5ccn?Mbqt8u^Jq?G=nS2Wd}TATCN3| zqtyG~I&{Jc-SdM|6UybV#)o<>dG98$#k>jpqe~f)y%eq>Gu)G7pe0|JQ%};9hDZ>9 z(hAxMY15>$h_ZKf)T3AaNQc(o5t3~%E_T0}y^N!|#L zgCZC4KPqsG{pQdvg&4sFAQcQQ#-k>AG@2)BOW7LiO+IxPGhBaDHOOrk z$7WcE<8*9)%tOYtDdR*Z>m0SYj*`Sx7Vqw1qX1u?xG`>#7(O0kt0Qo9RQ8JwoJL8? zM^x14&!%c|Dtd$=u0*ZnoQ89knFo!xLGf8E6C1e(ukUgf^~Sw|`u|E<8}GzkJYC@4 z=L37r)^W)2q|vS-x>4H0`TymyeY{|#RIuJ93cskuv;NMoqB%0*|LN%t^WB5)KPtx9 zz`3ZP^gI_By&WSo;M4t{_ZO4-X5?u&${9w=Cc4;6?5=TVvl5e-{cVln+^I)2pHY%a?aFhYY`+l2E=+pIm=OQdoLX#MqTJHK(J1BRTyi?_(JbN#* z@-Kc%7BA82OTNMxpK!bXwPWr65G@3>qG#Q0N#*qt-{98i!Q^Dr>%XVwc9h$kNAUi7 zNs;|Mv3TUpR3~sl77rC{_BlX&Y?FJv9`%S7M=-%V#m_`IXGt4ba!sh=<7-0C5%|m$ zTUzbIwmZJO?dOzCQ|t#a6BN2vKt=zj+cl(AVtZ4NW%UQBSyxH8{W z@bHWe%#S6tZ%anxFoh7`<8+zfF`!g4Di8B8)F{7SP(ZZJ7L4T_`xA7ktB)5E z>;}}w(pXX2v(C@{55=;yhly2BGLp1Z+WqK^Q<+w>&ta0xP%&+`c*K^bi;Io7)|wx# zAc+px%-#Ww;HgQ_g-)FOiNw|0{nvrIN+f~Ayi6%)K~LAuS0w^Q+(pLt{FE$}79i`0oQ@*y|&v(%6_t z;+8zAv?uNKJyPrLQ!F*Bi9GknFm>;)d{XK)UJJW&fHf!I$w8r*x!M}##QL9A{?wKmSKo{H2;+PHh%aJPhhfpA?d33BokY=f6hGR z7ua(?V8xRtiz;pDzh_?u?hF>>O}*AdEe>5gs6J8(-;v#XfqbEo)I!EVN{IxWUp zTUw3wBSs44K#Yy1O;q-}6(#jG!GUkNzpyrk`Sz;dr@J*fM*G?BQ9j2v4A!~z^{5~4 zc3L2GV^D@ckuT{lqp18pFSdoiL;8eh&8+Z%-jB*Oy#D*~=8C8v#S@ z10}aG7v-R5M3TODE5w6gW~-1Y>a6Xd2Eq6}JYSiV#xyxD)ym5`*SO=0$GfRNx4x?8@?q!7qT;!9+)4rnPm00a6V$S>-P&XYyaf`gJwCY zUlZt8Dd*sX%ei7-^_F$y-uK@`Vd018f9H!VAXC}cqin(5i6A%t|Amx(+L*(nb4^4N zx+BlnP(i@4J27-l)_U&|(q>i&1ZKgha!^dOl=_!lu^zhW6|0ZCyFOCpRO0kU1^hxA zIF>kp%KgkRG=eEpCI_9sZh;3hNz!W0dQ`Fi{=T)lw*^nHn`PwvW1~V-?h7M*nkX*h z;v_rG!Z^J)aV*0ag}>TIjju*I0tABxp*o7KSZIkL$o$V<=}?|WF=-9KSEq-UI)xeM zmldmq7^N2?d2DnM9m7#=q%5+FGT`af)b?=Cd zV8ma#M*$Xkx9Vx3b(x998x(rK*LDTbB7c))Y@qr)MyjspW7=1F6Z1*U&~my?Jr_b` zi|7MCq}f5kXlzl}75eoHKT9!~ev3L(lpccmv#O-@Vhi*@=y)$>v#^rHDh~>Kfd}wT zlT{!QW1%D8pwg4vr+oUI`!G*9=V_g(Bqwmg?s-6RAJs8t4$tYC7Y%LkvjHg9?#LQF zCNl8}Ek88+x$`rK3o(GOSEi4!SwZC6=w9UxH$Q)^Um7#>s+boZ{w>EFR~Dn=ME`%A zz9|s6r1Ki+uEU_^?&lws!0G!&vD3FDuwrs`)K^?@ZOMox1jED^k!K}~Mcu8*^!w=^ zDe4&Tub1b|2!8&RemeOhrOOR2(VV;GGVNSo@~YR<_?W+0P%Ijq${r;)6TO@1hTkU( z((p}E{6}4fi^5c~D$IiWzr^W-80tK)JIkH4wI&jslKiB497Bj=?>eu!_x`PzOll5L z{nqm?1+nuYjH1CU?4a%S21c^ZlOQ>hYmN{GSM( zeFe>+6l-O;F9^gP(pibLj|RkL(y9k9ATFVRxXenV5hWo9y%W1q!q=~U$&*fzTL1K; z6H5xnQ&JA*6}6FoINrZY^9xHH`Q4Z7ID1}bZfKj$!8KN7rOFz zDpfq2rmZY1QqFe1n~Lq;Y=d7Du+m~4x$DWl#E{yub!wIl|Li>NZsVmJwq#U8%QqQ? zsD$FtYaY{`nRat416<}Bb<9HYiV|TK6kUX8tBm;$BR?;8*`4`u?3~35%j9SCloqwA zF0ODDdk*J9u~HwLZheIW)wowma{6)7c`_pW=jfDbzo(4j#4Yr*^2UCTl+J#-q&O(K zlBaP{ava<^N@W8MpCWqLwM**Cs~@i&mPQb2^R`1ed6$yn;bdQmI)N`!54!lq9gkPV z4lAFkb+e8%?Zl%^(=k&z>kryk|NWS}P(wkNEVGxcA157shu}ps^AcFioJx-zb%1%< z`J8Mzz;t}S3p6CeZlKR`6>katZx?_q&E_a+q+MBgWF+b#Ln`_!M3X?9@OT;`C>(l` z#nw~NFuQQ5OGn%I?pzPW;tXOhB9k}~)Yap@dpCQpy-($il-`8*yElwp)mvOE?X+w$ zV;>wC}Ch6jOlPtSji?E2f89?38z@?IE5Ytr6;~7AnMZ0Dd_*|!r2gb>XDqo z{$t0pL?Z+iHhrVo)|PwH%g<=|od>4xTG;-t3Id<)7QS3ZWO)Q}TYtIK@e_gMFpU(t8T!j~%kQ2BEYqsy<=Asz(Ra1t8^HU$;xyCG9 zUL}X)heyjpmB>`y60T}s0NLWDQv%m$4R#Emz9tO&AJj9m*MGR>IH6$EzYvbf=qUd= zFoNLTC45PGpNXi&JRs*2?J%$FbcZ2{pXC3ZG>E}*Ni+A~Ziux`kxiwAi89MzZy;&* zQ~vlpf|(Nk6?J$wgZkX=8<6Kmw21~n^{?TYho+gcCQKVVt|L_hv=TRSdCpQgrZNHP z%W!pkjfvaYc;Y;dZoci;%cbv z+RMdv+gO$2@4xa#`^#&l#M`?n!ji}Bh4O+!lu^PCF6__08jmLo=&BFlzh0_RCoR&6-Yl%?wM zX;msrKdfNmDveUvob4Z@7&#;`ygo;9Ub>$y8FQ!g2VWH-$5Io|p-g=zUi`-{@G5I4 zUP{tjF_!sQ@-@-BXV5g>vp^R6MHxK!Nm)%$?r;_sA@kK@?Q}IjXvFCqycM<)(m51Y$W$>A}UR!!!<0hOuKnoA+BU$)9 zXL|6f2PNBkCA*UJFUJ2)BIA7ZT34umoA-a)J7x8-0O&0yi;0okzaSXl>|QV$)52mr zZZZ;ZiB}uxRdTfjED`PV4oR=L=5$W57@KvJS)BQ~m&SFp&K6sE_A<&xAPI2Y(D2h! zGZ6uR)wmngYw=4!agNAU?wS-bf@Fd$MEG~BgTU#Q~J(E*!p{06%h!5$5|(f zDQLVD3SbcKRl&X=U6YB_wCY+Wd)?vTCOt#vZ<DYfcQ{+yY7bb#`*>`18B_ir0EqBE?f@ z;us81AyVCXcw*MONV&`ueyQ1UP}j}Bq*#mMwN%etCgshW=eWdFNl>}B>NzE+0TJZ4 zMDN*BOo5(Fs1i~WlIzL))0tijy^lLOP?YIAv^NA3G5kUjR>KelgCfd<{%!2w$_Gle zJ{kiiCZ-WAl_Aght*3k~3D9WrV~VRZM4PGwS%>XT;{S2=-hotq@&CAe?Q4cy<02z+ zt!%D6A|n;bmQ|S{^Im&z3du}H%PJvz7un^?&bqkvzSrgVy1hTY&-eTL{oOy^C`Y8kV9zdaH8QeOGUG+4gDn)^Ld%r zp)F=BQO2g|CxbdD6(>Gz8jN)kYEfs>N>hugK{BT6-x}wsg!%G}b|_#GoeI5v@)yE) zObAj*+ugT;z2fwfM^C2@7U%YkTopJim!`YbE>Sg>F}Q?!pPc(%ys0=3A!!li?;}}< zzjTFS@$Ks2*24w`btpQN%3ssHNWRwyUrvFKZZsr~an^f)mf}}*#UaP8A$Ej0ITT8x zrjGJcZ+_RrV6{jia13Ge4ntof(8pqFZ54j_gqpH&wnzNSM7X|{*nICC!IE*<*RQeN zbsb7nqHLo{If%4RZ$I+>MefcS543A(d8h3~c`y#Web$6%!<>MQu5Sivlp-RIV}=qZ zIQ}3OW4^S8hw^=cs^pr?@0M6b%UL3JmTrw0!k0c3aF%>G52}vpI3?|$hTI*{s!8nc;0#VkR(=$2 zd4DO)XtU_Ny_8NB6eV<&M%hyfOc%#w3UFrGMdlNY%V+t8f=Zfn zIyqM|jiciwEKQ(dI=lQa5b>L8NryW28Kt@U{gX|=S}Rn4&*qh+?t;CNob7Z;z)FBU-f zp8rho4-Cmeo`?}*+a2{eV2mx;&S)}h}BUXgzJ%n z;*X`wTew9p2j3#&13Yo`kC-A=$u$A+9pJn;y&gQw&0#57!U@?`p*=}TpM0aN;pALxl-L6Rgi9La3tRg#A z=G__)?-Oj=YdeOXePABR33RfYN3li7d@L!4mvK5uUgCmAQiXuEwk&#M4AU8P#Ay!3X)$`DRXOpT z+00MO#4TI9Uhq<>Uou#$#95)|9|hY7S;Z84Y-n6Mfex2^*i3bm|1q(@$86iwY`{Mh z)sWmd1L_axCldW6FPHH*XPPA!U{9}QRmgywZePvYqeI*=vu3|iT6iLLIoZv|sl7+O zJ{BK==Ay6ji@K_Zuc)O<2&O@*FOFVv7Cg)fOmoZZ=JYPVp_U}V=9#vQC$IumV zdq7Ye9B(}^l5_9IesC~@k21G%!rGxeue}(*6^*^U+%=|OcjNq)-hpICxr^!15%}5Y z;Sq)&+Ob98EW?E#_Zn5Ouc=lywqaD#O-@X?auE?%K)`y}X~oqt^_b6ZMAJb>g&c{?Kg(^9g2j0aGUWiOjDo$REoP%ZA}zV`z;JJN-B zYew7Vi(JS8%xI3e3?V|{0yim%|ABDTR~I7@j$l)_2lpPmHLjfv@^XrCq|ng}5Soo> zD1UOIdC=^196!r*SIJP5MBD+8<@lp=crlcJj*R?71`9K#^OCIk5HXCi2=c2q3FVeT z*UkYPHEYLC;b0nILU7+R87U6_@eBR6armRE3NCV5)j##SCWr>0W>ZOF8}sHf=6X)( zD$cNj{h)#@qh}u1Egc*oIE~LC4-4MAoF(4BGa)Na!bYhij(X0Ja;<;?7T?+!r;Mth zk;MKemY(4qUtDqEh%jR@eFVlFuBf8m3%qg)!&T!vaY z8}>qWE|0SCnOl)<{YQ2hBk=(k8cSh8A|?9=)d)+I%ohH6#5!L5fMvQdgT8X z=HtEA&CO4v)Y~0rBm?ZD9R4JRx(J5gJnvuEnhFoHc!13(?b7EM{d~jil+xvYw3Ih< zNf@wRHNRm(d_#H~3m`hOevZJX_Ys4};I+RbBG=;Y@+?*LD+$&d`7(Q4wO$rIS(@=A z~lY$zeLP3l2o#N>f@?Od>K`!v6In_IMuhYADk6FI@aK-{>oq8=IjzxnSLsbjD zvn1*q3SVr^NN1_KFE{EYTW0KvaUl~LEhQfhi3_Wz{~8IkyWhdA-3|OF#19b$*v!JQ z`o6pOJCN%Mg4uQr)dN)Fu1U|)Z0kk*Q!RM=6B;W`0edp21-j2EC0*-g2S8sOw&@;| zEj}{)!Cl)DL`A5`uZ|eJ7SN&Q6F0N)ukalmPtp zYRd7OiWA9**q3N?v5BFYi@)rb_RF;I7mnc3_uFhwCs@mf>4Q@LppI3W=2ky*=-mYV zC|8V*5^r34ym7`!FL-!I?3iT-jRcb1uNd zb&zfA*EdY5=TB9VrE18?8g>^IL|(~=>#VhYc64fwlk+EoGe)IFZ3R;nWc=wVUhr!8P8YgbosA>5p#jomj=Id7{4tMqxbUZDuxmA+XQ zAIK;o98s!Wfbp3h5h~zZ(}S;s$`m=GAt3CQ?J|?o*bQAQGPc5XHOkqAMg%H7=HHfLeuHAGRgbO6`OTF8uDRXUDkq%3PE#87HZ)A7JqTg5 zc~HD9arB*&B)#lxgfmJAV6o0(dP)0Bq$lA4*^ikg-8iF{AvbFcnZR#iuY5aHmS zR#OOQnG^Rb+W5s0;~V$X?D*O-Lr*nU<4o6sVfrlFRXYCzXxyF(b8rP_qaGZhPSc5Y z?~QdG?_**wQ6hU54G}7BFDMy1U~5o*8CY1(e>)O5dpeEb9%D7&u?vQiUX>j%s||kR znYp``VE0nxXflW zNWN1jcg+?X2-!t#C4SY42>{$bQHg1O06=0>1VCg-=Q#KR^+fA(CEDgH1@Kit&q21Q z;q=!r^1n}PaBY%{m+@&IkPIS+879Z!t8EvgHg)hn-aX5^J)tX`W3MloykE%QEQ6d= z^j_3)DhwNz^UN;9BmDVt%#_dOh4yotB{p3*)(JkKA1yymY4pMw?=}VTd~d9A>_>b* zjR-R6m-*?HBXQ^Sb((8M4S$ZqvIW-hWsG-*m}JHjb5L+@yN&O9%-0*E<=)zg&mCPH z3cl&pC8){i4H6@aj8)e3SO+##f2YPIxKPzS|5%jxn+U&?zLdWAZt=SiOMCeL5M}#6 zk?kvmG5)fadjrSuL{#>XW%)uenOzXoQu)YPCqVQ8sek&F&3#PlT^`BAR83g>CMLH^peCgKT}e#I zh>s!qsUUy$ulrsNnc+F$QPv--3#u{sCQ?t^CJ*4->6o4pPGD9co}QG)1kl^$xGUSr*|Vs!i3jAa<~@&ng*wiGWo^aKn<0{9jKFsk zy|r&*&QjdL6C7`?L01}o|1KZE?pVfchdpqnwicinLYYmFF9$SNUAj`F2Z76@j`+ z{j&4s92VhMPf$7bhVz4Z4U0!(*C~a}f%nY!-cl^n?9wmF|F1J+s~oenwF*hoR20%K zY_86edHrUJSocu5N6<8zXm){@ZPBW;HSHkd83+)5UgO3DqqW)Dds6K97o6qoO|@7r z0PuC9Oa1hBIaAHzYFwPL_l>x5g* z=hfw3_G{HGRRiMF{r-&8{KV2ox^H}KlsdtVlSjk&-jP7H-m@mVtO)9?n|*wEQWaL9%1^y{nE6QK}Kp z7Nv4MzTf2Hp3lHA zf|z&-!IvDb8)~>I^!G#_sL!^hU0@Sohu~o+6i0fXKZ5D#%AcTHU3K&nFY5gIo?dNk z8Qi6<4BJGx==F+jEcaZEceTKP;$A7`j9srjBxRP?^!4Gw8JCE@-r3Te2vyzUVSU0#u%_}vzE4BAvQ1=k%W`mWw-6P_}=HU}cEL848C268AG!8;aNs@0|1;&X!%N+^G&E5C- zI`fBZ5;!DElXA&T^*Ac(*ZRXO+x%^W2E!hTS=o(J82-zc$*UyKh-;&Kv}ZI%a|*pC zl}-2!PkaY;fDu#j%Qk}?mLrHpAH?%N5EE!=qBruCrgu>=A86+}uMTufyQqEH8iv1# zv>!0O2f#`#y-Rs9W@KA;Vpg8Zdp@LM08N zc$I2k6_DVhfMiL@2iO|^flcqqV1I&a64{MnT?btSBrWPEb)8ZK0C0ofP#Ut^%tC)a zWqtqqMMGCnPG(f;DZ>ECqi`!CN(AQ6t z8vkynF;G`Cmpo+l#5_3{*jh30*QfzFNz`2K%JJW}&%Ec?mKAD^kodWKC#07q-uSL) z+3sQ0ziT^xu8gh7NgVs~Uv^N}Cr?g{uj|V7Cp5?YyB7!E7LI&&%36AUR8+E{L*K`^ zrP_)_g?5}sylWR%m_M%`9d6Y@7GjeYy1)Il^?jXK zwOpg_{3*vYhXQ@vP*qi~C5=w@&QJZ%R=5`}9IkzGdNa(gmE_0+rK0NO=3mn+$W?^* zJmit*d9K&{JhiJt>(FqJ*0kMkDt2*wy@IOk;PYohkRppOy1=<;bU10I2LP54zuLDY z1JOl`jhLbR* z1ki=TJGe%OR$Rh!FVU*?%Rh2wII7T|fP05*EKxb1)aZPZVJ&b@P0rUi{oW%)(XF(s zIcMc4bPosMw-Lbm=*3qjlCn`yu0!lQNCDjAhcs;KNccQKodjakkX#Mj+q@L47kJNT4io=rYyjohra}4>Z@WVoW zRQItSGRkC8{?-Ae?>F3Z0zI(f{ z+6bh@OO=vFMrN;@hHq0F1&kt=_j~`TMfj+|Z>H77OWwj;;Ar=m?8!VpFJkW1A)<|4 z1Y(e5jJ7*MpSPUbcAIkr?~5^{qzNRhbgigBsMN#KVj2!zGWWK9#H(y%S6a&hyS2Ei zx>`pj!qrR&f)PzO7aK;2GFH2fWeoYtF&@#QapOA>L%58*g$T!tBGvT&eq~tPeQ`D! zRyMUwqXOH&4xjvx5swWrI)4qWZ}FEE;eleyD`=AEN=K%(6>gcN;Gsr-qC!&b0*)re zYpx`!EU?Grg~#>~C3~M?yyMgL%XNP0RR!8_e?f02KHsDpUrRqs5(>U8F~@_+^T58c z%NIq{F+@sLeoj1&W5!TWW2Euyx0D`AiUQ`~SA0^L5 zX^!({xvbRFY7H?ETlLZNk+Ag#Q(9Foo!SoAqJK!YUle%!-WGsPqGQ{Ui8Y(0E`rO$fLUFX zWL|Kc+JpKI)EQopR%?71@3(eV`=@a$?T7sFd(=9c5*4%T5sGHcTbL$@z+JH~+i}h? zeTUv;F`Xt-5SP~QrTK>Gr?E4#C~SLYbQq+?w}gT@n5Q-9uX(5a-UhY7n}1rbMdQ6S zpP#Tb%2!aoYk&FNr0QT-dU;E-Yt&V=e>^x?%}_pj17=h+biiiVY(esW1~W0BR0MC>G}CQMV7Kr?pREaBSUf|3w^g8rSiRZL{jsMMF4 zp~SMEf9hs;{Bsm=zMRLRCyo!G`19;5+y@;GsxDuyzERGTBR!A)bjV51H#Za;Vu4K6 zZ7Lbc=cV)N+DD1-Q{Adr(^FIiO9lJc#ZfTR~45j$? z7dBCok93n5|3+VJ%YcH-z-#*Sz6f$fN?Q%o#K%BVsbW6RdZc782J>99H6_qhsvkz08q;ESJ}32KKi#%5se&D!vI779St}Tt{sviX`fqbt{T$G~-n6u|%Zg`l+N2T| zlz2l^wf5*^A~tPy$^l!v2!dm7DiS9eeNes~6TA3A8X1w|jgddbz4ct)IeY^&7>gX3 zZZ5XEn$VdQO8){;!|=sY4{@z!Lg^Dr)vUj%?zjHtI#{h`q?mhO#=0z6Kfd!Rb2pdB zf=ThFbCX_OFLo}`w)7Q$CHy>_?T%K>VJgX(?^m4K2^g?rYS6E%zVW-YMD4bgnl;FF zT#lmFi@zzc$TTYBWhtYyz)b^LZ!Tx@~yQ;=`1ZBp8C5(~wl=3XDqGd&)z7Ynv%c z_8t5EMS&1TeGp)F`k*s=>1S&-Yz<%2I8d&)R?RrSerJ(vmRMiqLu{kiEc467Q#mI^ z@;9~>f3>eB$A@Y%Oi>bM%b)&^6%J9Z`X-gFr%}oc1isd`H5;w=Hub?H-Fs0-UaWCR zAZjk&cQ)P0NsEDjUyKX3&hSy89ie6KobxyOw~RUQtGq(-`e0(Vnj0x6--B#RZI>ft zlVm+xJ)suzRt)Lis(U}tbVm$Ie(>3rXB#WeuahwkC>_u|cVNHV0QxW6LPuQy$(scCnb~PHWt8(O(@^O>FEYiUZ!z zHdm3wTEI(Js90>78XxSIQ@Gi-AIXqm4%+_<>+AEjax5?ut>`fTI z-=>8xAs3BtYHh&_F5GHA_GFjZB4)VxTAcr=G&`2{vzD>GjN7z5CMc!k*+`5I{i+9>g&$s#3VA@UZ@8MP);k=1hix5T5e9>}?V6f@o-p|u zOS~kiGH3Ym>_Z!6FA_}&JpK1ehw0KG3J<$LLw-D4i(de8e`+Nvh#Hx61mcayQyv#t-!-Sp=N3P*5CxoiDI-jE@Ej^kQj+XW%ZmZAHZ;0W zpleK1qL+VGdM%cUstvuK%5XhqmuI^SIkIJKV^zZ6BfVI0olb8=%lw`Ty8E)3 z`o?_Zb&`b*HQ!jBXrDZ_EJ^!n=2-Sb4ki*#S(e&Xz*~xbo_|_kw20E2P%t@8R>iZf z_|c%mC}~KISk3fj#Xo51R?!3i-mYsN%rZw$fjW%Yra0w@0q-~Acai+5ZWP}AYftQX zrNX+K<5*bK$7)Av-7j(Y1$V4SDj3b4;HV`R)B#n}vbyVZiG`nkD@+@6K4VH@jCz{O zQ7)Mg^PUh?@i^E8d_Fc};a-qM8?}79GAi0@iUxL^^+RAWuE)IYc5eE$)k?aMtF-GU zMvM+{^*IlDIo}l`T&02icWa(8`D3#08j$*)k9azeI5`Dp0GtJOD8L@W^(TV^z+|3hW~j9a&Z@IpxHYJI|#Yn3vppr91nDkE3nhWW4dUoJTDYWu-#VjYq)e~jVQznwwiKz35xK5%SzOo` zycJr`Ju%mQTQP+{C42ePneo!C$=GLbdpWz4f`Gdrwrz|7k#pw#7j_UJ(}Ll|B$Xm( zS{Y_L`xV)v2gCqy)-&N8D_^iBL_$#l_#+J?)2m6tg?w}C=Xs9UD)ngZw0`B7w=+97 z=a~Y3VD?wPc`K-3Lb2?+jQxzQ0%80ze{};UN?0iw#ZW>(mH(^a;0nLicj?y?_J>cj zt+@2jb=@MbFeZSFu5WjaCT5+>lK!HQGX5->;H6bI56Z$Q8=tjmu>KTjA9>!dkxmRC zs%meQmvrav69`I5k^`Go8^jr8X5JTk#JiNzyyt5M9uyVW3_fbNNIRspGai8$B#4}V zL;qgL>mD2E+)>r=)rbImY>`VUBqck%>t=;oV@q{UW0|i(HD1T)!L2~{t+(}gmMD6v z@5mWeC)x3}OLqDAUZZ^ArJn`Uhu21 znDgO{bzyLqaY2f+u|bl{4N5f*e==5P@Am_`8I#q<$OgF9NE@hd;^@@|b4ja)Q3TI& zVCGuzGn>bA$toh7T`O)W%9QkpIx-l_J*zX{6AyJI z{efZCc)sWrdgD2xV?T^XbZ4$MitM@|fy@7}JUPsI7Ywn@NBBnGN8Ul9zb52<3y4fF z(8Ea3FRujZA|pklyGFaM4jF352{Q< z!v2sQOsbBFG9wdQn_k`-NG{adqSOwV{X2|bXbwdM;jWf`pOO%P{V6YFd>Xj!5E0bEU46J0bp+kk z`I2lgqzuH6+aCDpo4L_4lzDJ%`3oEoH#Ypz)MozIv-pbY^e%s+>4&CExZa~4v!*S- zlzC;F%+^!4H-(N=_|R2plIF#Z*2wrJfwWQzs2w3dF{3-@A~_70P+lEd@NJ%wZ^d7L zaMvJB;cmM%sQRy0y2uDeC`&I;mx37vtIs?2w4x z<6OTvG9ornSA^oH(kNI1(FHyq$t@H(-y08K*a4N=hTO`YW%08UkuTYfG!^<S`lgLfIbf?)0;^*i9mf~cIQrS;*OuZoe@%8-%^_ZHQFLqUVbkv0DUfBXxtc~IEeXW)rzi5glABtT6+dHeu{ph|N7Qv)@XL)L#b z*`{lM4xjvmG7?;xypqqN$iaa6-tIpG{U85NNrN-Djf%by$;@JBfn(@gNrCxEpR(lo zbv`Vmz8ZtS&NnzFP{QhF^jlRoG&*m~hxvf=<3&?Ry7#qSIyw~F_V92M1c4}e1oG@fwl8#)~&z z$B});PR8HeRSd#q#3@}ImFgFz7PkS<;0Ve0fJR!|B9U>|kdB~}46|o0WqtipM#hIq>G-uKE z(7s8v8JXTqQ_2)GsWVNY5A@2TXWW9iJ@PBo4F#W8(SA={G8) z4xaHa7XH=g*Vinn6Ui>#+0|-``nW+AH}i;QEA{BGf%aeai+kjMa1bjV!*1yQ9co3|(IPluH+ze<>9dDnDw>RkTKp5?a^Fp2_pY?PAZh zm$puHGwsZQdPXWFxR!$lhc8VeI@N(v5Kw3LDpU1xO zWDSgE<}^?~{COwa_2Modfv8Y65Bn0H7jMM;DUMRoJ`T(Bv1qS#;ljQU=8`IxguEVn z%VTq0a7Ly{PiLD}Zd1Z%saCgCG9@%d{LSbMXGggRWbav^AQ50y|LOHdFFXCjX2dRA zsYZNP^alV26GsNW&Vz=2lSaH zFqXD9WEWIWnEHY^U!ir!tS%shGxF8373`h5IU>5|X!g`NXGn1P$P%HM<4XTUJMjCv z#ont64G|JMl>FVo$MP1QqshbH5s=(!2Y6RzQ2&H*12cWH#D3Ot;j3zCx;8!X_2MGU z=e5nzrLnMD*kCXWIBDlLL-1W`qiK01=XG2}fYOkNrzTB}9g!ccy1^I~+Q+U5Y!6 zj0+M-;>MJNFR1x0K$i(T9;u8F$}(T9425dr2A$3xz^tFt$Uv)Ag)_YI*Rg^b=;Ou)m)!3weZQlkV)a{7JPEx&0hrH zWtlcy$ln#jt?Q04##(!~+K#v%>(VXnL-esCd~pHi)D$o;B%s;_5etl){fx7dUMj65Am*hUD4yY40b!f!hwx?RNOnKWn*qbrQCeYrG>a z5|@-;m380u5bQrG^trqbz>h8uQ|~nx>%prRP?}j$_v&*ykK~gA>~+2PU2RqMY4(G% zh%xf}iS|O+YcjV_%eb}he6?_kKupA#^?anQlhsN!xMBXH1S810+0Fn2$aM-o!~*g0 z^kkAhOgP$nk^{cmgS}Ut;r`itrYjW+!HiiKb`H+$cMiW99pU2kZ^<1qte70%epUJ5 zg%8sF?8V22?at~J>}hn?3_V{WQjEl{X6=W2^&$oAD1)QE>#~($Tln2+O53On*?XP>4z5;^wRd+ zjC&&71WpW_jVPWn+SQK)ui_uoI}dz64YSdFv~c}DlnD4~=JnnI!YkYX{A z2uPSY@^(fW)odQg0bBjyju>#@1gpaE$CsssWNJ28T~fE!mG+Qeu@lxS6d4LYg%7iu z#cf&2auiw@=4ZzSakkrK78{@K*RqMdlUAVXySPRp$kjXh7zbx~UU9fz^L;_l>( zmyst3JKn2=HQxe^0}ISe%^zZM{MVjdB_U?iI*bL7W(nXKQ}@4w(wxlt7|E_6gz+WL zeBYx&p>#(4_Cg=<@W#Pi#*$?YqYVk{RQr#KCb+@tlHy3fT(1ywVk2R=)9= z0wVQOnEisZ=g8{&NmT^(kAuU%i55{>>Cv4$|3Soy+~lOOB=jSeZ@k!*v>{H+-}Y!? z4ZyZTLP{u-8o%X_`D;>s*?Iv6Kkzl8DXmVzWN%vByPU)c%zt&(OE7=0jwFjEpQk2|5>9uo);oRW$`xjaH%LMsN6py?O0cbiwhe$WfB9BERJ`{($*dh!0x}@CwcHVD z)i;@puN5mZ)+^!8)*4L&tUV{E!R8NcDgf%z6gWwjwcsrO*SNQ5=UGeU#3{9EpyFQ< zDvVD#F_{-Du!8XoDkz%@68$yz-qal-5fhS4y2>3K+tC}PlrOacNs)W60t)0thgYE2 z-3DS}JO}ufUL?n)@RCf@C7El~&Z@_~Jn+_l@O7_qVwN9=9Y`!4wOG@c0rYA_AlL@u zDZ^c3M8jn8prK5SuJj-*qK4)VzP%|Dy)V1;wVE(PY#38>;_pjR|E2!Ao-Wy*<<1Km z#_`#0gn39fogO1+$Y_W4zw0mExw9iQb0vWLy;g{A$D9AvmArH2m`r#=qyLR(=9!U) zKTYti;~G!B&eX8IETMqL#SuJ4eI&*$<0H&= zAN^&2XpmEL?Sr508YzB6J(^4RxUa|VFbF>+xK4^UX^sx*pe@c=4RpA)a|tmRXB_^{ znMvf`491!#XM{{FQoXZ<@w#ZvpRg z-odkAcsl=Z_FdwPeZ~@ICJbd6J7kAZIq|*`UJ{(EhGBn z{Ub{r7G@t|4M*$t>VlfAVi$$B2e0aRJn8Dc_m4nyX3jvfV#dFoBm(0qB7-b0jIA*Q zp8Hoc!B`(ltw4oHTQi(%_eOG++^Iqty~scNHb|+(=-;`fL1_C)YkE4}8DM=gXr-|h zdamvJ802@5_$c_C6Pf-2rpF5NAe+%Wptsl|{T&)pCB{#4mjUl!9A87w!cP-Qq%%H# zV8$cLhD&GmoWG6f0^bn{)+K5y&=5I0>dR7>kF1gW7@tE_Yv)q>|Hdn0{=&7pl5_fQ!enHC+@(Ukd#MUcqw%=ICdLZ@S^L1z( zN6Di3%6Pv3?D$@GE>c9gKH|?lCv(%W6wnKiBJIloL`w3nQ3t-EaKT9YNJogQEk7mE z-xo^n95KOalU9cABZ^W_xeHC`{V#pDURa0}vQ#;g!#6*L&JozxISbygS@jLs17b$D z8bAmJA7-xJ@ZHkL6H7Z_CC493?zU!J$;x3%4~$^~j+Eld^$-kY#@Hcgq-hdbfLMNc zj+q<)lpN0TgU#GCoA2->% z0M^RLq-+0|?nFnbwMo!8o8C_?paPE+Lw{fIQeZ!Zhz`XZvd`9pCIym7Y0+V1z`=jY z$>IOpHe4X(TCzrkXo3jMzTOn$Ux{{i9lbWqdQpz*wScYcLVWS%(%CWy#}V~{qX)sL z>!!b!{y9l#8VFJf3H{#$1+dYgBQ-Uo`z1Sh{ng*X+T^eOISysm`spYCJKzr3a4#rM zI3Q=cTjl*bToh2c2!Q6hJ@D6*33ajsn`Hh-)Ir$2T>D#m*mdu1QqFrP@K2jHoM~c| z9sgVB^JU6Dw{EGX^Ce>$2Ymo{Ofb+@@L~TE^0X-nFHp>ei+3mY!!50~R>r_im>Y*L zh$9c`Fsa6e+j{OQ18lUBE8(*>GY@3Zi&p#`d!4Ob4eBqT$^T}5?WgONPm+)DSK8$7 z%|F?D|6Mx7^wi+)c^4TzN=0jB@ZcAQGg;CWrmy%$1Ru#D^5{*F*saSVhpQ>qYiJ74 z<@5|=C)NGbhMsb>`n`Tb7az>zF3}XDTkgHK?Quzhp-u48PM_^<)e^3bXOB`b*-5a9 zuTkjNP^!iPOePgC!-w@^RcAAz(0wDN*TQOkA7j%cntUPfneuAp1er$B{F!|Ro6kV=RD2~#RjJt4OS-ZQ-9Dk-j&^obDWr2t?i(0=!X>;OSRflpA(+DvoUZBbkh*u`e}zBUVo9g z_Js#mby{2$ft64?1z_>o&t~S|xbRS-J8fS%!1kjzJmY9(kCM1vsYz*sarJ$CE%@+< zR9fGmOQU?zq5!ER&tIJs1-^%&V*hU!fZVl6L_9CekJhu&gk(g@uP9C8CnOu6agOJR zh))OXxAQLfvd0~-s15cS(R9j0LhhFK_;))yrx_9^F_o6D+3SCl=1$q#1Jo(pJ?lag z7!lvGR&B6tqs|}dGW=yccTr>aO%mG97v#H)!aH+Ex#*?T+0;Ar`ST>i?fdqIF4!sK z1hgJ84~;x@1&h(Y1G1I&99wjTKU62CCx2@BkOxPUEwV~`8!Q3r>L)TchgdAf^P`!O z+y9xyywU+TUdI}C6n|yE9n1qq~C@TV(fv9m0 zsQYH68$!jTmTzB)>|av!r<%ZPH6iP@1<{ZO2{pP*N&1${7}?hT<{cKP=yLl~M5jWAK-au+n^V zuy&?)^tiZDSxf)Plxfp8xVgX~@2qSjnyk-bqqLPnW5DleqIj2AM5RIccYN)QQ6TKG zWv99Ui}`i(@GR8gGSQ)p?@UZT7a9FF+N|d%#eza6$YooUV@uU;Ry_*HiknwIlWJiYNnBj%b z3p#C=28YsAwH!{Ik-QA)vI&3CR6t^O@I*ep^@;%#pwk8yQJe(HgB!<{XwfdL--J zPX7jC2A_fQt^!8btQ~&M<^s_HSe*WIdLB3uf6LMc?tV9&{Es62icSd{naUuQ;_j74 zgx7K>U2YhpG^P9=BMsny1?3t0RpE50Q3cIfz*DQOoE51=-8*cF0TE6#FJ%ofZLeHm z4UXZ|Is`@y*f+uniQHq&Q!}Z zb$waVjFM(obD4F8WFFia@#K$-(d)c)#%FDANMgUxqtYonf8a~sQ&5`{?O^&8Gqj|WVnB!}-ramc5Q!3^ueL?LXA!D-o zFn1ci8__8~Tja5Eq}Kwtzzk4;wKJAVplioosb$HnjnL+k@k>=rx-*pg|JZq+kXFRz zhr1Vk1zvxhWcR%HWF;v+8Bw?*84jI+2(5-1DLQ8rv{kIs3H|k z$+(~Rn%6~@hraf({-euRL$*$E69s~^`pu|8$qPgXx1sSplBw&^cr}OXV_?F5VtrW~ zFK*q}S`FCxo8GiluGu%3Q*$j5T=_>hefPVEL3g#HawN0@fe(a1J@;udtN}^+ixME7 zeZPcu1%3~0=*Qhfe)kD2Dxj*57>!-Wv#8>PS9&J(K(W2OBX49&0Fl@c1Nrn(Ysz8&9QoM&YBc2PeAkT**tL$JHJ` zt(5d%(p##lp}7dBzG|r*av-4`bZJ9bC)m z=5*OVo#+#K>~8#T8(tD`@FcZSNjypBOXdihbGv1~PW2SU?lTUJ=#LXl_m%qz8IUWK zbm9aTd$`Kae0=(jbeD|4zW{Y$)TY*JaNt|e=Eq%M?pvCK5lL(nZ2B{?s2ZCY>gK3BVw;JwhtyiWc0GFUJmA^2_Tv#wuy57 zErvj{LAEpG_x?A~WA@1dX~UByVBZQ5ZxRKG{}O6Kvqf#ULYwa2214U*93u*vrw!YL z@@sW@&4u_^uVe709ILo48nZ!tjXP?Qcs`#ZC~a`UV_xpC5Tx&kqc5VOkcCx_*-AF- zeB>TAqX8$q2m)2eN1_)IT09D~@4auhN#FAyuaNbe`PgSW zJ5^eatp4gwEP0btxiYr>8q`R0S>*~_jb=sBan272I+hW*Tp@N*zl~GB=J}3D%7hM$ z1>T$&I!2I8GU&5+Ks(m$1WfabfK-X|d_TeJgTK3u;=%um4AALxK0fRE#*+P9@BVph zC|{VK$-jDHM%*DTw4+sDN~`@~>Ubu^^yGCy!Y)t<=Yk?BDW{dlEn6 zeF#j|5yD3hsaf(-6hfk1J9RxfB)wd@0bt6Is5Fj_F8LqFV=skpM%mVkKhRj zSb%g!ozcLoKmz4#UC0c$SnDi|o+(Zh@f$DC#vN&W6}|wjh94Kyc9T3s%EcKpO!In^ zATUm8=fnwZo%aGeA_I9t$?g;he*YYn%P%u)Jg` zr7i)vtICd;W9={rh41f)eyz#)9hLv4K2~&zL_4k@1DxPfVlL)`3!V!IIDQgrLk(6A=CcYtgnM!7B*>a8H)GA2Ny<eUcA)yn_3AFbV6(D#OzoitMFe=bWVm=i&{4bOgzZd@_0AI_RGMl@`M z@9n9*6)oBW?F}*%4>r$DdcQFHA!9@K4ZezFN;;(64>TMM2UqXsD<4zth&|{fVq)%y z0CkQKpw7V@e-%rYrFh}nxDRE+d<7Gww zn$McVuLvM*dvg$WL5$cP1f=%@tE3693@L2TO4w+AoO z2kBOSoKF<3F5jj=MTN7_&QI3U@c&t_S0?I zm?#N&N)M+=!Ny_#TiJsb(-pD>{N1-@ ziz(6zj0{^0jQhffyVtNVLD$o8<;z7I0|h`zzh+M{qq-r*kU15+C}Ak}9N#M1{V6C~ zf;#4g$h3&AfKC~X!@99~^Re1a_F%-Z;9o&bmZyeHw_ioQxfN7>cvbw9hTGS>AHnya zhhta;^ye#6qR-~~e)s)`f~Oc$0hc2DSiU7GjeYO8gYOI;OrKr4-v0^?NI4&GzaM@$ ze<PyPN{+Fo-bn>p$C{q%FhQBZ#OXLS!FR z6X2h>oaC*|@5`k!Mi9G^j?DamxX$>H>E=TAT${%P0T!V8y3tu`c+$(nDb)=_ta4RX zork#R&kC2#YYYTy@$LfmxO(+=JNkuK^^c{ zLy#S~b9l2aqC6X62J6@`d|FaW;g>%u`r;yd@!*W@GBUjalj=gtWSUgV0Cd))5Md5g z0X_XcI~)^ocCaqiygg2Qq<+URn7`%$#MoXER)4S9mivI{ekvSvm0N`@)P+(?>9TIX zlT#v69z%9qOc*4}Qo5>%ruZrHI@IT>*`mtx4SS&{Y9-BhcmTfIG6~ee(dw^O4{w& zb9wZ%)hC}Z;yxC^+{Z01{P38+R9F}&_`FLgqRz+u;7*s&1h&`zS7DKUnR$`?o^M6s zko~oL6p{pg(lmvL3}T=q1w zGx<j5c z(S@m<+Cz`?$(0>Rrpf~uvbXT3Gv=F!f*`7~pce_dC|?sKRO_Gqm5ap~JZ^a4C9?c^ z4cpE9eE+it;d;0lEc-k7PV3>MXO*&J|BjEBavv2)^fU+m?9-1mG_wECA!0sqMw}St zoS#W{(4R)I#T-BydliF&nLIx5jpl22#|_G`zuRhAZfpwRp1q7MP6H#HBPNJyfKw^- zUEa3A4IRk7DVnVF>LnC`I+1$o@qCn&hyGSks#w`AC*)`S{3D7A15iziu zQD5~c=Nn(J6(i+eogBd>YQR;i2RKCplpEgyir_w$0r9^Wp_+ZbTW4O{AgD_o2<)qQ zk)-j2AIcJ>Zeb`o9P3x`E{V2`H(2LjYVT<3l8qD-0lanprPBYhzKou7TJ-7$bg6#v zk?4;cB~}}y_Gic%)_Fw8jQkeddeAW;_AK+lfVHJqToy13##Y%QWG&Tn_Z@g&afeQn)QQH7 z>zirVwC^YO#5Xr=W5PE1CKyL!@NSZrS6+{9gX8(@=GAPiw<=u6x=j%;^{pq^d(KzuHYaac?E=?g}1CgT6 z;aDX7Nl$^~PU~3qLA7F6o_|54#zPZGhNc3(gco_kZu=xI4{mO9pw`D4)t?yMZ$F)_N6qKrg^gDaIqyI!RrcP)ijzH3T*74rhVf zjSD?QJ*EQXF}8yz&Oj56IsedzM;&hf`)x+Bp^%Z~_mBD>J_j)-i;O6AlP-A`Ktw4W zA5IhyQ*2JJCUzSe#D*$4n|w@!xvP_Wa4qK8r4_S=L3l|5z(v-{L*_w~;iSTDSmQHH zMeFe&uiqTI(PNDB6)$k;i#r9f&=JFlo%$iiHW;c7N2F}%LV&&UF?1O65ch*S&%;5DE26qY9t zFE2X2MdT>dz4d(ki~BA*?U3}4;ReKU^TV_b+y9xI>>sY30 zQf&MnZ7c*t#ecf~K;}|;nHqeU?B$YH9kM&~)w51IQ9hPz+|d>H z=XEw%K0H)OfO<{i{w{*L=?Oi?WIr&*k)a4tnq(l_EJV^VV#h^q< z$hSnNq`^X{0fS4Ff(zTbzIX~1Tjl+7z{MBArXB~0CW)q%E9Ce$_P>V`w_nC@yP5=> zZjXZJl55}t&_Qg{EXxo4k^@x21WTFqpo~)`p4!^_?)m^*iyHb1eeGnQgJhq@UX{7x z1Ve4tppjm_tDZ83GbG+ZVFC!}m2_zv$Jc=_cd2mHy;nr*y_)bwW%4Wjh#;zOa6enu zLe+8;i9tz}SSe)%Q{gzsM%aZwi-V8Ap2}=JjcA(OP5xM0f6{TdTIlauV;JR2(_-*a z5Tlluj2ZuVvxSx{l$nl|Bzir>it#<)cOgo&_7s9o$s?G~2|f2OA(}*F`r+kI=&FWh zNtb#y-jY~Kn(xXdF?f?QS70^`3Wsu_-zwDCD=$nhk6@r-zabzYWwaE!p;brHK3i0I zb_zE8gL{#33nPkqIKAFGDJYbF3Tvr^oof->Vv#}>eXO1)$KwP(*Jn0iL4CTbyldF2 zt~_(DTo`uP@F6uKT#C>-gxgcr@QCgF+B%@dd=)<$2j72?^a2ESVPvL=gM?8LVJeQK zNQloGBAJ~k^Kp^s$xporNCX$9aP&$)m-aZ;sfEm%@aZgo8H#((WytY3Z}SS*2t8cX z8u^2wLnP3YlJ-D1a(2s$tlT9?h_pj{m6Tqd6v|Xeep`KBn!fDoO!8Dh&>^QiR0-{C zQ6-RJQ=LJGRZ%zcJ*X&sqc<^|2&rP!@2_-gju1!_q$Bz*pY>48Cut6SJ!q+{;!o4y zn39FAt7=)}b?WF?XAxlLfQZgG5I@oM7Y)&fC+Bnqu`l9?h7GnLtnHsW9{U!`cy ztn0axQNO4VSr>?T;%zz0$ge>~DhS)faf)x=o-8F7Z=x$^Dj&xZ@dPz97?Y%6pL4n3 zb<~EQrYfHDAIrVEwDy7Pv^j)HC16*|W`+5`?nm{ZdfgDYTz+~MdDG_~f25<|%u-1% z_0F6t<|ahjDO!N2Eq}A|i47w(fX!4de8azTz*1;}HQJpQ^oO{$dO(%cc|hP>f{TC^ zEnOWNfgZ8&p!IBF;^|e-9fnk}k!mWJBT>gag@#>Q#984jS|tA6E{JkHOQKHu`GPOw zYvxPBbRj++JsV~TmYuYJ*s8wf2RSGu^%ds(D(_RBjeV12@Preh`8oI)=bY->q|od1 zg=&nVPLh+9(x+^UQ3{|z!5OK){CvNR>YJ9_2i4ADzbu}15q=pF;;u)BiGKN24G$L{ zYZ^YNuAHG|WATb#J4f%;^Ucc%6wcxt??cSoG?x$tag*|&lmYr{F)8T6Dy#TQf(O@f zY`Tpba_3v~vF>N#QQ1U_!YajuXpX@5H9!PE4vIWfsY@Dinpu5yq$HboTooiViif;g z<$`*crH1xjk^NQ^mEL_tlv<^6E9X`kUJ^RiMj2X8zmV;1bkS*K*VLBcF{R#)RqcBr zg+`joXkU7zD;(}E5~vo&)i)(_xrw<^;HNE@?hzQ({j$M4rRRwibGSgC5!gnFYOdSO z!PY-{t+Yc`g|Ah9j?bSs?1&DYDywop{DQeYohB~dRAy~PLA~go)&4MN-Ple%c{RwS_&2^I`2b}_m zQy_I8GMJwq=e?ra{RCsoVPpu3iD$h>)!j=8g3v3c zMXtxB+*5OAJz?g;SKdk6XXm8C-52kG>g?1N9AXIT_)KaPCRzr0;_Eyl&&W?@rTk{? zGeZ{lc!sVxQbw|wC1u`+f2BEfXx|83UB$DhgAGOxOvg=#GNICakIDvN_jwZ@j#%hz z*9aN`$3bDP@4RfoN@63#8uabixHT_Pe59&oDzS#EL$yRQoHwJ=%w8CRD8cxN&HTg* zE=*ORS^1Gdb^OoJF+n&9QyQdZl7J}`_~$}Bf^oGD|4A=&YY&4Aab67Khf|zGA1@}# z<-py|+q@H+KEA-d6J$+begB? zq`@{;E!aTPF!A30tu}>9JH0NZ6Z}l^d?0SgGJX}MsGgz`e+%J6r_(h;CuNUTG-U=Xp*93uukQaOv(ooyhF)#^1_MiQ<RGJM=&7 zvHSscBf-i#viO$&5l<%qI0@NU*!|ud2qe<=lw>Jzp;aPV4XExsz;Dudh_4^XsQd%9 zz(foz31t!y91gn-uvq^h5dKz)r1+ycqp+ly$13Cz(VM5GmekBE^Dvt3(uMtQcQYV> z;%nbe+PPvbBJRhUQ1A039IZbTB_K`*7qJ)io1y!#HvoSvhDeU40l2|5=f*G7Q*FdA zZJ3lfG$;<48^0764P)zJ0;#@f49^Z}(zAT;D$Xq7Y+LHeSa~Ur2afnR`X%{i1!DRl zqM7d0kF0w7S;C05En4+OL)0QQ=Xv2TrprSu%G=H+1yXww`>?GC|3Kk~DU2WG(y7@Z zQt3AG4=Zm+Tb*$BJj*2d9+ME?f^tgXLQIm^V|Vd8ZNA&9s;rKFs{U!lQQ1*5VBz+lo&E$A?74e z?SyClv88pXboqk3bookN(7VJ}D$-1zrMk1r{pq3q(6tL5NyyZka~psX%nvCzauMQ=hlXzhmx^b%h>iK5SyAW@Eb?b7(Cl3ldz<*rbE z`yJs#e*)%gy_&IaK85KQep`{X~3bAQ=yDjHxRJMK}}Xm6HDqKL0XgJAg`7&3+vIaX%t7LM_Svc*%HByi-w z83c(cwP+qijG*CCb$VT=I_Mq>ZE?s%MAUlv@3*KKX3=K|NHEA#3H0mtpdwb!Z9qFNb(VDH0=Q@37Z@=n8QYT z1GQD@kRIxw!p?X3fj@NvH6HQxr>B#)mKID3G&G~fwMi6jIw-@igx`7q$e+mHDBy;Y zbcS##2Q6(%iY1k1ISOOsO@`&MB{*SgN1KLsPd^jk-qRJLX4R0CE*16~RI++KO=y`K z(o3SG;H5OBk&w)VTjHL1ZU^&@W>Ls%d50b@g)fh$S(J>S^sTUDvH%RN**J?hxpKp2 z#&IMnMnSfvH?R@ote=&*5^N_<@ZS&D*EnQIabMW{6^i<7LSJT}WmB;Wcj|F(KI*5L=GyNbQsIb|vu8Pv^+_PJy&`U}a1k2-VX_W}0Gc*LRm z_S>nSl+>~&=4CO_!x-slyI>P|BcLx>znK&&`dO!3f436iGRdxcvx|p@3>K6*Z=AiMQr;*BwIsG! za1Cr7x%8}^fjk^^HJtBlMb7Q0>aGHA_W~qMq@1t1S$l&ud;Yxj8mxdZ6MRs);sqbl zu#_jf%+H^2RO^w{Uv_C-qA;%fBw}3D`m*7f^OsY${h-2x)4AT%jY zG5d+#a!k)$4_i8EkmaVPGR~gRr8U+Fv=FBgGd6X(roc?f%7JfKUIm}ndv)aWWf%tM z$o!9t@A4EeK@X9Q2ifpYIYADM`1=G34%9F-n&gM`FtHY+S|^DzbWb6TVI`ze>RvFg z|8!M~^+Sj30E#6+novI=cPpnN)(~jCYGBc5H5I_;Hh3YUCZ$r&^IyNZY;M5s3^h-J zG>88xq zRW}vrV#)mx&JdTBLT}W!Tk3$xf<^|XZ^d>ZQp%9~UFl*kYo(jx9ljfdBN0y$%9!|Z zjkNr;*A3RNRgQPEq>9KnSe?gDl}usXsYlJW-8;5nE!VvMASFF~1FeGO@;n|Af%&ya z)UwmxYFIbwYpVgU%DXT>|Gx6i*ZnAZB>i?&>_JfM>8vI43=eCpz(7UL6#iyVA-MTV z3dLwSJzLDdryNR$j+rDI{EB2!C16u&smPJMiaK@d5ZXeKQ`;$1Bw->L8a2ruPb+00 zmjzE=3Q631x%jF2Uh?z|ZOJ0s#l#q$c>0l|Sg?|WL6bvH|CBwO;KL=@s6e1xp2^DiRi>3+X!(x>DmmK0OTM6aRf)YQx!P zyFlEcoq)j)BcfS($avwtBh7a9M8WR$^cNwjS;4km!BH7>Oz-{-DfPCBtfCT!C*R=h zHvd8Q8nmkm_w2aJk4o;I8$}0&GsoNpo}2oqX9;S!w$gmH^#sqD?Cw=Uf7?-Px#tVS zo5Tir-iGFi$sC8cG4=*!Fm$)AF2x0UJ5X!zDZ;)tQonkA_>Ewb|5(kQ^!A|cG(T7M zwW(VjBTmV!Zo29Ho#kG`0iX1u7b+?5`BVbXttuFjswgXjrcU--!C5R+S4JXVBELL! zp-N=pzqX9NE`ucDYcwH!9&TLs&((N@7W|85-o51xlzW%lAUjv#vMH+zcvCF~3pV_(kK`3*YFuh2F`!z}}|m&$3?j<79)pZCY`4}_S_U6k*9(LZV* z2zS%{yy)KPzt_{Hx8yZz>cLo+Jy>{Fvl0@8?UWqUw;k_+Ll6x*JdkHsnVKmNN#1$bHAjD@sAdTHB7NePRmuLiC?E7aYXY%kGO(U5uT zbQIcCI(PsDL3*Lgt4)*Oaw?Jpmr|xf1@cHNo9|+lztE3@I8|!3H&-aAWtWwFX5@v& zu=bST^^OyR_!3bUI*Q!PIKhY5s#*|lf)7-5?4(3liW#Kd0CjM_ooM_&>L4lDy=I?i zpGHof0O%}~cjw|wd+nuF)cd&Yug=2#P!LIm;>b|Ge;8!{0Xk&hq_1CuR6nz)ij1;d zN{sJ&5^DuZ`@r`b_7@tG0a{XHN$5o)B!Pvi%+kig&E>Rd?Tg$0`0ytE%;J3wvF z(UiQOzDb!^f4ZPa{zmF$B4TpYT_h~SejhUt;1L(qX_q+)nIFq2O3{%V)b!?JdRE?) zkTvQL-OKNb4E|h-p3_NEA!?c@bc&xhKA8=rF-2E*8K=E6gXmX$O8HV;L8h>Qb0}?@KApyhL$ddy0yoA^iw0K9#cf7iig-sFZxh z0~#{i6}|FLnKou*x|S#aRdAj8T|=T(@ab=<}=S zzuBu2Vbn4V5KyYR?&A)@&I%(qw%>+#m#PH6BLnJPeQyN^c@x7(0v|q)I#<#g9Mx|@ zhioiNvT#D%fn5r$fRMLRzi^qr%9$CS)>I>chj7JWooL1q%TajqILagrxp%Zn5PIVh zUmDer79q9le}n=S90dO$+do;A@vEjT zKPQrEF4QvYzSx2+&z*UJJigig+Pml}#%gc=q}+H|51*SNlNu@8NCe+s?|G}41f{64 ze;drM&-#4FI7|EKdcD8=+j??_q7O|vrl@S0?7@)Pm(!vB2gzI3?Vo!5KkCca{}=>& zry+K6hH)~-NP_%vZC;gf)W=%GyhCu7{0}~T^j`7Cn*Kat_S6->Q)QVdyiu67<==p6R`e{nRje+ADz{Nx_(>EAS)1W z%K_2YpTar9>WtA9rG$E7Z(uAimCl5BYt!vbxP_F&qvmp>3KM|m8#2k>`7 zcaz4b0qyU^OtHo|<*=rDspzi)_?rpPSN+nU^`_vMl+$<4nT(_>N72?TRzK*I6SNW5 z3|U2B*L~IuOu=B*8GQA_d*QU&c<SSmK!uf#`G!V#j zNaeVnRa@YGiaGW=~8?jT6xP#yMMAN>Hyj&bgEa5cchE&?4>5UiH}i2G1ze`3Is$*l)@lTR%28(U@!hWO%w=Dbq87(G11Ikh{ za^fj%Y-hMI2mk4{){gvZL70;S=c{VM|IbDEfAy6Qm5N)pD7PgV5#lDmyH%=XvK#4= z{>)JS5p4FQZ!nRSh|opSFTmodYE}Sb_CaiW<1*1?{o~TbHx1r4gthi(+J(9+b z8@|f(`n8aMCD5|qEur7Anft|xVH;6R?c2eXr+jE*$>@8p znYZhEFoP51K4sZY+jQr=(D9R*j|G3#TOQ=s3+mo}jb1LR?N~zu87iMqlAK*jU4|)` z1}zEiPb7CKH`+(vMR&mCk5Xa!DHOn6@+EtrwV5;B*g%{*-#m_Cj2@eE_=Iytm@@Da z3*^G)LeD@~ne77mc6BY%<=QO`#r2R70>tVJUkr%zs?XT&Yi&pF`cO(P^{36dpnS+2 zG4gE_e1hd2JxSZT33!?@S?#)l?*wGx+L=)qy*89-MrFvbKKBYHiF4Hsr(C3Zp2-Xl z5?9sJe^+V=(yQkSP2nLl?pVkm9!=KVxdwAl7=n=Ml$MmK8)K54w4yG>2$uMFUDQAFQ0yki9DfpVbc@0@u95m7d*9D<(`TyZq2QC3Hn~1a- zG`)Ny%>=phWg*rul$VgdDkZ-~yfqztkRF^td3P zT6l^xEEEosE#h_RU5zNAD1!rN2yx!w%X_J-Q7N*{m55i>MP!VuT>ZUj@^yQS58-r- zC^|8|apx5^jCRtYy98rQn8VfLT)I?VKorQzNvQ%Z)Hm0Tu_c;~0Jeg#qIxc#?rj4A z-1juyE8nSwSThQQ+n6%`9>MOI&Q<0xv}wsTsAMiIaS#{T7mZ~`;YPm)@q2F%pMmFJ z3cY+eHLb?do8*RTsW4$vzgSOX1@Ntj;*+kx=*6D2WaXu^l)5@vS}kS~{cf2z zZv9!MSW{`Y$>n83w5JaB_Kg*D;9&Vj*0azWRTCjBJf}BP(VHKsd^`o46x4+x+6NQY zjGnr4iWe#d>>Y9n5n|d?y{HAn(CY&YS}I@@_1l|j6{?v5oSK*;tgvGUNhhYpXr&|_ z+bc#l{wy+@Psw{7oVe?!>vbz$0isW~cH!Pm$#@)n6&DVM^}3_w;78;}Ra;B>R>0;u z!@?07n9GNK;Ht?K_x_VtVOQ!?9%yh#pcVweR@{PHvCF_X)}8u8YJ}C@KV$)`T_{%n zBkd@Ro(AitPkBD^)5dv_#3+H%(NYk@rhp$;!KH9^49Iz>!i$QxuVrS;cqH5;`3N?0 zaSj7d%$u6uE>Gy2cfw=Ny+ z9V--9&$U)=bzcAY`9fynPeG4=jreJ^IkdB<2v2c^iX^cB9^upZ!ll(D@Ni;w!(JQs zoN;rc986=?%XeG07Ir(Kv%h~($6LMNG{^S(LFzKKAb(LY54jNk>$KwD#MJZGdo(f0$Y&?P=ZGD-K-6P|%QxZWww?8cFC+4!BY$oSm(Wg4eEor0DP~5AOnJ*ce z+?e$JVuLeQJsZ{526$0h#B>?Y`grSt?$5p!CX7U(nVe!>Q{|3}R zC5oD@Xca_-P&MeHO2^pK0CTn7rXvzk9)paqhrjQEd84cqO?{NeQT`0!l&tc*&f2t4 zgM7-QgFlur;X@T{Dok3deTQF9lIN`g4N<6Xyu)Jjrh3$D(|Bur%}n8Qepq#hj5 zQp{VLQ!%A&a@~0bxmEP#HJOJ>a_X`l!38a~o*;Pm;X5wg6>H$uZ zTD1EjH3>zvk*$ap#{A54=!_{FyiPP;AZ*cbMX2v41LdA#A~RGaz1H_ zT_ju4pZTcaC*gj=4<3O{|0jFFhgzKb$loFyslP?cOuG(!j>Po~I6I-8@;M@7H#bNr zGx=9w#s$^ok&Db*Da9s*g7BntQIA-2|5a#6>YJ8^jF%020vE2)d(ne;$}7##eYJw; zFv&Ad2X*B?Co>%fH5G(6B^A|Z46Vtav`;H$0WIQ(kO!`ZiwH@28N(1Riw;8MB+;Qu zqu1T{tsh&7CP=LIzpk5qv&*|uKeFrNWu3|+Cw7VLT&X5`;T!f)#v0i)9x}%WHxq>z zcgh8PvO`oJeV^F3r3{$Y3ds6*^Z~g2#1QpnD<7)89cTy%X@`7+3=2JHy%gJ--1#kU z`YA?pL650aO0BBl7eR~rcS6e(wwj{F3s-0diqxEX)uQh3H;SS`5x-bSB6I6?&#`P8 zi!%^av_f8xWX)aT^_0Hidk(bG_&$ZYgZl)NkN;$Wi&qLFFO-CFG}eMysgDIco07& zQ-zRjW9&60@a5@okT|N-MB>K^R!izwhkhu^8L&!lr%f-9^~N2aLTI6YdoTmz>mn+=xE*CTDNabA zKGX4@ErCcT)|gqP%gAKGyr~3QPHKX)wiWjH+K5ZiYaE@yphIzWbj6NH{zlRwFPslu zB*NiKb_ZKuC>`pR$0yKhjHoVr_;^dZuaIi#3-{j(3^<(T+Zg@P#Vpz^CDI81HbdPe zI)#g=_+2`jaFUm>9MX`7CLw^mcUPZDE@m@4#)zO+Mv|gHFcf?M0D)D?SXu9=ZRNj1 z?64-@m<*KM(%dR>Pq`>y423!DfZn8#(-9fsuvgARpTYo@~m&ORAbMH)!}**9*j?v9!HQgq8*`RZxp8F=RBnO`Q=u}Dt5V;R5Qq`>O&^O zIHLz<^kgPYE%=Yp6>s28Ow$t06k1fc!(o6B8{O+d7+G_lMymhCcByT2`0TM z$&6QV-x&b1r58M_S^y2dR>bw-ptW10e7-GXDG}|`)3R}4=_~EFs0OV9qZ-{z57yrs z^5bd)GpZ7gh-Xc8O_%fg(zHB!qRZ~_9S8XVqvGK~W1Voq!~}JzF_fjk+3vY0+MHA0 z4f@YFLw-)I7=mEKB!EbjhM9G&v2r6%SiSRC*W4MxNRt#`9ZgvgFW+PVU>a)Oymg}G zHuDV1B!#0|P!@C0Yum=7!2$9>x=zxFlPrcrkcI(_DL(Tn$%9gG;d&3tjG;dy(=SC$ z?g&j^wC<>qx!^hW?1TLb_fV_*nD^2A^Mn1%gA~58 z=7rX*x(!xMlk;$!GOYIeTJWX-I7`76_JQqGhHNJfLxM3crIg-if) zJ>5(+F)$65{~Tf@W*bF!Cet4#VMGxrz})HodVTpj5r5lgM)Q0idC9WW95==(7H6r*UZx+XFFz~;5}RzW0(jeqU~N}pTgou z6uO3l*9Z0*Fa^V^qD_Hr7Jr(s69-uN5{kj`bs3#~+7qKR8mBX6XkSz~sE@g#4gQ#UN;8_NEEI2)D2rJgLvE1dje52;_yFXW!T3`rKDhX&=xp|Y^G zlx&zo4*xF;ASthygV`P!qLe9^x0+`CY@9h_C+0-F<(W7X5S+k+u;9 zu%oQGrz-=ci|*WKe^mBm88>hj7*TECDtgc6r=m%8)*Gk5E%c|!Ec&VTlz2HThq{~4 zG8CPQ34;y=hOWB%Z!M5urZ6vp{=WO!*-Y>J9QT>dFE*DmYbMp(GBQy|+9Lj>8K;nu zx0Xu+lFjlRG79XR_3>0Q(-Oobv=N@6F=ISmNB+2P3@4P>+__<1&Kk|2@DwH~1Pjrr z7|TJh!X!PGY*QzPt^^Jxb-DK%AS~R8kLV*pI5a%2(MjkMUS{d!-v}lYJv5bXoBY8j zF)0znq_yR(CSK&^{`oc1i_$A$9JF6kS){0qvDBuP%a;!x#dB-xQRgXovk~5?2IZ;k zhx~@s@R3hdyy~{Guz01@AKiF0=lC*;N)6!vCXS#rWQtxWX|tNOen>PP&5<56hjmm~ zzm?1a)A<3tu=X9&?KJI=r!+L6qmr8WUqu>6mV1~*!<;kbmr5#2+C`W=v2;4Ey-ojE zaYQ8AY?JzOaS--n=drguInAsJ<$-@BeJ59P0@0=N_6$_*+-+UEypy9=dudi&V7bZv zCL|6k0ar3SRu_wJ4#FElK`llzNwO!J%EO}3=r_;dH zf5U6P_@M52g;`Ll_`&|lkZfMd#